Update Download Types

2025-02-27 12:35:06 -06:00
parent 236a13fcc1
commit d34e77d768

@@ -1,27 +1,27 @@
## Download Type Details
`repertory` supports 3 different modes for reading and writing files: `default`, `ring_buffer`, and `direct`.
`repertory` supports 3 different modes for reading and writing files: `default`, `direct`, and `ring_buffer`.
The `PreferredDownloadType` setting in `config.json` determines which of these modes is preferred. This does not guarantee the mode will always be chosen, as `repertory` will choose an appropriate mode based on the type of file operation being performed. If a file is currently open via a read-only download type and a request to write is performed, the file will automatically be changed to `default` mode without any interruptions to file i/o.
### Default
* In `default` mode, a file of equal size is fully allocated within the`cache` directory.
* File read/write occurs in 8MiB chunks for files that are not currently in cache.
* File i/o occurs in 8MiB chunks for files that are not currently in cache.
* Even though writes occur within 1 or more 8MiB chunks, the file will not be scheduled for upload until all chunks have been downloaded.
* If `repertory` is unmounted prior to an upload completing, it will be re-scheduled the next time the location is mounted.
* This mode will be forced if any request to write is performed.
* This mode is read/write.
### Ring buffer
* In `ring_buffer` mode, a fixed-size file (default 1GiB) is allocated within the `buffer` directory.
* This mode will cache up to 1GiB of a file locally preventing the need to fully allocate a file for read operations.
* This mode is only chosen when the actual file size is greater than the ring-buffer size.
* This mode is read-only.
### Direct
* In `direct` mode, files are read directly from the corresponding provider without any local caching.
* An in-memory ring buffer is used to cache up to 5 8MiB chunks.
* This mode is read-only.
### Ring buffer
* In `ring_buffer` mode, a fixed-size file (default 512MiB) is allocated within the `buffer` directory.
* This mode will cache up to 512MiB of a file locally preventing the need to fully allocate a file for read operations.
* This mode is only chosen when the actual file size is greater than the ring-buffer size.
* This mode is read-only.