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

Support append only table #3480

Closed
4 tasks done
evenyag opened this issue Mar 11, 2024 · 1 comment
Closed
4 tasks done

Support append only table #3480

evenyag opened this issue Mar 11, 2024 · 1 comment
Assignees

Comments

@evenyag
Copy link
Contributor

evenyag commented Mar 11, 2024

What type of enhancement is this?

API improvement, User experience

What does the enhancement do?

Now the storage engine overwrites duplicate entries, that share the same row key by default. We may also need to support append mode, which never overwrites duplicate entries. However, users might expect to store duplicate rows in the table.

It's helpful to support an append-only mode for the table.

Implementation challenges

We remove duplicate rows in several places.

  • memtables iters
    • the time series memtable
    • the merge tree memtable
  • the merge reader
    • during query
    • during compaction

We have to

  • add an append_only option and disable dedup in memtables
  • bypass the merge reader in query and compaction

A remaining problem is how to support DELETE as the merge reader requires each source support dedup. For simplicity, we can only support it while the table is not an append only table. We might need to persist this option in the manifest.

Implement History

@evenyag
Copy link
Contributor Author

evenyag commented Apr 9, 2024

Since #3624 was merged, I'm going to close this issue. I'll create new issues for further enhancements.

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

No branches or pull requests

1 participant