Failure-Tolerant Transaction Routing at Large Scale
Résumé
Emerging Web2.0 applications such as virtual worlds or social networking websites strongly differ from usual OLTP applications. First, the transactions are encapsulated in an API such that it is possible to know which data a transaction will access, before processing it. Second, the simultaneous transactions are very often commutative since they access distinct data. Anticipating that the workload of such applications will quickly reach thousands of transactions per seconds, we envision a novel solution that would allow these applications to scale-up without the need to buy expensive resources at a data center. To this end, databases are replicated over a P2P infrastructure for achieving high availability and fast transaction processing thanks to parallelism. However, achieving both fast and consistent data access on such architectures is challenging at many points. In particular, centralized control is prohibited because of its vulnerability and lack of efficiency at large scale. Moreover dynamic behavior of nodes, which can join and leave the system at anytime and frequently, can compromise mutual consistency. In this article, we propose a failure-tolerant solution for the distributed control of transaction routing in a large scale network. We leverage a fully distributed approach relying on a DHT to handle routing metadata, with a suitable failure management mechanism that handles nodes dynamicity and nodes failures. Moreover, we demonstrate the feasibility of our transaction routing implementation through experimentation and the effectiveness of our failure management approach through simulation.