Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various ADR regarding JMAP and blobStore performance enhancements #170

Closed
wants to merge 15 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/adr/0014-blobstore-storage-policies.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Also, the capabilities of the various implementations of BlobStore have differen
- CassandraBlobStore is efficient for small blobs and offers low latency. However it is known to be expensive for big blobs. Cassandra storage is expensive.
- Object Storage blob store is good at storing big blobs, but it induces higher latencies than Cassandra for small blobs for a cost gain that isn't worth it.

Thus, significant performance could be unlocked by using the right blob store for the right blob.
Thus, significant performance and cost ratio refinement could be unlocked by using the right blob store for the right blob.

## Decision

Expand All @@ -35,7 +35,7 @@ The proposed policies include:
- LowCostStoragePolicy: The blob is expected to be saved in low cost storage. Access is expected to be unfrequent.
- PerformantStoragePolicy: The blob is expected to be saved in performant storage. Access is expected to be frequent.

An HybridBlobStore will be created to choose between Cassandra and ObjectStorage implementations depending on the policies.
An HybridBlobStore will be replace current UnionBlobStore and will allow to choose between Cassandra and ObjectStorage implementations depending on the policies.
chibenwa marked this conversation as resolved.
Show resolved Hide resolved

DeletedMessageVault, BlobExport & MailRepository will rely on LowCostStoragePolicy. Other BlobStore users will rely on SizeBasedStoragePolicy.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we really need to use the policy based blob store for all our blob store uses? I'm not sure LowCostStoragePolicy and PerformantStoragePolicy are really worth it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LowCostStoragePolicy -> For DeletedMessageVault (mail headers)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PerformantStoragePolicy might not be worth it though...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean why configuring DeletedMessageVault with a particular blob store policy while we probably ever want to store its data in swift?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because having to declare what we expect in term of storage policy is better than knowing that store X has this specific behavior

chibenwa marked this conversation as resolved.
Show resolved Hide resolved

Expand Down