undo the partial retry logic in NativeAPI

This commit is contained in:
sramamoorthy 2019-06-21 22:59:12 -07:00
parent e8c75505d3
commit 5abc891b12
2 changed files with 3 additions and 26 deletions

View File

@ -2023,7 +2023,7 @@ Future<Standalone<RangeResultRef>> getRange( Database const& cx, Future<Version>
}
Transaction::Transaction( Database const& cx )
: cx(cx), info(cx->taskID), backoff(CLIENT_KNOBS->DEFAULT_BACKOFF), committedVersion(invalidVersion), versionstampPromise(Promise<Standalone<StringRef>>()), options(cx), numErrors(0), numRetries(0), trLogInfo(createTrLogInfoProbabilistically(cx))
: cx(cx), info(cx->taskID), backoff(CLIENT_KNOBS->DEFAULT_BACKOFF), committedVersion(invalidVersion), versionstampPromise(Promise<Standalone<StringRef>>()), options(cx), numErrors(0), trLogInfo(createTrLogInfoProbabilistically(cx))
{
setPriority(GetReadVersionRequest::PRIORITY_DEFAULT);
}
@ -2046,7 +2046,6 @@ void Transaction::operator=(Transaction&& r) BOOST_NOEXCEPT {
info = r.info;
backoff = r.backoff;
numErrors = r.numErrors;
numRetries = r.numRetries;
committedVersion = r.committedVersion;
versionstampPromise = std::move(r.versionstampPromise);
watches = r.watches;
@ -2464,10 +2463,6 @@ TransactionOptions::TransactionOptions(Database const& cx) {
if (BUGGIFY) {
commitOnFirstProxy = true;
}
maxRetries = cx->transactionMaxRetries;
if (maxRetries == -1) {
maxRetries = 10;
}
}
TransactionOptions::TransactionOptions() {
@ -2478,21 +2473,13 @@ TransactionOptions::TransactionOptions() {
void TransactionOptions::reset(Database const& cx) {
double oldMaxBackoff = maxBackoff;
double oldMaxRetries = maxRetries;
uint32_t oldSizeLimit = sizeLimit;
memset(this, 0, sizeof(*this));
maxBackoff = cx->apiVersionAtLeast(610) ? oldMaxBackoff : cx->transactionMaxBackoff;
sizeLimit = oldSizeLimit;
maxRetries = oldMaxRetries;
lockAware = cx->lockAware;
}
void Transaction::onErrorReset() {
int32_t oldNumRetires = numRetries;
reset();
numRetries = oldNumRetires;
}
void Transaction::reset() {
tr = CommitTransactionRequest();
readVersion = Future<Version>();
@ -2899,7 +2886,6 @@ ACTOR Future<Void> commitAndWatch(Transaction *self) {
}
self->versionstampPromise.sendError(transaction_invalid_version());
//self->onErrorReset();
self->reset();
}
@ -3164,9 +3150,6 @@ Future<Standalone<StringRef>> Transaction::getVersionstamp() {
}
Future<Void> Transaction::onError( Error const& e ) {
if (numRetries < std::numeric_limits<int>::max()) {
numRetries++;
}
if (e.code() == error_code_success)
{
return client_invalid_operation();
@ -3188,13 +3171,10 @@ Future<Void> Transaction::onError( Error const& e ) {
cx->transactionsProcessBehind++;
if (e.code() == error_code_cluster_not_fully_recovered) {
cx->transactionWaitsForFullRecovery++;
if (numRetries > options.maxRetries) {
return e;
}
}
double backoff = getBackoff(e.code());
onErrorReset();
reset();
return delay( backoff, info.taskID );
}
if (e.code() == error_code_transaction_too_old ||
@ -3206,7 +3186,7 @@ Future<Void> Transaction::onError( Error const& e ) {
cx->transactionsFutureVersions++;
double maxBackoff = options.maxBackoff;
onErrorReset();
reset();
return delay( std::min(CLIENT_KNOBS->FUTURE_VERSION_RETRY_DELAY, maxBackoff), info.taskID );
}

View File

@ -145,7 +145,6 @@ struct StorageMetrics;
struct TransactionOptions {
double maxBackoff;
uint32_t maxRetries;
uint32_t getReadVersionFlags;
uint32_t sizeLimit;
bool checkWritesEnabled : 1;
@ -291,7 +290,6 @@ public:
void operator=(Transaction&& r) BOOST_NOEXCEPT;
void reset();
void onErrorReset();
void fullReset();
double getBackoff(int errCode);
void debugTransaction(UID dID) { info.debugID = dID; }
@ -302,7 +300,6 @@ public:
TransactionInfo info;
int numErrors;
int numRetries;
std::vector<Reference<Watch>> watches;