Skip to content

Conversation

@SeKwonLee
Copy link
Member

@SeKwonLee SeKwonLee commented Sep 6, 2020

The reference implementations of RECIPE indexes including P-CLHT, P-Bwtree, P-HOT, and P-ART have been updated to guarantee some read-related operations (range scan, negative lookup, and check for value existence) always return committed results by using a non-temporal store, PSwCAS (Persistent Single-word Compare And Swap), and simply adding additional flushes after some loads. Please check out the details about the updates to each index.

  1. P-CLHT
  • Final commit stores (setting or unsetting key entries) have been changed to employ non-temporal stores.
  1. P-Bwtree
  • Flushes are added after specific loads to the entries in the global mapping table. The specific loads include load instructions to the entries of the global mapping table pointing to the final leaf nodes where the resulting values are returned. The loads unrelated to the final leaf nodes don't have to call flushes such as the loads related to tree traversals.
  1. P-HOT
  • Final commit stores (swapping the parent pointer after copy-on-write) are changed to employ non-temporal stores.
  • The swap of root pointer using compare-and-swap is performed by PSwCAS and the accesses to the root pointer are made to check its persistent state.
  1. P-ART
  • Final commit stores (setting a value entry within a node or swapping a parent pointer for node exchange) are changed to employ non-temporal stores.

Updated search operations
1. GetValue: the pointer of a leafnode by global mapping table
is flushed before value is returned
2. Iterator (scan): the pointer of a leafnode by global mapping
table is flushed whenever iterator is moved to different leafnode
@SeKwonLee SeKwonLee changed the title Extension for supporting committed-read Extension for read-committed Sep 6, 2020
@SeKwonLee SeKwonLee merged commit cbd66fb into master Sep 6, 2020
@SeKwonLee SeKwonLee linked an issue Sep 6, 2020 that may be closed by this pull request
@SeKwonLee SeKwonLee deleted the read-committed branch September 6, 2020 20:30
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.

Read committed

2 participants