Programmierung in der Ära der SSD

9

Ich frage mich, wie sich die entgegenkommende SSD-Technologie auf das Programmieren auswirkt. Tonnenweise Fragen tauchen auf, aber hier sind einige offensichtlichste:

  • Kann die Geschwindigkeit des Festplattenzugriffs irgendwo in der Nähe der Speichergeschwindigkeit berücksichtigt werden?
  • Wenn nicht, ist es entweder nur ein temporärer Zustand oder gibt es einige grundlegende Gründe, warum SSD niemals so schnell wie RAM sein wird?
  • Sind B-Trees (und seine Cousins) immer noch relevant?
  • Wenn ja, gibt es irgendwelche Anpassungen oder Modifikationen von B-Trees (B + -Strees, R-Trees usw.) für SSD? Wenn nicht, gibt es andere Datenstrukturen für SSD?
lollo 04.07.2011, 12:07
quelle

6 Antworten

7

Es ist wahr, dass SSDs das Problem der Suchzeit beim Lesen eliminieren, aber effizientes Schreiben ist ziemlich kompliziert. Wir haben diese Probleme untersucht, während wir nach dem besten Weg gesucht haben, SSDs für den Acunu Speicherkern zu verwenden.

Sie könnten diese interessant finden:

Irit Katriel 22.08.2011 12:02
quelle
3
  • Aktuelle Flash-basierte SSDs sind nicht annähernd so schnell wie der Hauptspeicher-DRAM. Wird die nichtflüchtige Speichertechnologie letztendlich genauso gut funktionieren wie DRAM? Irgendwann mal. Es gibt viele vielversprechende Technologien in der Entwicklung.
  • Ein Flaschenhals bei der SSD-Leistung ist die SATA-Schnittstelle. Wenn sich die Technologie verbessert, werden SSDs an den DRAM- oder PCIe-Bus angeschlossen.
  • B-Bäume sind immer noch relevant, solange der Speicherzugriff in Blöcken erfolgt. Sogar auf DRAM wird in Blöcken zugegriffen, und populäre Blöcke werden in der CPU zwischengespeichert. Obwohl es schwierig zu implementieren ist, kann ein B-Baum, der für den Betrieb in DRAM ausgelegt ist, andere Arten flüchtiger Suchbäume übertreffen. Der Leistungsvorteil wird jedoch erst dann offensichtlich, wenn der Baum Millionen von Einträgen enthält.
  • Für SSDs implementierte B-Bäume profitieren von Verbesserungen bei der Blockzuweisung. Flash-SSDs der aktuellen Generation bevorzugen sequentiell geordnete Schreibvorgänge. Wenn der B-Baum wächst (oder sich ändert), sollten neue Blöcke in sequentieller Reihenfolge zugeordnet werden, um die beste Schreibleistung zu erhalten. Log-basierte Speicherformate sollten gut funktionieren, aber ich habe keine skalierbaren Implementierungen gesehen. Wenn sich die Leistungslücke zwischen sequentiellen und zufällig geordneten Schreibvorgängen verringert, wird die Reihenfolge der Zuweisung weniger wichtig.
boneill 17.07.2011 15:31
quelle
2
  1. RAM muss sich nach einem Reset / Neustart nicht an den Status erinnern. Ich bezweifle stark, dass SSD jemals so schnell wie RAM sein wird.
  2. B-Trees sind immer noch sehr relevant, da Sie immer noch versuchen, die Festplattenlesevorgänge zu minimieren.
Karoly Horvath 04.07.2011 12:21
quelle
1

Ein Faktor fällt einem sofort ein ...

Es gibt einen wachsenden Trend, Festplatten so zu behandeln, als ob sie Bandlaufwerke wären, aufgrund der relativ hohen Kosten, die entstehen, wenn sich Köpfe zwischen weit auseinander liegenden Spuren bewegen. Dies hat zu Bemühungen geführt, Datenzugriffsmuster zu optimieren, so dass der Kopf sich sanft über die Oberfläche bewegen kann, anstatt nach dem Zufallsprinzip zu suchen.

SSDs eliminieren praktisch die Suchstrafe, so dass wir uns nicht mehr so ​​sehr um das Layout der Daten auf der Festplatte kümmern müssen. (Genauer gesagt, wir haben andere Sorgen, aufgrund von Bedenken wegen Verschleißnivellierung).

    
Marcelo Cantos 04.07.2011 12:15
quelle
0

Ich habe die Build-Zeit auf SSD und RamDisk getestet, SSD war etwas schneller. Dasselbe Ergebnis wurde von meinem Kollegen mit völlig anderem Setup erreicht - die Bauzeit auf HDD betrug 9 Minuten, auf RamDisk 3 Minuten 30 Sekunden, auf SSD 3 Minuten 0 Sekunden.

    
Meo 13.01.2012 15:04
quelle
0

Obwohl die Suchzeiten von SSDs im Vergleich zum RAM um einige Größenordnungen besser sind als die von HDDs, sind diese Zeiten immer noch signifikant. Dies bedeutet, dass Probleme im Zusammenhang mit Suchzeiten nicht so schlimm sind, aber sie sind immer noch da. Der Durchsatz ist immer noch viel niedriger als im RAM. Abgesehen von der Speichertechnologie sind die Verbindungen wichtig. RAM ist physikalisch sehr nah an der CPU und anderen Komponenten auf dem Motherboard und verwendet einen speziellen Bus. Massenspeichergeräte haben diesen Vorteil nicht. Es gibt batteriegepufferte Pakete von RAM-Modulen, die als ultraschnelle HDD-Ersatz dienen können, aber wenn sie über SATA, SCSI oder eine andere typische Plattenschnittstelle angeschlossen werden, sind die immer noch langsamer als System-RAM.

Dies bedeutet, dass B-Bäume immer noch wichtig sind und Sie für hohe Leistung immer noch darauf achten müssen, was im RAM ist und was dauerhaft gespeichert wird. Aufgrund der ganzen Architektur und physikalischer Beschränkungen (nicht-flüchtige Schreibvorgänge werden wahrscheinlich immer langsamer sein als flüchtige Schreibvorgänge), denke ich, dass diese Lücke kleiner werden wird, aber ich bezweifle, dass sie in absehbarer Zukunft vollständig weg sein wird. Selbst wenn Sie sich "RAM" anschauen, haben Sie wirklich keine einzige Geschwindigkeit, sondern mehrere Ebenen von immer schnelleren (aber kleineren und teureren) Caches. So bleiben zumindest einige Unterschiede bestehen.

    
Michał Kosmulski 27.04.2012 11:44
quelle

Tags und Links