You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Benoit Tellier (Jira)" <se...@james.apache.org> on 2020/04/21 08:21:00 UTC
[jira] [Closed] (JAMES-3135) Write a CassandraDumbBlobStoreCache
[ https://issues.apache.org/jira/browse/JAMES-3135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benoit Tellier closed JAMES-3135.
---------------------------------
Resolution: Fixed
https://github.com/linagora/james-project/pull/3273 contributed this.
> Write a CassandraDumbBlobStoreCache
> -----------------------------------
>
> Key: JAMES-3135
> URL: https://issues.apache.org/jira/browse/JAMES-3135
> Project: James Server
> Issue Type: Improvement
> Reporter: Nguyễn Việt Đức
> Priority: Major
>
> Location: {{blob-store-cassandra}} maven project.
>
> {{interface BlobStoreCache { Publisher<Void> cache(BlobId blobId, byte[] data); Publisher<Void> cache(BlobId blobId, InputStream data); Publisher<byte[]> read(BlobId); Publisher<byte[]> delete(BlobId);}}}
> *DOD* Write a {{Cassandra}} implementation of it.
> * The cache is responsible of caching only small input, below a configurable threshold. Calling {{cache}} on a too big input should result in nothing being stored. (default 8kb)
> * Failure handling:
> ** Circuit breaking: if retrieving the content takes more than {{blobStore.cache.timeout}} (default to 50ms) then return empty which will result in reading the main data store
> ** Ignore errors: return empty.
> GC grace period for this table should be set to 0
> ConsistencyLevel ONE
> API + contract test + implementation
> ----
> Why a cache:
> * We don't want to read the blobStore for small input as it comes with high latency.
> * eg headers
> Why Cassandra: distributed on disk storage without "yet another strategy"
> Limitation:
> * Replication factor. Should we consider a dedicated 'cache' keyspace with a replicationFactor of one
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org