[ https://issues.apache.org/jira/browse/STORM-876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15024791#comment-15024791 ]
ASF GitHub Bot commented on STORM-876: -------------------------------------- Github user redsanket commented on a diff in the pull request: https://github.com/apache/storm/pull/845#discussion_r45759172 --- Diff: storm-core/src/jvm/backtype/storm/Config.java --- @@ -980,6 +980,126 @@ public static final String SUPERVISOR_SLOTS_PORTS = "supervisor.slots.ports"; /** + * What blobstore implementation the supervisor should use. + */ + @isString + public static final String SUPERVISOR_BLOBSTORE = "supervisor.blobstore.class"; + public static final Object SUPERVISOR_BLOBSTORE_SCHEMA = String.class; + + /** + * The jvm opts provided to workers launched by this supervisor. All "%ID%" substrings are replaced + * with an identifier for this worker. Also, "%WORKER-ID%", "%STORM-ID%" and "%WORKER-PORT%" are + * replaced with appropriate runtime values for this worker. + * The distributed cache target size in MB. This is a soft limit to the size of the distributed + * cache contents. + */ + @isPositiveNumber + @isInteger + public static final String SUPERVISOR_LOCALIZER_CACHE_TARGET_SIZE_MB = "supervisor.localizer.cache.target.size.mb"; + + /** + * The distributed cache cleanup interval. Controls how often it scans to attempt to cleanup + * anything over the cache target size. + */ + @isPositiveNumber + @isInteger + public static final String SUPERVISOR_LOCALIZER_CACHE_CLEANUP_INTERVAL_MS = "supervisor.localizer.cleanup.interval.ms"; + + /** + * What blobstore implementation the storm client should use. + */ + @isString + public static final String CLIENT_BLOBSTORE = "client.blobstore.class"; + + /** + * What blobstore download parallelism the supervisor should use. + */ + @isPositiveNumber + @isInteger + public static final String SUPERVISOR_BLOBSTORE_DOWNLOAD_THREAD_COUNT = "supervisor.blobstore.download.thread.count"; + + /** + * What blobstore download parallelism the supervisor should use. + */ + @isPositiveNumber + @isInteger + public static final String SUPERVISOR_BLOBSTORE_DOWNLOAD_MAX_RETRIES = "supervisor.blobstore.download.max_retries"; + + /** + * The blobstore super user has all read/write/admin permissions to all blobs - user running + * the blobstore. + */ + @isString + public static final String BLOBSTORE_SUPERUSER = "blobstore.superuser"; + + /** + * What directory to use for the blobstore. The directory is expected to be an + * absolute path when using HDFS blobstore, for LocalFsBlobStore it could be either + * absolute or relative. + */ + @isString + public static final String BLOBSTORE_DIR = "blobstore.dir"; + + /** + * What buffer size to use for the blobstore uploads. + */ + @isPositiveNumber + @isInteger + public static final String STORM_BLOBSTORE_INPUTSTREAM_BUFFER_SIZE_BYTES = "storm.blobstore.inputstream.buffer.size.bytes"; + + /** + * Enable the blobstore cleaner. Certain blobstores may only want to run the cleaner + * on one daemon. Currently Nimbus handles setting this. + */ + @isBoolean + public static final String BLOBSTORE_CLEANUP_ENABLE = "blobstore.cleanup.enable"; + + /** + * principal for nimbus/supervisor to use to access secure hdfs for the blobstore. + */ + @isString + public static final String BLOBSTORE_HDFS_PRINCIPAL = "blobstore.hdfs.principal"; + + /** + * keytab for nimbus/supervisor to use to access secure hdfs for the blobstore. + */ + @isString + public static final String BLOBSTORE_HDFS_KEYTAB = "blobstore.hdfs.keytab"; + + /** + * Set replication factor for a blob in HDFS Blobstore Implementation + */ + @isPositiveNumber + @isInteger + public static final String STORM_BLOBSTORE_REPLICATION_FACTOR = "storm.blobstore.replication.factor"; --- End diff -- @d2r There is also a TOPOLOGY_BLOBSTORE_MIN_REPLICATION_FACTOR which specifies the amount of replication a blob has to undergo before the topology is launched, but on the other hand for HDFS blobstore we have to set the replication factor for the blob on a HDFS level. I could go ahead with HDFS_BLOBSTORE* but that would represent HDFS config rather than a STORM config. Welcome for suggestions > 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)