Klauck, StefanPlauth, MaxKnebel, SvenStrobl, MariusSantry, DouglasEggert, LarsGrust, TorstenNaumann, FelixBöhm, AlexanderLehner, WolfgangHärder, TheoRahm, ErhardHeuer, AndreasKlettke, MeikeMeyer, Holger2019-04-112019-04-112019978-3-88579-683-1https://dl.gi.de/handle/20.500.12116/21737In scale-out database architectures, client queries must be routed to individual backend database servers for processing. In dynamic database systems, where backend servers join and leave a cluster or data partitions move between servers, clients do not know which server to send queries to. Using a central dispatcher, all queries and responses are routed via a single node. In a system with many high-performance backends, such a central node can become the system bottleneck. This paper compares three different approaches for query dispatching in terms of scaling network throughput and processing flexibility. Off-the-shelf TCP/HTTP load-balancers cannot dispatch individual queries arriving over a single connection to different backend servers, unless they are extended to understand the database wire protocol. For small response sizes up to 4 KB, a purpose-built query dispatcher delivers the highest throughput. For larger responses (i.e., BLOBs or data sets for external analysis), a novel approach for network proxying that transparently maps TCP connections between backend servers performs best.We propose hybrid query dispatching that performs a TCP connection hand-over on demand when returning large database results.enScale-Out Database SystemsQuery DispatchingLoad-BalancingEliminating the Bandwidth Bottleneck of Central Query Dispatching Through TCP Connection Hand-Over10.18420/btw2019-071617-5468