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

External Write Ahead Log with relaxed guarantees #25

Open
urso opened this issue Nov 3, 2018 · 0 comments
Open

External Write Ahead Log with relaxed guarantees #25

urso opened this issue Nov 3, 2018 · 0 comments
Labels
enhancement New feature or request [zube]: Backlog

Comments

@urso
Copy link

urso commented Nov 3, 2018

txfile ensures we have at least 1, and in the normal non corruption case 2 valid transactional states in the file. This is guaranteed by never overwriting any contents, but keeping an internal table with contents being changed. Drawback of this approach is, we always need 2 fsync operations to finish one transaction.

txfile by design guarantees only one write transaction. So to speed up writes/updates, we should provide optional support for writing to an external transaction log first. The syncing on the transaction log would be optional, and based on a flush timeout. All io will be append only until the point where we have to write the transaction log into the storage file (which could be done asynchronously if we keep the mapping tables for page updates). Drawback of postponing a flush/sync on the transaction log is a potential loss of transactions, still data will be consistent up the last known valid transaction state.

@urso urso added the enhancement New feature or request label Nov 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request [zube]: Backlog
Projects
None yet
Development

No branches or pull requests

1 participant