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 RocksDB transaction. #565

Merged
merged 51 commits into from
Aug 5, 2022
Merged

Conversation

yiyuanliu
Copy link
Contributor

We are building a project which uses RocksDB transaction. However, rust-rocksdb doesn't support transaction. PR #250 has not been updated in a long time and does not appear to be maintained.

This PR wants to provide support for transactions with minimal impact on existing code. I have finished wrapping RocksDB TransactionDB, and the basic functionality is tested. The next step is to provide support for Optimistic TransactionDB.

Related to: #529 #144

@yiyuanliu yiyuanliu changed the title [WIP]: Support RocksDB transaction. WIP: Support RocksDB transaction. Nov 9, 2021
src/write_batch.rs Outdated Show resolved Hide resolved
Copy link
Contributor

@ryoqun ryoqun left a comment

Choose a reason for hiding this comment

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

nice work after initial quick glance! it's been some time since i missed this functionality. thanks for contributing.

src/write_batch.rs Outdated Show resolved Hide resolved
src/txn/txn_db.rs Outdated Show resolved Hide resolved
src/txn/txn_db.rs Outdated Show resolved Hide resolved
@yiyuanliu yiyuanliu changed the title WIP: Support RocksDB transaction. Support RocksDB transaction. Nov 17, 2021
@ryoqun
Copy link
Contributor

ryoqun commented Nov 29, 2021

wow great progress! i'll review this in depth later

merge two-phase commit implementation.
@aleksuss
Copy link
Member

Resolve conflicts please.

@aleksuss
Copy link
Member

@yiyuanliu do you plan to finish this PR?

@yiyuanliu
Copy link
Contributor Author

@yiyuanliu do you plan to finish this PR?

I will finish it, but it will take some time. Due to a job change, I've left the project I was working on when I built this PR. I'm sorry I haven't been able to find the time to work on this PR for a while.

Oleksandr Anyshchenko added 2 commits July 27, 2022 15:34
# Conflicts:
#	src/backup.rs
#	src/checkpoint.rs
#	src/db.rs
#	src/db_iterator.rs
Copy link
Member

@stanislav-tkach stanislav-tkach left a comment

Choose a reason for hiding this comment

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

Looking good to me, though I would admit, that I can spend more time checking the pull request if I have more time.

src/lib.rs Show resolved Hide resolved
src/lib.rs Show resolved Hide resolved
//

use crate::ffi;
use core::panic;
Copy link
Member

Choose a reason for hiding this comment

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

Why is the core::panic import needed?

Copy link
Member

Choose a reason for hiding this comment

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

I'll remove it later but for now, I merge it as is.

@aleksuss aleksuss merged commit 2257be1 into rust-rocksdb:master Aug 5, 2022
vldm pushed a commit to velas/rust-rocksdb that referenced this pull request Sep 8, 2022
msmouse pushed a commit to aptos-labs/rust-rocksdb that referenced this pull request Sep 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.