github.com/cockroachdb/pebble@v0.0.0-20231214172447-ab4952c5f87b/testdata/checkpoint (about)

     1  open db
     2  ----
     3  mkdir-all: db 0755
     4  open-dir: db
     5  lock: db/LOCK
     6  open-dir: db
     7  open-dir: db
     8  open: db/CURRENT
     9  create: db/MANIFEST-000001
    10  sync: db/MANIFEST-000001
    11  remove: db/temporary.000001.dbtmp
    12  create: db/temporary.000001.dbtmp
    13  sync: db/temporary.000001.dbtmp
    14  close: db/temporary.000001.dbtmp
    15  rename: db/temporary.000001.dbtmp -> db/CURRENT
    16  sync: db
    17  open-dir: db
    18  sync: db/MANIFEST-000001
    19  create: db/000002.log
    20  sync: db
    21  create: db/marker.manifest.000001.MANIFEST-000001
    22  close: db/marker.manifest.000001.MANIFEST-000001
    23  sync: db
    24  create: db/marker.format-version.000001.002
    25  close: db/marker.format-version.000001.002
    26  sync: db
    27  remove: db/temporary.000000.dbtmp
    28  create: db/temporary.000000.dbtmp
    29  sync: db/temporary.000000.dbtmp
    30  close: db/temporary.000000.dbtmp
    31  rename: db/temporary.000000.dbtmp -> db/CURRENT
    32  create: db/marker.format-version.000002.003
    33  close: db/marker.format-version.000002.003
    34  remove: db/marker.format-version.000001.002
    35  sync: db
    36  create: db/marker.format-version.000003.004
    37  close: db/marker.format-version.000003.004
    38  remove: db/marker.format-version.000002.003
    39  sync: db
    40  create: db/marker.format-version.000004.005
    41  close: db/marker.format-version.000004.005
    42  remove: db/marker.format-version.000003.004
    43  sync: db
    44  create: db/marker.format-version.000005.006
    45  close: db/marker.format-version.000005.006
    46  remove: db/marker.format-version.000004.005
    47  sync: db
    48  create: db/marker.format-version.000006.007
    49  close: db/marker.format-version.000006.007
    50  remove: db/marker.format-version.000005.006
    51  sync: db
    52  create: db/marker.format-version.000007.008
    53  close: db/marker.format-version.000007.008
    54  remove: db/marker.format-version.000006.007
    55  sync: db
    56  create: db/marker.format-version.000008.009
    57  close: db/marker.format-version.000008.009
    58  remove: db/marker.format-version.000007.008
    59  sync: db
    60  create: db/marker.format-version.000009.010
    61  close: db/marker.format-version.000009.010
    62  remove: db/marker.format-version.000008.009
    63  sync: db
    64  create: db/marker.format-version.000010.011
    65  close: db/marker.format-version.000010.011
    66  remove: db/marker.format-version.000009.010
    67  sync: db
    68  create: db/marker.format-version.000011.012
    69  close: db/marker.format-version.000011.012
    70  remove: db/marker.format-version.000010.011
    71  sync: db
    72  create: db/marker.format-version.000012.013
    73  close: db/marker.format-version.000012.013
    74  remove: db/marker.format-version.000011.012
    75  sync: db
    76  create: db/marker.format-version.000013.014
    77  close: db/marker.format-version.000013.014
    78  remove: db/marker.format-version.000012.013
    79  sync: db
    80  create: db/marker.format-version.000014.015
    81  close: db/marker.format-version.000014.015
    82  remove: db/marker.format-version.000013.014
    83  sync: db
    84  create: db/marker.format-version.000015.016
    85  close: db/marker.format-version.000015.016
    86  remove: db/marker.format-version.000014.015
    87  sync: db
    88  create: db/temporary.000003.dbtmp
    89  sync: db/temporary.000003.dbtmp
    90  close: db/temporary.000003.dbtmp
    91  rename: db/temporary.000003.dbtmp -> db/OPTIONS-000003
    92  sync: db
    93  
    94  batch db
    95  set a 1
    96  set b 2
    97  set c 3
    98  ----
    99  sync-data: db/000002.log
   100  
   101  flush db
   102  ----
   103  sync-data: db/000002.log
   104  close: db/000002.log
   105  create: db/000004.log
   106  sync: db
   107  create: db/000005.sst
   108  sync-data: db/000005.sst
   109  close: db/000005.sst
   110  sync: db
   111  sync: db/MANIFEST-000001
   112  
   113  batch db
   114  set b 5
   115  set d 7
   116  set e 8
   117  ----
   118  sync-data: db/000004.log
   119  
   120  flush db
   121  ----
   122  sync-data: db/000004.log
   123  close: db/000004.log
   124  reuseForWrite: db/000002.log -> db/000006.log
   125  sync: db
   126  create: db/000007.sst
   127  sync-data: db/000007.sst
   128  close: db/000007.sst
   129  sync: db
   130  sync: db/MANIFEST-000001
   131  
   132  batch db
   133  set f 9
   134  set g 10
   135  ----
   136  sync-data: db/000006.log
   137  
   138  checkpoint db checkpoints/checkpoint1
   139  ----
   140  mkdir-all: checkpoints/checkpoint1 0755
   141  open-dir: checkpoints
   142  sync: checkpoints
   143  close: checkpoints
   144  open-dir: 
   145  sync: 
   146  close: 
   147  open-dir: checkpoints/checkpoint1
   148  link: db/OPTIONS-000003 -> checkpoints/checkpoint1/OPTIONS-000003
   149  open-dir: checkpoints/checkpoint1
   150  create: checkpoints/checkpoint1/marker.format-version.000001.016
   151  sync-data: checkpoints/checkpoint1/marker.format-version.000001.016
   152  close: checkpoints/checkpoint1/marker.format-version.000001.016
   153  sync: checkpoints/checkpoint1
   154  close: checkpoints/checkpoint1
   155  link: db/000005.sst -> checkpoints/checkpoint1/000005.sst
   156  link: db/000007.sst -> checkpoints/checkpoint1/000007.sst
   157  open: db/MANIFEST-000001
   158  create: checkpoints/checkpoint1/MANIFEST-000001
   159  sync-data: checkpoints/checkpoint1/MANIFEST-000001
   160  close: checkpoints/checkpoint1/MANIFEST-000001
   161  close: db/MANIFEST-000001
   162  open-dir: checkpoints/checkpoint1
   163  create: checkpoints/checkpoint1/marker.manifest.000001.MANIFEST-000001
   164  sync-data: checkpoints/checkpoint1/marker.manifest.000001.MANIFEST-000001
   165  close: checkpoints/checkpoint1/marker.manifest.000001.MANIFEST-000001
   166  sync: checkpoints/checkpoint1
   167  close: checkpoints/checkpoint1
   168  open: db/000006.log
   169  create: checkpoints/checkpoint1/000006.log
   170  sync-data: checkpoints/checkpoint1/000006.log
   171  close: checkpoints/checkpoint1/000006.log
   172  close: db/000006.log
   173  sync: checkpoints/checkpoint1
   174  close: checkpoints/checkpoint1
   175  
   176  checkpoint db checkpoints/checkpoint1
   177  ----
   178  checkpoint checkpoints/checkpoint1: file already exists
   179  
   180  # Create a checkpoint that omits SSTs that don't overlap with the [d - f) range.
   181  checkpoint db checkpoints/checkpoint2 restrict=(d-f)
   182  ----
   183  mkdir-all: checkpoints/checkpoint2 0755
   184  open-dir: checkpoints
   185  sync: checkpoints
   186  close: checkpoints
   187  open-dir: checkpoints/checkpoint2
   188  link: db/OPTIONS-000003 -> checkpoints/checkpoint2/OPTIONS-000003
   189  open-dir: checkpoints/checkpoint2
   190  create: checkpoints/checkpoint2/marker.format-version.000001.016
   191  sync-data: checkpoints/checkpoint2/marker.format-version.000001.016
   192  close: checkpoints/checkpoint2/marker.format-version.000001.016
   193  sync: checkpoints/checkpoint2
   194  close: checkpoints/checkpoint2
   195  link: db/000007.sst -> checkpoints/checkpoint2/000007.sst
   196  open: db/MANIFEST-000001
   197  create: checkpoints/checkpoint2/MANIFEST-000001
   198  sync-data: checkpoints/checkpoint2/MANIFEST-000001
   199  close: checkpoints/checkpoint2/MANIFEST-000001
   200  close: db/MANIFEST-000001
   201  open-dir: checkpoints/checkpoint2
   202  create: checkpoints/checkpoint2/marker.manifest.000001.MANIFEST-000001
   203  sync-data: checkpoints/checkpoint2/marker.manifest.000001.MANIFEST-000001
   204  close: checkpoints/checkpoint2/marker.manifest.000001.MANIFEST-000001
   205  sync: checkpoints/checkpoint2
   206  close: checkpoints/checkpoint2
   207  open: db/000006.log
   208  create: checkpoints/checkpoint2/000006.log
   209  sync-data: checkpoints/checkpoint2/000006.log
   210  close: checkpoints/checkpoint2/000006.log
   211  close: db/000006.log
   212  sync: checkpoints/checkpoint2
   213  close: checkpoints/checkpoint2
   214  
   215  # Create a checkpoint that omits SSTs that don't overlap with [a - e) and [d - f).
   216  checkpoint db checkpoints/checkpoint3 restrict=(a-e, d-f)
   217  ----
   218  mkdir-all: checkpoints/checkpoint3 0755
   219  open-dir: checkpoints
   220  sync: checkpoints
   221  close: checkpoints
   222  open-dir: checkpoints/checkpoint3
   223  link: db/OPTIONS-000003 -> checkpoints/checkpoint3/OPTIONS-000003
   224  open-dir: checkpoints/checkpoint3
   225  create: checkpoints/checkpoint3/marker.format-version.000001.016
   226  sync-data: checkpoints/checkpoint3/marker.format-version.000001.016
   227  close: checkpoints/checkpoint3/marker.format-version.000001.016
   228  sync: checkpoints/checkpoint3
   229  close: checkpoints/checkpoint3
   230  link: db/000005.sst -> checkpoints/checkpoint3/000005.sst
   231  link: db/000007.sst -> checkpoints/checkpoint3/000007.sst
   232  open: db/MANIFEST-000001
   233  create: checkpoints/checkpoint3/MANIFEST-000001
   234  sync-data: checkpoints/checkpoint3/MANIFEST-000001
   235  close: checkpoints/checkpoint3/MANIFEST-000001
   236  close: db/MANIFEST-000001
   237  open-dir: checkpoints/checkpoint3
   238  create: checkpoints/checkpoint3/marker.manifest.000001.MANIFEST-000001
   239  sync-data: checkpoints/checkpoint3/marker.manifest.000001.MANIFEST-000001
   240  close: checkpoints/checkpoint3/marker.manifest.000001.MANIFEST-000001
   241  sync: checkpoints/checkpoint3
   242  close: checkpoints/checkpoint3
   243  open: db/000006.log
   244  create: checkpoints/checkpoint3/000006.log
   245  sync-data: checkpoints/checkpoint3/000006.log
   246  close: checkpoints/checkpoint3/000006.log
   247  close: db/000006.log
   248  sync: checkpoints/checkpoint3
   249  close: checkpoints/checkpoint3
   250  
   251  compact db
   252  ----
   253  sync-data: db/000006.log
   254  close: db/000006.log
   255  reuseForWrite: db/000004.log -> db/000008.log
   256  sync: db
   257  create: db/000009.sst
   258  sync-data: db/000009.sst
   259  close: db/000009.sst
   260  sync: db
   261  sync: db/MANIFEST-000001
   262  open: db/000005.sst
   263  read-at(630, 53): db/000005.sst
   264  read-at(593, 37): db/000005.sst
   265  read-at(74, 519): db/000005.sst
   266  read-at(47, 27): db/000005.sst
   267  open: db/000005.sst
   268  close: db/000005.sst
   269  open: db/000009.sst
   270  read-at(625, 53): db/000009.sst
   271  read-at(588, 37): db/000009.sst
   272  read-at(69, 519): db/000009.sst
   273  read-at(42, 27): db/000009.sst
   274  open: db/000009.sst
   275  close: db/000009.sst
   276  open: db/000007.sst
   277  read-at(630, 53): db/000007.sst
   278  read-at(593, 37): db/000007.sst
   279  read-at(74, 519): db/000007.sst
   280  read-at(47, 27): db/000007.sst
   281  open: db/000007.sst
   282  close: db/000007.sst
   283  open: db/000005.sst
   284  read-at(0, 47): db/000005.sst
   285  open: db/000007.sst
   286  read-at(0, 47): db/000007.sst
   287  create: db/000010.sst
   288  close: db/000005.sst
   289  open: db/000009.sst
   290  read-at(0, 42): db/000009.sst
   291  close: db/000007.sst
   292  close: db/000009.sst
   293  sync-data: db/000010.sst
   294  close: db/000010.sst
   295  sync: db
   296  sync: db/MANIFEST-000001
   297  close: db/000005.sst
   298  close: db/000007.sst
   299  close: db/000009.sst
   300  remove: db/000005.sst
   301  remove: db/000007.sst
   302  remove: db/000009.sst
   303  
   304  batch db
   305  set h 11
   306  ----
   307  sync-data: db/000008.log
   308  
   309  list db
   310  ----
   311  000006.log
   312  000008.log
   313  000010.sst
   314  CURRENT
   315  LOCK
   316  MANIFEST-000001
   317  OPTIONS-000003
   318  marker.format-version.000015.016
   319  marker.manifest.000001.MANIFEST-000001
   320  
   321  list checkpoints/checkpoint1
   322  ----
   323  000005.sst
   324  000006.log
   325  000007.sst
   326  MANIFEST-000001
   327  OPTIONS-000003
   328  marker.format-version.000001.016
   329  marker.manifest.000001.MANIFEST-000001
   330  
   331  open checkpoints/checkpoint1 readonly
   332  ----
   333  open-dir: checkpoints/checkpoint1
   334  lock: checkpoints/checkpoint1/LOCK
   335  open-dir: checkpoints/checkpoint1
   336  open-dir: checkpoints/checkpoint1
   337  open: checkpoints/checkpoint1/MANIFEST-000001
   338  close: checkpoints/checkpoint1/MANIFEST-000001
   339  open-dir: checkpoints/checkpoint1
   340  open: checkpoints/checkpoint1/OPTIONS-000003
   341  close: checkpoints/checkpoint1/OPTIONS-000003
   342  open: checkpoints/checkpoint1/000006.log
   343  close: checkpoints/checkpoint1/000006.log
   344  
   345  scan checkpoints/checkpoint1
   346  ----
   347  open: checkpoints/checkpoint1/000007.sst
   348  read-at(630, 53): checkpoints/checkpoint1/000007.sst
   349  read-at(593, 37): checkpoints/checkpoint1/000007.sst
   350  read-at(74, 519): checkpoints/checkpoint1/000007.sst
   351  read-at(47, 27): checkpoints/checkpoint1/000007.sst
   352  read-at(0, 47): checkpoints/checkpoint1/000007.sst
   353  open: checkpoints/checkpoint1/000005.sst
   354  read-at(630, 53): checkpoints/checkpoint1/000005.sst
   355  read-at(593, 37): checkpoints/checkpoint1/000005.sst
   356  read-at(74, 519): checkpoints/checkpoint1/000005.sst
   357  read-at(47, 27): checkpoints/checkpoint1/000005.sst
   358  read-at(0, 47): checkpoints/checkpoint1/000005.sst
   359  a 1
   360  b 5
   361  c 3
   362  d 7
   363  e 8
   364  f 9
   365  g 10
   366  .
   367  
   368  scan db
   369  ----
   370  open: db/000010.sst
   371  read-at(657, 53): db/000010.sst
   372  read-at(620, 37): db/000010.sst
   373  read-at(101, 519): db/000010.sst
   374  read-at(74, 27): db/000010.sst
   375  read-at(0, 74): db/000010.sst
   376  a 1
   377  b 5
   378  c 3
   379  d 7
   380  e 8
   381  f 9
   382  g 10
   383  h 11
   384  .
   385  
   386  # This checkpoint should only contain the second SST.
   387  list checkpoints/checkpoint2
   388  ----
   389  000006.log
   390  000007.sst
   391  MANIFEST-000001
   392  OPTIONS-000003
   393  marker.format-version.000001.016
   394  marker.manifest.000001.MANIFEST-000001
   395  
   396  open checkpoints/checkpoint2 readonly
   397  ----
   398  open-dir: checkpoints/checkpoint2
   399  lock: checkpoints/checkpoint2/LOCK
   400  open-dir: checkpoints/checkpoint2
   401  open-dir: checkpoints/checkpoint2
   402  open: checkpoints/checkpoint2/MANIFEST-000001
   403  close: checkpoints/checkpoint2/MANIFEST-000001
   404  open-dir: checkpoints/checkpoint2
   405  open: checkpoints/checkpoint2/OPTIONS-000003
   406  close: checkpoints/checkpoint2/OPTIONS-000003
   407  open: checkpoints/checkpoint2/000006.log
   408  close: checkpoints/checkpoint2/000006.log
   409  
   410  scan checkpoints/checkpoint2
   411  ----
   412  open: checkpoints/checkpoint2/000007.sst
   413  read-at(630, 53): checkpoints/checkpoint2/000007.sst
   414  read-at(593, 37): checkpoints/checkpoint2/000007.sst
   415  read-at(74, 519): checkpoints/checkpoint2/000007.sst
   416  read-at(47, 27): checkpoints/checkpoint2/000007.sst
   417  read-at(0, 47): checkpoints/checkpoint2/000007.sst
   418  b 5
   419  d 7
   420  e 8
   421  f 9
   422  g 10
   423  .
   424  
   425  # This checkpoint should contain both SSTs.
   426  list checkpoints/checkpoint3
   427  ----
   428  000005.sst
   429  000006.log
   430  000007.sst
   431  MANIFEST-000001
   432  OPTIONS-000003
   433  marker.format-version.000001.016
   434  marker.manifest.000001.MANIFEST-000001
   435  
   436  open checkpoints/checkpoint3 readonly
   437  ----
   438  open-dir: checkpoints/checkpoint3
   439  lock: checkpoints/checkpoint3/LOCK
   440  open-dir: checkpoints/checkpoint3
   441  open-dir: checkpoints/checkpoint3
   442  open: checkpoints/checkpoint3/MANIFEST-000001
   443  close: checkpoints/checkpoint3/MANIFEST-000001
   444  open-dir: checkpoints/checkpoint3
   445  open: checkpoints/checkpoint3/OPTIONS-000003
   446  close: checkpoints/checkpoint3/OPTIONS-000003
   447  open: checkpoints/checkpoint3/000006.log
   448  close: checkpoints/checkpoint3/000006.log
   449  
   450  scan checkpoints/checkpoint3
   451  ----
   452  open: checkpoints/checkpoint3/000007.sst
   453  read-at(630, 53): checkpoints/checkpoint3/000007.sst
   454  read-at(593, 37): checkpoints/checkpoint3/000007.sst
   455  read-at(74, 519): checkpoints/checkpoint3/000007.sst
   456  read-at(47, 27): checkpoints/checkpoint3/000007.sst
   457  read-at(0, 47): checkpoints/checkpoint3/000007.sst
   458  open: checkpoints/checkpoint3/000005.sst
   459  read-at(630, 53): checkpoints/checkpoint3/000005.sst
   460  read-at(593, 37): checkpoints/checkpoint3/000005.sst
   461  read-at(74, 519): checkpoints/checkpoint3/000005.sst
   462  read-at(47, 27): checkpoints/checkpoint3/000005.sst
   463  read-at(0, 47): checkpoints/checkpoint3/000005.sst
   464  a 1
   465  b 5
   466  c 3
   467  d 7
   468  e 8
   469  f 9
   470  g 10
   471  .
   472  
   473  # Test virtual sstable checkpointing. Virtual sstable checkpointing will remove
   474  # the backing files which won't be required by the checkpoint. Need to make sure
   475  # that the virtual sstables which are present in the checkpoint manifest are
   476  # still readable, and that the backing files not required are deleted.
   477  
   478  lsm db
   479  ----
   480  6:
   481    000010:[a#0,SET-g#0,SET]
   482  
   483  build db ext1 format=pebblev2
   484  set i i
   485  set j j
   486  set k k
   487  ----
   488  
   489  ingest-and-excise db ext1 excise=c-d
   490  ----
   491  
   492  # 12, 13 are virtual sstables.
   493  lsm db
   494  ----
   495  6:
   496    000012:[a#0,SET-b#0,SET]
   497    000013:[d#0,SET-g#0,SET]
   498    000011:[i#19,SET-k#19,SET]
   499  
   500  build db ext2 format=pebblev2
   501  set z z
   502  ----
   503  
   504  ingest-and-excise db ext2 excise=j-k
   505  ----
   506  
   507  # 12, 13, 15, 16 are virtual.
   508  lsm db
   509  ----
   510  6:
   511    000012:[a#0,SET-b#0,SET]
   512    000013:[d#0,SET-g#0,SET]
   513    000015:[i#19,SET-i#19,SET]
   514    000016:[k#19,SET-k#19,SET]
   515    000014:[z#20,SET-z#20,SET]
   516  
   517  # scan db so that it is known what to expect from the checkpoints.
   518  scan db
   519  ----
   520  a 1
   521  b 5
   522  d 7
   523  e 8
   524  f 9
   525  g 10
   526  h 11
   527  i i
   528  k k
   529  open: db/000014.sst
   530  read-at(636, 53): db/000014.sst
   531  read-at(599, 37): db/000014.sst
   532  z z
   533  .
   534  
   535  # Create a basic checkpoint to see if virtual sstables can be read.
   536  checkpoint db checkpoints/checkpoint4
   537  ----
   538  mkdir-all: checkpoints/checkpoint4 0755
   539  open-dir: checkpoints
   540  sync: checkpoints
   541  close: checkpoints
   542  open-dir: checkpoints/checkpoint4
   543  link: db/OPTIONS-000003 -> checkpoints/checkpoint4/OPTIONS-000003
   544  open-dir: checkpoints/checkpoint4
   545  create: checkpoints/checkpoint4/marker.format-version.000001.016
   546  sync-data: checkpoints/checkpoint4/marker.format-version.000001.016
   547  close: checkpoints/checkpoint4/marker.format-version.000001.016
   548  sync: checkpoints/checkpoint4
   549  close: checkpoints/checkpoint4
   550  link: db/000010.sst -> checkpoints/checkpoint4/000010.sst
   551  link: db/000011.sst -> checkpoints/checkpoint4/000011.sst
   552  link: db/000014.sst -> checkpoints/checkpoint4/000014.sst
   553  open: db/MANIFEST-000001
   554  create: checkpoints/checkpoint4/MANIFEST-000001
   555  sync-data: checkpoints/checkpoint4/MANIFEST-000001
   556  close: checkpoints/checkpoint4/MANIFEST-000001
   557  close: db/MANIFEST-000001
   558  open-dir: checkpoints/checkpoint4
   559  create: checkpoints/checkpoint4/marker.manifest.000001.MANIFEST-000001
   560  sync-data: checkpoints/checkpoint4/marker.manifest.000001.MANIFEST-000001
   561  close: checkpoints/checkpoint4/marker.manifest.000001.MANIFEST-000001
   562  sync: checkpoints/checkpoint4
   563  close: checkpoints/checkpoint4
   564  open: db/000008.log
   565  create: checkpoints/checkpoint4/000008.log
   566  sync-data: checkpoints/checkpoint4/000008.log
   567  close: checkpoints/checkpoint4/000008.log
   568  close: db/000008.log
   569  sync: checkpoints/checkpoint4
   570  close: checkpoints/checkpoint4
   571  
   572  open checkpoints/checkpoint4 readonly
   573  ----
   574  open-dir: checkpoints/checkpoint4
   575  lock: checkpoints/checkpoint4/LOCK
   576  open-dir: checkpoints/checkpoint4
   577  open-dir: checkpoints/checkpoint4
   578  open: checkpoints/checkpoint4/MANIFEST-000001
   579  close: checkpoints/checkpoint4/MANIFEST-000001
   580  open-dir: checkpoints/checkpoint4
   581  open: checkpoints/checkpoint4/OPTIONS-000003
   582  close: checkpoints/checkpoint4/OPTIONS-000003
   583  open: checkpoints/checkpoint4/000008.log
   584  close: checkpoints/checkpoint4/000008.log
   585  
   586  scan checkpoints/checkpoint4
   587  ----
   588  open: checkpoints/checkpoint4/000010.sst
   589  read-at(657, 53): checkpoints/checkpoint4/000010.sst
   590  read-at(620, 37): checkpoints/checkpoint4/000010.sst
   591  read-at(101, 519): checkpoints/checkpoint4/000010.sst
   592  read-at(74, 27): checkpoints/checkpoint4/000010.sst
   593  read-at(0, 74): checkpoints/checkpoint4/000010.sst
   594  a 1
   595  b 5
   596  d 7
   597  e 8
   598  f 9
   599  g 10
   600  open: checkpoints/checkpoint4/000011.sst
   601  read-at(653, 53): checkpoints/checkpoint4/000011.sst
   602  read-at(616, 37): checkpoints/checkpoint4/000011.sst
   603  read-at(70, 546): checkpoints/checkpoint4/000011.sst
   604  read-at(43, 27): checkpoints/checkpoint4/000011.sst
   605  read-at(0, 43): checkpoints/checkpoint4/000011.sst
   606  h 11
   607  i i
   608  k k
   609  open: checkpoints/checkpoint4/000014.sst
   610  read-at(636, 53): checkpoints/checkpoint4/000014.sst
   611  read-at(599, 37): checkpoints/checkpoint4/000014.sst
   612  read-at(53, 546): checkpoints/checkpoint4/000014.sst
   613  read-at(26, 27): checkpoints/checkpoint4/000014.sst
   614  read-at(0, 26): checkpoints/checkpoint4/000014.sst
   615  z z
   616  .
   617  
   618  close checkpoints/checkpoint4
   619  ----
   620  
   621  
   622  # Backing sst 10 is in the list as it is backing sstables 12, 13.
   623  list db
   624  ----
   625  000006.log
   626  000008.log
   627  000010.sst
   628  000011.sst
   629  000014.sst
   630  CURRENT
   631  LOCK
   632  MANIFEST-000001
   633  OPTIONS-000003
   634  marker.format-version.000015.016
   635  marker.manifest.000001.MANIFEST-000001
   636  
   637  
   638  # Exclude virtual sstable 12. The backing sst should still be present on disk
   639  # in the checkpoint. See the "link: db/000010.sst" line.
   640  checkpoint db checkpoints/checkpoint5 restrict=(d-zz)
   641  ----
   642  mkdir-all: checkpoints/checkpoint5 0755
   643  open-dir: checkpoints
   644  sync: checkpoints
   645  close: checkpoints
   646  open-dir: checkpoints/checkpoint5
   647  link: db/OPTIONS-000003 -> checkpoints/checkpoint5/OPTIONS-000003
   648  open-dir: checkpoints/checkpoint5
   649  create: checkpoints/checkpoint5/marker.format-version.000001.016
   650  sync-data: checkpoints/checkpoint5/marker.format-version.000001.016
   651  close: checkpoints/checkpoint5/marker.format-version.000001.016
   652  sync: checkpoints/checkpoint5
   653  close: checkpoints/checkpoint5
   654  link: db/000010.sst -> checkpoints/checkpoint5/000010.sst
   655  link: db/000011.sst -> checkpoints/checkpoint5/000011.sst
   656  link: db/000014.sst -> checkpoints/checkpoint5/000014.sst
   657  open: db/MANIFEST-000001
   658  create: checkpoints/checkpoint5/MANIFEST-000001
   659  sync-data: checkpoints/checkpoint5/MANIFEST-000001
   660  close: checkpoints/checkpoint5/MANIFEST-000001
   661  close: db/MANIFEST-000001
   662  open-dir: checkpoints/checkpoint5
   663  create: checkpoints/checkpoint5/marker.manifest.000001.MANIFEST-000001
   664  sync-data: checkpoints/checkpoint5/marker.manifest.000001.MANIFEST-000001
   665  close: checkpoints/checkpoint5/marker.manifest.000001.MANIFEST-000001
   666  sync: checkpoints/checkpoint5
   667  close: checkpoints/checkpoint5
   668  open: db/000008.log
   669  create: checkpoints/checkpoint5/000008.log
   670  sync-data: checkpoints/checkpoint5/000008.log
   671  close: checkpoints/checkpoint5/000008.log
   672  close: db/000008.log
   673  sync: checkpoints/checkpoint5
   674  close: checkpoints/checkpoint5
   675  
   676  open checkpoints/checkpoint5
   677  ----
   678  mkdir-all: checkpoints/checkpoint5 0755
   679  open-dir: checkpoints/checkpoint5
   680  lock: checkpoints/checkpoint5/LOCK
   681  open-dir: checkpoints/checkpoint5
   682  open-dir: checkpoints/checkpoint5
   683  open: checkpoints/checkpoint5/MANIFEST-000001
   684  close: checkpoints/checkpoint5/MANIFEST-000001
   685  open-dir: checkpoints/checkpoint5
   686  open: checkpoints/checkpoint5/OPTIONS-000003
   687  close: checkpoints/checkpoint5/OPTIONS-000003
   688  open: checkpoints/checkpoint5/000008.log
   689  create: checkpoints/checkpoint5/000017.sst
   690  sync-data: checkpoints/checkpoint5/000017.sst
   691  close: checkpoints/checkpoint5/000017.sst
   692  sync: checkpoints/checkpoint5
   693  close: checkpoints/checkpoint5/000008.log
   694  create: checkpoints/checkpoint5/MANIFEST-000019
   695  sync: checkpoints/checkpoint5/MANIFEST-000019
   696  create: checkpoints/checkpoint5/marker.manifest.000002.MANIFEST-000019
   697  close: checkpoints/checkpoint5/marker.manifest.000002.MANIFEST-000019
   698  remove: checkpoints/checkpoint5/marker.manifest.000001.MANIFEST-000001
   699  sync: checkpoints/checkpoint5
   700  create: checkpoints/checkpoint5/000018.log
   701  sync: checkpoints/checkpoint5
   702  create: checkpoints/checkpoint5/temporary.000020.dbtmp
   703  sync: checkpoints/checkpoint5/temporary.000020.dbtmp
   704  close: checkpoints/checkpoint5/temporary.000020.dbtmp
   705  rename: checkpoints/checkpoint5/temporary.000020.dbtmp -> checkpoints/checkpoint5/OPTIONS-000020
   706  sync: checkpoints/checkpoint5
   707  remove: checkpoints/checkpoint5/000008.log
   708  remove: checkpoints/checkpoint5/OPTIONS-000003
   709  
   710  print-backing checkpoints/checkpoint5
   711  ----
   712  000010
   713  000011
   714  
   715  # sstable 12 is gone.
   716  lsm checkpoints/checkpoint5
   717  ----
   718  0.0:
   719    000017:[h#18,SET-h#18,SET]
   720  6:
   721    000013:[d#0,SET-g#0,SET]
   722    000015:[i#19,SET-i#19,SET]
   723    000016:[k#19,SET-k#19,SET]
   724    000014:[z#20,SET-z#20,SET]
   725  
   726  close checkpoints/checkpoint5
   727  ----
   728  
   729  # Exclude both sstables 12 and 13. The backing sstable 10 should not be linked.
   730  # There should be a remove backing table entry for backing sstable 10.
   731  checkpoint db checkpoints/checkpoint6 restrict=(i-zz)
   732  ----
   733  mkdir-all: checkpoints/checkpoint6 0755
   734  open-dir: checkpoints
   735  sync: checkpoints
   736  close: checkpoints
   737  open-dir: checkpoints/checkpoint6
   738  link: db/OPTIONS-000003 -> checkpoints/checkpoint6/OPTIONS-000003
   739  open-dir: checkpoints/checkpoint6
   740  create: checkpoints/checkpoint6/marker.format-version.000001.016
   741  sync-data: checkpoints/checkpoint6/marker.format-version.000001.016
   742  close: checkpoints/checkpoint6/marker.format-version.000001.016
   743  sync: checkpoints/checkpoint6
   744  close: checkpoints/checkpoint6
   745  link: db/000011.sst -> checkpoints/checkpoint6/000011.sst
   746  link: db/000014.sst -> checkpoints/checkpoint6/000014.sst
   747  open: db/MANIFEST-000001
   748  create: checkpoints/checkpoint6/MANIFEST-000001
   749  sync-data: checkpoints/checkpoint6/MANIFEST-000001
   750  close: checkpoints/checkpoint6/MANIFEST-000001
   751  close: db/MANIFEST-000001
   752  open-dir: checkpoints/checkpoint6
   753  create: checkpoints/checkpoint6/marker.manifest.000001.MANIFEST-000001
   754  sync-data: checkpoints/checkpoint6/marker.manifest.000001.MANIFEST-000001
   755  close: checkpoints/checkpoint6/marker.manifest.000001.MANIFEST-000001
   756  sync: checkpoints/checkpoint6
   757  close: checkpoints/checkpoint6
   758  open: db/000008.log
   759  create: checkpoints/checkpoint6/000008.log
   760  sync-data: checkpoints/checkpoint6/000008.log
   761  close: checkpoints/checkpoint6/000008.log
   762  close: db/000008.log
   763  sync: checkpoints/checkpoint6
   764  close: checkpoints/checkpoint6
   765  
   766  open checkpoints/checkpoint6
   767  ----
   768  mkdir-all: checkpoints/checkpoint6 0755
   769  open-dir: checkpoints/checkpoint6
   770  lock: checkpoints/checkpoint6/LOCK
   771  open-dir: checkpoints/checkpoint6
   772  open-dir: checkpoints/checkpoint6
   773  open: checkpoints/checkpoint6/MANIFEST-000001
   774  close: checkpoints/checkpoint6/MANIFEST-000001
   775  open-dir: checkpoints/checkpoint6
   776  open: checkpoints/checkpoint6/OPTIONS-000003
   777  close: checkpoints/checkpoint6/OPTIONS-000003
   778  open: checkpoints/checkpoint6/000008.log
   779  create: checkpoints/checkpoint6/000017.sst
   780  sync-data: checkpoints/checkpoint6/000017.sst
   781  close: checkpoints/checkpoint6/000017.sst
   782  sync: checkpoints/checkpoint6
   783  close: checkpoints/checkpoint6/000008.log
   784  create: checkpoints/checkpoint6/MANIFEST-000019
   785  sync: checkpoints/checkpoint6/MANIFEST-000019
   786  create: checkpoints/checkpoint6/marker.manifest.000002.MANIFEST-000019
   787  close: checkpoints/checkpoint6/marker.manifest.000002.MANIFEST-000019
   788  remove: checkpoints/checkpoint6/marker.manifest.000001.MANIFEST-000001
   789  sync: checkpoints/checkpoint6
   790  create: checkpoints/checkpoint6/000018.log
   791  sync: checkpoints/checkpoint6
   792  create: checkpoints/checkpoint6/temporary.000020.dbtmp
   793  sync: checkpoints/checkpoint6/temporary.000020.dbtmp
   794  close: checkpoints/checkpoint6/temporary.000020.dbtmp
   795  rename: checkpoints/checkpoint6/temporary.000020.dbtmp -> checkpoints/checkpoint6/OPTIONS-000020
   796  sync: checkpoints/checkpoint6
   797  remove: checkpoints/checkpoint6/000008.log
   798  remove: checkpoints/checkpoint6/OPTIONS-000003
   799  
   800  print-backing checkpoints/checkpoint6
   801  ----
   802  000011
   803  
   804  lsm checkpoints/checkpoint6
   805  ----
   806  0.0:
   807    000017:[h#18,SET-h#18,SET]
   808  6:
   809    000015:[i#19,SET-i#19,SET]
   810    000016:[k#19,SET-k#19,SET]
   811    000014:[z#20,SET-z#20,SET]