1. Foren
  2. Kommentare
  3. OpenSource
  4. Alle Kommentare zum Artikel
  5. › MemSQL: MySQL-kompatibel, aber 30…

Erinnert mich an nen alten Trick: Ramdisk = MySQL auf Speed

Wochenende!!! Zeit für Quatsch!
  1. Thema

Neues Thema Ansicht wechseln


  1. Erinnert mich an nen alten Trick: Ramdisk = MySQL auf Speed

    Autor: Slartie 18.06.12 - 20:34

    Ich fahr schon seit mehreren Jahren eine Data-Crunching-Anwendung mit MySQL als Grundlage, die während der Datenverarbeitung konstant 15k Queries (50% schreibend, 50% lesend) pro Sekunde auf einem einzigen i7-Kern über eine Datenbasis von ~2-3 GByte schiebt. Der Trick war, die hoch frequentierten Tables direkt vor der Datenverarbeitung in eine Ramdisk zu kopieren, die Files per Symlink an die von MySQL gewohnte Stelle zu linken und dann den Batch-Job abzufeuern. Nach Erledigung werden die Tables geflushed und die Files auf die persistenten Disks zurückgemoved. Mit entsprechenden Backups kann man da auch ganz gut die Konsistenz im Fall von Stromausfällen etc. sichern. Klappt natürlich nur, wenn der Zugriff auf die Daten nur von der einen Anwendung erfolgt bzw. gut geregelt ist, also sicher nix für jeden Anwendungsfall, aber in meinem Fall war's eine sehr pragmatische Lösung für ein Problem, das in der Zeit vor billigen SSDs sonst nur mit sündteuren Highend-Lösungen in den Griff zu bekommen gewesen wäre.

  2. Re: Erinnert mich an nen alten Trick: Ramdisk = MySQL auf Speed

    Autor: MArc. 19.06.12 - 00:18

    Slartie schrieb:
    --------------------------------------------------------------------------------
    > Nach Erledigung werden die Tables geflushed und die
    > Files auf die persistenten Disks zurückgemoved.

    lol. Solltest Dich für eine Sprache entscheiden. ;o)

  3. +1 (kwT.)

    Autor: __destruct() 19.06.12 - 00:55

    kwT.

  4. Re: Erinnert mich an nen alten Trick: Ramdisk = MySQL auf Speed

    Autor: MESH 19.06.12 - 06:47

    MArc. schrieb:
    --------------------------------------------------------------------------------
    > Slartie schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Nach Erledigung werden die Tables geflushed und die
    > > Files auf die persistenten Disks zurückgemoved.
    >
    > lol. Solltest Dich für eine Sprache entscheiden. ;o)

    dann hört es sich aber nicht so professionell an für die 12-16 jährigen

  5. Re: Erinnert mich an nen alten Trick: Ramdisk = MySQL auf Speed

    Autor: fool 19.06.12 - 09:12

    Weil "lol" so deutsch ist?

  6. Re: Erinnert mich an nen alten Trick: Ramdisk = MySQL auf Speed

    Autor: elgooG 19.06.12 - 09:35

    Slartie schrieb:
    --------------------------------------------------------------------------------
    > Ich fahr schon seit mehreren Jahren eine Data-Crunching-Anwendung mit MySQL
    > als Grundlage, die während der Datenverarbeitung konstant 15k Queries (50%
    > schreibend, 50% lesend) pro Sekunde auf einem einzigen i7-Kern über eine
    > Datenbasis von ~2-3 GByte schiebt. Der Trick war, die hoch frequentierten
    > Tables direkt vor der Datenverarbeitung in eine Ramdisk zu kopieren, die
    > Files per Symlink an die von MySQL gewohnte Stelle zu linken und dann den
    > Batch-Job abzufeuern. Nach Erledigung werden die Tables geflushed und die
    > Files auf die persistenten Disks zurückgemoved. Mit entsprechenden Backups
    > kann man da auch ganz gut die Konsistenz im Fall von Stromausfällen etc.
    > sichern. Klappt natürlich nur, wenn der Zugriff auf die Daten nur von der
    > einen Anwendung erfolgt bzw. gut geregelt ist, also sicher nix für jeden
    > Anwendungsfall, aber in meinem Fall war's eine sehr pragmatische Lösung für
    > ein Problem, das in der Zeit vor billigen SSDs sonst nur mit sündteuren
    > Highend-Lösungen in den Griff zu bekommen gewesen wäre.

    Die Methode klingt nett, ist aber nur für Batch-Jobs und auch nur für Daten geeignet die sich im Notfall von anderswo wiederherstellen lassen. Etwas ganz Anderes ist, wenn du sich ständig aktualisierende Daten besonders schnell abfragen möchtest.

    Außerdem verstehe ich den zusätzlichen Aufwand nicht so ganz. Was ist nun der Vorteil gegenüber einer ganz gewöhnlichen MySQL-Memory-Table?

    Damit wäre auch der ganze Unsinn mit dem Flush unnötig, es wäre kein Filesystem dazwischen und du kannst auch noch während die Daten auf die Platte in eine physische Tabelle geschrieben werden, schon den nächsten Batch-Job laufen lassen.

    Kann Spuren von persönlichen Meinungen, Sarkasmus und Erdnüssen enthalten. Ausdrucke nicht für den Verzehr geeignet. Ungelesen mindestens haltbar bis: siehe Rückseite

  7. Re: Erinnert mich an nen alten Trick: Ramdisk = MySQL auf Speed

    Autor: der-dicky 19.06.12 - 10:08

    ne Datenbank-Datei auf ner Ramdisk stellt sich mir grade als sehr ineffiziente RAM-Nutzung dar, oder übersehe ich da was?
    wenn ich eine Memory-Table anlege verbrauche ich die Menge meiner Nutzdaten und Indizes im RAM. wenn ich eine Tabelle auf der Platte anlege Verbrauche ich im schlimmsten/besten Fall auch die Nutzdatenmenge plus Indizes im RAM *und* auf der Platte.
    wenn ich jetzt die die Datei auf eine Ramdisk schiebe verdoppelt sich der Speicherbedarf doch oder?

    also lieber nen dump der Tabelle(n) erzeugen, in ne memory-tabelle einspielen, Rechnen und dump zurückspielen, oder?

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Universitätsklinikum Münster, Münster
  2. Statistisches Bundesamt, Wiesbaden
  3. Leibniz Universität Hannover, Hannover
  4. ITSCare - IT-Services für den Gesundheitsmarkt GbR, Stuttgart

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. (u. a. Ryzen 5 5600X für 359€, Ryzen 7 5800X für 489€)


Haben wir etwas übersehen?

E-Mail an news@golem.de