HarperDB: Eine unterlegene SQL-/NoSQL-Datenbank

  • Oct 22, 2023

HarperDB steht in vielerlei Hinsicht im Widerspruch zur gängigen Meinung. Aber braucht die Welt eine andere Datenbank?

Video: Was gibt es Neues in der Welt der Graphdatenbanken? Hier ist eine kurze Zusammenfassung

Hervorgehoben

  • Ist Windows 10 zu beliebt für sein eigenes Wohl?
  • 5 Wege, den besten Ort für den Berufseinstieg zu finden
  • So wird generative KI die Gig Economy zum Besseren verändern
  • 3 Gründe, warum ich dieses 300-Dollar-Android dem Pixel 6a von Google vorziehe

Beginnen Sie mit einem Kumpel in Ihrer Garage mit dem Programmieren einer neuen Datenbank. Verwenden Sie JavaScript. Benennen Sie es nach Ihrem Hund. Patentieren Sie Ihr eigenes Datenmodell. Gehen Sie nicht auf Open Source. Die Welt übernehmen.

Das ist das Erfolgsrezept von HarperDB. Es scheint so unwahrscheinlich, dass man sich fragt, ob es genial oder einfach nur verrückt ist.

Das explodierte Datenmodell

Stephen Goldberg und Kyle Bernhardy scheinen keine verrückten Leute zu sein. Sie verfügen über langjährige Erfahrung in der Unternehmensberatung und genau das war der Auslöser für den Einstieg bei HarperDB.

Goldberg und Bernhardy gefielen der Umfang und die Benutzerfreundlichkeit von NoSQL, wollten aber dennoch ANSI SQL für umsetzbare Analysen. Sie wollten die Möglichkeit haben, Multi-Table-Joins und Multi-Bedingungsanweisungen durchzuführen.

Sie und so ziemlich jeder andere in der Datenbankwelt. Die Konvergenz von SQL- und NoSQL-Lösungen ist etwas, das schon seit einiger Zeit im Gange ist. Eine typische Möglichkeit, dieser Anforderung gerecht zu werden, sind Datenbanken mit mehreren Modellen. Doch Goldberg und Bernhardy entschieden sich für einen anderen Ansatz.

Sie fühlten Multi-Modell war von Natur aus fehlerhaft als Entwurfsmuster, waren von der Leistung von Data Lakes und Kartenreduzierungslösungen frustriert und wollten etwas, das ACID-kompatibel ist.

Sie dachten, dass ein einziges Modell erforderlich sei, um alle oben genannten Punkte zu berücksichtigen, und erstellten daher das sogenannte explodierte Datenmodell, das auch die Grundlage ihres Patents bildet.

Das explodierte Datenmodell ist ein Patent, das die Entwickler von HarperDB entwickelt haben, um der Notwendigkeit gerecht zu werden, sowohl SQL als auch NoSQL zu integrieren. Bild: HarperDB

Im explodierten Datenmodell wird jedes Attribut eines JSON-Objekts oder jede Spalte einer SQL-Einfüge-/Aktualisierungsanweisung beim Schreiben zu einem Index. Diese Attribute und ihre Werte werden diskret auf der Festplatte gespeichert.

Goldberg und Bernhardy sagen, dass dadurch die Konfiguration von Fremdschlüsseln und Indizes entfällt und die Indizierung aller möglich ist Attribut/Spalte, ohne den Speicherplatzbedarf zu erhöhen, da nicht der gesamte Datensatz oder ein separater Index gespeichert wird Tische.

Bei der Suche wird Parallelisierung verwendet, um die Daten basierend auf den angeforderten Spalten wieder in einem Objekt zusammenzuführen. Dies hat laut Goldberg und Bernhardy den zusätzlichen Vorteil, dass Verknüpfungen genauso leistungsfähig sind wie die Suche in einer einzelnen Tabelle:

„Unser Datenmodell ermöglicht gleichzeitiges Lesen und Schreiben bei hohem Durchsatz. Jede Attributtransaktion ist diskret, und wir erleben keine Zeilensperren oder benötigen keine In-Memory-Transformation, die Datenbanklösungen oft beeinträchtigen und dazu führen, dass sie in HTAP-Szenarien scheitern.“

Kein Schema, keine Wartung

Es klingt jetzt weniger verrückt, obwohl sich ihr Ansatz der Zusammenführung von Daten auf den ersten Blick nicht völlig vom Multimodell-Ansatz zu unterscheiden scheint. Um dies zu bewerten, müsste man entweder Zugang zu deren Implementierung und Patent haben oder einen Vergleich mit konkurrierenden Lösungen durchführen, und das sind Möglichkeiten, die wir nicht haben.

Was jedoch immer noch etwas verrückt klingt, ist die Übernahme etablierter Lösungen in einem so überfüllten Markt wie dem Datenbankmarkt. Goldberg und Bernhardy sagen, dass sie nicht versuchen, mit etablierten Lösungen zu konkurrieren, sondern vielmehr mit ihnen zusammenzuarbeiten und sie zu erweitern.

Dies ist einer der Gründe, warum sie sich heute auf IoT konzentrieren, da sie darauf hinweisen, dass es viele Greenfield-Projekte gibt, die neue Architekturmuster benötigen, um erfolgreich zu sein und zu skalieren.

Sie zielen auch darauf ab, neben herkömmlichen SQL-Data-Warehouses als Sidecar zu arbeiten und SQL-Funktionen in Echtzeit bereitzustellen unstrukturierte Daten über ihren JDBC-Treiber verarbeiten oder Spalten-/Zeilendaten aus SQL-Datenbanken in dafür vorgesehene Anwendungen umwandeln mit JSON interagieren.

Aufgrund seines geringen Platzbedarfs und der Tatsache, dass IoT ein relativ neues Feld ist, zielt HarperDB speziell auf IoT-Anwendungsfälle ab. Bild: HarperDB

Tech-Pro-Forschung

  • Enterprise-IoT-Rechner: TCO und ROI
  • Richtlinie zum Internet der Dinge
  • Wie KMUs die Vorteile von IoT-Initiativen maximieren können
  • Einstellungskit: IoT-Entwickler
  • oT in der realen Welt: Fünf Top-Anwendungsfälle

HarperDB wirbt als schemalos und konfigurationsfrei. Goldberg und Bernhardy stellen klar, dass es zutreffender ist zu sagen, dass HarperDB über ein dynamisches Schema verfügt. Und keine Konfiguration bezieht sich auf die Tatsache, dass keine Konfiguration für Spalten, Fremdschlüssel, Datentypen oder Indizes erforderlich ist.

HarperDB verfügt über das Konzept von Schemata, Tabellen und Attributen. Schemata und Tabellen stellen lediglich Namensräume zum Suchen von Attributen und zum Erstellen logischer Sammlungen bereit. Attribute werden beim Einfügen/Aktualisieren reflexartig erstellt und haben keine Datentypen, aber ODBC- und JDBC-Treiber tasten Daten ab, um Datentypen in BI-Tools vorzuschlagen.

Von der Garage in die Welt

Goldberg und Bernhardy sagen auch, dass der Designgedanke hinter HarperDB darin bestand, es so einfach zu machen, dass es von Entwicklern aller Erfahrungsstufen genutzt werden kann. Sie wollten den Großteil der Komplexität der Entwicklung einer Datenbank verinnerlichen, anstatt diese Komplexität auf den Entwickler abzuwälzen. Sie sagen, dass der Installationsvorgang fünf Fragen erfordert und etwa ein bis zwei Minuten dauert.

Sie erwähnen die Durchführung eines Hackathons mit 78 Teams, und nur ein Entwickler hat eine Frage zur Implementierung gestellt. Sie fügen hinzu, dass sie seit der Veröffentlichung der Beta im August 2017 weniger als fünf Supportanfragen mit fast 800 Downloads von über 670 Entwicklern erhalten haben.

Dies berührt einen wichtigen Punkt: Welche Art von Unterstützung können Sie von HarperDB erwarten, welches Team steckt dahinter und welche Wachstumsaussichten gibt es?

Obwohl das Kernteam von HarperDB erfahren und eng vernetzt ist und schon seit langer Zeit zusammenarbeitet, beschäftigt die gesamte Organisation derzeit acht Mitarbeiter. HarperDB hat bisher rund 1,3 Millionen US-Dollar an Finanzmitteln eingesammelt und ist dabei, weitere 750.000 US-Dollar auf 1 Million US-Dollar einzusammeln, wobei eine mögliche Runde A in 12 bis 18 Monaten angestrebt wird.

Goldberg und Bernhardy sagen, dass dies es ihnen ermöglichen wird, das Team mit Talenten aus den Bereichen Technik und Vertrieb zu erweitern Sie arbeiten mit eingebetteten Geräte- und Systemintegrationspartnern zusammen, die das Produkt verkaufen und bereitstellen Unterstützung.

Node.js für den Sieg, im IoT und darüber hinaus?

Goldberg und Bernhardy legen Wert darauf, Node.js für die Talentrekrutierung zu nutzen. Man sagt Sie haben sich teilweise für Node.js entschieden, weil es leicht zu erlernen ist, und die meisten Entwickler kennen sich bereits mit JavaScript aus. Dies erleichtert die Gewinnung von Entwicklern erheblich.

Die Entscheidung, ein komplexes System wie dieses auf JavaScript aufzubauen, wäre vor ein paar Jahren wahrscheinlich missbilligt worden. Aber für Goldberg und Bernhardy ist Node.js ein Wettbewerbsvorteil.

HarperDB legt Wert darauf, leichtgewichtig und einfach zu konfigurieren zu sein, was zum Teil auf die Verwendung von Node.js für die Entwicklung zurückzuführen ist. Bild: HarperDB

Sie zitieren die Entwicklerumfrage von Stackoverflow der letzten Jahre, in der Node.js die Nummer 1 war und Die zweitbeliebteste und im IoT am häufigsten verwendete Sprache ist einer der Gründe, warum sie darauf abzielen IoT:

„HarperDB auf einem Mikrocomputergerät ist keine abgespeckte Version, keine Gateway-Lösung oder kein Caching-Mechanismus, sondern eine vollständige HTAP-Datenbank, die direkt auf dem Gerät mit Clustering läuft.“ Es handelt sich um die gleiche Codebasis wie bei der Server-Edition.

Es ist zustandslos, was bei Nichtgebrauch eine sehr geringe Ressourcennutzung wie CPU, RAM und vor allem die Akkulaufzeit ermöglicht.

Die Leute äußerten Bedenken hinsichtlich der Notwendigkeit, HarperDB näher an das Betriebssystem heranzuführen, und Node.js ermöglicht es Ihnen, C/C++-Bibliotheken nativ zu nutzen. Wir haben jedoch noch nicht festgestellt, dass dies erforderlich ist.

Dies gibt uns weiteren Spielraum für Innovationen und Möglichkeiten für Leistungs- und Funktionssteigerungen. Aufgrund der großartigen Community rund um NPM, der Fülle unterstützter Bibliotheken und der Benutzerfreundlichkeit von NPM konnten wir das Produkt außerdem unglaublich schnell liefern.

Da Node.js als Web-First-Sprache geschrieben ist, haben wir erstaunliche Vorteile bei der Verwendung für Dinge wie Clustering mit Socket.io und Express für unsere API gesehen. Und wir hatten Gute Erfahrungen bei der Interaktion mit der Node.js-Community."