myelnet/pop

Create nodes with “testing” roles

Closed this issue · 2 comments

We need nodes with "testing" roles in that they are capable of autonomously:

  • Sending files to be cached by other peers.
  • Retrieving files from peers at random time intervals.
  • Logging and displaying stats from these actions.

The nodes should be capable of running multiple test scenarios.

eg. nodes send File A 99% of the time to emulate the coverage of a "popular"/ oft requested file. They send File B 1% of time and then gather stats that compare coverage and retrieval performance for A and B.

eg. nodes have a library of files in order of increasing size. They collect stats on pushing / retrieval times relative to file size.

  • can use this setup verbatim to push test node logs to an InfluxDB database.
  • behaviour for Myel node would then be: if user passed a metrics.config file to Myel node then instantiate metrics objects and log to InfluxDB.
  • we can use build/k8s to deploy an InfluxDB container & new DockerFile for test nodes with metrics.config file.
  • final step would be to create bash scripts that make the test nodes execute regular sequences of action that are logged to InfluxDB.

steps 1-3 are covered by #183 and #185.

  • To log discovery time stats we need clients to timestamp their original requests.
  • Scripting may prove to be less useful than we originally anticipated if we have nodes logging stats by default.