Differences between revisions 7 and 10 (spanning 3 versions)
Revision 7 as of 2010-02-17 02:36:56
Size: 1929
Editor: WagnerBruna
Comment: repository heads info, for reproducibility
Revision 10 as of 2012-11-06 23:07:49
Size: 2149
Editor: abuehl
Comment: fix category
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
== Compressing revlog delta chunks reusing the zlib stream ==
<<Include(A:dev)>>
<<Include(A:style)>>

= Compressing Revlog Delta Chunks Reusing The Zlib Stream =

'''Status:''' The implementation needs to be updated for the code changes recently introduced by [[ParentDeltaPlan|parent deltas]].
Line 6: Line 12:
=== Test results === == Test results ==
Line 23: Line 29:
=== Patch queue === == Patch queue ==
Line 29: Line 35:
=== Mailing list threads === == Mailing list threads ==
Line 32: Line 38:

----
CategoryDeveloper CategoryNewFeatures

Note:

This page is primarily intended for developers of Mercurial.

{i} This page does not meet our wiki style guidelines. Please help improve this page by cleaning up its formatting.

Compressing Revlog Delta Chunks Reusing The Zlib Stream

Status: The implementation needs to be updated for the code changes recently introduced by parent deltas.

Current revlog format compresses delta chunks separately from each other. The idea is using the same compression object for a snapshot and its delta chunks, simply sync-flushing the zlib stream for each chunk.

Test results

Mercurial crew (http://hg.intevation.org/mercurial/crew) - 10395 revisions (head: 4612cded5176 )

total size (kb)

relative size
(plain == 1)

00manifest.d size (kb)

00manifest.d relative size
(plain == 1)

plain

25708

1.00

8632

1.00

zlibstream applied

18400

0.72

4104

0.48

plain,
shrinked manifest

21740

0.85

4668

0.54

zlibstream applied,
shrinked manifest

16856

0.66

2560

0.30

Linux kernel (http://www.kernel.org/hg/index.cgi/linux-2.6/) - 181609 revisions (head: 64ef3e5df11e )

total size (kb)

relative size
(plain == 1)

00manifest.d size (kb)

00manifest.d relative size
(plain == 1)

plain

1418724

1.00

895624

1.00

zlibstream applied

1343864

0.95

874396

0.98

plain,
shrinked manifest

752248

0.53

231112

0.26

zlibstream applied,
shrinked manifest

681380

0.48

211912

0.24

Patch queue

<!> The code currently doesn't properly sets and checks the requires file, and the changes on revlog chunks take effect immediately on any new revisions: take care when running this on existing repositories!

http://bitbucket.org/wbruna/hg-zlibstream/

Mailing list threads

http://www.selenic.com/pipermail/mercurial-devel/2010-February/018564.html


CategoryDeveloper CategoryNewFeatures

RevlogSyncFlushProposal (last edited 2012-11-06 23:07:49 by abuehl)