SP Recommendation Engine

Overview

As a core contributor of BNB Greenfield, NodeReal designed and implemented SP Recommendation Engine. It's mainly used to recommend suitable storage providers to users. It evaluates SP's service considering several aspects including:

  • Reliability and availability: The data of the storage service should be highly reliable and highly available, and users' data is not easily lost or the service is not easily interrupted. Common metrics include service SLAs, data backup policies, etc.
  • Security: The storage service should have a relatively strong data security and privacy protection mechanism, such as access control, etc., to ensure that user data is not easily leaked or illegally accessed.
  • Performance: The storage service should have relatively high read and write performance to meet the requirements of users for data access. Common metrics include throughput, latency, etc.
  • Cost effectiveness: The cost of the storage service should have a relatively high cost-effectiveness and will not bring excessively high cost burden.
  • Capacity && scalability: Each SP can claim its current capacity and its scalability.

Architecture

The Recommendation Engine consists of five components. Probe service, Data Collector, SLA Calculator, Score Assessment and API Gateway.

Basic workflows

  1. The Probe service collects various metrics of the SP, including availability, performance, and cost, stored in Data Collector.
  2. Calculator and Score Assessment service processes and analyze the metrics to generate comparable data.
  3. Based on the user's query request, the Gateway retrieves corresponding data from the database and sorts it.
  4. Based on the sorting result, the gateway returns a recommended list of SPs to the user.
  5. The user selects one or more recommended SPs and uploads their stored data to the selected SP.
  6. The storage provider stores the data in its storage service.
  7. When the user needs to access their stored data, it is downloaded from the selected SP.