[
https://issues.apache.org/jira/browse/STORM-876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14988143#comment-14988143
]
ASF GitHub Bot commented on STORM-876:
--------------------------------------
Github user d2r commented on the pull request:
https://github.com/apache/storm/pull/845#issuecomment-153492370
storm.thrift:
```
//BLOB APIs
// These blob APIs guarantee very little.
// Writes and reads can fail at any point in time and should be retried.
// deletes are a best effort and if someone is adding or updating the
same key
// at the same time the key may exist afterwards.
// About the only thing that is guaranteed is a blob will be self
consistent.
// When downloading a blob all of the bits will be from the same
version of the
// blob. It may even mean that reading throws an exception in the
middle.
// Many of the APIs have sessions assoicated with them. If you take
too long to
// complete a session it may timeout and you will need to start over.
string beginCreateBlob(1: string key, 2: SettableBlobMeta meta) throws
(1: AuthorizationException aze, 2: KeyAlreadyExistsException kae);
string beginUpdateBlob(1: string key) throws (1: AuthorizationException
aze, 2: KeyNotFoundException knf);
void uploadBlobChunk(1: string session, 2: binary chunk) throws (1:
AuthorizationException aze);
void finishBlobUpload(1: string session) throws (1:
AuthorizationException aze);
void cancelBlobUpload(1: string session) throws (1:
AuthorizationException aze);
ReadableBlobMeta getBlobMeta(1: string key) throws (1:
AuthorizationException aze, 2: KeyNotFoundException knf);
void setBlobMeta(1: string key, 2: SettableBlobMeta meta) throws (1:
AuthorizationException aze, 2: KeyNotFoundException knf);
BeginDownloadResult beginBlobDownload(1: string key) throws (1:
AuthorizationException aze, 2: KeyNotFoundException knf);
//can stop downloading chunks when receive 0-length byte array back
binary downloadBlobChunk(1: string session) throws (1:
AuthorizationException aze);
void deleteBlob(1: string key) throws (1: AuthorizationException aze,
2: KeyNotFoundException knf);
ListBlobsResult listBlobs(1: string session); //empty string "" means
start at the beginning
BlobReplication getBlobReplication(1: string key) throws (1:
AuthorizationException aze, 2: KeyNotFoundException knf);
BlobReplication updateBlobReplication(1: string key, 2: i32
replication) throws (1: AuthorizationException aze, 2: KeyNotFoundException
knf);
void createStateInZookeeper(1: string key); // creates state in
zookeeper when blob is uploaded through command line
```
* all but the first line is indented 2 extra spaces
* Should we move the comments to a readme?
* "These blob APIs guarantee" -> This blob API guarantees
* "assoicated" -> associated
* "deletes" -> Deletes
> 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)