Skip to content

implement in-memory volatile filesystem #1407

@XiaochenCui

Description

@XiaochenCui

We want an "in-memory volatile filesystem" that:

  • Demonstrates how to implement a custom "filesystem provider".
  • Store temporary data that should be automatically discarded on server reboot. (like the /tmp dir on Linux)
  • It supposed to be much faster than the default "puter fs provider". A benchmark is desired for assessment.

TODO

  • Implement all filesystem APIs.
    • quick_check
    • stat
    • readdir
    • move
    • copy_tree
    • unlink
    • rmdir
    • mkdir
    • write_new
    • write_overwrite
  • pass apitest
    • write_cart
    • move_cart
    • copy_cart
    • write_and_read
    • move
    • stat
    • readdir
    • mkdir
    • batch
    • delete
    • telem_write
  • ACL
    • Remove hardcoded permission checks, use standard ACL.
    • Make it mountable at arbitrary location (e.g., /tmp, /dev/shm). Currently, it can only be mounted under /<username>/tmp to run the tests.
  • Store file path relative to the mountpoint, so remounting to a different point can be done easily.
  • Make it works on multi-server deployment. (We won’t be working on this since the main purpose of the "memory FS provider" is for demonstration, and it should remain as simple as possible.)
  • test clutter
    • make the test result more readable
    • run "nightly-build" and push the test result to slack
    • A benchmark to assess if it's much faster than "puter fs provider"
  • in the future
    • write sophisticate docs for it, and tutorial for "write your own fs provider"
    • move implementation details to 1 files, and avoid injection to other files

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions