Class KeyValueBlobTransientStore

  • All Implemented Interfaces:
    TransientStore, TransientStoreProvider

    public class KeyValueBlobTransientStore
    extends Object
    implements TransientStoreProvider
    Transient Store storing properties in a Key/Value store, and storing blobs using a Blob Provider.

    This transient store is configured with the following properties:

    • keyValueStore: the name of the key/value store to use. If not provided, it defaults to "transient_" + the transient store name.
    • blobProvider: the name of the blob provider to use. If not provided, it defaults to "transient_" + the transient store name.
    • defaultBlobProvider: if the configured or defaulted blob provider doesn't exist, a namespaced copy of this one will be used instead. The default is "default".

    The storage format is the following:

       __blobsize__:       storage size; because entries may expire without us being notified due to their TTL,
                           this may be higher than the actual storage size
    
       entryKey.completed: "true" if completed, "false" if not; presence of this key marks entry existence
    
       entryKey.paraminfo: ["foo", "bar"]
    
       entryKey.param.foo: value for param foo
       entryKey.param.foo__format: "java" for java serializable format, otherwise string
    
       entryKey.param.bar: value for param bar
       etc.
    
       entryKey.bloblock:  "true" if there is a blob read/write in progress, null otherwise
       entryKey.blobinfo:  {"count": number of blobs,
                            "size": storage size of the blobs}
       entryKey.blob.0:    {"key": key in blob provider for first blob,
                            "mimetype": MIME Type,
                            "encoding": encoding,
                            "filename": filename,
                            "digest": digest}
       entryKey.blob.1:    {...} same for second blob
       etc.
     
    Since:
    9.3