[ https://issues.apache.org/jira/browse/STORM-876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15009256#comment-15009256 ]
ASF GitHub Bot commented on STORM-876: -------------------------------------- Github user d2r commented on a diff in the pull request: https://github.com/apache/storm/pull/845#discussion_r45102927 --- Diff: storm-core/src/clj/backtype/storm/daemon/nimbus.clj --- @@ -1206,22 +1328,40 @@ (.set_reset_log_level_timeout_epoch log-config (coerce/to-long timeout)) (.unset_reset_log_level_timeout_epoch log-config)))) +(defmethod blob-sync-code :distributed [conf nimbus] + (if (not (is-leader nimbus :throw-exception false)) + (let [storm-cluster-state (:storm-cluster-state nimbus) + nimbus-host-port-info (:nimbus-host-port-info nimbus) + blob-store-key-list (into [] (get-key-seq-from-blob-store (:blob-store nimbus))) + zk-key-list (into [] (.blobstore storm-cluster-state (fn [] (blob-sync-code conf nimbus))))] + (log-debug "blob-sync-code " "blob-store-keys " blob-store-key-list "zookeeper-keys " zk-key-list) + (let [sync-blobs (doto + (SyncBlobs. (:blob-store nimbus) conf) + (.setNimbusInfo nimbus-host-port-info) + (.setBlobStoreKeyList (if (not-nil? blob-store-key-list) (ArrayList. blob-store-key-list) (ArrayList.))) + (.setZookeeperKeyList (if (not-nil? zk-key-list) (ArrayList. zk-key-list) (ArrayList.))))] --- End diff -- Do we need to send `ArrayList`s specifically when calling `setBlobStoreKeyList` and `setZookeeperKeyList`, or can we say something like `(or blob-store-key-list [])`? > Dist Cache: Basic Functionality > ------------------------------- > > Key: STORM-876 > URL: https://issues.apache.org/jira/browse/STORM-876 > Project: Apache Storm > Issue Type: Improvement > Components: storm-core > Reporter: Robert Joseph Evans > Assignee: Robert Joseph Evans > Attachments: DISTCACHE.md, DistributedCacheDesignDocument.pdf > > > Basic functionality for the Dist Cache feature. > As part of this a new API should be added to support uploading and > downloading dist cache items. storm-core.ser, storm-conf.ser and storm.jar > should be written into the blob store instead of residing locally. We need a > default implementation of the blob store that does essentially what nimbus > currently does and does not need anything extra. But having an HDFS backend > too would be great for scalability and HA. > The supervisor should provide a way to download and manage these blobs and > provide a working directory for the worker process with symlinks to the > blobs. It should also allow the blobs to be updated and switch the symlink > atomically to point to the new blob once it is downloaded. > All of this is already done by code internal to Yahoo! we are in the process > of getting it ready to push back to open source shortly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)