Class KeyValueBlobTransientStore

java.lang.Object
org.nuxeo.ecm.core.transientstore.keyvalueblob.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