You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
we are facing an issue with the upsert_record that we would like to double check with you.
assume the scenario that we inserted 5 records with a 2 bytes payload each in a masstree.
consider 3 tests:
test 1: update all 5 records to a 10 bytes payload in the same transaction
test 2: update all 5 records to a 700 bytes payload. Each update call in its own transaction (each update is committed separately)
test 3: update all 5 records to a 700 bytes payload in the same transaction (all four updates are committed at the same time)
test 1 and 2 pass, but test 3 fails. we attached a unit test that we created for FOEDUS that shows the issue.
Haven't taken a look at the code yet, but I (wildly) guess the check on physical record length is seeing the current physical record, thus it returns too-short-payload error on second upsert.
If that's the case, one solution is to apply physical record-expansion during transaction rather than during precommit.
The text was updated successfully, but these errors were encountered:
Reported by Gustavo:
test_masstree_extra.cpp.txt
Haven't taken a look at the code yet, but I (wildly) guess the check on physical record length is seeing the current physical record, thus it returns too-short-payload error on second upsert.
If that's the case, one solution is to apply physical record-expansion during transaction rather than during precommit.
The text was updated successfully, but these errors were encountered: