Ihre abstrakten Anforderungen rufen "PostgreSQL" nach mir. Ich denke jedoch, dass es sich lohnt, auf dem Laufenden zu bleiben, was die Bourgeoisie vorhat.
Gratis Gegenstände
- CouchDB - eine der ersten NoSQL-Datenbanken, leistungsstarkes Map / Reduce-Abfragesystem, hochverteilt und fehlertolerant. Einer der besseren NoSQL-Konkurrenten.
- Hyperdex - sehr neue, verteilte Hash-Tabelle mit Suchfunktionen.
- Riak - verteilte Hash-Tabelle, die einen gewissen Respekt verdient.
Seltsames freies Zeug
- Metakit - mehr eine eingebettete Datenbank wie SQLite, aber nicht SQL-basiert, also prozeduraler.
- FramerD - ähnlich wie eine klassische "Netzwerk" -Datenbank, sehr zeigerorientiert . Vielleicht tot?
- Magma - Smalltalk OODBMS. Cool, aber nicht gut dokumentiert.
Unfreie Sachen
- AllegroGraph - RDF (Graph) Datenbank, unterstützt SPARQL. Lisp-Geschmack.
- Caché - eine hybride relationale / OO-Datenbank, die ursprünglich auf MUMPS (IIRC) basiert.
- Objektivität - Eine der letzten wirklich großen OODBs. Sehr leistungsstark, beeindruckend und teuer.
- VoltDB - Hoch skalierbare, meist relationale Datenbank. Unterstützt "die meisten" SQL. Sehr neu. Ich denke, sie haben auch eine Community-Version.
Fazit
Ich habe keines dieser Dinge ausgiebig benutzt. Ich habe mit den meisten ein bisschen gespielt und bin immer mit PostgreSQL zurückgekehrt. Wenn Sie sich Ihre Anforderungen ansehen, ist die einzige PostgreSQL-Lösung, die nicht sofort verfügbar ist, die Skalierbarkeit. Andererseits ist es für meine Zwecke viel einfacher, Hardware im Wert von 4000 US-Dollar auf einen einzelnen dedizierten Datenbankcomputer zu werfen, als Cloud-Knoten oder Low-End-Computer im Wert von 4000 US-Dollar auf dieses Problem zu werfen. Und es gibt Möglichkeiten, mit PostgreSQL eine Skalierbarkeit zu erzielen, beispielsweise mit EnterpriseDB .
Es macht großen Spaß, mit diesen Dingen nebenbei herumzuspielen, aber wenn es darum geht, wertvolle, nicht reproduzierbare Produktionsdaten in etwas zu stecken, treten eine Reihe langweiliger Attribute wie Zuverlässigkeit, Stabilität und langfristige Rentabilität in den Vordergrund.
Gedankenexperiment für Sie
Bedenken Sie. Stellen Sie sich vor, Sie sind Mark Zuckerberg und müssen entweder Ihre Codebasis oder Ihre Daten preisgeben. Sie können Ihr gesamtes Entwicklungspersonal behalten, müssen aber entweder Ihren gesamten Code aufgeben - jede Zeile, sogar alle Entwicklererinnerungen darüber, wie sie alles implementiert haben, sind verschwunden -, aber Sie können alle Ihre Benutzerkonten und alle Ihre hochgeladenen Benutzer behalten Daten und all das, oder Sie können alle Daten aufgeben. Behalten Sie alle Strukturen und Server sowie die Konfiguration und das Setup bei, verlieren Sie jedoch jede Zeile in jeder Tabelle in jeder Datenbank.
Es sollte offensichtlich sein, dass es schlimmer wäre, die Daten zu verlieren. Warum würden alle Ihre Benutzer all diese Daten neu generieren? Denken Sie an all die verlorenen Marketingdaten, mit denen Facebook tatsächlich ihr Geld verdient. Und es gibt Unmengen von Unternehmern, die sich die Gelegenheit zunutze machen, Menschen dazu zu bringen, ihren Facebook-Klon zu verwenden. Jetzt würden all jene nicht mehr autorisierten Ex-Facebook-Nutzer über Alternativen nachdenken. Wenn sie andererseits die Codebasis verlieren, können sie sie möglicherweise sogar noch besser als jetzt wiederherstellen, aber sie können in sehr kurzer Zeit etwas online haben. Verdammt - sie könnten wahrscheinlich kaufenDie Facebook-Klon-Codebasis einer anderen Person lädt sie mit den tatsächlichen Daten, aber Sie können ihre Daten nicht einfach kopieren. Wenn Facebook immer noch alle wichtigen Daten auf seinen Servern hat, ist der Anreiz, das Unternehmen zu verlassen, viel geringer. Immer noch schlecht, aber noch viel weniger. Überraschenderweise weniger.
Die Ironie ist, dass es viel einfacher ist, alle Ihre Daten bei einem verrückten Unfall zu verlieren, als Ihren gesamten Code zu verlieren. Für die meisten Internet - Unternehmen, aber die Daten sind das Unternehmen, es ist Ihr wertvollstes Kapital. Und dies ist ein wichtiger Grund, eine traditionelle, bewährte, altmodische, nicht-sexuelle relationale Datenbank zu verwenden.