SerCeMan / jnr-fuse

FUSE implementation in Java using Java Native Runtime (JNR)
MIT License
361 stars 87 forks source link

Winfsp read callback random offset #176

Open aparaske opened 1 year ago

aparaske commented 1 year ago

When using the read callback on Windows (Winfsp), it seems that the offset value is not sequential. Please see below an example pattern:

2023-03-27/06:51:54.730/PDT | | INFO [Thread-476] VirtualFS: read, offset: 0 size: 32768 2023-03-27/06:51:54.736/PDT | | INFO [Thread-477] VirtualFS: read, offset: 8802304 size: 32768 2023-03-27/06:51:54.739/PDT | | INFO [Thread-478] VirtualFS: read, offset: 61440 size: 32768 2023-03-27/06:51:54.819/PDT | | INFO [Thread-484] VirtualFS: read, offset: 32768 size: 28672 2023-03-27/06:51:54.820/PDT | | INFO [Thread-485] VirtualFS: read, offset: 94208 size: 32768 2023-03-27/06:51:54.820/PDT | | INFO [Thread-486] VirtualFS: read, offset: 126976 size: 32768 . . . 2023-03-27/06:51:54.864/PDT | | INFO [Thread-552] VirtualFS: read, offset: 7340032 size: 1048576 2023-03-27/06:51:54.867/PDT | | INFO [Thread-553] VirtualFS: read, offset: 8388608 size: 413696

This is a problem for my application as I need the file to be read sequentially. Is there winfsp options or way to force a sequential offset value? The only other option would be to buffer the whole file, which is not something that I would like to do. Any other suggestions?