Rozproszone agregaty w rozproszonej szerokokolumnowej bazie danych
- Prelegent(ci)
- Michał Jadwiszczak
- Afiliacja
- MIMUW
- Język referatu
- polski
- Termin
- 15 października 2024 10:15
- Pokój
- p. 4060
- Tytuł w języku angielskim
- Distributed aggregation in a distributed wide-column database
- Seminarium
- Seminarium "DeSeR: Dane, strumienie, rozpraszanie"
Rozproszone bazy danych, w porównaniu do baz jednoserwerowych, otwierają szerokie pole nowych możliwości. Choć istnieje potencjał zwiększenia przepustowości, skrócenia czasu wykonywania zapytań oraz bardziej efektywnego wykorzystania maszyn, istnieje również ryzyko stworzenia wąskiego gardła dla całego klastra, co może drastycznie obniżyć wydajność bazy danych. Jednym z aspektów tego zjawiska są zapytania agregujące. Jeśli zostaną one źle zaprojektowane, mogą prowadzić do ogromnego ruchu danych w obrębie klastra, powodując niepotrzebne opóźnienia dla wszystkich użytkowników. Z drugiej strony, dobrze zaprojektowane rozproszenie zapytań agregujących skutkuje zauważalnym skróceniem czasu wykonywania i zapobiega zablokowaniu całego środowiska. Jeśli rozważymy połączenie rozproszonych agregatów z agregatami zdefiniowanymi przez użytkownika, pojawia się możliwość stworzenia własnego, wysoko wydajnego procesu przetwarzania danych. W ten sposób można przenieść więcej obliczeń z aplikacji do bazy danych, co zwiększa ogólną wydajność systemu. Praca ta będzie polegała na implementacji rozproszenia obliczeń w istniejącej bazie danych - Scylla, która jest otwartoźródłową, rozproszoną bazą danych typu NoSQL. Obecna implementacja zapytań agregujących polega na pobieraniu wszystkich niezbędnych danych na jeden węzeł i agregowaniu ich na jednej maszynie. Praca pokaże korzyści płynące z rozproszenia obliczeń, a także przedstawi wyniki testów porównujących je z implementacją sekwencyjną.
Distributed databases in comparison to single-server databases open a wide area of new possibilities. While there is a potential of increasing the throughput, reducing the execution time and making more efficient use of machines, there also exists a risk of bottlenecking the entire cluster, which may drastically decline the database performance. One of the aspects of this phenomenon are aggregate queries. If done poorly, such a query can lead to massive data traffic inside a cluster causing unnecessary latencies for all of the users. On the other hand, a well designed distribution of aggregates results in a noticeable reduction of the execution time and thus prevents the entire environment from jamming. If we consider combining distributed aggregates with user-defined aggregates, there is a feature of creating your own, highly-performant data processing pipeline. This way, we can push more calculations from the application to the database increasing the overall performance. This talk will consist in implementing calculation’s distribution in an existing database - Scylla, which is an open-source NoSQL distributed database. The current implementation of aggregate queries is executed by downloading all necessary data to one node and then aggregating them on a single machine. The talk will show the benefits gained by distributing calculations, as well as benchmarks com-
pared to the sequential implementation.