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

Add "blobs" to the table format #2263

Open
7 tasks
westonpace opened this issue Apr 26, 2024 · 0 comments
Open
7 tasks

Add "blobs" to the table format #2263

westonpace opened this issue Apr 26, 2024 · 0 comments
Assignees

Comments

@westonpace
Copy link
Contributor

westonpace commented Apr 26, 2024

We are currently writing large values such as images and videos into the the data files themselves. Since the format is designed to handle large values this works reasonably well. However, for very large values (4/8 MB and above) this causes issues with compaction (both RAM required to run compaction and the total amount of I/O that must be performed).

We can work around this by introducing blob files. These files contain blob data. The data files contain a pointer to the blob file. When fragments are compacted the blob files are not necessarily compacted.

Blob files may be compacted if they are small to hit a target size. Once a blob hits a target size it is no longer compacted (except possibly to materialize deletions but this is tricky). When blobs are compacted then affected fragments need to have their blob pointers remapped.

Blobs also need to be supported on the cleanup path. Once a blob file is no longer referenced by any fragments that blob file should be removed.

Tasks:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant