IntersectMBO / ouroboros-network

Specifications of network protocols and implementations of components running these protocols which support a family of Ouroboros Consesus protocols; the diffusion layer of the Cardano Node.
https://ouroboros-network.cardano.intersectmbo.org
Apache License 2.0
276 stars 86 forks source link

Support for server with single "main" node and several proxies #1915

Open edsko opened 4 years ago

edsko commented 4 years ago

When serving many clients, it might be beneficial to do so from several OS processes, rather than a single large one. We could do this by having a single main node, and then several proxy nodes that follow the main node using a (local) chain sync protocol. ideally, the proxies and the main node should then share (almost?) all of the on-disk storage, just keeping their own in-memory data structures.

dcoutts commented 4 years ago

In particular the chain sync would be in terms of (offset, length) pairs into files. To manage the lifetimes of files in the volatile DB reliably we might also need to take advantage of the ability of unix sockets to send open FDs of files over the socket. On unix files are only really deleted when the last reference to them is closed. Deleting isn't blocked by open FDs.

nfrisby commented 11 months ago

@coot This also seems like a proper Networking Team Issue. So I've removed the Consensus label.

What do you think?

(Obviously this idea would require some cooperation from the Consensus and Node teams to actually implement it.)

cc @karknu @dcoutts