ABSTRACT
NoSQL databases were initially designed to provide extreme scalability and availability for Internet applications, often at the expense of data consistency. The recent generation of Web-scale databases fills this gap, by offering transaction support. However, transaction processing implies a significant performance overhead on online applications that only require atomic reads and writes. The state-of-the-art solutions are either static separation of the data accessed by transaction-enabled and native applications, or complete "transactification" of the latter, which are both inadequate.
We present a scalable transaction processor, Mediator, that enjoys the best of both worlds. It preserves the latencies of atomic reads and writes, without compromising data safety. We introduce a lightweight synchronization protocol that enables conflict resolution between transactions and native operations that share data in a distributed database. We evaluate Mediator's implementation on top of the HBase key-value store on a large-scale testbed, and show that it substantially outperforms the traditional approach on a vast majority of mixed workloads. In particular, Mediator achieves a significantly larger throughput for all workloads in which the fraction of native operations exceeds 50%.
- M. Alomari, M. Cahill, A. Fekete, and U. Rohm. The cost of serializability on platforms that use snapshot isolation. In ICDE, 2008. Google ScholarDigital Library
- H. Attiya and J. Welch. Distributed Computing: Fundamentals, Simulations, and Advanced Topics. Wiley Series on Parallel and Distributed Computing, 2004. Google ScholarDigital Library
- M. Balakrishnan, D. Malkhi, V. Prabhakaran, T. Wobber, and M. Wei. Corfu: A shared log design for flash clusters. In NSDI, 2012. Google ScholarDigital Library
- H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O'Neil, and P. O'Neil. A critique of ansi sql isolation levels. In SIGMOD '95, pages 1--10, 1995. Google ScholarDigital Library
- B. H. Bloom. Space/time trade-offs in hash coding with allowable errors. Commun. ACM, 13(7):422--426, July 1970. Google ScholarDigital Library
- E. Bortnikov, E. Hillel, and A. Sharov. Reconciling transactional and non-transactional operations in distributed key-value stores. Technical report, Yahoo Labs, 2014.Google Scholar
- M. J. Cahill, U. Rohm, and A. Fekete. Serializable isolation for snapshot databases. In SIGMOD, pages 729--738, 2008. Google ScholarDigital Library
- F. Chang et al. Bigtable: A distributed storage system for structured data. In OSDI, 2006. Google ScholarDigital Library
- B. F. Cooper, R. Ramakrishnan, U. Srivastava, A. Silberstein, P. Bohannon, H.-A. Jacobsen, N. Puz, D. Weaver, and R. Yerneni. Pnuts: Yahoo!s hosted data serving platform. In VLDB, 2008. Google ScholarDigital Library
- B. F. Cooper, A. Silberstein, E. Tam, R. Ramakrishnan, and R. Sears. Benchmarking cloud serving systems with YCSB. In ACM SoCC 2010, pages 143--154, 2010. Google ScholarDigital Library
- J. C. Corbett et al. Spanner: Google's globally-distributed database. In OSDI, pages 251--264, 2012. Google ScholarDigital Library
- J. O. et. al. The case for ram cloud. Commun. ACM, 54:121--130, July 2011. Google ScholarDigital Library
- A. Fekete, D. Liarokapis, E. O'Neil, P. O. Neil, and D. Shasha. Making snapshot isolation serializable. ACM TODS, 30:492--528, 2005. Google ScholarDigital Library
- D. Gomez-Ferro and M. Yabandeh. A critique of snapshot isolation. In EuroSys, pages 155--168, 2012. Google ScholarDigital Library
- J. Gray and A. Reuters. Transaction Processing: Concepts and Techniques. Morgan Kaufmann, 1993. Google ScholarDigital Library
- M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2008. Google ScholarDigital Library
- F. P. Junqueira, I. Kelly, and B. Reed. Durability with BookKeeper. OS Review, 47:9--15, 2013. Google ScholarDigital Library
- C. H. Papadimitriou. The serializability of concurrent database updates. J. ACM, 26(4):631--653, Oct. 1979. Google ScholarDigital Library
- S. Peluso, P. Romano, and F. Quaglia. SCORe: A scalable one-copy serializable partial replication protocol. In Proceedings of the 13th International Middleware Conference, Middleware '12, pages 456--475, 2012. Google ScholarDigital Library
- D. Peng and F. Dabek. Large-scale incremental processing using distributed transactions and notifications. In OSDI, 2010. Google ScholarDigital Library
- M. F. Spear, M. M. Michael, and C. von Praun. RingSTM: scalable transactions with a single atomic instruction. In SPAA '08, pages 275--284, 2008. Google ScholarDigital Library
- A. Thomson, T. Diamond, S.-C. Weng, K. Ren, P. Shao, and D. J. Abadi. Calvin: Fast distributed transactions for partitioned database systems. In SIGMOD, 2012. Google ScholarDigital Library
- R. Thonangi, S. Babu, and J. Yang. A practical concurrent index for solid-state drives. In CIKM, pages 1332--1341, 2012. Google ScholarDigital Library
- G. Weikum and G. Vossen. Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery. Morgan Kaufmann, 2001. Google ScholarDigital Library
- M. Yabandeh, D. Gomez-Ferro, I. Kelly, F. Junqueira, and B. Reed. Lock-free transactional support for distributed data stores. Accepted to ICDE '14.Google Scholar
Index Terms
- Reconciling Transactional and Non-Transactional Operations in Distributed Key-Value Stores
Recommendations
Reconciling transactional conflicts with compiler's help
CGO '12: Proceedings of the Tenth International Symposium on Code Generation and OptimizationSoftware transactional memory(STM) is a promising programming paradigm for shared memory multithreaded programs. While STM offers the promise of being less error-prone and more programmer friendly compared to traditional lock-based synchronization, it ...
Operation-Level Wait-Free Transactional Memory with Support for Irrevocable Operations
Transactional memory (TM) aims to be a general purpose concurrency mechanism. However, operations which cause side-effects cannot be easily managed by a TM system, in which transactions are executed optimistically. In particular, networking, I/O, and some ...
Refined transactional lock elision
PPoPP '16Transactional lock elision (TLE) is a well-known technique that exploits hardware transactional memory (HTM) to introduce concurrency into lock-based software. It achieves that by attempting to execute a critical section protected by a lock in an atomic ...
Comments