Github user srdo commented on a diff in the pull request:
https://github.com/apache/storm/pull/2338#discussion_r140341190
--- Diff:
storm-client/src/jvm/org/apache/storm/cluster/StormClusterStateImpl.java ---
@@ -423,32 +424,35 @@ public void supervisorHeartbeat(String supervisorId,
SupervisorInfo info) {
}
/**
- * if znode exists and to be not on?, delete; if exists and on?, do
nothing; if not exists and to be on?, create; if not exists and not on?, do
nothing;
+ * if znode exists and timestamp is 0?, delete; if exists and
timestamp is larger than 0?, do nothing;
+ * if not exists and timestamp is larger than 0?, create the node and
set the timestamp; if not exists and timestamp is 0?, do nothing;
*
* @param stormId
* @param node
* @param port
- * @param on
+ * @param timestamp
*/
@Override
- public void workerBackpressure(String stormId, String node, Long port,
boolean on) {
+ public void workerBackpressure(String stormId, String node, Long port,
long timestamp) {
String path = ClusterUtils.backpressurePath(stormId, node, port);
boolean existed = stateStorage.node_exists(path, false);
if (existed) {
- if (on == false)
+ if (timestamp == 0) {
stateStorage.delete_node(path);
-
+ }
--- End diff --
Shouldn't we update the timestamp if timestamp != 0 here?
---