This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new c5b86fa Add lock switch (#10204)
c5b86fa is described below
commit c5b86fa8f3a5c541976b3c861603a94e47d16199
Author: Haoran Meng <[email protected]>
AuthorDate: Tue Apr 27 12:59:44 2021 +0800
Add lock switch (#10204)
---
.../context/metadata/GovernanceMetaDataContexts.java | 10 +++++++---
.../infra/config/properties/ConfigurationPropertyKey.java | 7 ++++++-
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
index bc0c456..6e6fb68 100644
---
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
+++
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
@@ -86,8 +86,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
ShardingSphereEventBus.getInstance().register(this);
disableDataSources();
persistMetaData();
- lock = new GovernanceLock(governanceFacade.getRegistryCenter(),
-
metaDataContexts.getProps().<Long>getValue(ConfigurationPropertyKey.LOCK_WAIT_TIMEOUT_MILLISECONDS));
+ lock = createShardingSphereLock();
}
private void disableDataSources() {
@@ -108,6 +107,11 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
metaDataContexts.getMetaDataMap().forEach((key, value) ->
governanceFacade.getRegistryCenter().persistSchema(key, value.getSchema()));
}
+ private ShardingSphereLock createShardingSphereLock() {
+ return
metaDataContexts.getProps().<Boolean>getValue(ConfigurationPropertyKey.LOCK_ENABLED)
? new GovernanceLock(governanceFacade.getRegistryCenter(),
+
metaDataContexts.getProps().<Long>getValue(ConfigurationPropertyKey.LOCK_WAIT_TIMEOUT_MILLISECONDS))
: null;
+ }
+
@Override
public Collection<String> getAllSchemaNames() {
return metaDataContexts.getAllSchemaNames();
@@ -155,7 +159,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
@Override
public Optional<ShardingSphereLock> getLock() {
- return Optional.of(lock);
+ return Optional.ofNullable(lock);
}
@Override
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertyKey.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertyKey.java
index f5c1ee5..5f7dd82 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertyKey.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/properties/ConfigurationPropertyKey.java
@@ -121,7 +121,12 @@ public enum ConfigurationPropertyKey implements
TypedPropertyKey {
/**
* The length of time in milliseconds an SQL waits for a global lock
before giving up.
*/
- LOCK_WAIT_TIMEOUT_MILLISECONDS("lock-wait-timeout-milliseconds",
String.valueOf(50000L), long.class);
+ LOCK_WAIT_TIMEOUT_MILLISECONDS("lock-wait-timeout-milliseconds",
String.valueOf(50000L), long.class),
+
+ /**
+ * Whether enable lock.
+ */
+ LOCK_ENABLED("lock-enabled", String.valueOf(false), boolean.class);
private final String key;