Infrastructures.Org | ISconf.Org TerraLuna Projects

Ticket #39 (defect)

Opened 9 years ago

Last modified 8 years ago

implement TCP mesh

Status: new

Reported by: stevegt@terraluna.org Assigned to: stevegt
Priority: high Milestone: 4.3.1
Component: general Version:
Severity: critical Keywords:
Cc:

The UDP transport which version 4.2.8 uses was implemented as a quick workaround for a particular customer. It uses best-effort ARP-style announcement of file need and availability, with no quorum tracking or network partition detection. It's buggy as well, with race conditions which can crash the entire daemon.

What we want instead is a sparsely-connected mesh between isconf peers, each machine holding open a persistent TCP connection to a few others. With this mechanism we can do quorum counting, and detect relatively quickly if we're on the wrong side of a partitioned network. This will also let us clean up and properly layer the ISFS cache and network bits, which right now both live in Cache.py; this in turn will remove the causes of the related race conditions and crashes.

Change History

10/20/05 02:51:01: Modified by stevegt@terraluna.org

  • milestone changed from 4.2.7 to 4.4.1.

11/11/05 05:41:40: Modified by stevegt@terraluna.org

  • milestone changed from 4.4.1 to 4.3.1.

03/19/07 07:36:29: Modified by stevegt@terraluna.org

  • description changed.
  • severity changed from normal to critical.