Foreign Memory API / Memory-Mapped File

Diskutiere Foreign Memory API / Memory-Mapped File im Allgemeine Java-Themen Bereich.
M

miasma

Hi,

ich bin grade dabei für mein Projekt[1], ein evolutionärer Datenspeicher (XML und JSON in einem binary encoding momentan) ein memory mapped file backend zu schreiben, was die neue Foreign Memory API in Java 14 nutzt (Preview Feature / Incubating).

Im Prinzip wollte ich zwei bestehende Klassen, die ein simples RandomAccessFile nutzen mehr oder weniger erstmal 1:1 umschreiben:

https://github.com/sirixdb/sirix/bl...c/main/java/org/sirix/io/file/FileReader.java
https://github.com/sirixdb/sirix/bl...x/io/memorymapped/MemoryMappedFileReader.java

und

https://github.com/sirixdb/sirix/bl...c/main/java/org/sirix/io/file/FileWriter.java
https://github.com/sirixdb/sirix/bl...x/io/memorymapped/MemoryMappedFileWriter.java

Leider bekomme ich gleich schon eine Exception:

java.lang.IllegalArgumentException: Requested bytes size must be > 0.

at jdk.incubator.foreign/jdk.internal.foreign.Utils.makeMappedSegment(Utils.java:140)
at jdk.incubator.foreign/jdk.incubator.foreign.MemorySegment.mapFromPath(MemorySegment.java:398)
at org.sirix.io.memorymapped.MemoryMappedFileWriter.<init>(MemoryMappedFileWriter.java:83)
at org.sirix.io.memorymapped.MemoryMappedStorage.createWriter(MemoryMappedStorage.java:100)

Weil das File ja anfangs leer ist und man wohl kein leeres File mappen darf. Ich will aber eigentlich auch kein dummy Byte reinschreiben, dann wäre die ganze andere Logik eventuell falsch, bzw. ich müsste das erst wieder löschen, was irgendwie super hässlich wäre.

Kennt sich eventuell schon jemand mit der API aus oder hat ne tolle Idee?

Beste Grüße
Johannes

[1] https://sirix.io
 
Thema: 

Foreign Memory API / Memory-Mapped File

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben