SITIC SAI Online Sharing, Mittwoch 22. Februar 2023, 15 – 17 Uhr
Multi-Model-Datenbanken
Wie nutzen wir sie in der Architektur?
Hintergrund
Die lange Liste von Produkten der grossen Cloud-Provider, die sich ausschliesslich um Datenspeicherung kümmern, demonstriert:
Daten müssen der Verwendung angepasst abgelegt werden.
Verschiedene Prioritäten wie benötigte Konsistenzgarantien, Performance beim Lesen/Schreiben und Kosten aller häufig benutzten Operationen auf den Daten zwingen uns, genau zu evaluieren, welche Anforderungen die Anwendungen stellen. Wie die Keynote dieses Online Sharings aufzeigen wird, erlauben es uns Multi-Model-Datenbanken, diese Prioritäten später in der Umsetzung einer Lösung zu setzen. Sie bieten uns viel Freiheit in der Datenmodellierung, ohne die Notwendigkeit, Daten von einer Speicherlösung zu einer anderen zu migrieren oder redundant abzulegen.
© SITIC 2023
Stellen wir uns das folgende Szenario vor:
Wir bauen ein Ticketsystem. Die Benutzer-Stammdaten und zugehörigen Profile wollen wir in einigen transaktionalen Tabellen halten und dafür ein relationales Datenbankschema benutzen. So geht bei der Authentifizierung sicher nichts schief, da die Daten präzise strukturiert und nach strengen Kriterien validiert sind. Für die Tickets möchten wir dafür eher flexible dokumentenbasierte Daten vorhalten.
© SITIC 2023
Vielleicht werden Tickets kollaborativ bearbeitet und wir müssen schnell lokale Kopien erstellen und zwischen Clients synchronisieren können (vgl. “Eventual Consistency”, siehe Side Bar). Für den Inhalt eines Tickets möchten wir wiederum flexible Attribute erlauben, die von Kunde zu Kunde verschieden sind und sich nicht einheitlich strukturieren lassen. Wir verzichten also auf ein rigides Datenbankschema dafür. Solche Ticket-Attribute könnten für einen unserer Kunden z.B. Verfasser, Bearbeiter und Reviewer sein. Kaum implementiert, bemerken wir, dass wir eigentlich gerne alle einem Benutzer zugewiesenen Tickets anzeigen würden. Eine Kollegin weist uns darauf hin, dass man die Beziehungen zwischen Tickets und Benutzer leicht als Graph modellieren kann und graph-basierte Abfragen schnell zum Ziel führen. Natürlich sollten Änderungen an Tickets durch andere Benutzer möglichst zügig auf allen Clients synchronisiert werden, wozu wir auf die Realtime-Updates über Websockets zurückgreifen.
Zielsetzung
Wir werden eine Auswahl der folgenden Schlüsselfragen diskutieren, die von den Teilnehmenden priorisiert werden:
- Welche Aspekte von existierenden Datenspeicherungsprodukten bereiten uns Kopfschmerzen? Welche Kompromisse gehen wir mit existierenden Lösungen ein?
- Was sind die grössten Nachteile beim Einsatz von mehreren verschiedenen Datenbank-Produkten, unter anderem bezüglich Monitoring, Testing, Fehlerbehandlung, Caching?
- Welche Datenmodellierungs-Paradigmen sind für welche Szenarien am verständlichsten?
- Wann wollen wir weiter ein rigides Datenbankschema verwenden?
- Welche Paradigmen helfen mit verteilten Daten und “Optimistic Replication” (siehe Side Bar)?
- Passen Multi-Model-Datenbanken in eine verteilte (Service-)Architektur?
- Was sind die spezifischen Herausforderungen in der Datensynchronisation?
- Auf welchen Ebenen ist es leicht, die Sicherheit von unbefugten Datenzugriffen zu garantieren?
- Wie weit soll die Verwaltung von Zugriffsrechten bzw. die Autorisierung Aufgabe der Datenbank sein?
Vorbereitung
Von den Teilnehmenden wird erwartet, dass sie sich anhand eines Fragenkatalogs vorbereiten. Die Fragen werden ihnen zusammen mit der Teilnahmebestätigung zugesandt. Dabei erhalten sie ebenfalls die Zugangsdaten zum Online-Event.
Die Kommunikation wird über Teams (www.microsoft.com/de-ch/microsoft-teams/) erfolgen. Bitte sorgen Sie im Vorfeld dafür dass Sie mit einer Desktop-Installation oder einem kompatiblen Browser ausgestattet sind. Ein Headset wird zur besseren Verständlichkeit empfohlen.
Teilnehmende
Willkommen sind Business IT Professionals, welche im Unternehmen Aufgaben der Digitalisierung, der IT-Architektur, des Daten- und Informationsmanagements, in Data Science oder in DevOps wahrnehmen.
Moderation & Keynote
Agenda
- (30’’) Eine Keynote präsentiert zuerst das Paradigma “Multi-Model-Datenbank” anhand des innovativen Datenbanksystems SurrealDB.
- (90’’) Diskussion präferenzierter Fragen
Nachlese
Die Nachlese stellt den sinnvollen Einsatz von Multi-Model-Datenbanken im Kontext der gewonnenen Erkenntnisse dar.
Anmeldung
Verbindliche Anmeldung bitte via Email an kurt.wehrli@sitic.org
Kosten
Für SITIC-Mitglieder ist die Teilnahme im Rahmen der Jahresmitgliedschaft unentgeltlich.
Nicht-Mitgliedern werden 375 CHF in Rechnung gestellt, der Zahlungseingang muss vor dem Sharing erfolgen.
Multi-model Database?
In the field of database design, a multi-model database is a database management system designed to support multiple data models against a single, integrated backend. In contrast, most database management systems are organized around a single data model that determines how data can be organized, stored, and manipulated. Document, graph, relational, and key–value models are examples of data models that may be supported by a multi-model database.
[Reference]
Eventual Consistency?
Eventual consistency is a consistency model used in distributed computing to achieve high availability that informally guarantees that, if no new updates are made to a given data item, eventually all accesses to that item will return the last updated value.
[Reference]
Optimistic Replication?
Optimistic replication (also known as lazy replication) is a strategy for replication, in which replicas are allowed to diverge. Traditional pessimistic replication systems try to guarantee from the beginning that all of the replicas are identical to each other, as if there was only a single copy of the data all along. Optimistic replication does away with this in favor of eventual consistency, meaning that replicas are guaranteed to converge only when the system has been quiesced for a period of time. As a result, there is no longer a need to wait for all of the copies to be synchronized when updating data, which helps concurrency and parallelism. The trade-off is that different replicas may require explicit reconciliation later on, which might then prove difficult or even insoluble.
[Reference]
Top 19 Rust Distributed Projects
SurrealDB is a fully ACID transactional, scalable, distributed, collaborative, multi-model DBMS for the realtime web, initially released in 2022.