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

micro benchmark - build #6

Open
yishayahu opened this issue Aug 18, 2021 · 9 comments
Open

micro benchmark - build #6

yishayahu opened this issue Aug 18, 2021 · 9 comments

Comments

@yishayahu
Copy link

We are trying to build and run the micro benchmark.
We get an error in the compilation - no "select_row" is defined for ordered_index.
Indeed, looking at the "DB_oindex.hh" we see that this function implementation is under "if 0".
Would you please explain to us if and how to fix that?
Thanks,
Shaya

@wqian94
Copy link
Contributor

wqian94 commented Aug 18, 2021

For the purpose of testing our timestamp splitting via split versions implementation, we replaced select_row with select_split_row. If you do not intend to use this feature, select_row should work just fine if you uncomment it.

@yishayahu
Copy link
Author

we tried to uncomment select_row, it is not working for us.
Thanks

@wqian94
Copy link
Contributor

wqian94 commented Aug 18, 2021

Is this after uncommenting both select_row overrides? One of them calls the other, so both should be uncommented.

If you're using commit 013f5e, these are lines 118-132 and 150-195.

@yishayahu
Copy link
Author

yes, we tried to uncomment both of them, and that's the commit we are using.

@wqian94
Copy link
Contributor

wqian94 commented Aug 18, 2021

Can you please send the error trace that you are seeing?

@yishayahu
Copy link
Author

benchmark/DB_oindex.hh:129:66: error: could not convert ‘{true, false, 0, }’ from ‘’ to ‘bench::ordered_index<ubench::MasstreeIntKey, eight_version_row, db_params::db_swiss_params>::sel_return_type {aka std::tuple<bool, bool, long unsigned int, const eight_version_row*>}’
return {true, false, 0, UniRecordAccessor(nullptr)};

@wqian94
Copy link
Contributor

wqian94 commented Aug 20, 2021

Ah -- do you have UniRecordAccessor defined for eight_version_row? UniRecordAccessor should be auto-coerced into the appropriate pointer type.

@yishayahu
Copy link
Author

no, how can I define it?

@wqian94
Copy link
Contributor

wqian94 commented Aug 25, 2021

It's a little roundabout, but if you look at lines 4-236 in benchmark/tpcc_split_params_default.hh, that's an example of the specialized template classes for warehouse_value from TPC-C. In particular, the UniRecordAccessor and SplitRecordAccessor classes are essentially the same for this case.

If you're looking to use the timestamp splitting feature, you'll want to look at benchmark/tpcc_split_params_ts.hh instead.

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

2 participants