comparison tests/test-sparse-revlog.t @ 39494:e72130f58f5d

snapshot: consider all snapshots in the parents' chains There are no reasons to only consider full snapshot as a possible base for an intermediate snapshot. Now that the basic principles have been set, we can start adding more levels of snapshots. We now consider all snapshots in the parent's chains (full or intermediate). This creates a chain of intermediate snapshots, each smaller than the previous one. # Effect On The Test Repository In the test repository, we can see a decrease in the revlog size and slightly shorter delta chain. However, that approach creates snapshots more frequently, increasing the risk of ending into problematic cases in very branchy repositories (not triggered by the test repository). The next changesets will remove that risk by adding logic that increases deltas reuse.
author Boris Feld <boris.feld@octobus.net>
date Fri, 07 Sep 2018 11:17:30 -0400
parents 3ca144f1c8dd
children 6a53842727c1
comparison
equal deleted inserted replaced
39493:3ca144f1c8dd 39494:e72130f58f5d
75 SPARSE-REVLOG-TEST-FILE | 1068 +++++++++++++++++++++++----------------------- 75 SPARSE-REVLOG-TEST-FILE | 1068 +++++++++++++++++++++++-----------------------
76 1 files changed, 534 insertions(+), 534 deletions(-) 76 1 files changed, 534 insertions(+), 534 deletions(-)
77 77
78 78
79 $ f -s .hg/store/data/*.d 79 $ f -s .hg/store/data/*.d
80 .hg/store/data/_s_p_a_r_s_e-_r_e_v_l_o_g-_t_e_s_t-_f_i_l_e.d: size=67810463 80 .hg/store/data/_s_p_a_r_s_e-_r_e_v_l_o_g-_t_e_s_t-_f_i_l_e.d: size=63812493
81 $ hg debugrevlog * 81 $ hg debugrevlog *
82 format : 1 82 format : 1
83 flags : generaldelta 83 flags : generaldelta
84 84
85 revisions : 5001 85 revisions : 5001
87 normal : 4376 (87.50%) 87 normal : 4376 (87.50%)
88 revisions : 5001 88 revisions : 5001
89 empty : 0 ( 0.00%) 89 empty : 0 ( 0.00%)
90 text : 0 (100.00%) 90 text : 0 (100.00%)
91 delta : 0 (100.00%) 91 delta : 0 (100.00%)
92 snapshot : 126 ( 2.52%) 92 snapshot : 179 ( 3.58%)
93 lvl-0 : 4 ( 0.08%) 93 lvl-0 : 4 ( 0.08%)
94 lvl-1 : 120 ( 2.40%) 94 lvl-1 : 49 ( 0.98%)
95 lvl-2 : 2 ( 0.04%) 95 lvl-2 : 56 ( 1.12%)
96 deltas : 4875 (97.48%) 96 lvl-3 : 63 ( 1.26%)
97 revision size : 67810463 97 lvl-4 : 7 ( 0.14%)
98 snapshot : 14373347 (21.20%) 98 deltas : 4822 (96.42%)
99 lvl-0 : 804235 ( 1.19%) 99 revision size : 63812493
100 lvl-1 : 13535903 (19.96%) 100 snapshot : 10745878 (16.84%)
101 lvl-2 : 33209 ( 0.05%) 101 lvl-0 : 804204 ( 1.26%)
102 deltas : 53437116 (78.80%) 102 lvl-1 : 4986508 ( 7.81%)
103 lvl-2 : 2858810 ( 4.48%)
104 lvl-3 : 1958906 ( 3.07%)
105 lvl-4 : 137450 ( 0.22%)
106 deltas : 53066615 (83.16%)
103 107
104 chunks : 5001 108 chunks : 5001
105 0x78 (x) : 5001 (100.00%) 109 0x78 (x) : 5001 (100.00%)
106 chunks size : 67810463 110 chunks size : 63812493
107 0x78 (x) : 67810463 (100.00%) 111 0x78 (x) : 63812493 (100.00%)
108 112
109 avg chain length : 18 113 avg chain length : 17
110 max chain length : 45 114 max chain length : 45
111 max chain reach : 25808240 115 max chain reach : 27506743
112 compression ratio : 25 116 compression ratio : 27
113 117
114 uncompressed data size (min/max/avg) : 346468 / 346472 / 346471 118 uncompressed data size (min/max/avg) : 346468 / 346472 / 346471
115 full revision size (min/max/avg) : 201014 / 201116 / 201058 119 full revision size (min/max/avg) : 201007 / 201077 / 201051
116 inter-snapshot size (min/max/avg) : 11623 / 173150 / 111222 120 inter-snapshot size (min/max/avg) : 13223 / 172097 / 56809
117 level-1 (min/max/avg) : 11623 / 173150 / 112799 121 level-1 (min/max/avg) : 13223 / 172097 / 101765
118 level-2 (min/max/avg) : 14151 / 19058 / 16604 122 level-2 (min/max/avg) : 28558 / 85237 / 51050
119 delta size (min/max/avg) : 10649 / 101790 / 10961 123 level-3 (min/max/avg) : 14647 / 41752 / 31093
124 level-4 (min/max/avg) : 18596 / 20760 / 19635
125 delta size (min/max/avg) : 10649 / 104791 / 11005
120 126
121 deltas against prev : 4207 (86.30%) 127 deltas against prev : 4171 (86.50%)
122 where prev = p1 : 4164 (98.98%) 128 where prev = p1 : 4127 (98.95%)
123 where prev = p2 : 0 ( 0.00%) 129 where prev = p2 : 0 ( 0.00%)
124 other : 43 ( 1.02%) 130 other : 44 ( 1.05%)
125 deltas against p1 : 653 (13.39%) 131 deltas against p1 : 633 (13.13%)
126 deltas against p2 : 15 ( 0.31%) 132 deltas against p2 : 18 ( 0.37%)
127 deltas against other : 0 ( 0.00%) 133 deltas against other : 0 ( 0.00%)