clean up code

This commit is contained in:
Nim Wijetunga 2023-02-10 01:01:16 -08:00
parent dd57e85064
commit 8a3f3ea674
4 changed files with 17 additions and 9 deletions

View File

@ -69,12 +69,12 @@ int64_t extractTenantIdFromKeyRef(StringRef s) {
// validates whether the lastTenantId and the nextTenantId share the same 2 byte prefix
bool nextTenantIdPrefixMatches(int64_t lastTenantId, int64_t nextTenantId) {
if (nextTenantId >> 48 != lastTenantId >> 48) {
if (getTenantIdPrefix(nextTenantId) != getTenantIdPrefix(lastTenantId)) {
TraceEvent(SevWarnAlways, "TenantIdPrefixMismatch")
.detail("CurrentTenantId", lastTenantId)
.detail("NewTenantId", nextTenantId)
.detail("CurrentTenantIdPrefix", lastTenantId >> 48)
.detail("NewTenantIdPrefix", nextTenantId >> 48);
.detail("CurrentTenantIdPrefix", getTenantIdPrefix(lastTenantId))
.detail("NewTenantIdPrefix", getTenantIdPrefix(nextTenantId));
return false;
}
return true;
@ -82,9 +82,15 @@ bool nextTenantIdPrefixMatches(int64_t lastTenantId, int64_t nextTenantId) {
// returns the maximum allowable tenant id in which the 2 byte prefix is not overriden
int64_t getMaxAllowableTenantId(int64_t curTenantId) {
int64_t maxTenantId = pow(2, 48) - 1 + ((curTenantId >> 48) << 48);
// The maximum tenant id allowed is 1 for the first 48 bits (6 bytes) with the first 16 bits (2 bytes) being the
// tenant prefix
int64_t maxTenantId = pow(2, 48) - 1 + ((getTenantIdPrefix(curTenantId)) << 48);
ASSERT(maxTenantId > 0);
return maxTenantId;
}
int64_t getTenantIdPrefix(int64_t tenantId) {
return tenantId >> 48;
}
} // namespace TenantAPI

View File

@ -127,6 +127,7 @@ int64_t extractTenantIdFromMutation(MutationRef m);
int64_t extractTenantIdFromKeyRef(StringRef s);
bool nextTenantIdPrefixMatches(int64_t lastTenantId, int64_t nextTenantId);
int64_t getMaxAllowableTenantId(int64_t curTenantId);
int64_t getTenantIdPrefix(int64_t tenantId);
// Returns true if the specified ID has already been deleted and false if not. If the ID is old enough
// that we no longer keep tombstones for it, an error is thrown.

View File

@ -498,7 +498,7 @@ struct MetaclusterManagementWorkload : TestWorkload {
ASSERT(hasCapacity);
ASSERT(entry.assignedCluster.present());
ASSERT(entry.tenantGroup == tenantGroup);
ASSERT(entry.id >> 48 == self->tenantIdPrefix);
ASSERT(TenantAPI::getTenantIdPrefix(entry.id) == self->tenantIdPrefix);
if (tenantGroup.present()) {
auto tenantGroupData =

View File

@ -451,7 +451,7 @@ struct TenantManagementWorkload : TestWorkload {
ASSERT(entry.present());
ASSERT(entry.get().id > self->maxId);
ASSERT(entry.get().id >> 48 == self->tenantIdPrefix);
ASSERT(TenantAPI::getTenantIdPrefix(entry.get().id) == self->tenantIdPrefix);
ASSERT(entry.get().tenantGroup == tenantItr->second.tenantGroup);
ASSERT(entry.get().tenantState == TenantState::READY);
@ -464,7 +464,7 @@ struct TenantManagementWorkload : TestWorkload {
wait(TenantAPI::tryGetTenant(self->dataDb.getReference(), tenantItr->first));
ASSERT(dataEntry.present());
ASSERT(dataEntry.get().id == entry.get().id);
ASSERT(dataEntry.get().id >> 48 == self->tenantIdPrefix);
ASSERT(TenantAPI::getTenantIdPrefix(dataEntry.get().id) == self->tenantIdPrefix);
ASSERT(dataEntry.get().tenantGroup == entry.get().tenantGroup);
ASSERT(dataEntry.get().tenantState == TenantState::READY);
}
@ -682,9 +682,10 @@ struct TenantManagementWorkload : TestWorkload {
.detail("ClientID", self->clientId)
.detail("Opetation", operationType);
// Overshot our capacity because we cannot assign anymore tenant ids with the same prefix
if (lastTenantId >> 48 != (lastTenantId + tenantsCreating) >> 48) {
if (TenantAPI::getTenantIdPrefix(lastTenantId) !=
TenantAPI::getTenantIdPrefix(lastTenantId + tenantsCreating)) {
CODE_PROBE(true, "prefix change from reaching tenant capacity limits");
ASSERT(lastTenantId >> 48 == self->tenantIdPrefix);
ASSERT(TenantAPI::getTenantIdPrefix(lastTenantId) == self->tenantIdPrefix);
// It's possible that we created tenants but the createTenantImpl actor timed out so we had to
// retry. Between when this retry is invoked to when the attempt is made to insert tenants the