Home

Awesome

yas3fs-cluster-tester

Test harness to induce file io and validate yas3fs cluster activity across a N yas3fs peer-nodes.

This may be useful to anyone who wants to validate/test yas3fs to see how it behaves under load and with N peer's all managing files in the same S3 bucket. This has been used to test yas3fs 20+ node "clusters" spread across separate data-centers, with each node generating thousands of files upwards of 5-15gb total in each node's file set size (total 'cluster' file-set > ~75g -> 100gb) . Current results are pretty promising, in such large scale tests, we've seen only a handful of missing files on a handful of participating nodes. Things can likely be done to improve yas3fs's robustness to recover in these situations.

General Concepts

  1. This is a command line program
  2. Each program instance collects your configuration input (via console or properties file) and generates a directory structure locally on your disk per your configuration
  3. After the generated tree of files is created it will connect itself to a SNS topic (via an SQS queue) for its own peer-to-peer event communication
  4. Once the SNS/SQS resources are subscribed to it spawns 2 threads
  1. Once both thread 1 and thread 2 are completed, on the node, and all other nodes, you can have the program validate that its local verify directory actually contains all the files all the other peer nodes stated that they wrote through yas3fs.
  2. The end result is the program prints the output of files succesfully verified vs those that don't exist when they should locally in the verify dir.

Overall you can use this for whatever purpose you wish in testing yas3fs; see how performant yas3fs is, reliable, fault tolerant, CPU/IO/Memory impact etc. on local nodes.

How to run