ceremonyclient/pebble/testdata/format_major_version_pebblev1_migration
Cassandra Heart 2e2a1e4789
v1.2.0 (#31)
2024-01-03 01:31:42 -06:00

171 lines
2.9 KiB
Plaintext

# Open the DB at one version prior to the version that enforces Pebblev1 tables.
open version=8
----
format-major-version
----
008
# Confirm the allowable range of table formats.
min-table-format
----
(LevelDB)
max-table-format
----
(Pebble,v2)
# Disable automatic compactions while we create the tables.
disable-automatic-compactions true
----
# Create and flush a table. The table is created at the max format version for
# this DB version (i.e. Pebblev2).
batch
set a a
----
flush
----
# Ingest an external table written at the max table format for the current
# version (i.e. Pebblev2).
ingest a format=pebblev2
set pebblev2 pebblev2
----
# Ingest some external table written at earlier versions (i.e. Pebblev1,
# RocksDBv2, LevelDB).
ingest b format=pebblev1
set pebblev1 pebblev1
----
ingest c format=rocksdbv2
set rocksdbv2 rockdbv2
----
ingest d format=leveldb
set leveldb leveldb
----
lsm
----
0.0:
000005:[a#10,SET-a#10,SET]
6:
000009:[leveldb#14,SET-leveldb#14,SET]
000007:[pebblev1#12,SET-pebblev1#12,SET]
000006:[pebblev2#11,SET-pebblev2#11,SET]
000008:[rocksdbv2#13,SET-rocksdbv2#13,SET]
tally-table-formats
----
(LevelDB): 1
(RocksDB,v2): 1
(Pebble,v1): 1
(Pebble,v2): 2
(Pebble,v3): 0
(Pebble,v4): 0
# Upgrade the DB to FormatMinTableFormatPebblev1.
ratchet-format-major-version 009
----
format-major-version
----
009
# The min table format version has been raised to Pebblev1.
min-table-format
----
(Pebble,v1)
max-table-format
----
(Pebble,v2)
# Ingesting a table with a format prior to this version fails.
ingest e format=rocksdbv2
set rocksdbv2 rockdbv2
----
pebble: table format (RocksDB,v2) is not within range supported at DB format major version 9, ((Pebble,v1),(Pebble,v2))
# Upgrade the DB to FormatPrePebblev1Marked. The marked count increases to the
# count of tables at versions pre-Pebblev1 (i.e. two tables).
ratchet-format-major-version 010
----
format-major-version
----
010
min-table-format
----
(Pebble,v1)
max-table-format
----
(Pebble,v2)
marked-file-count
----
2 files marked for compaction
# Upgrade the DB to FormatPrePebblev1MarkedCompacted. The marked count returns
# to zero.
disable-automatic-compactions false
----
ratchet-format-major-version 014
----
format-major-version
----
014
min-table-format
----
(Pebble,v1)
max-table-format
----
(Pebble,v3)
marked-file-count
----
0 files marked for compaction
# The two tables with older table formats were rewritten with newer table format
# versions (note updated table numbers for the leveldb and rocksdb2 tables).
lsm
----
0.0:
000005:[a#10,SET-a#10,SET]
6:
000013:[leveldb#0,SET-leveldb#0,SET]
000007:[pebblev1#12,SET-pebblev1#12,SET]
000006:[pebblev2#11,SET-pebblev2#11,SET]
000012:[rocksdbv2#0,SET-rocksdbv2#0,SET]
# Confirm all tables are at least the minimum supported table format version.
tally-table-formats
----
(LevelDB): 0
(RocksDB,v2): 0
(Pebble,v1): 1
(Pebble,v2): 4
(Pebble,v3): 0
(Pebble,v4): 0