Quickly generating billion-record synthetic databases
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Adaptive aggregation on chip multiprocessors
VLDB '07 Proceedings of the 33rd international conference on Very large data bases
Parallel buffers for chip multiprocessors
DaMoN '07 Proceedings of the 3rd international workshop on Data management on new hardware
Data partitioning on chip multiprocessors
Proceedings of the 4th international workshop on Data management on new hardware
Cache-conscious buffering for database operators with state
Proceedings of the Fifth International Workshop on Data Management on New Hardware
Indexing Moving Objects Using Short-Lived Throwaway Indexes
SSTD '09 Proceedings of the 11th International Symposium on Advances in Spatial and Temporal Databases
Automatic contention detection and amelioration for data-intensive operations
Proceedings of the 2010 ACM SIGMOD International Conference on Management of data
Translation caching: skip, don't walk (the page table)
Proceedings of the 37th annual international symposium on Computer architecture
Optimizing read convoys in main-memory query processing
Proceedings of the Sixth International Workshop on Data Management on New Hardware
Scalable aggregation on multicore processors
Proceedings of the Seventh International Workshop on Data Management on New Hardware
How to efficiently snapshot transactional data: hardware or software controlled?
Proceedings of the Seventh International Workshop on Data Management on New Hardware
HyPer: A hybrid OLTP&OLAP main memory database system based on virtual memory snapshots
ICDE '11 Proceedings of the 2011 IEEE 27th International Conference on Data Engineering
Thread-level parallel indexing of update intensive moving-object workloads
SSTD'11 Proceedings of the 12th international conference on Advances in spatial and temporal databases
Daisy: the center for data-intensive systems at Aalborg University
ACM SIGMOD Record
Hi-index | 0.00 |
Deployments of networked sensors fuel online applications that feed on real-time sensor data. This scenario calls for techniques that support the management of workloads that contain queries as well as very frequent updates. This paper compares two well-chosen approaches to exploiting the parallelism offered by modern processors for supporting such workloads. A general approach to avoiding contention among parallel hardware threads and thus exploiting the parallelism available in processors is to maintain two copies, or snapshots, of the data: one for the relatively long-duration queries and one for the frequent and very localized updates. The snapshot that receives the updates is frequently made available to queries, so that queries see up-to-date data. The snapshots may be physical or virtual. Physical snapshots are created using the C library memcpy function. Virtual snapshots are created by the fork system function that creates a new process that initially has the same data snapshot as the process it was forked from. When the new process carries out updates, this triggers the actual memory copying in a copy-on-write manner at memory page granularity. This paper characterizes the circumstances under which each technique is preferable. The use of physical snapshots is surprisingly efficient.