lp:~jameinel/bzr/chk-index

Created by John A Meinel and last modified
Get this branch:
bzr branch lp:~jameinel/bzr/chk-index
Only John A Meinel can upload to this branch. If you are John A Meinel please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
John A Meinel
Project:
Bazaar
Status:
Development

Recent revisions

4805. By John A Meinel

Merge bzr.dev 4934, resolve a small conflict, come up to date.

4804. By John A Meinel

Some small doc updates to chk_index.

4803. By John A Meinel

Interning the request tuples dropped the btree peak memory
down to 39MB, and dropped the time to 9.6s.
So definitely an improvement in cached memory, and a tiny perf improvement.
But negligible versus the 1.7s for CHKIndex.

4802. By John A Meinel

Some small tweaks.

I just did some perf testing of instrumenting the key requests against
streaming the content out of a bzr branch and a launchpad branch.
I then created a single CHKIndex with the same 'group' layout,
and performed all the same requests against it, and compared
that time to the time to issue the same requests against the
largest btree .cix (note that this wasn't *all* entries).

For bzr, CHKIndex was 0.4s versus 0.979s.
For launchpad, CHKIndex was 1.7s versus 9.9s. \o/

And all of this without any custom C parsers, etc.
Note that this was also just timing 'iter_entries()', and
not any of the other parsing, etc. But the CHK code already
has all the values in integers rather than strings.

As for size on disk.
For bzr, it is 3.7MB => 3.0MB
For launchpad, it is 16MB => 12MB

So this code is both smaller and significantly faster.
Though admittedly, the time for .cix parsing is probably not
a primary factor in performance. (time to stream the content is
probably much higher.)

As for size in memory
For bzr, it is 21MB => 11.2MB.
For launchpad, it is 82MB => 42MB.
There is probably a bit of 'are the tuples interned' effect here
that we should be watching out for.

4801. By John A Meinel

Implement iter_all_entries.

4800. By John A Meinel

Initial implementation of iter_entries.

4799. By John A Meinel

Implement the code to actually read and parse the entries.

4798. By John A Meinel

Test that we parse the mini-index entries properly.

4797. By John A Meinel

Move the bit_key_to_offset tests into their own section.

4796. By John A Meinel

Add tests that we handle the 'empty' edge cases.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:bzr
This branch contains Public information 
Everyone can see this information.

Subscribers