Skip to content

Store only 1/2 of sidecars on supernodes #10095

@zilm13

Description

@zilm13

We need to decrease storage requirements for validator nodes with high count of validators and supernodes. This could be achieved by deduplicating sidecars data which is 2x extension over blobs. I suggest following changes which could be split into 2-3 PRs:

  1. Add flag --data-column-sidecar-extension-retention-epochs, which I suggest to set by default to 512 epochs (a bit more than 2 days)
  2. Improve DataColumnSidecar RPC handlers to have special logic when queried on supernode:
    a. Use dedicated thread pool with 2 threads for this kind of tasks
    b. If node is supernode, request asks for sidecars over retention period but in DA window (Defaults: 512 < epoch < 4096) and index is more than 63, we get 0-63 sidecars from DB and reconstruct everything else using thread pool. Data is not cached and used only for one request, but we should run only one extension for several indices in one request.
  3. Add DataColumnSidecarExtensionPruner, which prunes 64-127 indices over data-column-sidecar-extension-retention-epochs if the node is supernode

NOTE: 72 blobs DataColumnSidecar's reconstruction for 1 slot is 1.2 ops/second on M4

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions