Skip to content

Commit

Permalink
Update 50 bucket to 500
Browse files Browse the repository at this point in the history
  • Loading branch information
sisuresh committed Sep 25, 2024
1 parent df8f2f5 commit df916c8
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 16 deletions.
14 changes: 8 additions & 6 deletions src/bucket/BucketManagerImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1101,16 +1101,19 @@ BucketManagerImpl::getBloomLookupMeter() const
void
BucketManagerImpl::calculateSkipValues(LedgerHeader& currentHeader)
{
bool startsFromV22 = protocolVersionStartsFrom(currentHeader.ledgerVersion,
ProtocolVersion::V_22);
auto skip1 = startsFromV22 ? SKIP_1_V22 : SKIP_1;

if ((currentHeader.ledgerSeq % SKIP_1) == 0)
if ((currentHeader.ledgerSeq % skip1) == 0)
{
int v = currentHeader.ledgerSeq - SKIP_1;
int v = currentHeader.ledgerSeq - skip1;
if (v > 0 && (v % SKIP_2) == 0)
{
v = currentHeader.ledgerSeq - SKIP_2 - SKIP_1;
v = currentHeader.ledgerSeq - SKIP_2 - skip1;
if (v > 0 && (v % SKIP_3) == 0)
{
v = currentHeader.ledgerSeq - SKIP_3 - SKIP_2 - SKIP_1;
v = currentHeader.ledgerSeq - SKIP_3 - SKIP_2 - skip1;
if (v > 0 && (v % SKIP_4) == 0)
{

Expand All @@ -1121,8 +1124,7 @@ BucketManagerImpl::calculateSkipValues(LedgerHeader& currentHeader)
currentHeader.skipList[1] = currentHeader.skipList[0];
}

if (protocolVersionStartsFrom(currentHeader.ledgerVersion,
ProtocolVersion::V_22))
if (startsFromV22)
{
currentHeader.skipList[0] = currentHeader.previousLedgerHash;
}
Expand Down
2 changes: 2 additions & 0 deletions src/bucket/BucketManagerImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,8 @@ class BucketManagerImpl : public BucketManager
};

#define SKIP_1 50
#define SKIP_1_V22 500

#define SKIP_2 5000
#define SKIP_3 50000
#define SKIP_4 500000
Expand Down
23 changes: 13 additions & 10 deletions src/bucket/test/BucketManagerTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,35 +125,38 @@ TEST_CASE("skip list", "[bucket][bucketmanager]")
LedgerHeader header;
header.ledgerSeq = 5;
header.ledgerVersion = i;
auto& hashFieldToUse =
protocolVersionIsBefore(header.ledgerVersion,
ProtocolVersion::V_22)
? header.bucketListHash
: header.previousLedgerHash;

bool isBeforeV22 = protocolVersionIsBefore(
header.ledgerVersion, ProtocolVersion::V_22);

auto& hashFieldToUse = isBeforeV22 ? header.bucketListHash
: header.previousLedgerHash;

calculateSkipValues(header);
REQUIRE(header.skipList[0] == h0);
REQUIRE(header.skipList[1] == h0);
REQUIRE(header.skipList[2] == h0);
REQUIRE(header.skipList[3] == h0);

header.ledgerSeq = SKIP_1;
auto skip1 = isBeforeV22 ? SKIP_1 : SKIP_1_V22;

header.ledgerSeq = skip1;
hashFieldToUse = h2;
calculateSkipValues(header);
REQUIRE(header.skipList[0] == h2);
REQUIRE(header.skipList[1] == h0);
REQUIRE(header.skipList[2] == h0);
REQUIRE(header.skipList[3] == h0);

header.ledgerSeq = SKIP_1 * 2;
header.ledgerSeq = skip1 * 2;
hashFieldToUse = h3;
calculateSkipValues(header);
REQUIRE(header.skipList[0] == h3);
REQUIRE(header.skipList[1] == h0);
REQUIRE(header.skipList[2] == h0);
REQUIRE(header.skipList[3] == h0);

header.ledgerSeq = SKIP_1 * 2 + 1;
header.ledgerSeq = skip1 * 2 + 1;
hashFieldToUse = h2;
calculateSkipValues(header);
REQUIRE(header.skipList[0] == h3);
Expand All @@ -169,7 +172,7 @@ TEST_CASE("skip list", "[bucket][bucketmanager]")
REQUIRE(header.skipList[2] == h0);
REQUIRE(header.skipList[3] == h0);

header.ledgerSeq = SKIP_2 + SKIP_1;
header.ledgerSeq = SKIP_2 + skip1;
hashFieldToUse = h5;
calculateSkipValues(header);
REQUIRE(header.skipList[0] == h5);
Expand All @@ -185,7 +188,7 @@ TEST_CASE("skip list", "[bucket][bucketmanager]")
REQUIRE(header.skipList[2] == h0);
REQUIRE(header.skipList[3] == h0);

header.ledgerSeq = SKIP_3 + SKIP_2 + SKIP_1;
header.ledgerSeq = SKIP_3 + SKIP_2 + skip1;
hashFieldToUse = h7;
calculateSkipValues(header);
REQUIRE(header.skipList[0] == h7);
Expand Down

0 comments on commit df916c8

Please sign in to comment.