Der Kampf der Schlüsselwertspeicherung

    Was ist der Schlüssel-Wert-Speicher, den Sie in einem Kampf mit sind?


    Ich habe eine Liste von der Site db-engines.com ausgeliehen (übrigens eine sehr interessante Site, die ich empfehle), die alle Datenbanken mit einer von Null verschiedenen "Popularität" enthält. Markieren Sie nicht die Basen, die Sie gerade ausprobiert haben, sondern nur die, die sich gerade drehen und Ihrem Unternehmen Geld einbringen.

    Bitte beachten Sie: MongoDB ist KEIN Schlüsselwertspeicher, aber Sie können dafür stimmen, siehe Punkt "Dokumentenspeicher als Schlüsselwert".

    Wenn Sie eine beliebte Datenbank vergessen haben (d. H. Die Autoren der Website db-engines.com haben dies vergessen), füge ich der Umfrage hinzu.

    Welche Schlüsselwerteigenschaften sind für Sie wichtig?


    Eine bunte Reihe von Anforderungen. Bitte machen Sie einen nachdenklichen Spaziergang durch sie. Bitte beachten Sie, dass viele der Eigenschaften sind widersprüchlich, weil die Hälfte auf der Funktionalität konzentriert und die andere - die Leistung von denen im Allgemeinen widersprechen. Einige Eigenschaften sind nur möglich, wenn es andere Eigenschaften oder Kombinationen gibt, andere sind verbesserte / geschwächte Versionen von einander usw. Die

    Abschnitte 2 bis 6 beschreiben einige sinnvolle Eigenschaften von Transaktionen (im Übrigen benötigen Sie möglicherweise überhaupt keine Transaktionen: (z. B. einfache get und put by the key sind noch keine Transaktionen), dann überprüfen Sie keine dieser Punkte), Punkte 7-9 - der Konsistenzgrad der oben angegebenen Eigenschaften.

    "Nativer Client für Java / C / C ++ / C #" bedeutet, dass der Client für diese Sprachen nicht nur eine Anforderung in der Sprache bildet, in der die Datenbank geschrieben ist, sondern auch direkt mit der Datenbank zusammenarbeitet. Im Wesentlichen bedeutet dies , dass die schriftliche Basis ( im Lieferumfang enthalten) in dieser Sprache. Aufgrund der Anwesenheit von Dingen wie Protocol Buffers, Thrift und Detailed kann die Basis im Allgemeinen in mehreren Sprachen geschrieben werden.

    Ich habe einige wichtige Eigenschaften zu 100% vergessen, schreibe eine persönliche, füge der Umfrage hinzu.

    Nur registrierte Benutzer können an der Umfrage teilnehmen. Bitte komm rein .

    Was ist der Schlüssel-Wert-Speicher, den Sie in einem Kampf mit sind?

    • 1,4% Aerospike 20
    • 0,2% ArangoDB 4
    • % 4,5 Berkeley DB 62
    • 0,7% Kohärenz 10
    • 1,2% DynamoDB 17
    • 2% Ehcache 28
    • 0% FoundationDB 1
    • 0,2% Gittergewinn 4
    • 0,2% GT.M 4
    • 0% Hamsterdb 1
    • 1,3% Hazelcast 18
    • 0% Hibari 0
    • 0% HyperDex 0
    • 0,2% Infinispan 4
    • % 0,5 Kyoto Cabinet 7
    • 3,1% LevelDB 42
    • 0,5% MapDB 7
    • 37,7% gespeichert 511
    • 0,2% NCache 3
    • 0,5% Oracle NoSQL 8
    • 0,1% Projekt Voldemort 2
    • 53,9% Redis 731
    • 3,2% Riak 44
    • 0,5% RocksDB 7
    • 0% Scalaris 0
    • 0,2% SimpleDB 4
    • 0% Sqrrl 0
    • 0% STSdb 0
    • 1,7% Tarantool 24
    • 0,8% Tokyo Cabinet 11
    • 0,2% Tokyo Tyrant 4
    • 0% WebSphere eXtreme Scale 0
    • 0% XAP 1
    • 0% ZODB 1
    • 1,6% Sonstiger Schlüsselwertspeicher (werde ich in den Kommentaren angeben) 22
    • 20,6% relationale Datenbank als Schlüsselwertspeicher (Oracle, MySQL, PostgreSQL, ...) 279
    • 20,9% Die Aufbewahrung der Dokumente in einem Schlüssel-Wert (MongoDB, CouchDB, Couchbase, ...) 284
    • 4,5% eine andere Art von Datenbank als Schlüsselwertspeicher (z. B. Grafik: Neo4j, Breitspaltenspeicher: Cassandra, HBase, ...) 61
    • 6,1% proprietärer Schlüsselwertspeicher 83
    • 8,1% Ich verwende keinen Schlüsselwertspeicher 111
    • 0,4% LMDB 6
    • 0% LedisDB 1
    • 0,1% GoLevelDB 2
    • 0,2% BoltDB 4

    Welche Schlüsselwerteigenschaften sind für Sie wichtig?

    • 62,3% Skalierbarkeit (Ich möchte durch Hinzufügen von Servern mehr speichern / mehr Auslastung aushalten) 358
    • 34,8% Atomizität von Transaktionen mit einem Schlüssel (entweder alle Wertänderungen aufzeichnen oder nichts) 200
    • 17,5% Isolierung von Transaktionen auf einem Schlüssel (mehrere gleichzeitige Transaktionen auf einem Schlüssel sind verboten) 101
    • 33,2% Haltbarkeit von Transaktionen (nach Abschluss der Transaktion verliere ich definitiv keine Daten) 191
    • 12,1% Multiple Key Transaction Atomicity 70
    • 6,9% Isolierung von Transaktionen für mehrere Schlüssel (mehrere gleichzeitige Transaktionen, die sich mit Schlüsseln überschneiden, sind verboten) 40
    • 6,6% Transaktionen innerhalb des Servers (auf dem Domänencontroller / die gesamten Datenbankänderungen werden sich im Laufe der Zeit ausbreiten) 38
    • 5,2% Transaktionen innerhalb von DC (Änderungen verteilen sich über die gesamte Basis im Laufe der Zeit) 30
    • 9,4% Transaktionen zur gesamten Basis 54
    • 44,4% Fehlertoleranz (Server ausgebrannt - weiterarbeiten) 255
    • 20,2% Kühle Fehlertoleranz (DC ausgeschaltet - weiterarbeiten) 116
    • 20,2% Replikation von Änderungen zwischen Servern (die Eigenschaft ist geringfügig schwächer als die Skalierbarkeit) 116
    • 14,1% Schlüsselreihenfolge (die Möglichkeit, die Schlüssel in sortierter Reihenfolge zu durchlaufen, um den nächstgrößeren / -kleineren Schlüssel als den angegebenen Schlüssel zu finden usw.) 81
    • 20,2% Garantierte maximale Reaktionszeit 116
    • 18,4% Abonnement für Veranstaltungen mit Schlüssel 106
    • 15,8% Protokollierung (einige, zumindest möchte ich in der Lage sein zu sehen, was mit der Datenbank zum Debuggen passiert) 91
    • 5,9% Protokollieren von Änderungen zu reproduzieren 34
    • 16,3% Asynchronous API (künftig durch Schlüssel empfangen) 94
    • 40% Datenspeicherung im Speicher (für jeden Schlüssel auf einer Festplatte - zu langsam) 230
    • 23,8% Speicherplatz auf der Festplatte (z. B. aus Gründen der Zuverlässigkeit, wenn die Datenbank nicht verteilt ist) 137
    • 10,4% Windows-Unterstützung (ich möchte die Basis auf meinem Entwicklungs-Windows-System betreiben / ich habe einen Windows-Server) 60
    • 6% Unterstützung für MacOS (Ich möchte mit der Basis seiner Eigenschaft Entwicklung Mac fahren) 35
    • 5,9% Remote-Anforderungen (RPC, Thin Clients) 34
    • 9,2% Native Client für Java 53
    • 11,3% Native Client für C / C ++ 65
    • 9,5% Native Client für C # 55
    • 11,4% Web - Interface (send CRUD über HTTP - Anfragen) 66
    • 16,2% Maulkorb zur Überwachung der Basis 93
    • 8,3% Sicherung in relationale Datenbank 48
    • 28,3% Einige Backups 163
    • 10,6% Es werden keine Eigenschaften benötigt, ebenso der Schlüsselwert der Lagerung im Prinzip 61

    Jetzt auch beliebt: