Rangeqc: A framework for caching range predicate query results

S Ghandeharizadeh, Y Alabdulkarim… - Proceedings of the ACM …, 2018 - dl.acm.org
S Ghandeharizadeh, Y Alabdulkarim, H Nguyen
Proceedings of the ACM Symposium on Cloud Computing, 2018dl.acm.org
Range predicates are essential to many workloads. A variety of techniques have been
developed to process these predicates efficiently. Examples include B+-tree [2], LSM-Tree
[4] used in Google's LevelDB, skip-lists in MemSQL, and BzTree [1] for the emerging NVM. A
range predicate references an attribute of a data item and specifies either (a) a lower bound
and an upper bound for its values using mathematical comparison operators, eg, 10<
temperature< 12, or (b) a lower or an upper bound with a limit on the number of rows to …
Range predicates are essential to many workloads. A variety of techniques have been developed to process these predicates efficiently. Examples include B+-tree [2], LSM-Tree [4] used in Google’s LevelDB, skip-lists in MemSQL, and BzTree [1] for the emerging NVM. A range predicate references an attribute of a data item and specifies either (a) a lower bound and an upper bound for its values using mathematical comparison operators, eg, 10< temperature< 12, or (b) a lower or an upper bound with a limit on the number of rows to retrieve, eg, temperature> 10 limit 3, temperature< 11 limit 5, etc. With the latter, the temperature values retrieved from the database define the lower and upper bounds fetched by the predicate.
ACM Digital Library