Achieving horizontal scalability in distributed databases is in most cases achieved by partitioning the data into shards. It comes, however, at a price; the problem with this approach is that only the database node that owns a shard can access it. This leads to a potential bottleneck when executing distributed transactions. The paper explores the architecture of a distributed relational database system called Tell, which does not follow this paradigm; instead of the whole database, only data are partitioned. Such systems are known as shared-data databases. The paper presents the architecture of the system and discusses the suitability of the approach for both online transaction processing (OLTP) and online analytical processing (OLAP) workloads. Moreover, the authors provide detailed insights into some of their solutions, which solve common problems that appear in shared-data systems. Finally, they show the results of extensive evaluations that not only cover Tell’s performance, but also compare it to existing distributed database systems.
On a higher level, the paper contributes to an important ongoing discussion concerning the question: Which architectures work best for the workloads that today’s large-scale web applications produce? The paper is a very thorough introduction for readers who have some knowledge about architectures of distributed databases. Where necessary, more in-depth information is provided in order to help readers understand the big picture. The authors identify challenges and present their contributions in a very structured way. The results should, however, be taken with a grain of salt: Tell heavily relies on a highly optimized system stack and runs in a local area network (LAN) interconnected by Infiniband. This is certainly not the cheap commodity hardware used in many cloud and big data systems. Overall, the authors bring new insights to the table, underlining the suitability of shared-data architectures for modern workloads.