[
https://issues.apache.org/jira/browse/JAMES-3010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
René Cordier updated JAMES-3010:
--------------------------------
Description:
Introduce a `BlobExistenceTester` API within blob-objectstorage:
{code:java}
interface BlobIdExistantTester {
Mono<Boolean> exists(ObjectStorageBucketName bucketName, BlobId blobId);
Mono<Void> persist(ObjectStorageBucketName bucketName, BlobId blobId);
Mono<Void> delete(ObjectStorageBucketName bucketName, BlobId blobId);
Mono<Void> deleteBucket(ObjectStorageBucketName bucketName);
}
{code}
Create a `FakeBlobExistenceTester` that always returns false.
Create a `MemoryBlobExistenceTester` and the related tests.
Create a `CassandraBlobExistenceTester` and the related tests.
Ensure `ObjectStorageBlobStore`:
- Don't persist small blobs that already exist
- Don't attempt to rename (copy) big blobs that already exist - deleting the
intermediary blob supplied is enough - and faster.
when Cassandra is down, just store it as normal
Propose a proof of concept regarding these changes.
was:
Introduce a `BlobExistenceTester` API within blob-objectstorage:
```
interface BlobIdExistantTester {
Mono<Boolean> exists(ObjectStorageBucketName bucketName, BlobId blobId);
Mono<Void> persist(ObjectStorageBucketName bucketName, BlobId blobId);
Mono<Void> delete(ObjectStorageBucketName bucketName, BlobId blobId);
Mono<Void> deleteBucket(ObjectStorageBucketName bucketName);
}
```
Create a `FakeBlobExistenceTester` that always returns false.
Create a `MemoryBlobExistenceTester` and the related tests.
Create a `CassandraBlobExistenceTester` and the related tests.
Ensure `ObjectStorageBlobStore`:
- Don't persist small blobs that already exist
- Don't attempt to rename (copy) big blobs that already exist - deleting the
intermediary blob supplied is enough - and faster.
when Cassandra is down, just store it as normal
Propose a proof of concept regarding these changes.
> POC BlobId list in Cassandra - pre-write check
> ----------------------------------------------
>
> Key: JAMES-3010
> URL: https://issues.apache.org/jira/browse/JAMES-3010
> Project: James Server
> Issue Type: Improvement
> Reporter: René Cordier
> Priority: Major
>
> Introduce a `BlobExistenceTester` API within blob-objectstorage:
> {code:java}
> interface BlobIdExistantTester {
> Mono<Boolean> exists(ObjectStorageBucketName bucketName, BlobId blobId);
> Mono<Void> persist(ObjectStorageBucketName bucketName, BlobId blobId);
> Mono<Void> delete(ObjectStorageBucketName bucketName, BlobId blobId);
> Mono<Void> deleteBucket(ObjectStorageBucketName bucketName);
> }
> {code}
> Create a `FakeBlobExistenceTester` that always returns false.
> Create a `MemoryBlobExistenceTester` and the related tests.
> Create a `CassandraBlobExistenceTester` and the related tests.
> Ensure `ObjectStorageBlobStore`:
> - Don't persist small blobs that already exist
> - Don't attempt to rename (copy) big blobs that already exist - deleting the
> intermediary blob supplied is enough - and faster.
> when Cassandra is down, just store it as normal
> Propose a proof of concept regarding these changes.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]