@ -72,8 +72,7 @@ class VersionBuilderTest : public testing::Test {
/* marked_for_compact */ false , Temperature : : kUnknown ,
oldest_blob_file_number , kUnknownOldestAncesterTime ,
kUnknownFileCreationTime , kUnknownFileChecksum ,
kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
f - > compensated_file_size = file_size ;
f - > num_entries = num_entries ;
f - > num_deletions = num_deletions ;
@ -134,8 +133,7 @@ class VersionBuilderTest : public testing::Test {
GetInternalKey ( largest ) , smallest_seqno , largest_seqno ,
marked_for_compaction , Temperature : : kUnknown , blob_file_number ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName ,
kDisableUserTimestamp , kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
}
void UpdateVersionStorageInfo ( VersionStorageInfo * vstorage ) {
@ -180,8 +178,7 @@ TEST_F(VersionBuilderTest, ApplyAndSaveTo) {
2 , 666 , 0 , 100U , GetInternalKey ( " 301 " ) , GetInternalKey ( " 350 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . DeleteFile ( 3 , 27U ) ;
EnvOptions env_options ;
@ -224,8 +221,7 @@ TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic) {
3 , 666 , 0 , 100U , GetInternalKey ( " 301 " ) , GetInternalKey ( " 350 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . DeleteFile ( 0 , 1U ) ;
version_edit . DeleteFile ( 0 , 88U ) ;
@ -271,8 +267,7 @@ TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic2) {
4 , 666 , 0 , 100U , GetInternalKey ( " 301 " ) , GetInternalKey ( " 350 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . DeleteFile ( 0 , 1U ) ;
version_edit . DeleteFile ( 0 , 88U ) ;
version_edit . DeleteFile ( 4 , 6U ) ;
@ -308,32 +303,27 @@ TEST_F(VersionBuilderTest, ApplyMultipleAndSaveTo) {
2 , 666 , 0 , 100U , GetInternalKey ( " 301 " ) , GetInternalKey ( " 350 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . AddFile (
2 , 676 , 0 , 100U , GetInternalKey ( " 401 " ) , GetInternalKey ( " 450 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . AddFile (
2 , 636 , 0 , 100U , GetInternalKey ( " 601 " ) , GetInternalKey ( " 650 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . AddFile (
2 , 616 , 0 , 100U , GetInternalKey ( " 501 " ) , GetInternalKey ( " 550 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . AddFile (
2 , 606 , 0 , 100U , GetInternalKey ( " 701 " ) , GetInternalKey ( " 750 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
EnvOptions env_options ;
constexpr TableCache * table_cache = nullptr ;
@ -372,32 +362,27 @@ TEST_F(VersionBuilderTest, ApplyDeleteAndSaveTo) {
2 , 666 , 0 , 100U , GetInternalKey ( " 301 " ) , GetInternalKey ( " 350 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . AddFile (
2 , 676 , 0 , 100U , GetInternalKey ( " 401 " ) , GetInternalKey ( " 450 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . AddFile (
2 , 636 , 0 , 100U , GetInternalKey ( " 601 " ) , GetInternalKey ( " 650 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . AddFile (
2 , 616 , 0 , 100U , GetInternalKey ( " 501 " ) , GetInternalKey ( " 550 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit . AddFile (
2 , 606 , 0 , 100U , GetInternalKey ( " 701 " ) , GetInternalKey ( " 750 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
ASSERT_OK ( version_builder . Apply ( & version_edit ) ) ;
VersionEdit version_edit2 ;
@ -405,16 +390,14 @@ TEST_F(VersionBuilderTest, ApplyDeleteAndSaveTo) {
2 , 808 , 0 , 100U , GetInternalKey ( " 901 " ) , GetInternalKey ( " 950 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
version_edit2 . DeleteFile ( 2 , 616 ) ;
version_edit2 . DeleteFile ( 2 , 636 ) ;
version_edit . AddFile (
2 , 806 , 0 , 100U , GetInternalKey ( " 801 " ) , GetInternalKey ( " 850 " ) , 200 , 200 ,
false , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
ASSERT_OK ( version_builder . Apply ( & version_edit2 ) ) ;
ASSERT_OK ( version_builder . SaveTo ( & new_vstorage ) ) ;
@ -525,8 +508,7 @@ TEST_F(VersionBuilderTest, ApplyFileDeletionAndAddition) {
largest_seqno , marked_for_compaction , Temperature : : kUnknown ,
kInvalidBlobFileNumber , kUnknownOldestAncesterTime ,
kUnknownFileCreationTime , kUnknownFileChecksum ,
kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
ASSERT_OK ( builder . Apply ( & addition ) ) ;
@ -570,13 +552,12 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyInBase) {
constexpr SequenceNumber largest_seqno = 1000 ;
constexpr bool marked_for_compaction = false ;
edit . AddFile ( new_level , file_number , path_id , file_size ,
GetInternalKey ( smallest ) , GetInternalKey ( largest ) ,
smallest_seqno , largest_seqno , marked_for_compaction ,
Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName ,
kDisableUserTimestamp , kDisableUserTimestamp , kNullUniqueId64x2 ) ;
edit . AddFile (
new_level , file_number , path_id , file_size , GetInternalKey ( smallest ) ,
GetInternalKey ( largest ) , smallest_seqno , largest_seqno ,
marked_for_compaction , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
const Status s = builder . Apply ( & edit ) ;
ASSERT_TRUE ( s . IsCorruption ( ) ) ;
@ -612,8 +593,7 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyApplied) {
marked_for_compaction , Temperature : : kUnknown ,
kInvalidBlobFileNumber , kUnknownOldestAncesterTime ,
kUnknownFileCreationTime , kUnknownFileChecksum ,
kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
ASSERT_OK ( builder . Apply ( & edit ) ) ;
@ -626,8 +606,7 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyApplied) {
GetInternalKey ( largest ) , smallest_seqno , largest_seqno ,
marked_for_compaction , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
const Status s = builder . Apply ( & other_edit ) ;
ASSERT_TRUE ( s . IsCorruption ( ) ) ;
@ -663,8 +642,7 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAndDeletion) {
GetInternalKey ( largest ) , smallest_seqno , largest_seqno ,
marked_for_compaction , Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksum , kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
ASSERT_OK ( builder . Apply ( & addition ) ) ;
@ -1233,8 +1211,7 @@ TEST_F(VersionBuilderTest, SaveBlobFilesToConcurrentJobs) {
smallest_seqno , largest_seqno , marked_for_compaction ,
Temperature : : kUnknown , blob_file_number ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
checksum_value , checksum_method , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
checksum_value , checksum_method , kNullUniqueId64x2 ) ;
edit . AddBlobFile ( blob_file_number , total_blob_count , total_blob_bytes ,
checksum_method , checksum_value ) ;
@ -1321,8 +1298,7 @@ TEST_F(VersionBuilderTest, CheckConsistencyForBlobFiles) {
Temperature : : kUnknown ,
/* oldest_blob_file_number */ 16 , kUnknownOldestAncesterTime ,
kUnknownFileCreationTime , kUnknownFileChecksum ,
kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
edit . AddFile ( /* level */ 1 , /* file_number */ 700 , /* path_id */ 0 ,
/* file_size */ 100 , /* smallest */ GetInternalKey ( " 801 " ) ,
@ -1331,8 +1307,7 @@ TEST_F(VersionBuilderTest, CheckConsistencyForBlobFiles) {
Temperature : : kUnknown ,
/* oldest_blob_file_number */ 1000 , kUnknownOldestAncesterTime ,
kUnknownFileCreationTime , kUnknownFileChecksum ,
kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
edit . AddBlobFile ( /* blob_file_number */ 1000 , /* total_blob_count */ 2000 ,
/* total_blob_bytes */ 200000 ,
/* checksum_method */ std : : string ( ) ,
@ -1553,8 +1528,7 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
Temperature : : kUnknown ,
/* oldest_blob_file_number */ 1 , kUnknownOldestAncesterTime ,
kUnknownFileCreationTime , kUnknownFileChecksum ,
kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
// Add an SST that does not reference any blob files.
edit . AddFile (
@ -1564,8 +1538,7 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
/* largest_seqno */ 2200 , /* marked_for_compaction */ false ,
Temperature : : kUnknown , kInvalidBlobFileNumber , kUnknownOldestAncesterTime ,
kUnknownFileCreationTime , kUnknownFileChecksum ,
kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
// Delete a file that references a blob file.
edit . DeleteFile ( /* level */ 1 , /* file_number */ 6 ) ;
@ -1587,8 +1560,7 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
Temperature : : kUnknown ,
/* oldest_blob_file_number */ 3 , kUnknownOldestAncesterTime ,
kUnknownFileCreationTime , kUnknownFileChecksum ,
kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
// Trivially move a file that does not reference any blob files.
edit . DeleteFile ( /* level */ 1 , /* file_number */ 13 ) ;
@ -1600,7 +1572,7 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
Temperature : : kUnknown , kInvalidBlobFileNumber ,
kUnknownOldestAncesterTime , kUnknownFileCreationTime ,
kUnknownFileChecksum , kUnknownFileChecksumFuncName ,
kDisableUserTimestamp , kDisableUserTimestamp , k NullUniqueId64x2 ) ;
kNullUniqueId64x2 ) ;
// Add one more SST file that references a blob file, then promptly
// delete it in a second version edit before the new version gets saved.
@ -1613,8 +1585,7 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
Temperature : : kUnknown ,
/* oldest_blob_file_number */ 5 , kUnknownOldestAncesterTime ,
kUnknownFileCreationTime , kUnknownFileChecksum ,
kUnknownFileChecksumFuncName , kDisableUserTimestamp ,
kDisableUserTimestamp , kNullUniqueId64x2 ) ;
kUnknownFileChecksumFuncName , kNullUniqueId64x2 ) ;
VersionEdit edit2 ;