Fix Potential Race, Some Style Changes #11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This refactors a good amount of code, with changes including:
parlay::sequence.historyglobal, which is a log of the database indices following every update. Every query would read from the end of the log to fetch the most recent indices, and the update thread would append a new version to the end of the log after every transaction. Without any protection, this seems unsafe. I guarded these accesses behind a lock; additionally, now only the most recent version is shared between both readers and writers.TransactionHistoryclass.floats withdoublesI (think?) these changes did not break anything, comparing the results for the queries before and after my changes. However, I think there are some slight differences resulting from switching from single to double-precision floats. I also couldn't find any test infrastructure set up for testing the correctness of updates.