ABSTRACT
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.
- AMD. Software Optimization Guide for AMD Family 15h Processors. 47414, 2012.Google Scholar
- T. W. Barr, A. L. Cox, and S. Rixner. Translation caching: skip, don't walk (the page table). In ISCA, pp. 48--59, 2010. Google ScholarDigital Library
- J. Cieslewicz, W. Mee, and K. A. Ross. Cache-conscious buffering for database operators with state. In DaMoN, pp. 43--51, 2009. Google ScholarDigital Library
- J. Cieslewicz and K. A. Ross. Adaptive aggregation on chip multiprocessors. In VLDB, pp. 339--350, 2007. Google ScholarDigital Library
- J. Cieslewicz and K. A. Ross. Data partitioning on chip multiprocessors. In DaMoN, pp. 25--34, 2008. Google ScholarDigital Library
- J. Cieslewicz, K. A. Ross, and I. Giannakakis. Parallel buffers for chip multiprocessors. In DaMoN, pp. 1--10, 2007. Google ScholarDigital Library
- J. Cieslewicz, K. A. Ross, K. Satsumi, and Y. Ye. Automatic contention detection and amelioration for data-intensive operations. In SIGMOD, pp. 483--494, 2010. Google ScholarDigital Library
- J. Dittrich, L. Blunschi, and M. A. V. Salles. Indexing moving objects using short-lived throwaway indexes. In SSTD, pp. 189--207, 2009. Google ScholarDigital Library
- U. Drepper. What every programmer should know about memory. Technical report, Red Hat, Inc., 2007.Google Scholar
- J. Gray, P. Sundaresan, S. Englert, K. Baclawski, and P. J. Weinberger. Quickly generating billion-record synthetic databases. In SIGMOD, pp. 243--252, 1994. Google ScholarDigital Library
- N. Hardavellas, I. Pandis, R. Johnson, N. Mancheril, A. Ailamaki, and B. Falsafi. Database Servers on Chip Multiprocessors: Limitations and Opportunities. In CIDR, pp. 79--87, 2007.Google Scholar
- Intel. Intel 64 and IA-32 Architectures Optimization Reference Manual. 248966-025, 2011.Google Scholar
- A. Kemper and T. Neumann. Hyper: A hybrid oltp&olap main memory database system based on virtual memory snapshots. In ICDE, pp. 195--206, 2011. Google ScholarDigital Library
- H. Mühe, A. Kemper, and T. Neumann. How to efficiently snapshot transactional data: hardware or software controlled? In DaMoN, pp. 17--26, 2011. Google ScholarDigital Library
- K. A. Ross. Optimizing read convoys in main-memory query processing. In DaMoN, pp. 27--33, 2010. Google ScholarDigital Library
- Solace Systems. Achieving Nanosecond Latency Between Applications with Shared Memory Messaging. Whitepaper, 2011.Google Scholar
- Sun Microsystems. OpenSPARC T2 Supplement to the UltraSPARC Architecture. 950-5556-02, 2007.Google Scholar
- D. Šidlauskas, K. A. Ross, C. S. Jensen, and S. Šaltenis. Thread-level parallel indexing of update intensive moving-object workloads. In SSTD, pp. 186--204, 2011. Google ScholarDigital Library
- Y. Ye, K. A. Ross, and N. Vesdapunt. Scalable aggregation on multicore processors. In DaMoN, pp. 1--9, 2011. Google ScholarDigital Library
Recommendations
Time-optimal, space-efficient single-scanner snapshots & multi-scanner snapshots using CAS
PODC '07: Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computingSnapshots are fundamental shared objects which provide consistent views of blocks of shared memory. A snapshot object consists of an array of m memory cells and allows processes to execute UPDATES to write new values in any of the snapshot cells, and ...
Thread-level parallel indexing of update intensive moving-object workloads
SSTD'11: Proceedings of the 12th international conference on Advances in spatial and temporal databasesModern processors consist of multiple cores that each support parallel processing by multiple physical threads, and they offer ample main-memory storage. This paper studies the use of such processors for the processing of update-intensive moving-object ...
Concurrent tries with efficient non-blocking snapshots
PPoPP '12: Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel ProgrammingWe describe a non-blocking concurrent hash trie based on shared-memory single-word compare-and-swap instructions. The hash trie supports standard mutable lock-free operations such as insertion, removal, lookup and their conditional variants. To ensure ...
Comments