1. Foren
  2. » Kommentare
  3. » Applikationen
  4. » Alle Kommentare zum Artikel
  5. » Digg: NoSQL statt MySQL

Cassandra statt MySQL

Anzeige
  1. Thema

Neues Thema Ansicht wechseln


  1. Cassandra statt MySQL

    Autor nepumuk 15.03.10 - 16:44

    Müsste es nicht eher heißen:

    > NoSQL statt SQL
    oder aber
    > Cassandra statt MySQL

    sonst fangen hier wieder die "MySQL ist lahm, SQL-Server bzw. Oracle ist viel besser weils Geld kostet"-Posts an.
    Im Kern wird die Umstellung wohl eher weniger an MySQL gelegen haben, als daran, dass Relationale Datenbanken den Anforderungen von Web 2.0 Anwendungen nur bedingt gerecht werden.

  2. Re: Cassandra statt MySQL

    Autor zustimmer 15.03.10 - 16:46

    "Im Kern wird die Umstellung wohl eher weniger an MySQL gelegen haben, als daran, dass Relationale Datenbanken den Anforderungen von Web 2.0 Anwendungen nur bedingt gerecht werden."

    Genau, z.B. wegen der Skalierbarkeit usw...

  3. Re: Cassandra statt MySQL

    Autor makler versicherung 15.03.10 - 17:27

    Skalierbarkeit kriegst Du bei Mysql über replikation und/oder mehr Cores.

    Wenn Du 100 Kunden hast, die Twitter machen, müsstest Du eine SQL-Spalte extra für deren Tweet-Adresse machen. Dasselbe für Skype, SipGate, icq, M$-IM, usw. Oder einer hat zwei Email-Adressen für verschiedene Zwecke.

    Du endest in einem Wust von Spalten mit 99% NULL-Feldern oder mit vielen kleinen Extra-Tabellen.
    Da sind keyval-Banken besser.

    Es ist ja wohl auch klar, das man die wichtigen Entitäten des Geschäftsmodelles wie Produkt:<Name, Preis, Verfügbarkeit,...> klassisch als SQL macht, und meist nur Zusatzschnickschnack per keyval-Banken.

    0:1:* Null, Eins, Viele. Mit Viele kommen viele nicht klar. Und ihre kleine 1:1 1:*-Welt zerbricht oder wird nicht mehr kontrollierbar.
    Man hat z.B. nicht eine Email-Adresse, man hat viele für verschiedene Zwecke. usw.
    Oder man hat mehrere Adressen bei Amazon hinterlegt.
    Usw.

  4. Re: Cassandra statt MySQL

    Autor Tomanie Gigan 15.03.10 - 19:44

    makler versicherung schrieb:
    --------------------------------------------------------------------------------
    > Skalierbarkeit kriegst Du bei Mysql über replikation und/oder mehr Cores.

    > Wenn Du 100 Kunden hast, die Twitter machen, müsstest Du eine SQL-Spalte
    > extra für deren Tweet-Adresse machen. Dasselbe für Skype, SipGate, icq,
    > M$-IM, usw. Oder einer hat zwei Email-Adressen für verschiedene Zwecke.

    > Du endest in einem Wust von Spalten mit 99% NULL-Feldern

    Bei den enormen Kosten pro Byte (mehrere Euro?) ist das allerdings ein Problem. Vielleicht sollte man mit 5Bittigen Codesätzen experimentieren um dieses Problem noch weiter einzudämmen?

  5. Re: Cassandra statt MySQL

    Autor cass andra 15.03.10 - 20:02

    Bei Hostern oder EC2/S3 von Amazon bezahlst Du dann aber dasselbe für die Luft als wenn dort Nutzdaten drin wären.

    Komprimieren geht auch nicht gut, weil anständige Records schliesslich eine Prüfsumme am Ende haben. Und die Nullen vielleicht gar nicht mit Nullen gefüllt werden sondern irgendwas drin steht. Deine FS füllen gelöschte Dateien ja auch nicht mit 0-Blöcken auf. Insbesondere bei SSDs ist das unerwünscht.

    D.h. "mal eben" mit gzip ein Backup übers Netz schieben (was dann Traffic bei Google oder S3 kostet) ist auch nicht so optimal, als wenn man es zu Hause oder SOHO-Lan machen würde.

    Und ab einem gewissen Level ist eine unnötige Aufblähung doch lästig.

  6. Re: Cassandra statt MySQL

    Autor anon123 16.03.10 - 09:39

    makler versicherung schrieb:
    --------------------------------------------------------------------------------
    > Du endest in einem Wust von Spalten mit 99% NULL-Feldern oder mit vielen
    > kleinen Extra-Tabellen.
    > Da sind keyval-Banken besser.

    Was ich hier nicht verstehe, was hindert mich denn daran eine simple Tabelle mit zwei Feldern (key, value) in einer relationalen Datenbank anzulegen?

    Das Problem was Cassandra löst hat eigentlich nicht viel mit NoSQL und relationalen Datenbanken zu tun. Cassandra skaliert besser, weil dort nur "eventual consistency" garantiert wird. Also bei mehreren Datenbankservern heißt das, eine Änderung auf einem Server ist irgendwann auch auf den anderen Servern sichtbar. Im Gegensatz dazu bedeuted normale Konsistenz, dass eine Änderung auf einem Server sofort auf den anderen sichtbar ist. Bei Digg ist es nunmal nicht so entscheidend, ob ein paar Minuten vergehen, bis ein Artikel für alle sichtbar ist. Da ist es viel wichtiger, dass die Seite schnell aufbaut und viele Leute bedienen kann.

    Auch der Begriff NoSQL ist sehr irreführend. NoSQL vs. SQL ist ungefähr eine so sinnvolle Gegenüberstellung wie "rote Dinge" vs. "nicht rote Dinge". Da gibt es schon so viele Unterschiede innerhalb der Gruppen, dass da keine gescheite Aussage rauskommen kann.

  7. Re: Cassandra statt MySQL

    Autor DB Man 16.03.10 - 09:47

    @anon123
    Das klingt so als wäre diese NoSQL-Db sowas ähnliches wie eine umkonfigurierte LDAP-DB. Stark optimiert für Lesezugriffe, sehr wenig bis gar nicht optimiert fürs Schreiben. Kein ACID, aber doch gut skalierbar und schnell, sehr schnell.

    Kann das sein, dass die diversen Verzeichnis-DBs die Wurzel dieser NoSQL-DBs sind?

  8. Re: Cassandra statt MySQL

    Autor Mindfuck 16.03.10 - 10:56

    anon123 schrieb:
    --------------------------------------------------------------------------------
    > Was ich hier nicht verstehe, was hindert mich denn daran eine simple
    > Tabelle mit zwei Feldern (key, value) in einer relationalen Datenbank
    > anzulegen?

    Die Armselige Performance (im vergleich zu einer Optimierten Datenbank) und die ungenügende Abfrage-Unterstützung durch SQL.

  9. Re: Cassandra statt MySQL

    Autor highrider 16.03.10 - 11:28

    makler versicherung schrieb:
    --------------------------------------------------------------------------------
    > Skalierbarkeit kriegst Du bei Mysql über replikation und/oder mehr Cores.

    Aha, und das funktioniert auch mit 500 replizierten Datenbanken, die über die ganze Welt verteilt sind? Glaub ich nicht.

    highrider

  10. Re: Cassandra statt MySQL

    Autor anon123 16.03.10 - 11:33

    @DB Man
    Wie gesagt ist NoSQL ein schlechter Begriff um irgendwelche Aussagen zu treffen. Da drin stecken die verschiedensten Datenbanken Da gibt es das dokumentenbasierte CouchDB, das objektbasierte db4o, die embedded key-value Datenbank BerkleyDB und vieles mehr. Die alle haben nur eine Gemeinsamkeit: sie können kein SQL. Sonst haben sie die unterschiedlichsten Eigenschaften, Ursprünge und Anwendungsfälle.

    Cassandra ist gibt einfach die starke Konsistenz zugunsten von Lese- und Schreibperformance auf, garantiert aber immerhin "eventual consistency". Auf andere NoSQL Datenbanken trifft das nicht zu.


    @Mindfuck
    Ah ja und wenn man SQL unterstützt ist es ja verboten noch andere APIs anzubieten. Außerdem dürfen relationale Datenbanken keine Algorithmen optimiert für einfache key-value Tabellen benutzen.

  11. Re: Cassandra statt MySQL

    Autor auch intel 16.03.10 - 12:00

    anon123 schrieb:
    --------------------------------------------------------------------------------
    > makler versicherung schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Du endest in einem Wust von Spalten mit 99% NULL-Feldern oder mit vielen
    > > kleinen Extra-Tabellen.
    > > Da sind keyval-Banken besser.

    > Was ich hier nicht verstehe, was hindert mich denn daran eine simple
    > Tabelle mit zwei Feldern (key, value) in einer relationalen Datenbank
    > anzulegen?

    Ich zitiere:
    > > Du endest ... oder mit vielen kleinen Extra-Tabellen.

    Viele kleine Extra-Tabellen sind sehr lästig. Z.b. eine Extra-Tabelle nur für Schulbuch-Preise. Oder eine Tabelle für ICQ-Nummern, eine für Email-Adressen, eine für Skype-Namen, eine für RIM-Adresse usw. .

    Also würde man key/art/value als je eine Tabelle für Ziffern, eine mit Floats und eine mit Strings machen.
    D.h. alle ICQ-Nummern usw. landen zusammen mit allen email-adressen und skype-namen in dieser tabelle:
    id-des-Kunden / type = { skype, email, icq, rim } / value
    Da kann man dann Kindle-IDs oder Ipad-IDs schnell nachtragen, wenn man das mal braucht.

    Siehe auch ct-Bericht über patentierte Polizei-Datenbank vor 10 oder mehr Jahren. Die können alles mit 6-9 Tabellen OHNE weitere Zusatztabellen realisieren, wenn ich es richtig verstanden habe.

  12. Re: Cassandra statt MySQL

    Autor anon123 16.03.10 - 12:32

    @auch intel
    Also wenn ich dich richtig verstehe, dann ist das Problem die Typisierung der Felder. Das ist doch aber keine feste Eigenschaft von relationalen Datenbanken. Wie ist das denn bei NoSQL-Datenbanken gelöst?

    Bei BerkleyDB sind zum Beispiel Key und Value einfach als Binärdaten gespeichert. Der Nutzer muss selbst wissen, wie er die zu interpretieren hat. Prinzipiell gibt es keinen Grund, warum man das mit ner relationalen Datenbank nicht auch machen kann. Die typischen SQL-Abfragen gehen dann natürlich nicht mehr sinnvoll, sondern nur noch das Finden eines konkreten Schlüssels. Aber das ist bei BerkleyDB genauso und ich kann mir nicht vorstellen, dass das bei anderen NoSQL-Datenbanken anders ist.

    Entweder man macht bestimmte Einschränkungen an die Datenfelder ("nur Text", "nur Zahlen", "nur JSON", "nur Binärobjekte mit dieser festen Struktur") und hat dann entsprechend optimierte Algorithmen, oder man macht keine Einschränkungen und verwendet dann allgemeine Algorithmen. Ich seh nicht wo es einen Unterschied macht, ob die Software SQL und Relationen unterstützt.

  13. Re: Cassandra statt MySQL

    Autor huai wei 16.03.10 - 13:24

    Die Records sind i.d.R. gleich lang, damit man genau ausrechnen kann, was wo ist. Genaues Springen geht z.B. bei mp2, aber nicht mehr bei mp3. Daraus ergeben sich bestimmte Eigenheiten.

    Varchars sind sehr "unbeliebt". ICh weiss allerdings auch nicht, wieso es kein varchar(10:123) gibt wo man 10 in die Row schreibt und den Rest hinten dran hängt/auslagert.

    Man muss also wissen, welcher Datentyp der größte ist, und entsprechend Speicher im gleichen Abstand reservieren.

    Bei berkeley hast du den Key und den Record, den Du zerlegen kannst. Das ist schon sehr Grob-Granular. Soweit ich weiss, nutzen die dann 1 Festplatten-Block o.ä. pro Record. Das fällt meist halt nicht auf, weil es Sparse-Files sind.
    perldoc AnyDBM_File
    und dort "Size Limits" mal ansehen bzw. die C-Libraries bzw. (3)-Manpages zu Berkeley-DB und den anderen dbm u.ä. geben wohl mehr Infos.

    Bei SQL-Tabellen hat man 512 oder 4096-Byte-Blocks und packt dann die Records dort rein. Ggf. bleibt Luft am Ende frei. In jedem Block! dieser Tabelle. Oder man packt varchar-Daten dort rein. Das geht manchmal, aber auch nicht immer. Also wird mans wohl generell auslagern.

    Und wegen der anderen Fragen: Die Abfragesprachen wollen gelernt werden. Medien-Informatiker und SQL sind oft leider wenig befreundet.

  14. Re: Cassandra statt MySQL

    Autor 16Bitiges Bit 17.03.10 - 00:32

    DB Man schrieb:
    --------------------------------------------------------------------------------
    > @anon123
    > Das klingt so als wäre diese NoSQL-Db sowas ähnliches wie eine
    > umkonfigurierte LDAP-DB. Stark optimiert für Lesezugriffe, sehr wenig bis
    > gar nicht optimiert fürs Schreiben. Kein ACID, aber doch gut skalierbar und
    > schnell, sehr schnell.
    >
    > Kann das sein, dass die diversen Verzeichnis-DBs die Wurzel dieser
    > NoSQL-DBs sind?

    LDAP ist viel neuer :)

  15. Re: Cassandra statt MySQL

    Autor 16Bitiges Bit 17.03.10 - 00:33

    anon123 schrieb:
    --------------------------------------------------------------------------------
    > @DB Man
    > Wie gesagt ist NoSQL ein schlechter Begriff um irgendwelche Aussagen zu
    > treffen. Da drin stecken die verschiedensten Datenbanken Da gibt es das
    > dokumentenbasierte CouchDB, das objektbasierte db4o, die embedded key-value
    > Datenbank BerkleyDB und vieles mehr. Die alle haben nur eine Gemeinsamkeit:
    > sie können kein SQL. Sonst haben sie die unterschiedlichsten Eigenschaften,
    > Ursprünge und Anwendungsfälle.
    >
    > Cassandra ist gibt einfach die starke Konsistenz zugunsten von Lese- und
    > Schreibperformance auf, garantiert aber immerhin "eventual consistency".
    > Auf andere NoSQL Datenbanken trifft das nicht zu.

    Auf Lotus Notes/Dominio trifft das schon zu.

Neues Thema Ansicht wechseln


Entschuldigung, nur registrierte Benutzer dürfen in diesem Forum schreiben. Klicken Sie hier um sich einzuloggen


Meistgelesen
  1. Kino.to-Chef

    "Ich habe neben dem Rechner geschlafen"

  2. Kulturelles Gedächtnis

    Wie speichern wir das Internet?

  3. Raumfahrt

    SpaceX-Raumfähre ist gestartet

  4. Absturz an der Börse

    Facebook überbewertet?

  5. Prozessoren

    Rechenfehler machen CPUs effizienter


Meistkommentiert
  1. Kommentare: 239 | letzter Beitrag 11:06 Uhr

  2. Kommentare: 111 | letzter Beitrag 12:10 Uhr

  3. Kommentare: 89 | letzter Beitrag 11:30 Uhr

  4. Kommentare: 75 | letzter Beitrag 11:16 Uhr

  5. Kommentare: 57 | letzter Beitrag 09:40 Uhr

Mehr



Haben wir etwas übersehen?

E-Mail an news@golem.de


Burnnote: "Diese Nachricht zerstört sich in 3 Minuten selbst"
Burnnote
"Diese Nachricht zerstört sich in 3 Minuten selbst"

Wer es den Auftraggebern aus den Agentenfilmen der Serie "Kobra, übernehmen Sie!" oder den Filmen der Reihe Mission Impossible gleichtun will, kann mit Burnnote über das Web Nachrichten verschicken, die nach einem definierten Zeitraum automatisch gelöscht werden.

  1. Forbes-Magazin Steve Ballmer macht Microsoft zu einem zweiten RIM
  2. Kritische Sicherheitslücke Libpng in Skype für Linux repariert
  3. Instant Messaging Google bietet für Meebo

Gelöscht: Neues Foto vom Wii-U-Controller
Gelöscht
Neues Foto vom Wii-U-Controller

Ein neues Foto von Nintendos Wii-U-Controller ist im Netz aufgetaucht. Ein Mitarbeiter eines Spielestudios hat es kurzzeitig veröffentlicht.

  1. Microsoft Klares Dementi zu Neue-Xbox-Präsentation 2012

Urheberechtsdebatte: Piratenpartei legt Zehnpunktekatalog vor
Urheberechtsdebatte
Piratenpartei legt Zehnpunktekatalog vor

Die Piraten erklären, sie wollten trotz eines Rechts auf Privatkopie und DRM-Abschaffung "weiterhin eine faire und angemessene Vergütung für Urheber gewährleisten".

  1. Urheberrecht SPD plädiert für "Vergüten statt verbieten"
  2. Urheberrecht C3S statt Gema
  3. CDU-Fraktionsvizechef "Anonymous handelt zutiefst antidemokratisch"

  1. Topmanager: Apple-Chef Tim Cook verdiente 2011 am meisten
    Topmanager
    Apple-Chef Tim Cook verdiente 2011 am meisten

    Apples neuer Chef Tim Cook hat 2011 mehr als alle anderen US-Manager verdient. Allerdings liegt das nicht an seinem Grundgehalt, sondern an mit Restriktionen belegten Aktienpaketen.

  2. WLAN-Router: Sicherheitslücke im Mediaserver der Fritzbox
    WLAN-Router
    Sicherheitslücke im Mediaserver der Fritzbox

    Einige Router der Serie Fritzbox von AVM geben im lokalen Netz ihre Konfigurationsdaten preis, ohne dass dafür eine Zugriffsberechtigung besteht. Im schlimmsten Fall kann so auch das WLAN-Passwort ausgelesen werden. Für zwei betroffene Router gibt es bereits ein Firmwareupdate.

  3. Dice: Einige Frostbite-2-Spiele nur mit 64-Bit-Betriebssystem
    Dice
    Einige Frostbite-2-Spiele nur mit 64-Bit-Betriebssystem

    Johan Andersson, Rendering Architect beim Entwicklerstudio Dice, meldet per Twitter: Einige Spiele auf Basis der Frostbite-2-Engine, die 2013 erscheinen, setzen zwingend eine 64-Bit-Version von Windows voraus.


  1. 12:12

  2. 12:00

  3. 11:58

  4. 11:55

  5. 11:52

  6. 11:43

  7. 11:37

  8. 11:28