Senior level specialist in performance testing & architecture, backend-developer
Task: Test & benchmark Hypercore to understand if it is suitable as an RTDB (real-time database). [3 weeks]
General requirements: 1. Deploy, check the work, describe the features and peculiarities of: -- hypercore (including different implementations: rust/C++/js); -- hyperdrive; -- hypertrie; -- maybe other suitable hypercore based solutions. 2. Find and test other DB solutions that use Hypercore as their basis (for example, sonar). 3. Describe the capabilities and peculiarities of the p2p network. 4. Benchmarks, metrics: -- Performance in different modes. For example: ▪ read / write; ▪ variate chunks size / count; ▪ parallel execution; ▪ etc… -- Performance by different metrics. For example: ▪ capacity; ▪ response time; ▪ throughput; ▪ etc… -- Check operation both locally (single node) and distributed (2 nodes, N nodes) ▪ peculiarities of synchronization, guarantees of information relevance. -- Find factors affecting performance degradations / bottlenecks. Acquired stats should include 95 percentile analysis. 2-parameter interrelation analysis is a plus (3d-surface graph). -- Evaluation of the complexity (computational, etc.) of algorithms (O) will be a plus ▪ should be based on test results (no need to read sources); ▪ possible approximately, but reasonably. -- Other (what you think should be tested). -- Objective: to understand performance, limits, where and why there are bottlenecks. 5. Checking the compatibility of the implementations is necessary. 6. Check stability of the software (crashes, memory leaks, etc…). 7. Other info which will help us reach the goal will be a plus.
Participants should provide: -- Description of the work done. -- Benchmark results (+ tables, graphs). -- Conclusions, summary. -- Benchmark scripts source code (should be published on GitHub/GitLab or other), so anybody can repeat your benchmarks. Preferable OS platform is Ubuntu 20.04.
Notes: 1. Reports should be clear and easy to read. 2. Source code should build / run without errors. 3. Participants may propose&include additional benchmarks, tests and information so it helps us achieve the goal (analyzing Hypercore as RTDB candidate).