kbase / blobstore

Simple S3 backed file storage.
MIT License
0 stars 3 forks source link

Add a small files compactor for Minio #139

Open MrCreosote opened 2 years ago

MrCreosote commented 2 years ago

The blobstore saves all object data in Minio, which saves each file individually, even if they're very small.

Add a single process, single thread, standalone file compactor that periodically

If the compaction produces a file smaller than the 50KB size, that document should be first in the next compaction.

The blobstore will need to be updated to take the file offsets into account before the compactor is ever run.

This makes file deletion more complicated since more objects depend on the same file. File deletion will also need some sort of checkpointing system most likely. Also figure out what happens if a file is deleted while it's being read by the compactor.

If the compactor starts and finds a checkpoint:

Open question - how do we want to monitor the compactor?

Also see https://github.com/kbase/workspace_deluxe/issues/577 https://github.com/kbase/blobstore/issues/136