sanpwc commented on a change in pull request #114:
URL: https://github.com/apache/ignite-3/pull/114#discussion_r627581466
##########
File path:
modules/runner/src/main/java/org/apache/ignite/internal/storage/DistributedConfigurationStorage.java
##########
@@ -49,52 +72,154 @@ public DistributedConfigurationStorage(MetaStorageManager
metaStorageMgr) {
this.metaStorageMgr = metaStorageMgr;
}
- /** Map to store values. */
- private Map<String, Serializable> map = new ConcurrentHashMap<>();
-
/** Change listeners. */
private List<ConfigurationStorageListener> listeners = new
CopyOnWriteArrayList<>();
- /** Storage version. */
- private AtomicLong version = new AtomicLong(0);
+ /** Storage version. It stores actual metastorage revision, that is
applied to configuration manager. */
+ private AtomicLong version = new AtomicLong(0L);
/** {@inheritDoc} */
@Override public synchronized Data readAll() throws StorageException {
- return new Data(new HashMap<>(map), version.get(), 0);
+
+ Cursor<Entry> cur = metaStorageMgr.rangeWithAppliedRevision(new
Key(DISTRIBUTED_PREFIX + "."),
+ new Key(DISTRIBUTED_PREFIX + (char)('.' + 1)));
+
+ HashMap<String, Serializable> data = new HashMap<>();
+
+ long maxRevision = 0L;
+
+ Entry entryForMasterKey = null;
+
+ for (Entry entry : cur) {
+ if (!entry.key().equals(masterKey)) {
Review comment:
range method `Retrieves entries for the given key range in lexicographic
order.`, so instead of checking whether a key is a master key on every
iteration, you could get the first one, cause it should be the master one. It
still worth to add an assert here.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]