github.com/cockroachdb/pebble@v1.1.1-0.20240513155919-3622ade60459/testdata/manual_compaction_file_boundaries_delsized (about)

     1  # Test the file-size grandparent boundary alignment heuristic. This test sets up
     2  # L3 with a file at each of 'a', 'b', ..., 'z'. It also creates a single file in
     3  # L2 spanning a-z. Then, it commits, flushes and compacts into L1 keys 'a@1',
     4  # 'aa@1', 'ab@1', ..., 'zz@1'. Finally, it tests compacting L1 into L2.
     5  #
     6  # With L3 as the grandparent level, the alignment heuristic should attempt to
     7  # align the output files with grandparent's boundaries. Each output file should
     8  # have a key range formed by the prefix of a single letter.
     9  
    10  define target-file-sizes=(5000, 5000, 5000, 5000)
    11  L2
    12    a.SET.101:<rand-bytes=1000>
    13    z.SET.102:<rand-bytes=1000>
    14  L3
    15    a.SET.001:<rand-bytes=10000>
    16  L3
    17    b.SET.002:<rand-bytes=10000>
    18  L3
    19    c.SET.003:<rand-bytes=10000>
    20  L3
    21    d.SET.004:<rand-bytes=10000>
    22  L3
    23    e.SET.005:<rand-bytes=10000>
    24  L3
    25    f.SET.006:<rand-bytes=10000>
    26  L3
    27    g.SET.007:<rand-bytes=10000>
    28  L3
    29    h.SET.008:<rand-bytes=10000>
    30  L3
    31    i.SET.009:<rand-bytes=10000>
    32  L3
    33    j.SET.010:<rand-bytes=10000>
    34  L3
    35    k.SET.011:<rand-bytes=10000>
    36  L3
    37    l.SET.012:<rand-bytes=10000>
    38  L3
    39    m.SET.013:<rand-bytes=10000>
    40  L3
    41    n.SET.014:<rand-bytes=10000>
    42  L3
    43    o.SET.015:<rand-bytes=10000>
    44  L3
    45    p.SET.016:<rand-bytes=10000>
    46  L3
    47    q.SET.017:<rand-bytes=10000>
    48  L3
    49    r.SET.018:<rand-bytes=10000>
    50  L3
    51    s.SET.019:<rand-bytes=10000>
    52  L3
    53    t.SET.020:<rand-bytes=10000>
    54  L3
    55    u.SET.021:<rand-bytes=10000>
    56  L3
    57    v.SET.022:<rand-bytes=10000>
    58  L3
    59    w.SET.023:<rand-bytes=10000>
    60  L3
    61    x.SET.024:<rand-bytes=10000>
    62  L3
    63    y.SET.025:<rand-bytes=10000>
    64  L3
    65    z.SET.026:<rand-bytes=10000>
    66  ----
    67  2:
    68    000004:[a#101,SET-z#102,SET]
    69  3:
    70    000005:[a#1,SET-a#1,SET]
    71    000006:[b#2,SET-b#2,SET]
    72    000007:[c#3,SET-c#3,SET]
    73    000008:[d#4,SET-d#4,SET]
    74    000009:[e#5,SET-e#5,SET]
    75    000010:[f#6,SET-f#6,SET]
    76    000011:[g#7,SET-g#7,SET]
    77    000012:[h#8,SET-h#8,SET]
    78    000013:[i#9,SET-i#9,SET]
    79    000014:[j#10,SET-j#10,SET]
    80    000015:[k#11,SET-k#11,SET]
    81    000016:[l#12,SET-l#12,SET]
    82    000017:[m#13,SET-m#13,SET]
    83    000018:[n#14,SET-n#14,SET]
    84    000019:[o#15,SET-o#15,SET]
    85    000020:[p#16,SET-p#16,SET]
    86    000021:[q#17,SET-q#17,SET]
    87    000022:[r#18,SET-r#18,SET]
    88    000023:[s#19,SET-s#19,SET]
    89    000024:[t#20,SET-t#20,SET]
    90    000025:[u#21,SET-u#21,SET]
    91    000026:[v#22,SET-v#22,SET]
    92    000027:[w#23,SET-w#23,SET]
    93    000028:[x#24,SET-x#24,SET]
    94    000029:[y#25,SET-y#25,SET]
    95    000030:[z#26,SET-z#26,SET]
    96  
    97  populate keylen=2 vallen=200 timestamps=(1)
    98  ----
    99  wrote 702 keys
   100  
   101  flush
   102  ----
   103  0.0:
   104    000033:[a@1#103,SET-av@1#125,SET]
   105    000034:[aw@1#126,SET-br@1#148,SET]
   106    000035:[bs@1#149,SET-cn@1#171,SET]
   107    000036:[co@1#172,SET-dj@1#194,SET]
   108    000037:[dk@1#195,SET-ef@1#217,SET]
   109    000038:[eg@1#218,SET-fb@1#240,SET]
   110    000039:[fc@1#241,SET-fy@1#263,SET]
   111    000040:[fz@1#264,SET-gu@1#286,SET]
   112    000041:[gv@1#287,SET-hq@1#309,SET]
   113    000042:[hr@1#310,SET-im@1#332,SET]
   114    000043:[in@1#333,SET-ji@1#355,SET]
   115    000044:[jj@1#356,SET-ke@1#378,SET]
   116    000045:[kf@1#379,SET-la@1#401,SET]
   117    000046:[lb@1#402,SET-lx@1#424,SET]
   118    000047:[ly@1#425,SET-mt@1#447,SET]
   119    000048:[mu@1#448,SET-np@1#470,SET]
   120    000049:[nq@1#471,SET-ol@1#493,SET]
   121    000050:[om@1#494,SET-ph@1#516,SET]
   122    000051:[pi@1#517,SET-qd@1#539,SET]
   123    000052:[qe@1#540,SET-r@1#562,SET]
   124    000053:[ra@1#563,SET-rw@1#585,SET]
   125    000054:[rx@1#586,SET-ss@1#608,SET]
   126    000055:[st@1#609,SET-to@1#631,SET]
   127    000056:[tp@1#632,SET-uk@1#654,SET]
   128    000057:[ul@1#655,SET-vg@1#677,SET]
   129    000058:[vh@1#678,SET-wc@1#700,SET]
   130    000059:[wd@1#701,SET-wz@1#723,SET]
   131    000060:[x@1#724,SET-xv@1#746,SET]
   132    000061:[xw@1#747,SET-yr@1#769,SET]
   133    000062:[ys@1#770,SET-zn@1#792,SET]
   134    000063:[zo@1#793,SET-zz@1#804,SET]
   135  2:
   136    000004:[a#101,SET-z#102,SET]
   137  3:
   138    000005:[a#1,SET-a#1,SET]
   139    000006:[b#2,SET-b#2,SET]
   140    000007:[c#3,SET-c#3,SET]
   141    000008:[d#4,SET-d#4,SET]
   142    000009:[e#5,SET-e#5,SET]
   143    000010:[f#6,SET-f#6,SET]
   144    000011:[g#7,SET-g#7,SET]
   145    000012:[h#8,SET-h#8,SET]
   146    000013:[i#9,SET-i#9,SET]
   147    000014:[j#10,SET-j#10,SET]
   148    000015:[k#11,SET-k#11,SET]
   149    000016:[l#12,SET-l#12,SET]
   150    000017:[m#13,SET-m#13,SET]
   151    000018:[n#14,SET-n#14,SET]
   152    000019:[o#15,SET-o#15,SET]
   153    000020:[p#16,SET-p#16,SET]
   154    000021:[q#17,SET-q#17,SET]
   155    000022:[r#18,SET-r#18,SET]
   156    000023:[s#19,SET-s#19,SET]
   157    000024:[t#20,SET-t#20,SET]
   158    000025:[u#21,SET-u#21,SET]
   159    000026:[v#22,SET-v#22,SET]
   160    000027:[w#23,SET-w#23,SET]
   161    000028:[x#24,SET-x#24,SET]
   162    000029:[y#25,SET-y#25,SET]
   163    000030:[z#26,SET-z#26,SET]
   164  
   165  compact a-zz L0
   166  ----
   167  1:
   168    000064:[a@1#103,SET-av@1#125,SET]
   169    000065:[aw@1#126,SET-br@1#148,SET]
   170    000066:[bs@1#149,SET-cn@1#171,SET]
   171    000067:[co@1#172,SET-dj@1#194,SET]
   172    000068:[dk@1#195,SET-ef@1#217,SET]
   173    000069:[eg@1#218,SET-fb@1#240,SET]
   174    000070:[fc@1#241,SET-fy@1#263,SET]
   175    000071:[fz@1#264,SET-gu@1#286,SET]
   176    000072:[gv@1#287,SET-hq@1#309,SET]
   177    000073:[hr@1#310,SET-im@1#332,SET]
   178    000074:[in@1#333,SET-ji@1#355,SET]
   179    000075:[jj@1#356,SET-ke@1#378,SET]
   180    000076:[kf@1#379,SET-la@1#401,SET]
   181    000077:[lb@1#402,SET-lx@1#424,SET]
   182    000078:[ly@1#425,SET-mt@1#447,SET]
   183    000079:[mu@1#448,SET-np@1#470,SET]
   184    000080:[nq@1#471,SET-ol@1#493,SET]
   185    000081:[om@1#494,SET-ph@1#516,SET]
   186    000082:[pi@1#517,SET-qd@1#539,SET]
   187    000083:[qe@1#540,SET-r@1#562,SET]
   188    000084:[ra@1#563,SET-rw@1#585,SET]
   189    000085:[rx@1#586,SET-ss@1#608,SET]
   190    000086:[st@1#609,SET-to@1#631,SET]
   191    000087:[tp@1#632,SET-uk@1#654,SET]
   192    000088:[ul@1#655,SET-vg@1#677,SET]
   193    000089:[vh@1#678,SET-wc@1#700,SET]
   194    000090:[wd@1#701,SET-wz@1#723,SET]
   195    000091:[x@1#724,SET-xv@1#746,SET]
   196    000092:[xw@1#747,SET-yr@1#769,SET]
   197    000093:[ys@1#770,SET-zn@1#792,SET]
   198    000094:[zo@1#793,SET-zz@1#804,SET]
   199  2:
   200    000004:[a#101,SET-z#102,SET]
   201  3:
   202    000005:[a#1,SET-a#1,SET]
   203    000006:[b#2,SET-b#2,SET]
   204    000007:[c#3,SET-c#3,SET]
   205    000008:[d#4,SET-d#4,SET]
   206    000009:[e#5,SET-e#5,SET]
   207    000010:[f#6,SET-f#6,SET]
   208    000011:[g#7,SET-g#7,SET]
   209    000012:[h#8,SET-h#8,SET]
   210    000013:[i#9,SET-i#9,SET]
   211    000014:[j#10,SET-j#10,SET]
   212    000015:[k#11,SET-k#11,SET]
   213    000016:[l#12,SET-l#12,SET]
   214    000017:[m#13,SET-m#13,SET]
   215    000018:[n#14,SET-n#14,SET]
   216    000019:[o#15,SET-o#15,SET]
   217    000020:[p#16,SET-p#16,SET]
   218    000021:[q#17,SET-q#17,SET]
   219    000022:[r#18,SET-r#18,SET]
   220    000023:[s#19,SET-s#19,SET]
   221    000024:[t#20,SET-t#20,SET]
   222    000025:[u#21,SET-u#21,SET]
   223    000026:[v#22,SET-v#22,SET]
   224    000027:[w#23,SET-w#23,SET]
   225    000028:[x#24,SET-x#24,SET]
   226    000029:[y#25,SET-y#25,SET]
   227    000030:[z#26,SET-z#26,SET]
   228  
   229  # Perform the actual test. Compacting L1 into L2 should use L3's boundaries to
   230  # inform compaction output splitting.
   231  #
   232  compact a-zz L1
   233  ----
   234  2:
   235    000095:[a#101,SET-az@1#129,SET]
   236    000096:[b@1#130,SET-bz@1#156,SET]
   237    000097:[c@1#157,SET-cz@1#183,SET]
   238    000098:[d@1#184,SET-dz@1#210,SET]
   239    000099:[e@1#211,SET-ez@1#237,SET]
   240    000100:[f@1#238,SET-fz@1#264,SET]
   241    000101:[g@1#265,SET-gz@1#291,SET]
   242    000102:[h@1#292,SET-hz@1#318,SET]
   243    000103:[i@1#319,SET-iz@1#345,SET]
   244    000104:[j@1#346,SET-jz@1#372,SET]
   245    000105:[k@1#373,SET-kz@1#399,SET]
   246    000106:[l@1#400,SET-lz@1#426,SET]
   247    000107:[m@1#427,SET-mz@1#453,SET]
   248    000108:[n@1#454,SET-nz@1#480,SET]
   249    000109:[o@1#481,SET-oz@1#507,SET]
   250    000110:[p@1#508,SET-pz@1#534,SET]
   251    000111:[q@1#535,SET-qz@1#561,SET]
   252    000112:[r@1#562,SET-rz@1#588,SET]
   253    000113:[s@1#589,SET-sz@1#615,SET]
   254    000114:[t@1#616,SET-tz@1#642,SET]
   255    000115:[u@1#643,SET-uz@1#669,SET]
   256    000116:[v@1#670,SET-vz@1#696,SET]
   257    000117:[w@1#697,SET-wz@1#723,SET]
   258    000118:[x@1#724,SET-xz@1#750,SET]
   259    000119:[y@1#751,SET-yz@1#777,SET]
   260    000120:[z#102,SET-zr@1#796,SET]
   261    000121:[zs@1#797,SET-zz@1#804,SET]
   262  3:
   263    000005:[a#1,SET-a#1,SET]
   264    000006:[b#2,SET-b#2,SET]
   265    000007:[c#3,SET-c#3,SET]
   266    000008:[d#4,SET-d#4,SET]
   267    000009:[e#5,SET-e#5,SET]
   268    000010:[f#6,SET-f#6,SET]
   269    000011:[g#7,SET-g#7,SET]
   270    000012:[h#8,SET-h#8,SET]
   271    000013:[i#9,SET-i#9,SET]
   272    000014:[j#10,SET-j#10,SET]
   273    000015:[k#11,SET-k#11,SET]
   274    000016:[l#12,SET-l#12,SET]
   275    000017:[m#13,SET-m#13,SET]
   276    000018:[n#14,SET-n#14,SET]
   277    000019:[o#15,SET-o#15,SET]
   278    000020:[p#16,SET-p#16,SET]
   279    000021:[q#17,SET-q#17,SET]
   280    000022:[r#18,SET-r#18,SET]
   281    000023:[s#19,SET-s#19,SET]
   282    000024:[t#20,SET-t#20,SET]
   283    000025:[u#21,SET-u#21,SET]
   284    000026:[v#22,SET-v#22,SET]
   285    000027:[w#23,SET-w#23,SET]
   286    000028:[x#24,SET-x#24,SET]
   287    000029:[y#25,SET-y#25,SET]
   288    000030:[z#26,SET-z#26,SET]
   289  
   290  file-sizes
   291  ----
   292  L2:
   293    000095:[a#101,1-az@1#129,1]: 7528 bytes (7.4KB)
   294    000096:[b@1#130,1-bz@1#156,1]: 6520 bytes (6.4KB)
   295    000097:[c@1#157,1-cz@1#183,1]: 6520 bytes (6.4KB)
   296    000098:[d@1#184,1-dz@1#210,1]: 6520 bytes (6.4KB)
   297    000099:[e@1#211,1-ez@1#237,1]: 6520 bytes (6.4KB)
   298    000100:[f@1#238,1-fz@1#264,1]: 6520 bytes (6.4KB)
   299    000101:[g@1#265,1-gz@1#291,1]: 6520 bytes (6.4KB)
   300    000102:[h@1#292,1-hz@1#318,1]: 6520 bytes (6.4KB)
   301    000103:[i@1#319,1-iz@1#345,1]: 6520 bytes (6.4KB)
   302    000104:[j@1#346,1-jz@1#372,1]: 6520 bytes (6.4KB)
   303    000105:[k@1#373,1-kz@1#399,1]: 6520 bytes (6.4KB)
   304    000106:[l@1#400,1-lz@1#426,1]: 6520 bytes (6.4KB)
   305    000107:[m@1#427,1-mz@1#453,1]: 6520 bytes (6.4KB)
   306    000108:[n@1#454,1-nz@1#480,1]: 6520 bytes (6.4KB)
   307    000109:[o@1#481,1-oz@1#507,1]: 6520 bytes (6.4KB)
   308    000110:[p@1#508,1-pz@1#534,1]: 6520 bytes (6.4KB)
   309    000111:[q@1#535,1-qz@1#561,1]: 6519 bytes (6.4KB)
   310    000112:[r@1#562,1-rz@1#588,1]: 6520 bytes (6.4KB)
   311    000113:[s@1#589,1-sz@1#615,1]: 6520 bytes (6.4KB)
   312    000114:[t@1#616,1-tz@1#642,1]: 6520 bytes (6.4KB)
   313    000115:[u@1#643,1-uz@1#669,1]: 6520 bytes (6.4KB)
   314    000116:[v@1#670,1-vz@1#696,1]: 6520 bytes (6.4KB)
   315    000117:[w@1#697,1-wz@1#723,1]: 6520 bytes (6.4KB)
   316    000118:[x@1#724,1-xz@1#750,1]: 6520 bytes (6.4KB)
   317    000119:[y@1#751,1-yz@1#777,1]: 6520 bytes (6.4KB)
   318    000120:[z#102,1-zr@1#796,1]: 5800 bytes (5.7KB)
   319    000121:[zs@1#797,1-zz@1#804,1]: 2382 bytes (2.3KB)
   320  L3:
   321    000005:[a#1,1-a#1,1]: 10667 bytes (10KB)
   322    000006:[b#2,1-b#2,1]: 10667 bytes (10KB)
   323    000007:[c#3,1-c#3,1]: 10667 bytes (10KB)
   324    000008:[d#4,1-d#4,1]: 10667 bytes (10KB)
   325    000009:[e#5,1-e#5,1]: 10667 bytes (10KB)
   326    000010:[f#6,1-f#6,1]: 10667 bytes (10KB)
   327    000011:[g#7,1-g#7,1]: 10667 bytes (10KB)
   328    000012:[h#8,1-h#8,1]: 10667 bytes (10KB)
   329    000013:[i#9,1-i#9,1]: 10667 bytes (10KB)
   330    000014:[j#10,1-j#10,1]: 10667 bytes (10KB)
   331    000015:[k#11,1-k#11,1]: 10667 bytes (10KB)
   332    000016:[l#12,1-l#12,1]: 10667 bytes (10KB)
   333    000017:[m#13,1-m#13,1]: 10667 bytes (10KB)
   334    000018:[n#14,1-n#14,1]: 10667 bytes (10KB)
   335    000019:[o#15,1-o#15,1]: 10667 bytes (10KB)
   336    000020:[p#16,1-p#16,1]: 10667 bytes (10KB)
   337    000021:[q#17,1-q#17,1]: 10667 bytes (10KB)
   338    000022:[r#18,1-r#18,1]: 10667 bytes (10KB)
   339    000023:[s#19,1-s#19,1]: 10667 bytes (10KB)
   340    000024:[t#20,1-t#20,1]: 10667 bytes (10KB)
   341    000025:[u#21,1-u#21,1]: 10667 bytes (10KB)
   342    000026:[v#22,1-v#22,1]: 10667 bytes (10KB)
   343    000027:[w#23,1-w#23,1]: 10667 bytes (10KB)
   344    000028:[x#24,1-x#24,1]: 10667 bytes (10KB)
   345    000029:[y#25,1-y#25,1]: 10667 bytes (10KB)
   346    000030:[z#26,1-z#26,1]: 10667 bytes (10KB)
   347  
   348  # Test a scenario where there exists a grandparent file (in L3), but the L1->L2
   349  # compaction doesn't reach it until late in the compaction. The output file
   350  # should be split at 2x the target file size (~10K), despite not being aligned
   351  # with a grandparent.
   352  #
   353  # Additionally, when the compaction does reach the grandparent's start bound,
   354  # the compaction should NOT split the output if the current output is less than
   355  # 0.5x the target file size (~2.5K).
   356  #
   357  # Lastly, once past the final grandparent, the compaction should optimize for
   358  # cutting as close to file size as possible, resulting in an output file ~5K.
   359  
   360  define target-file-sizes=(5000, 5000, 5000, 5000)
   361  L1
   362    a.SET.201:<rand-bytes=1000>
   363    b.SET.202:<rand-bytes=1000>
   364    c.SET.203:<rand-bytes=1000>
   365    d.SET.204:<rand-bytes=1000>
   366    e.SET.205:<rand-bytes=1000>
   367    f.SET.206:<rand-bytes=1000>
   368    g.SET.207:<rand-bytes=1000>
   369    h.SET.208:<rand-bytes=1000>
   370    i.SET.209:<rand-bytes=1000>
   371    j.SET.210:<rand-bytes=1000>
   372    k.SET.211:<rand-bytes=1000>
   373    l.SET.212:<rand-bytes=1000>
   374    m.SET.213:<rand-bytes=1000>
   375    n.SET.214:<rand-bytes=1000>
   376    o.SET.215:<rand-bytes=1000>
   377  L2
   378    a.SET.101:<rand-bytes=10>
   379    z.SET.102:<rand-bytes=10>
   380  L3
   381    m.SET.001:<rand-bytes=10000>
   382  ----
   383  1:
   384    000004:[a#201,SET-o#215,SET]
   385  2:
   386    000005:[a#101,SET-z#102,SET]
   387  3:
   388    000006:[m#1,SET-m#1,SET]
   389  
   390  compact a-zz L1
   391  ----
   392  2:
   393    000007:[a#201,SET-j#210,SET]
   394    000008:[k#211,SET-o#215,SET]
   395    000009:[z#102,SET-z#102,SET]
   396  3:
   397    000006:[m#1,SET-m#1,SET]
   398  
   399  file-sizes
   400  ----
   401  L2:
   402    000007:[a#201,1-j#210,1]: 10849 bytes (11KB)
   403    000008:[k#211,1-o#215,1]: 5756 bytes (5.6KB)
   404    000009:[z#102,1-z#102,1]: 672 bytes (672B)
   405  L3:
   406    000006:[m#1,1-m#1,1]: 10667 bytes (10KB)
   407  
   408  # Test the file-size splitter's adaptive tolerance for early-splitting at a
   409  # grandparent boundary. The L1->L2 compaction has many opportunities to split at
   410  # a grandparent boundary at file sizes ≥ 2.5K. Because it's seen more than 8
   411  # grandparent boundaries, waits until file size is ≥ 90% of the target file size
   412  # (eg, ~4.5K).
   413  
   414  define target-file-sizes=(5000, 5000, 5000, 5000)
   415  L1
   416    a.SET.201:<rand-bytes=1000>
   417    b.SET.202:<rand-bytes=1000>
   418    c.SET.203:<rand-bytes=1000>
   419    d.SET.204:<rand-bytes=1000>
   420    e.SET.205:<rand-bytes=1000>
   421    f.SET.206:<rand-bytes=1000>
   422    g.SET.207:<rand-bytes=1000>
   423    h.SET.208:<rand-bytes=1000>
   424    i.SET.209:<rand-bytes=1000>
   425    j.SET.210:<rand-bytes=1000>
   426    k.SET.211:<rand-bytes=1000>
   427    l.SET.212:<rand-bytes=1000>
   428    m.SET.213:<rand-bytes=1000>
   429    n.SET.214:<rand-bytes=1000>
   430    o.SET.215:<rand-bytes=1000>
   431  L2
   432    a.SET.101:<rand-bytes=10>
   433    z.SET.102:<rand-bytes=10>
   434  L3
   435    a.SET.001:<rand-bytes=1000>
   436  L3
   437    ab.SET.002:<rand-bytes=1000>
   438  L3
   439    ac.SET.003:<rand-bytes=1000>
   440  L3
   441    ad.SET.004:<rand-bytes=1000>
   442  L3
   443    ae.SET.005:<rand-bytes=1000>
   444  L3
   445    af.SET.006:<rand-bytes=1000>
   446  L3
   447    ag.SET.007:<rand-bytes=1000>
   448  L3
   449    ah.SET.008:<rand-bytes=1000>
   450  L3
   451    c.SET.009:<rand-bytes=1000>
   452  L3
   453    d.SET.010:<rand-bytes=1000>
   454  L3
   455    e.SET.011:<rand-bytes=1000>
   456  L3
   457    f.SET.012:<rand-bytes=1000>
   458  L3
   459    m.SET.013:<rand-bytes=1000>
   460  ----
   461  1:
   462    000004:[a#201,SET-o#215,SET]
   463  2:
   464    000005:[a#101,SET-z#102,SET]
   465  3:
   466    000006:[a#1,SET-a#1,SET]
   467    000007:[ab#2,SET-ab#2,SET]
   468    000008:[ac#3,SET-ac#3,SET]
   469    000009:[ad#4,SET-ad#4,SET]
   470    000010:[ae#5,SET-ae#5,SET]
   471    000011:[af#6,SET-af#6,SET]
   472    000012:[ag#7,SET-ag#7,SET]
   473    000013:[ah#8,SET-ah#8,SET]
   474    000014:[c#9,SET-c#9,SET]
   475    000015:[d#10,SET-d#10,SET]
   476    000016:[e#11,SET-e#11,SET]
   477    000017:[f#12,SET-f#12,SET]
   478    000018:[m#13,SET-m#13,SET]
   479  
   480  compact a-zz L1
   481  ----
   482  2:
   483    000019:[a#201,SET-e#205,SET]
   484    000020:[f#206,SET-l#212,SET]
   485    000021:[m#213,SET-z#102,SET]
   486  3:
   487    000006:[a#1,SET-a#1,SET]
   488    000007:[ab#2,SET-ab#2,SET]
   489    000008:[ac#3,SET-ac#3,SET]
   490    000009:[ad#4,SET-ad#4,SET]
   491    000010:[ae#5,SET-ae#5,SET]
   492    000011:[af#6,SET-af#6,SET]
   493    000012:[ag#7,SET-ag#7,SET]
   494    000013:[ah#8,SET-ah#8,SET]
   495    000014:[c#9,SET-c#9,SET]
   496    000015:[d#10,SET-d#10,SET]
   497    000016:[e#11,SET-e#11,SET]
   498    000017:[f#12,SET-f#12,SET]
   499    000018:[m#13,SET-m#13,SET]
   500  
   501  file-sizes
   502  ----
   503  L2:
   504    000019:[a#201,1-e#205,1]: 5756 bytes (5.6KB)
   505    000020:[f#206,1-l#212,1]: 7784 bytes (7.6KB)
   506    000021:[m#213,1-z#102,1]: 3718 bytes (3.6KB)
   507  L3:
   508    000006:[a#1,1-a#1,1]: 1667 bytes (1.6KB)
   509    000007:[ab#2,1-ab#2,1]: 1668 bytes (1.6KB)
   510    000008:[ac#3,1-ac#3,1]: 1668 bytes (1.6KB)
   511    000009:[ad#4,1-ad#4,1]: 1668 bytes (1.6KB)
   512    000010:[ae#5,1-ae#5,1]: 1668 bytes (1.6KB)
   513    000011:[af#6,1-af#6,1]: 1668 bytes (1.6KB)
   514    000012:[ag#7,1-ag#7,1]: 1668 bytes (1.6KB)
   515    000013:[ah#8,1-ah#8,1]: 1668 bytes (1.6KB)
   516    000014:[c#9,1-c#9,1]: 1667 bytes (1.6KB)
   517    000015:[d#10,1-d#10,1]: 1667 bytes (1.6KB)
   518    000016:[e#11,1-e#11,1]: 1667 bytes (1.6KB)
   519    000017:[f#12,1-f#12,1]: 1667 bytes (1.6KB)
   520    000018:[m#13,1-m#13,1]: 1667 bytes (1.6KB)