TLDR;
Können Sie auf Datenträgerblöcke beim Schreiben auf Datenträger in JavaScript oder C# abzielen. Ist es wichtig, wenn Sie SSDs haben?B Bäume und spärlicher Indexalgorithmus in C# und JavaScript
Problem
Ich bin # eine BTree Implementierung in JavaScript und C zu schaffen.
Beim Lesen this section of wikipedia on btrees spricht es über spärliche Indizes und Senken der Festplattenlesevorgänge.
Es scheint mir, dass es über das Gruppieren von Indizes und Datensätzen in Festplattenblöcke geht, um das Lesen zu beschleunigen.
Fragen
ich einige Fragen:
Can C# oder JavaScript (Node) Zielplattenblöcke, oder ist, dass Sie etwas in Ihrem Code zu berechnen? I.e. mit den Partitionstabellen der Festplatte arbeiten, um die Blockgröße und Chunk-Daten entsprechend zu ermitteln?
Spricht Festplattenblock liest so viel, wenn wir SSDs haben.
Follow Up
Offensichtlich in C# Sie FileStream
s und BinaryWriter
s oder StreamWriter
s schaffen können, aber sie nehmen nur byte[]
, man kann nicht überall insbesondere auf der Festplatte angeben - und um ehrlich zu sein, Ich erwarte viel von Schreiben auf die Festplatte wird in den unteren Ebenen behandelt - wie Kernel-und Festplattentreiber ....
Lesen mit SSDs macht alles soooo viel schneller, so effektiv, solange die BTree Knoten einen Verweis gehalten auf die genaue Datei und Byte-Marker (oder etwas ähnliches) dann specifezi Das in C# wäre einfach - und trotzdem blitzschnell. Es wäre eine einfache reader.Seek(/** some offset **/)
und dann einfach in den Datensatz einlesen.
ich nicht einmal wissen würde, wo diese beginnen mit Knoten, um zu versuchen, es muss nur seine einfache fs.writeFile()
Funktion ....
Coole, interessante Antwort. Ich würde nur sagen, dass ich über C# und JavaScript gesprochen habe .. nicht Java: P –
@CallumLinington Das gilt auch für diese Sprachen. Ich habe den Text aktualisiert, um das widerzuspiegeln –
Cool, bin ich derzeit stecken herauszufinden, wie zu teilen, wenn das obere Limit erreicht wurde ... –