[ 
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]

Reply via email to