Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 1.43 KB

TODO.md

File metadata and controls

33 lines (25 loc) · 1.43 KB

TODO list

Here are some things on to-do list, in no particular order:

  • Try to store blocks in several database files or tables. Something like partitioning. Hide it in Block storage class.

  • Implement creation of subvolumes, snapshots on-the-fly via commands through socket interface. And other commands too.

  • Automatically switch to a larger block size to reduce the overhead for files that rarely change after being created (like >= 100MB video files :-) Or use defragmentation tool for that. Block size must be stored for every file if it differs from default.

  • Implement adaptive compression for different file types:

    • no compression for audio/video/images/archives - .mp3/.mp4/.jpg/.zip
    • fast compression for some types - .wav/.pdf
    • best for texts and some other types - .txt/.html/.bmp There must be variants for pairs - types:compression. Even custom compression methods: ".wav,*.pdf:custom:zlib=fast,snappy". Compression for file types must be redefinable. Compression can be overrided for every file. Need recompression tool. And fsck support for old-new compression options.
  • Use configuration file with defined default compression, hash algo, and other options.

  • Implement rename() independently of link()/unlink() to improve performance? Need benchmarks.

  • Implement --verify-reads option that recalculates hashes when reading to check for data block corruption?