change \xff\xff/failure to \xff\xff/error_message
This commit is contained in:
parent
c7206aedbf
commit
ec9553b6c6
|
@ -896,9 +896,9 @@ DatabaseContext::DatabaseContext(Reference<AsyncVar<Reference<ClusterConnectionF
|
|||
cacheListMonitor = monitorCacheList(this);
|
||||
if (apiVersionAtLeast(700)) {
|
||||
registerSpecialKeySpaceModule(
|
||||
SpecialKeySpace::MODULE::FAILURE,
|
||||
SpecialKeySpace::MODULE::ERRORMSG,
|
||||
std::make_unique<SingleSpecialKeyImpl>(
|
||||
SpecialKeySpace::getModuleRange(SpecialKeySpace::MODULE::FAILURE).begin,
|
||||
SpecialKeySpace::getModuleRange(SpecialKeySpace::MODULE::ERRORMSG).begin,
|
||||
[](ReadYourWritesTransaction* ryw) -> Future<Optional<Value>> {
|
||||
if (ryw->getSpecialKeySpaceErrorMsg().present())
|
||||
return Optional<Value>(ryw->getSpecialKeySpaceErrorMsg().get());
|
||||
|
|
|
@ -1044,8 +1044,9 @@ public:
|
|||
ACTOR static Future<Void> commit( ReadYourWritesTransaction *ryw ) {
|
||||
try {
|
||||
ryw->commitStarted = true;
|
||||
// TODO : special-key-space delayed check, I guess we should first set the commit start flag
|
||||
wait(ryw->getDatabase()->specialKeySpace->commit(ryw));
|
||||
|
||||
if (ryw->options.specialKeySpaceChangeConfiguration)
|
||||
wait(ryw->getDatabase()->specialKeySpace->commit(ryw));
|
||||
|
||||
Future<Void> ready = ryw->reading;
|
||||
wait( ryw->resetPromise.getFuture() || ready );
|
||||
|
|
|
@ -36,7 +36,7 @@ std::unordered_map<SpecialKeySpace::MODULE, KeyRange> SpecialKeySpace::moduleToB
|
|||
KeyRangeRef(LiteralStringRef("\xff\xff/metrics/"), LiteralStringRef("\xff\xff/metrics0")) },
|
||||
{ SpecialKeySpace::MODULE::MANAGEMENT,
|
||||
KeyRangeRef(LiteralStringRef("\xff\xff/conf/"), LiteralStringRef("\xff\xff/conf0")) },
|
||||
{ SpecialKeySpace::MODULE::FAILURE, singleKeyRange(LiteralStringRef("\xff\xff/failure")) }
|
||||
{ SpecialKeySpace::MODULE::ERRORMSG, singleKeyRange(LiteralStringRef("\xff\xff/error_message")) }
|
||||
};
|
||||
|
||||
std::unordered_map<std::string, KeyRange> SpecialKeySpace::managementApiCommandToRange = {
|
||||
|
@ -351,7 +351,6 @@ Future<Optional<Value>> SpecialKeySpace::get(ReadYourWritesTransaction* ryw, con
|
|||
|
||||
void SpecialKeySpace::set(ReadYourWritesTransaction* ryw, const KeyRef& key, const ValueRef& value) {
|
||||
if (!ryw->specialKeySpaceChangeConfiguration()) throw special_keys_write_disabled();
|
||||
// TODO : check value valid
|
||||
auto impl = writeImpls[key];
|
||||
if (impl == nullptr) {
|
||||
TraceEvent(SevDebug, "SpecialKeySpaceNoWriteModuleFound")
|
||||
|
@ -642,9 +641,7 @@ Future<Standalone<RangeResultRef>> ExcludeServersRangeImpl::getRange(ReadYourWri
|
|||
}
|
||||
|
||||
void ExcludeServersRangeImpl::set(ReadYourWritesTransaction* ryw, const KeyRef& key, const ValueRef& value) {
|
||||
// TODO : check key / value valid
|
||||
Value val(value); // TODO : update this one
|
||||
ryw->getSpecialKeySpaceWriteMap().insert(key, std::make_pair(true, Optional<Value>(val)));
|
||||
ryw->getSpecialKeySpaceWriteMap().insert(key, std::make_pair(true, Optional<Value>(value)));
|
||||
}
|
||||
|
||||
void ExcludeServersRangeImpl::clear(ReadYourWritesTransaction* ryw, const KeyRef& key) {
|
||||
|
|
|
@ -125,7 +125,7 @@ public:
|
|||
enum class MODULE {
|
||||
CLUSTERFILEPATH,
|
||||
CONNECTIONSTRING,
|
||||
FAILURE, // A single key space contains a json string which describes the last failure in special-key-space
|
||||
ERRORMSG, // A single key space contains a json string which describes the last error in special-key-space
|
||||
MANAGEMENT, // Management-API
|
||||
METRICS, // data-distribution metrics
|
||||
TESTONLY, // only used by correctness tests
|
||||
|
@ -184,7 +184,7 @@ private:
|
|||
KeyRangeMap<SpecialKeyRangeReadImpl*> readImpls;
|
||||
KeyRangeMap<SpecialKeySpace::MODULE> modules;
|
||||
KeyRangeMap<SpecialKeyRangeRWImpl*> writeImpls;
|
||||
KeyRange range; // key space range, (\xff\xff, \xff\xff\xff\xf) in prod and (, \xff) in test
|
||||
KeyRange range; // key space range, (\xff\xff, \xff\xff\xff) in prod and (, \xff) in test
|
||||
|
||||
static std::unordered_map<SpecialKeySpace::MODULE, KeyRange> moduleToBoundary;
|
||||
static std::unordered_map<std::string, KeyRange>
|
||||
|
|
|
@ -159,7 +159,7 @@ ERROR( special_keys_no_module_found, 2113, "Special key space range read does no
|
|||
ERROR( special_keys_write_disabled, 2114, "Special Key space is not allowed to write by default. Refer to the `special_key_space_change_configuration` transaction option for more details." )
|
||||
ERROR( special_keys_no_write_module_found, 2115, "Special key space key or keyrange in set or clear does not intersect a module" )
|
||||
ERROR( special_keys_cross_module_clear, 2116, "Special key space clear crosses modules" )
|
||||
ERROR( special_keys_management_api_failure, 2117, "Management Api call through special keys failed. For more information, call get(\"\xff\xff/failure\") to get a json string of the error message." )
|
||||
ERROR( special_keys_management_api_failure, 2117, "Management Api call through special keys failed. For more information, call get(\"\xff\xff/error_message\") to get a json string of the error message." )
|
||||
|
||||
// 2200 - errors from bindings and official APIs
|
||||
ERROR( api_version_unset, 2200, "API version is not set" )
|
||||
|
|
Loading…
Reference in New Issue