NealSun96 commented on a change in pull request #955: Fix MSD routing data
refreshing for update methods
URL: https://github.com/apache/helix/pull/955#discussion_r409085250
##########
File path:
helix-rest/src/main/java/org/apache/helix/rest/metadatastore/ZkMetadataStoreDirectory.java
##########
@@ -304,42 +314,35 @@ public boolean deleteShardingKey(String namespace,
String realm, String sharding
*/
@Override
public void refreshRoutingData(String namespace) {
- // Safe to ignore the callback if any of the maps are null.
- // If routingDataMap is null, then it will be populated by the constructor
anyway
- // If routingDataMap is not null, then it's safe for the callback function
to update it
- if (_routingZkAddressMap == null || _realmToShardingKeysMap == null
- || _routingDataReaderMap == null || _routingDataWriterMap == null) {
- LOG.warn(
- "refreshRoutingData callback called before ZKMetadataStoreDirectory
was fully initialized. Skipping refresh!");
Review comment:
When the `ZkMetadataStoreDirectory` is initialized, it initializes
`ZkRoutingDataReader` which subscribe to ZNode changes and calls
`refreshRoutingData()` when an event happens. It's possible that an event comes
in before `ZkMetadataStoreDirectory` finishes initialization, which we don't
want to handle.
This is my understanding to it. This was introduced to me first by @narendly
, and he was also the first to write this statement so he could provide further
comments if necessary.
----------------------------------------------------------------
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]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]