aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchertus <azuikov@ydb.tech>2023-02-27 20:51:57 +0300
committerchertus <azuikov@ydb.tech>2023-02-27 20:51:57 +0300
commit9b4ad7622e194abb175d789bf48db7081282300f (patch)
tree7380fc0d06f4714a09ac2280add29e02c6081d14
parent003edcf8e52eb561172840d582ed31e43fad24f0 (diff)
downloadydb-9b4ad7622e194abb175d789bf48db7081282300f.tar.gz
fix UpdateEvictBlob() - add case ERASING in enum
-rw-r--r--ydb/core/tx/columnshard/blob_manager_db.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/ydb/core/tx/columnshard/blob_manager_db.cpp b/ydb/core/tx/columnshard/blob_manager_db.cpp
index b5a42098e03..049002c1a90 100644
--- a/ydb/core/tx/columnshard/blob_manager_db.cpp
+++ b/ydb/core/tx/columnshard/blob_manager_db.cpp
@@ -123,22 +123,24 @@ bool TBlobManagerDb::LoadEvicted(THashMap<TEvictedBlob, TString>& evicted, THash
while (!rowset.EndOfSet()) {
TString strBlobId = rowset.GetValue<Schema::OneToOneEvictedBlobs::BlobId>();
//ui64 size = rowset.GetValue<Schema::OneToOneEvictedBlobs::Size>();
- ui8 state = rowset.GetValue<Schema::OneToOneEvictedBlobs::State>();
+ EEvictState state = (EEvictState)rowset.GetValue<Schema::OneToOneEvictedBlobs::State>();
bool isDropped = rowset.GetValue<Schema::OneToOneEvictedBlobs::Dropped>();
TString meta = rowset.GetValue<Schema::OneToOneEvictedBlobs::Metadata>();
TString strExternId = rowset.GetValue<Schema::OneToOneEvictedBlobs::ExternBlobId>();
// TODO: CachedBlob
- Y_VERIFY(state != ui8(EEvictState::UNKNOWN));
+ Y_VERIFY(state != EEvictState::UNKNOWN);
TUnifiedBlobId blobId = TUnifiedBlobId::ParseFromString(strBlobId, &dsGroupSelector, error);
Y_VERIFY(blobId.IsValid(), "%s", error.c_str());
TUnifiedBlobId externId = TUnifiedBlobId::ParseFromString(strExternId, nullptr, error);
- Y_VERIFY((state == ui8(EEvictState::EVICTING) || externId.IsValid()), "%s", error.c_str());
+ if (NOlap::IsExported(state)) {
+ Y_VERIFY(externId.IsValid(), "%s", error.c_str());
+ }
TEvictedBlob evict{
- .State = (EEvictState)state,
+ .State = state,
.Blob = std::move(blobId),
.ExternBlob = std::move(externId),
};
@@ -182,7 +184,14 @@ void TBlobManagerDb::UpdateEvictBlob(const TEvictedBlob& evict, const TString& m
);
break;
}
- default:
+ case EEvictState::ERASING:
+ Y_VERIFY(meta.empty());
+ db.Table<Schema::OneToOneEvictedBlobs>().Key(serializedBlobId).Update(
+ NIceDb::TUpdate<Schema::OneToOneEvictedBlobs::State>((ui8)evict.State)
+ );
+ break;
+ case EEvictState::UNKNOWN:
+ case EEvictState::CACHED:
Y_VERIFY(false);
break;
}