kaisun2000 commented on a change in pull request #836: Make MSDS endpoint
configurable for HttpRoutingDataReader
URL: https://github.com/apache/helix/pull/836#discussion_r388489582
##########
File path:
zookeeper-api/src/main/java/org/apache/helix/zookeeper/util/HttpRoutingDataReader.java
##########
@@ -56,44 +61,78 @@ private HttpRoutingDataReader() {
}
/**
- * Fetches routing data from the data source via HTTP.
- * @return a mapping from "metadata store realm addresses" to lists of
- * "metadata store sharding keys", where the sharding keys in a value list
all route to
- * the realm address in the key disallows a meaningful mapping to be returned
+ * Fetches routing data from the data source via HTTP by querying the MSDS
configured in the JVM config.
+ * @return
+ * @throws IOException
*/
public static Map<String, List<String>> getRawRoutingData() throws
IOException {
- if (MSDS_ENDPOINT == null || MSDS_ENDPOINT.isEmpty()) {
+ if (SYSTEM_MSDS_ENDPOINT == null || SYSTEM_MSDS_ENDPOINT.isEmpty()) {
throw new IllegalStateException(
"HttpRoutingDataReader was unable to find a valid MSDS endpoint
String in System Properties!");
}
- if (_rawRoutingData == null) {
+ return getRawRoutingData(SYSTEM_MSDS_ENDPOINT);
+ }
+
+ /**
+ * Fetches routing data from the data source via HTTP.
+ * @return a mapping from "metadata store realm addresses" to lists of
+ * "metadata store sharding keys", where the sharding keys in a value list
all route to
+ * the realm address in the key disallows a meaningful mapping to be
returned.
+ * @param msdsEndpoint Metadata Store Directory Store endpoint to query from
+ */
+ public static Map<String, List<String>> getRawRoutingData(String
msdsEndpoint)
+ throws IOException {
+ Map<String, List<String>> rawRoutingData =
_rawRoutingDataMap.get(msdsEndpoint);
Review comment:
Here, multiple thread can reach this get and thus we should use
concurrentHashmap. Declaring it to volatile is not enough.
See my previous discussion with @pkuwm in the federatedZkClient.
----------------------------------------------------------------
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]