tfs issueshttps://gitlab.redox-os.org/redox-os/tfs/-/issues2018-06-13T19:39:49Zhttps://gitlab.redox-os.org/redox-os/tfs/-/issues/68Buffer-based (instead of cluster-based) compression2018-06-13T19:39:49ZJeremy SollerBuffer-based (instead of cluster-based) compression*Created by: ticki*
In particular, allow clusters to be compressed down to an arbitrary sized subcluster. Allocation works through keeping 4096 (or a reduced number of) queues.*Created by: ticki*
In particular, allow clusters to be compressed down to an arbitrary sized subcluster. Allocation works through keeping 4096 (or a reduced number of) queues.https://gitlab.redox-os.org/redox-os/tfs/-/issues/69Readable format for disk header2018-06-13T19:39:49ZJeremy SollerReadable format for disk header*Created by: ticki*
Have ASCII-key-value format, which spans an arbitrary number of clusters. For example:
```
fs=tfs;
ver=2.3;
cksum=seahash;
...
```
This future proofs so new fields can be introduced without major issues.*Created by: ticki*
Have ASCII-key-value format, which spans an arbitrary number of clusters. For example:
```
fs=tfs;
ver=2.3;
cksum=seahash;
...
```
This future proofs so new fields can be introduced without major issues.https://gitlab.redox-os.org/redox-os/tfs/-/issues/43Extended file attributes support2018-06-13T19:39:49ZJeremy SollerExtended file attributes support*Created by: waddlesplash*
Are there any plans to implement [extended file attributes](https://en.wikipedia.org/wiki/Extended_file_attributes)? Most modern Linux filesystems have them (ext4, ...), and some OSes (e.g. Haiku, which I work...*Created by: waddlesplash*
Are there any plans to implement [extended file attributes](https://en.wikipedia.org/wiki/Extended_file_attributes)? Most modern Linux filesystems have them (ext4, ...), and some OSes (e.g. Haiku, which I work on) deeply integrate them into the desktop layer to the point where they have a hard dependency on the boot and home filesystems having extended attributes.https://gitlab.redox-os.org/redox-os/tfs/-/issues/40Consider using Zstd instead of LZ42018-06-13T19:39:50ZJeremy SollerConsider using Zstd instead of LZ4*Created by: Shnatsel*
Recently I've been investigating available compression algorithms (it became a bottleneck in one of my projects) and found that a recent breakthrough in entropy coding - [Asymmetric Numeral Systems](https://en.wik...*Created by: Shnatsel*
Recently I've been investigating available compression algorithms (it became a bottleneck in one of my projects) and found that a recent breakthrough in entropy coding - [Asymmetric Numeral Systems](https://en.wikipedia.org/wiki/Asymmetric_Numeral_Systems) - has spawned an entire new generation of compression algorithms.
The only two general-purpose algorithms based on it are Apple's [LZFSE](https://en.wikipedia.org/wiki/LZFSE) and Facebook's [Zstandard](https://en.wikipedia.org/wiki/Zstandard) (Zstd).
According to my (admittedly limited) benchmarking, Zstd provides significantly better compression than LZ4 at the same compression speed. It is also much more versatile, with competitive performance in a wide range of compression ratios.
Zstd also comes with a dictionary training mode, which might come in handy (according to [On Random-Access Compression](http://ticki.github.io/blog/on-random-access-compression/) blogpost).
I have compared Zstd reference implementation against LZ4 reference implementation. I have failed to obtain comparable results from LZFSE reference implementation.
It would be a shame to use an older compression algorithm in a new filesystem while (seemingly) superior solutions are available.
The drawbacks are:
- increased implementation complexity compared to LZ4
- there is no readily available Zstd implementation in Rust
- possibly something else that I have failed to considerhttps://gitlab.redox-os.org/redox-os/tfs/-/issues/49Concurrent runtime state handling2018-06-13T19:39:49ZJeremy SollerConcurrent runtime state handling*Created by: ticki*
In particular, we need a way to buffer and queue operations in core, so the file system tree can be generated with multiple operations at the same time.*Created by: ticki*
In particular, we need a way to buffer and queue operations in core, so the file system tree can be generated with multiple operations at the same time.https://gitlab.redox-os.org/redox-os/tfs/-/issues/23Vdev to emulate sector-level atomicity for older hard disks.2018-06-13T19:39:49ZJeremy SollerVdev to emulate sector-level atomicity for older hard disks.*Created by: ticki*
Would be useful.*Created by: ticki*
Would be useful.