github.com/cockroachdb/pebble@v0.0.0-20231214172447-ab4952c5f87b/objstorage/objstorageprovider/testdata/provider/shared_attach_multi (about)

     1  # Tests with the same shared object attached as multiple objects.
     2  
     3  open p1 1
     4  ----
     5  <local fs> mkdir-all: p1 0755
     6  <local fs> open-dir: p1
     7  <local fs> open-dir: p1
     8  <local fs> create: p1/REMOTE-OBJ-CATALOG-000001
     9  <local fs> sync: p1/REMOTE-OBJ-CATALOG-000001
    10  <local fs> create: p1/marker.remote-obj-catalog.000001.REMOTE-OBJ-CATALOG-000001
    11  <local fs> close: p1/marker.remote-obj-catalog.000001.REMOTE-OBJ-CATALOG-000001
    12  <local fs> sync: p1
    13  <local fs> sync: p1/REMOTE-OBJ-CATALOG-000001
    14  
    15  create 1 shared 1 100
    16  ----
    17  <remote> create object "61a6-1-000001.sst"
    18  <remote> close writer for "61a6-1-000001.sst" after 100 bytes
    19  <remote> create object "61a6-1-000001.sst.ref.1.000001"
    20  <remote> close writer for "61a6-1-000001.sst.ref.1.000001" after 0 bytes
    21  
    22  save-backing b1 1
    23  ----
    24  
    25  open p2 2
    26  ----
    27  <local fs> mkdir-all: p2 0755
    28  <local fs> open-dir: p2
    29  <local fs> open-dir: p2
    30  <local fs> create: p2/REMOTE-OBJ-CATALOG-000001
    31  <local fs> sync: p2/REMOTE-OBJ-CATALOG-000001
    32  <local fs> create: p2/marker.remote-obj-catalog.000001.REMOTE-OBJ-CATALOG-000001
    33  <local fs> close: p2/marker.remote-obj-catalog.000001.REMOTE-OBJ-CATALOG-000001
    34  <local fs> sync: p2
    35  <local fs> sync: p2/REMOTE-OBJ-CATALOG-000001
    36  
    37  # We should create three ref markers to allow independent removal.
    38  attach
    39  b1 101
    40  b1 102
    41  b1 103
    42  ----
    43  <remote> create object "61a6-1-000001.sst.ref.2.000101"
    44  <remote> close writer for "61a6-1-000001.sst.ref.2.000101" after 0 bytes
    45  <remote> size of object "61a6-1-000001.sst.ref.1.000001": 0
    46  <remote> create object "61a6-1-000001.sst.ref.2.000102"
    47  <remote> close writer for "61a6-1-000001.sst.ref.2.000102" after 0 bytes
    48  <remote> size of object "61a6-1-000001.sst.ref.1.000001": 0
    49  <remote> create object "61a6-1-000001.sst.ref.2.000103"
    50  <remote> close writer for "61a6-1-000001.sst.ref.2.000103" after 0 bytes
    51  <remote> size of object "61a6-1-000001.sst.ref.1.000001": 0
    52  <local fs> sync: p2/REMOTE-OBJ-CATALOG-000001
    53  000101 -> remote://61a6-1-000001.sst
    54  000102 -> remote://61a6-1-000001.sst
    55  000103 -> remote://61a6-1-000001.sst
    56  
    57  close-backing b1
    58  ----
    59  
    60  # Remove original object.
    61  switch p1
    62  ----
    63  
    64  remove 1
    65  ----
    66  <remote> delete object "61a6-1-000001.sst.ref.1.000001"
    67  <remote> list (prefix="61a6-1-000001.sst.ref.", delimiter="")
    68  <remote>  - 61a6-1-000001.sst.ref.2.000101
    69  <remote>  - 61a6-1-000001.sst.ref.2.000102
    70  <remote>  - 61a6-1-000001.sst.ref.2.000103
    71  
    72  switch p2
    73  ----
    74  
    75  remove 101
    76  ----
    77  <remote> delete object "61a6-1-000001.sst.ref.2.000101"
    78  <remote> list (prefix="61a6-1-000001.sst.ref.", delimiter="")
    79  <remote>  - 61a6-1-000001.sst.ref.2.000102
    80  <remote>  - 61a6-1-000001.sst.ref.2.000103
    81  
    82  remove 103
    83  ----
    84  <remote> delete object "61a6-1-000001.sst.ref.2.000103"
    85  <remote> list (prefix="61a6-1-000001.sst.ref.", delimiter="")
    86  <remote>  - 61a6-1-000001.sst.ref.2.000102
    87  
    88  remove 102
    89  ----
    90  <remote> delete object "61a6-1-000001.sst.ref.2.000102"
    91  <remote> list (prefix="61a6-1-000001.sst.ref.", delimiter="")
    92  <remote> delete object "61a6-1-000001.sst"