revert storage server priority changes

This commit is contained in:
Evan Tschannen 2019-07-02 16:54:47 -07:00
parent e54eedf0e2
commit 3fb0999e10
2 changed files with 9 additions and 12 deletions

View File

@ -2865,11 +2865,11 @@ ACTOR Future<Void> updateStorage(StorageServer* data) {
if (g_network->isSimulated()) { if (g_network->isSimulated()) {
double endTime = g_simulator.checkDisabled(format("%s/updateStorage", data->thisServerID.toString().c_str())); double endTime = g_simulator.checkDisabled(format("%s/updateStorage", data->thisServerID.toString().c_str()));
if(endTime > now()) { if(endTime > now()) {
wait(delay(endTime - now(), TaskStorage)); wait(delay(endTime - now(), TaskUpdateStorage));
} }
} }
wait( data->desiredOldestVersion.whenAtLeast( data->storageVersion()+1 ) ); wait( data->desiredOldestVersion.whenAtLeast( data->storageVersion()+1 ) );
wait( delay(0, TaskStorage) ); wait( delay(0, TaskUpdateStorage) );
state Promise<Void> durableInProgress; state Promise<Void> durableInProgress;
data->durableInProgress = durableInProgress.getFuture(); data->durableInProgress = durableInProgress.getFuture();
@ -2884,10 +2884,10 @@ ACTOR Future<Void> updateStorage(StorageServer* data) {
state bool done = data->storage.makeVersionMutationsDurable(newOldestVersion, desiredVersion, bytesLeft); state bool done = data->storage.makeVersionMutationsDurable(newOldestVersion, desiredVersion, bytesLeft);
// We want to forget things from these data structures atomically with changing oldestVersion (and "before", since oldestVersion.set() may trigger waiting actors) // We want to forget things from these data structures atomically with changing oldestVersion (and "before", since oldestVersion.set() may trigger waiting actors)
// forgetVersionsBeforeAsync visibly forgets immediately (without waiting) but asynchronously frees memory. // forgetVersionsBeforeAsync visibly forgets immediately (without waiting) but asynchronously frees memory.
Future<Void> finishedForgetting = data->mutableData().forgetVersionsBeforeAsync( newOldestVersion, TaskStorage ); Future<Void> finishedForgetting = data->mutableData().forgetVersionsBeforeAsync( newOldestVersion, TaskUpdateStorage );
data->oldestVersion.set( newOldestVersion ); data->oldestVersion.set( newOldestVersion );
wait( finishedForgetting ); wait( finishedForgetting );
wait( yield(TaskStorage) ); wait( yield(TaskUpdateStorage) );
if (done) break; if (done) break;
} }
@ -2900,9 +2900,7 @@ ACTOR Future<Void> updateStorage(StorageServer* data) {
state Future<Void> durableDelay = Void(); state Future<Void> durableDelay = Void();
if (bytesLeft > 0) { if (bytesLeft > 0) {
durableDelay = delay(SERVER_KNOBS->STORAGE_COMMIT_INTERVAL, TaskStorage); durableDelay = delay(SERVER_KNOBS->STORAGE_COMMIT_INTERVAL, TaskUpdateStorage);
} else {
durableDelay = delay(0, TaskUpdateStorage) || delay(SERVER_KNOBS->STORAGE_COMMIT_INTERVAL, TaskStorage);
} }
wait( durable ); wait( durable );
@ -2922,7 +2920,7 @@ ACTOR Future<Void> updateStorage(StorageServer* data) {
} }
durableInProgress.send(Void()); durableInProgress.send(Void());
wait( delay(0, TaskStorage) ); //Setting durableInProgess could cause the storage server to shut down, so delay to check for cancellation wait( delay(0, TaskUpdateStorage) ); //Setting durableInProgess could cause the storage server to shut down, so delay to check for cancellation
// Taking and releasing the durableVersionLock ensures that no eager reads both begin before the commit was effective and // Taking and releasing the durableVersionLock ensures that no eager reads both begin before the commit was effective and
// are applied after we change the durable version. Also ensure that we have to lock while calling changeDurableVersion, // are applied after we change the durable version. Also ensure that we have to lock while calling changeDurableVersion,
@ -2931,9 +2929,9 @@ ACTOR Future<Void> updateStorage(StorageServer* data) {
data->popVersion( data->durableVersion.get() + 1 ); data->popVersion( data->durableVersion.get() + 1 );
while (!changeDurableVersion( data, newOldestVersion )) { while (!changeDurableVersion( data, newOldestVersion )) {
if(g_network->check_yield(TaskStorage)) { if(g_network->check_yield(TaskUpdateStorage)) {
data->durableVersionLock.release(); data->durableVersionLock.release();
wait(delay(0, TaskStorage)); wait(delay(0, TaskUpdateStorage));
wait( data->durableVersionLock.take() ); wait( data->durableVersionLock.take() );
} }
} }

View File

@ -65,8 +65,6 @@ enum {
TaskDefaultOnMainThread = 7500, TaskDefaultOnMainThread = 7500,
TaskDefaultDelay = 7010, TaskDefaultDelay = 7010,
TaskDefaultYield = 7000, TaskDefaultYield = 7000,
TaskDiskWrite = 5030,
TaskStorage = 5020,
TaskDiskRead = 5010, TaskDiskRead = 5010,
TaskDefaultEndpoint = 5000, TaskDefaultEndpoint = 5000,
TaskUnknownEndpoint = 4000, TaskUnknownEndpoint = 4000,
@ -74,6 +72,7 @@ enum {
TaskDataDistributionLaunch = 3530, TaskDataDistributionLaunch = 3530,
TaskRatekeeper = 3510, TaskRatekeeper = 3510,
TaskDataDistribution = 3500, TaskDataDistribution = 3500,
TaskDiskWrite = 3010,
TaskUpdateStorage = 3000, TaskUpdateStorage = 3000,
TaskTLogSpilledPeekReply = 2800, TaskTLogSpilledPeekReply = 2800,
TaskLowPriority = 2000, TaskLowPriority = 2000,