Skip to content

Commit 9baedd6

Browse files
authored
Merge pull request #34 from OferMania/plus1
Adds deterministic id selection for BackupSelector
2 parents e7089bc + bfd54c0 commit 9baedd6

27 files changed

+358
-17
lines changed

src/AbstractLogTest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class AbstractLogTest : public ::testing::Test {
5757
serverId(ServerId(57, 0)),
5858
serverList(&context),
5959
serverConfig(ServerConfig::forTesting()),
60-
replicaManager(&context, &serverId, 0, false, false),
60+
replicaManager(&context, &serverId, 0, false, false, false),
6161
masterTableMetadata(),
6262
allocator(&serverConfig),
6363
segmentManager(&context, &serverConfig, &serverId,

src/BackupSelector.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ BackupSelector::BackupSelector(Context* context, const ServerId* serverId,
6161
, allowLocalBackup(allowLocalBackup)
6262
, replicationIdMap()
6363
, okToLogNextProblem(true)
64+
, maxAttempts(100)
6465
{
6566
}
6667

@@ -119,8 +120,8 @@ ServerId
119120
BackupSelector::selectSecondary(uint32_t numBackups,
120121
const ServerId backupIds[])
121122
{
122-
int attempts;
123-
for (attempts = 0; attempts < 100; attempts++) {
123+
uint32_t attempts = 0;
124+
for (attempts = 0; attempts < maxAttempts; attempts++) {
124125
applyTrackerChanges();
125126
ServerId id = tracker.getRandomServerIdWithService(
126127
WireFormat::BACKUP_SERVICE);

src/BackupSelector.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ class BackupSelector : public BaseBackupSelector {
123123
*/
124124
bool okToLogNextProblem;
125125

126+
/**
127+
* Indicates the maximum number of attempts to find a secondary
128+
* serverId.
129+
*/
130+
const uint32_t maxAttempts;
131+
126132
PRIVATE:
127133
bool conflict(const ServerId backupId,
128134
const ServerId otherBackupId) const;

src/CleanableSegmentManagerTest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class CleanableSegmentManagerTest : public ::testing::Test {
9696
serverId(ServerId(57, 0)),
9797
serverList(&context),
9898
serverConfig(),
99-
replicaManager(&context, &serverId, 0, false, false),
99+
replicaManager(&context, &serverId, 0, false, false, false),
100100
allocator(serverConfig()),
101101
masterTableMetadata(),
102102
segmentManager(&context, serverConfig(), &serverId,

src/LockTableTest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class LockTableTest : public ::testing::Test {
4949
, serverId(ServerId(57, 0))
5050
, serverList(&context)
5151
, serverConfig(ServerConfig::forTesting())
52-
, replicaManager(&context, &serverId, 0, false, false)
52+
, replicaManager(&context, &serverId, 0, false, false, false)
5353
, masterTableMetadata()
5454
, allocator(&serverConfig)
5555
, segmentManager(&context, &serverConfig, &serverId,

src/LogCleanerTest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class LogCleanerTest : public ::testing::Test {
108108
serverList(&context),
109109
masterTableMetadata(),
110110
serverConfig(),
111-
replicaManager(&context, &serverId, 0, false, false),
111+
replicaManager(&context, &serverId, 0, false, false, false),
112112
allocator(serverConfig()),
113113
segmentManager(&context, serverConfig(), &serverId,
114114
allocator, replicaManager, &masterTableMetadata),

src/LogEntryRelocatorTest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class LogEntryRelocatorTest : public ::testing::Test {
4242
serverId(ServerId(57, 0)),
4343
serverList(&context),
4444
serverConfig(ServerConfig::forTesting()),
45-
replicaManager(&context, &serverId, 0, false, false),
45+
replicaManager(&context, &serverId, 0, false, false, false),
4646
masterTableMetadata(),
4747
allocator(&serverConfig),
4848
segmentManager(&context, &serverConfig, &serverId,

src/LogIteratorTest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class LogIteratorTest : public ::testing::Test {
5757
serverId(ServerId(57, 0)),
5858
serverList(&context),
5959
serverConfig(ServerConfig::forTesting()),
60-
replicaManager(&context, &serverId, 0, false, false),
60+
replicaManager(&context, &serverId, 0, false, false, false),
6161
masterTableMetadata(),
6262
allocator(&serverConfig),
6363
segmentManager(&context, &serverConfig, &serverId,

src/LogTest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class LogTest : public ::testing::Test {
5959
serverId(ServerId(57, 0)),
6060
serverList(&context),
6161
serverConfig(ServerConfig::forTesting()),
62-
replicaManager(&context, &serverId, 0, false, false),
62+
replicaManager(&context, &serverId, 0, false, false, false),
6363
masterTableMetadata(),
6464
allocator(&serverConfig),
6565
segmentManager(&context, &serverConfig, &serverId,

src/Makefrag

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ SHARED_SRCFILES := \
124124
src/PcapFile.cc \
125125
src/PerfCounter.cc \
126126
src/PerfStats.cc \
127+
src/PlusOneBackupSelector.cc \
127128
src/PortAlarm.cc \
128129
src/PreparedOp.cc \
129130
src/RamCloud.cc \

0 commit comments

Comments
 (0)