Ensuring BASE Consistency in a CRUD Middleware Layer for Heterogeneous Databases
Authors
Hansen, Christian Klim ; Cokljat, Nedim
Term
4. term
Education
Publication year
2015
Pages
19
Abstract
Efterhånden som mængden af lagrede data vokser, bliver det mere relevant at kombinere forskellige typer databaser. Mange databasemodeller er specialiserede og klarer bestemte opgaver særligt godt. For eksempel er grafdatabaser stærke til gennemløbsforespørgsler som at finde den korteste vej og til at udforske, hvordan elementer er forbundet—ofte med fokus på metadata om relationer og mønstre i grafen. Relationelle databaser er derimod meget effektive til opslag om konkrete entiteter takket være mange års optimering af indeksering. Men når man vil finde forbindelser på tværs af entiteter, kræver det joins (sammenføjninger) mellem tabeller, og komplekse joins kan være langsomme; grafdatabaser undgår joins og kan derfor være hurtigere til relationstunge forespørgsler. Bridge-DB er et fejltolerant mellemlag, der forbinder flere forskellige databasetyper og gør det muligt at læse og skrive til eksternt tilkoblede, heterogene databaser, samtidig med at tilgængelighed og eventual consistency opretholdes. Vi tester Bridge-DB med Neo4J (graf) og PostgreSQL (relationel) i en opsætning med fuld redundans og designer det som et generelt rammeværk til arbejde med flere heterogene databaser. Testene viser, hvorfor Bridge-DB er nødvendig: forskellige forespørgselstyper kører hurtigere eller langsommere afhængigt af den valgte databasemodel. Vores eksperimenter dokumenterer desuden, at Bridge-DB opfylder BASE-egenskaberne (herunder tilgængelighed og eventual consistency) og understøtter alle create-, read-, update- og delete-operationer.
As the volume of stored data grows, it becomes more useful to combine different kinds of databases. Many database models are specialized to excel at particular tasks. For example, graph databases are strong at traversal queries such as finding the shortest path and at exploring how items are connected—often working with metadata about relationships and patterns in the graph. Relational databases, by contrast, are highly efficient for retrieving information about specific entities thanks to decades of indexing optimization. However, discovering associations across entities requires joining tables, and complex joins can be slow; graph databases avoid joins and can therefore be faster for relationship-heavy queries. Bridge-DB is a fault-tolerant middleware that connects multiple database models and lets users read from and write to heterogeneous, externally connected databases while maintaining availability and eventual consistency. We test Bridge-DB with Neo4J (graph) and PostgreSQL (relational) in a fully redundant setup, and we design it as a general framework for working with multiple heterogeneous databases. Our tests show why Bridge-DB is needed: different query types run faster or slower depending on the database model chosen. Our experiments also show that Bridge-DB upholds BASE properties (including availability and eventual consistency) while supporting all create, read, update, and delete operations.
[This abstract was generated with the help of AI]
Keywords
Documents
