STRING: Social-Transaction Routing over a Ring
A key requirement for social applications is to support fluid interactions among users. Basically, social applications deal with user-oriented data: users own their data and may access or modify data owned by others (say their friends). Therefore, several users may focus simultaneously on a small piece of data (hot data) owned by the same user. Such a situation, more known as a net effect, has the drawback to generate temporal peak loads able to slow user interactions. Moreover, a social application inherently generates multi-node (or multi-partition) transactions as far as users interact between them.
Based on those observations, we propose String, a transaction scheduling layer that uses various strategies to order (or group) transactions based on their access classes. String reduces significantly the overhead cost of processing one transaction at a time while allowing to process rare multi-nodes transactions in en efficient way. The key novelties lie in (1) our distributed transaction scheduling devised on top of a ring to ease communication and (2) our ability to absorb peak loads as early as possible by splitting the transaction processing in two phases: a scheduling phase, resilient to peak load, followed by a group execution phase. We designed and simulated String using SimJava and we ran a series of experiments. Compared with some existing solutions, String shows interesting and promising results.
KeywordsTransaction processing load-aware query routing data consistency
Unable to display preview. Download preview PDF.
- 2.Baker, J., et al.: Megastore: Providing scalable, highly available storage for interactive services. In: Conference on Innovative Data Systems Research (CIDR) (2011)Google Scholar
- 4.Chang, F., Dean, J., Ghemawat, S., Hsieh, W.C., Wallach, D.A., Burrows, M., Chandra, T., Fikes, A., Gruber, R.: Bigtable: A distributed storage system for structured data. In: Symposium on Operating Systems Design and Implementation (OSDI), pp. 205–218 (2006)Google Scholar
- 5.O. Corporation. Oracle nosql database, 11g release 2Google Scholar
- 6.Helland, P., Sammer, H., Lyon, J., Carr, R., Garrett, P., Reuter, A.: Group commit timers and high volume transaction systems. In: International Workshop on High Performance Transaction Systems, pp. 301–329 (1989)Google Scholar
- 7.Howell, F., Mcnab, R.: simjava: A discrete event simulation library for java. In: International Conference on Web-Based Modeling and Simulation, pp. 51–56 (1998)Google Scholar
- 8.Kallman, R., Kimura, H., Natkins, J., Pavlo, A., Rasin, A., Zdonik, S., Jones, E.P.C., Madden, S., Stonebraker, M., Zhang, Y., Hugg, J., Abadi, D.J.: H-store: a high-performance, distributed main memory transaction processing system. Proc. VLDB Endow. 1(2), 1496–1499 (2008)Google Scholar
- 10.Millet, L., Lorrillere, M., Arantes, L., Gançarski, S., Naacke, H., Sopena, J.: Facing peak loads in a p2p transaction system. In: Proceedings of the First Workshop on P2P and Dependability, P2P-Dep, pp. 1–7 (2012)Google Scholar
- 11.Sarr, I., Naacke, H., Gançarski, S.: Transpeer: Adaptive distributed transaction monitoring for web2.0 applications. In: ACM Symposium on Applied Computing, Dependable and Adaptive Distributed Systems Track (SAC DADS), pp. 423–430 (2010)Google Scholar
- 13.Thomson, A., Diamond, T., Weng, S.-C., Ren, K., Shao, P., Abadi, D.J.: Calvin: fast distributed transactions for partitioned database systems. In: ACM Int’l Conf. on Management of Data (SIGMOD), pp. 1–12 (2012)Google Scholar