[ https://issues.apache.org/jira/browse/STORM-593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14386910#comment-14386910 ]
ASF GitHub Bot commented on STORM-593: -------------------------------------- Github user d2r commented on a diff in the pull request: https://github.com/apache/storm/pull/349#discussion_r27404112 --- Diff: storm-core/src/clj/backtype/storm/daemon/worker.clj --- @@ -335,16 +333,14 @@ drainer (TransferDrainer.) node+port->socket (:cached-node+port->socket worker) task->node+port (:cached-task->node+port worker) - endpoint-socket-lock (:endpoint-socket-lock worker) ] (disruptor/clojure-handler (fn [packets _ batch-end?] (.add drainer packets) (when batch-end? - (read-locked endpoint-socket-lock - (let [node+port->socket @node+port->socket] - (.send drainer node+port->socket))) + (let [node+port->socket @node+port->socket] + (.send drainer node+port->socket)) --- End diff -- @nathanmarz, I could be missing something, but I do not think we need a read lock here to protect against the send: There is no corresponding write-lock around `:cached-node+port->socket`. (I do not think we need one anyway, since it is updated via a `swap!` in `mk-refresh-connections`, and that should be atomic.) > No need of rwlock for clojure atom > ----------------------------------- > > Key: STORM-593 > URL: https://issues.apache.org/jira/browse/STORM-593 > Project: Apache Storm > Issue Type: Improvement > Affects Versions: 0.10.0 > Reporter: xiajun > Assignee: xiajun > > cached-node+port->socket in worker-data is atom, there on need for rwlock > endpoint-socket-lock to protect cached-node+port->socket. And after use > rwlock, there will be competition between refresh-connections and message > send. -- This message was sent by Atlassian JIRA (v6.3.4#6332)