Our services use rocksDB v5.7.2, and we are looking to upgrade to rocksDB v8.3.2. However, our service is stateful, and receives continuous writes. We would like to accommodate for a rollback, but rollback fails with forward compatibility errors such as:
Corruption: VersionEdit: unknown tag
Invalid argument: Can't parse BlockBasedTableOptions:: checksum
Corruption: unknown checksum type 4
We were looking into making some code changes to allow for forward compatibility. This includes changing the format_version to 2, and also changing the v8 checksum to be kCRC32c by default. However, we would still face issues with reverting the patch to allow for forward compatibility. Is there a way we can guarantee forward compatibility? How do we upgrade rocksDB while allowing for rollbacks?