cc-metric-store/TODO.md
2021-08-31 15:18:06 +02:00

1.3 KiB

TODO

  • Delete this file and create more GitHub issues instead?
  • Missing Testcases:
    • Port at least all blackbox tests from the "old" MemoryStore to the new implementation
    • Check for corner cases that should fail gracefully
    • Write a more realistic ToArchive/FromArchive tests
    • Test edgecases for horizontal aggregations
  • Release Data
    • Implement API endpoint for releasing old data
    • Make sure data is written to disk before it is released
    • Automatically free up old buffers periodically?
  • Implement basic support for aggregations over time (stats like min/max/avg)
    • Optimization: Once a buffer is full, calculate min, max and avg
      • Calculate averages buffer-wise, average weighted by length of buffer
  • Implement basic support for query of most recent value for every metric on every host
  • Optimize horizontal aggregations
  • Optimize locking of levels in the tree structure
    • In 99.9% of cases, no new level will need to be created, so all lookups into level.children will be read only
    • level.metrics will be modified more often and will accesses will need to be serialized here
    • Suggestion: Use a proper Mutex for level.metrics, but something read-optimized and possibly lock-free for level.children
  • ...