TLog bug fixes

This commit is contained in:
sramamoorthy 2019-05-25 14:12:18 -07:00 committed by Alex Miller
parent 42c551a996
commit b43c100e57
2 changed files with 11 additions and 12 deletions

View File

@ -1541,12 +1541,6 @@ ACTOR Future<Void> tLogCommit(
if(req.debugID.present()) if(req.debugID.present())
g_traceBatch.addEvent("CommitDebug", tlogDebugID.get().first(), "TLog.tLogCommit.Before"); g_traceBatch.addEvent("CommitDebug", tlogDebugID.get().first(), "TLog.tLogCommit.Before");
// Log the changes to the persistent queue, to be committed by commitQueue()
qe.version = req.version;
qe.knownCommittedVersion = logData->knownCommittedVersion;
qe.messages = req.messages;
qe.id = logData->logId;
if (req.hasExecOp) { if (req.hasExecOp) {
execProcessingHelper(self, logData, &req, &execTags, &execArg, &execCmd, &execVersion, &snapFailKeySetters, &playIgnoredPops); execProcessingHelper(self, logData, &req, &execTags, &execArg, &execCmd, &execVersion, &snapFailKeySetters, &playIgnoredPops);
if (execVersion != invalidVersion) { if (execVersion != invalidVersion) {
@ -1570,6 +1564,11 @@ ACTOR Future<Void> tLogCommit(
logData->knownCommittedVersion = std::max(logData->knownCommittedVersion, req.knownCommittedVersion); logData->knownCommittedVersion = std::max(logData->knownCommittedVersion, req.knownCommittedVersion);
// Log the changes to the persistent queue, to be committed by commitQueue()
qe.version = req.version;
qe.knownCommittedVersion = logData->knownCommittedVersion;
qe.messages = req.messages;
qe.id = logData->logId;
self->persistentQueue->push( qe, logData ); self->persistentQueue->push( qe, logData );
self->diskQueueCommitBytes += qe.expectedSize(); self->diskQueueCommitBytes += qe.expectedSize();

View File

@ -1902,17 +1902,12 @@ ACTOR Future<Void> tLogCommit(
state StringRef execCmd; state StringRef execCmd;
state Standalone<VectorRef<Tag>> execTags; state Standalone<VectorRef<Tag>> execTags;
state vector<Future<Void>> playIgnoredPops; state vector<Future<Void>> playIgnoredPops;
state vector<Future<Void>> snapFailKeySetters;
if (logData->version.get() == req.prevVersion) { // Not a duplicate (check relies on critical section between here self->version.set() below!) if (logData->version.get() == req.prevVersion) { // Not a duplicate (check relies on critical section between here self->version.set() below!)
if(req.debugID.present()) if(req.debugID.present())
g_traceBatch.addEvent("CommitDebug", tlogDebugID.get().first(), "TLog.tLogCommit.Before"); g_traceBatch.addEvent("CommitDebug", tlogDebugID.get().first(), "TLog.tLogCommit.Before");
// Log the changes to the persistent queue, to be committed by commitQueue()
qe.version = req.version;
qe.knownCommittedVersion = logData->knownCommittedVersion;
qe.messages = req.messages;
qe.id = logData->logId;
state vector<Future<Void>> snapFailKeySetters;
if (req.hasExecOp) { if (req.hasExecOp) {
execProcessingHelper(self, logData, &req, &execTags, &execArg, &execCmd, &execVersion, &snapFailKeySetters, &playIgnoredPops); execProcessingHelper(self, logData, &req, &execTags, &execArg, &execCmd, &execVersion, &snapFailKeySetters, &playIgnoredPops);
@ -1937,6 +1932,11 @@ ACTOR Future<Void> tLogCommit(
logData->knownCommittedVersion = std::max(logData->knownCommittedVersion, req.knownCommittedVersion); logData->knownCommittedVersion = std::max(logData->knownCommittedVersion, req.knownCommittedVersion);
// Log the changes to the persistent queue, to be committed by commitQueue()
qe.version = req.version;
qe.knownCommittedVersion = logData->knownCommittedVersion;
qe.messages = req.messages;
qe.id = logData->logId;
self->persistentQueue->push( qe, logData ); self->persistentQueue->push( qe, logData );
self->diskQueueCommitBytes += qe.expectedSize(); self->diskQueueCommitBytes += qe.expectedSize();