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

     1  # Each command prints the current state of the buffer pool.
     2  #
     3  # [    ] - Indicates a cell within BufferPool.pool's underlying array that's
     4  #          unused and does not hold a buffer.
     5  # [   n] - Indicates a cell within BufferPool.pool that is not currently in use,
     6  #          but does hold a buffer of size n.
     7  # <   n> - Indicates a cell within BufferPool.pool that holds a buffer of size
     8  #          n, and that buffer is presently in-use and ineligible for reuse.
     9  
    10  init size=5
    11  ----
    12  [    ] [    ] [    ] [    ] [    ]
    13  
    14  alloc n=512 handle=foo
    15  ----
    16  < 512> [    ] [    ] [    ] [    ]
    17  
    18  release handle=foo
    19  ----
    20  [ 512] [    ] [    ] [    ] [    ]
    21  
    22  # Allocating again should use the existing buffer.
    23  
    24  alloc n=512 handle=bar
    25  ----
    26  < 512> [    ] [    ] [    ] [    ]
    27  
    28  # Allocating again should allocate a new buffer for the next slot.
    29  
    30  alloc n=512 handle=bax
    31  ----
    32  < 512> < 512> [    ] [    ] [    ]
    33  
    34  release handle=bar
    35  ----
    36  [ 512] < 512> [    ] [    ] [    ]
    37  
    38  release handle=bax
    39  ----
    40  [ 512] [ 512] [    ] [    ] [    ]
    41  
    42  # Fill up the entire preallocated pool slice.
    43  
    44  alloc n=128 handle=bar
    45  ----
    46  < 512> [ 512] [    ] [    ] [    ]
    47  
    48  alloc n=1 handle=bax
    49  ----
    50  < 512> < 512> [    ] [    ] [    ]
    51  
    52  alloc n=1 handle=bux
    53  ----
    54  < 512> < 512> <   1> [    ] [    ]
    55  
    56  alloc n=1024 handle=foo
    57  ----
    58  < 512> < 512> <   1> <1024> [    ]
    59  
    60  alloc n=1024 handle=fax
    61  ----
    62  < 512> < 512> <   1> <1024> <1024>
    63  
    64  # Allocating one more should grow the underlying slice, and allocate a
    65  # new appropriately sized buffer.
    66  
    67  alloc n=2048 handle=zed
    68  ----
    69  < 512> < 512> <   1> <1024> <1024> <2048> [    ] [    ] [    ] [    ]
    70  
    71  release handle=bux
    72  ----
    73  < 512> < 512> [   1] <1024> <1024> <2048> [    ] [    ] [    ] [    ]
    74  
    75  alloc n=2 handle=bux
    76  ----
    77  < 512> < 512> [   1] <1024> <1024> <2048> <   2> [    ] [    ] [    ]
    78  
    79  init size=0
    80  ----
    81  
    82  alloc n=1 handle=foo
    83  ----
    84  <   1>