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 transaction workload #1477

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Add transaction workload #1477

wants to merge 3 commits into from

Conversation

martijndeheus
Copy link

@martijndeheus martijndeheus commented Oct 29, 2020

Hello!

Thanks for the work you have done!

I was looking for a benchmark to test a system which does have transaction features, but simpler than TPCC. I stumbled upon YCSB+T (#169). I wanted something like this, unfortunately this was never merged.

I implemented something similar myself. It is a very simple closed economy model. It adds an integer field to the documents (balance) and adds a transfer operation to the DB. This transfer operation represents a transaction where a certain amount of balance is subtracted from one document and added to another.

For this to work I also added an insert operation where the workload can set an initial balance for the documents. I also added a deleteAndTransfer operation. This deletes a document and transfers all of its balance to another document.

The implementation of these "transactional" operations (transfer and deleteAndTransfer) is left to the DB binding.

I created a workload which includes these new operations.

I also added a REST client binding which implements the new operations.

I think I will add a validation step (as described in #169) as well.

I am interested to hear what you think of this addition and whether you think it could be a good addition to YCSB.

@morcelicaio
Copy link

Hello @martijndeheus , is this functionality already working in the latest version of YCSB?
I'm also looking for a benchmark to test a system with transaction capabilities.

@martijndeheus
Copy link
Author

No, this work was never completed. I ended up making my own implementation of the YCSB+T benchmark in Python for the needs of my experiments.

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

Successfully merging this pull request may close these issues.

2 participants