Skip to content
Julien Capul edited this page Jun 11, 2019 · 16 revisions

Welcome to the pdwfs wiki!

Ideas

  • implement I/O libc calls to allow removing an entire directory (i.e. have "rm -r directory" works): the -at calls family, unlinkat, newstatat, etc,
  • remove the inode layer and the handling of directories in pdwfs (basically just intercept the read/write calls using the full path as a key in Redis), workflow setup process would consist in making sure it works on normal filesystem (to test file and directory operations), then switch to pdwfs,
  • implement different data distribution strategy among the Redis instances for better locality awareness: per stripe, per file, per producer,
  • writers for asynchronous I/O (software burst buffer), processes running next to Redis instances that write new Redis file data on filesystem
  • SLURM plugin to setup and teardown the Redis servers infrastructure (possibly with writers to have a software burst buffer),
  • I/O operation stats gathering (like Selfie) in Redis instances, dump stats in file or database on teardown
  • try aternative Redis-protocol-speaking database (e.g. ARDB + RocksDB, the latter being adapted for fast storage system like SSD, Optane?)
  • re-coded alternative to Redis adapted to pdwfs (e.g. https://github.com/JCapul/kvdroid), feature: binary protocol instead of ascii protocol, use low-level communication protocols for high-speed network fabric (e.g. OFI libfabric) instead of TCP, what else ???
  • redis-protocol proxy server for a hierarchical/tiered data transfer infrastructure (to cope with hero runs with +100,000 clients)
  • secured data transfer infrastructure with spiped
  • read-cache mode: Redis instances used as read cache for files on FS, 2 options: files are read by the application and sent in Redis for caching or a dedicated reader process receives read notifications from a channel and push file data in Redis instances
  • gather stats from Redis instances (max rss, clients, keys, etc) into the central Redis instance and dump in a file on teardown
  • refactor the C layer as a "stackable" plugin system to facilitate hooking up custom implementations of I/O calls, the "libc" and "redisfs" being two different implementations, other possible implementations are: "/dev/null" to drop everything (like a dry run),
  • integration/coupling with Darshan I/O characterization tool
Clone this wiki locally