mirror of
https://github.com/apple/foundationdb.git
synced 2025-06-01 02:37:02 +08:00
fixes and review comments
This commit is contained in:
parent
b3597ef3a8
commit
1cc466e068
@ -157,23 +157,23 @@ Tenant::Tenant(FDBDatabase* db, const uint8_t* name, int name_length) {
|
||||
}
|
||||
}
|
||||
|
||||
KeyFuture Tenant::purge_blob_granules(FDBDatabase* db,
|
||||
std::string_view begin_key,
|
||||
std::string_view end_key,
|
||||
int64_t purge_version,
|
||||
fdb_bool_t force) {
|
||||
return KeyFuture(fdb_database_purge_blob_granules(db,
|
||||
(const uint8_t*)begin_key.data(),
|
||||
begin_key.size(),
|
||||
(const uint8_t*)end_key.data(),
|
||||
end_key.size(),
|
||||
purge_version,
|
||||
force));
|
||||
KeyFuture Tenant::purge_blob_granules(FDBTenant* tenant,
|
||||
std::string_view begin_key,
|
||||
std::string_view end_key,
|
||||
int64_t purge_version,
|
||||
fdb_bool_t force) {
|
||||
return KeyFuture(fdb_tenant_purge_blob_granules(tenant,
|
||||
(const uint8_t*)begin_key.data(),
|
||||
begin_key.size(),
|
||||
(const uint8_t*)end_key.data(),
|
||||
end_key.size(),
|
||||
purge_version,
|
||||
force));
|
||||
}
|
||||
|
||||
EmptyFuture Tenant::wait_purge_granules_complete(FDBDatabase* db, std::string_view purge_key) {
|
||||
EmptyFuture Tenant::wait_purge_granules_complete(FDBTenant* tenant, std::string_view purge_key) {
|
||||
return EmptyFuture(
|
||||
fdb_database_wait_purge_granules_complete(db, (const uint8_t*)purge_key.data(), purge_key.size()));
|
||||
fdb_tenant_wait_purge_granules_complete(tenant, (const uint8_t*)purge_key.data(), purge_key.size()));
|
||||
}
|
||||
|
||||
Tenant::~Tenant() {
|
||||
|
@ -223,13 +223,13 @@ public:
|
||||
Tenant(Tenant&&) = delete;
|
||||
Tenant& operator=(Tenant&&) = delete;
|
||||
|
||||
static KeyFuture purge_blob_granules(FDBDatabase* db,
|
||||
static KeyFuture purge_blob_granules(FDBTenant* tenant,
|
||||
std::string_view begin_key,
|
||||
std::string_view end_key,
|
||||
int64_t purge_version,
|
||||
fdb_bool_t force);
|
||||
|
||||
static EmptyFuture wait_purge_granules_complete(FDBDatabase* db, std::string_view purge_key);
|
||||
static EmptyFuture wait_purge_granules_complete(FDBTenant* tenant, std::string_view purge_key);
|
||||
|
||||
private:
|
||||
friend class Transaction;
|
||||
|
@ -7520,11 +7520,10 @@ ACTOR Future<Standalone<VectorRef<KeyRangeRef>>> getBlobGranuleRangesActor(Trans
|
||||
} else {
|
||||
self->setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS);
|
||||
}
|
||||
// FIXME: limit to tenant range if set
|
||||
loop {
|
||||
state RangeResult blobGranuleMapping;
|
||||
if (tenantPrefix.present()) {
|
||||
Standalone<StringRef> mappingPrefix = tenantPrefix.get().withPrefix(blobGranuleMappingKeys.begin);
|
||||
state Standalone<StringRef> mappingPrefix = tenantPrefix.get().withPrefix(blobGranuleMappingKeys.begin);
|
||||
|
||||
// basically krmGetRange, but enable it to not use tenant without RAW_ACCESS by doing manual getRange with
|
||||
// UseTenant::False
|
||||
@ -7538,9 +7537,7 @@ ACTOR Future<Standalone<VectorRef<KeyRangeRef>>> getBlobGranuleRangesActor(Trans
|
||||
Reverse::False,
|
||||
UseTenant::False));
|
||||
// strip off mapping prefix
|
||||
Standalone<StringRef> prefix =
|
||||
StringRef(blobGranuleMappingKeys.begin.toString() + tenantPrefix.get().toString());
|
||||
blobGranuleMapping = krmDecodeRanges(prefix, currentRange, rawMapping);
|
||||
blobGranuleMapping = krmDecodeRanges(mappingPrefix, currentRange, rawMapping);
|
||||
} else {
|
||||
wait(store(
|
||||
blobGranuleMapping,
|
||||
@ -9472,7 +9469,6 @@ Reference<DatabaseContext::TransactionT> DatabaseContext::createTransaction() {
|
||||
return makeReference<ReadYourWritesTransaction>(Database(Reference<DatabaseContext>::addRef(this)));
|
||||
}
|
||||
|
||||
// FIXME: handle tenants?
|
||||
ACTOR Future<Key> purgeBlobGranulesActor(Reference<DatabaseContext> db,
|
||||
KeyRange range,
|
||||
Version purgeVersion,
|
||||
|
Loading…
x
Reference in New Issue
Block a user