Durability hinges on making a quantifiable assumption about how likely it is that a storage provider will hold on to the data it has been assigned to, and is currently helping maintain.
Data enters our system as files; i.e., named byte strings of variable size. Let
To make this discussion simpler, we can assume that:
- any file
enters our system by being initially replicated onto a set of nodes ; - there is no repair.
One way of quantifying durability for
Assuming that these probabilities are independent across nodes, we can compute the cumulative probability for
Optimization of loss. Our “number of nines” for
Repair. Eq.
Cryptoeconomical durability. For old Codex, our analysis of durability1 took into consideration hardware faults only, and used exponentially-distributed
This is a fair assumption if we also assume that slashing costs are enough to eliminate data loss from both churn3 — as slashing functions as an uptime incentive — and arbitrary provider choice, as no provider would rationally decide to deliberately drop data and inflict monetary loss upon itself. But this again assumes that the token holds enough value to make slashing hurt: if that last assumption does not hold, then the durability numbers become meaningless.
A more honest approach would be to model this loss-of-value event; i.e., define
is operating at loss;- the slashing cost for
, should it drop , is lower than the loss it would incur if it honored the storage contract to conclusion.
In such case, it would be reasonable to expect that
The Stable Intrinsic Interest Model
In altruism there is no cryptoeconomic incentive mechanism, so
In SII, we assume the existence of a set
- is only willing store files in
; - is willing to store such data forever; i.e., interest is stable.
This is roughly equivalent to stating that, based on interest, the probability that a node drops data by time
This means that, under SII,
One of the appeals of SII is its simplicity: we do not have to estimate anything else to compute our durability numbers. Indeed, it reduces precisely to the same analysis we did for old Codex, which is one of the reasons I do not like calling it “low durability”.
Maximal durability in SII. Eq.
- an
that is as big as possible, as is monotonically nonincreasing on ; - nodes
such that , as other nodes will not positively impact durability.
Those are both obvious and intuitive statements, but they also have a somewhat less clear implication. Namely, that node
Communities instead of files. Instead of modeling
Altruism and Churn
In cryptoeconomic durability, nodes must remain running so they can reply to remote audit requests that come in at random instants in time. Since bringing one’s node down is a gamble that could result in slashing, this curbs churn.
Under altruistic models like SII, these incentives no longer exist. Unless we further assume that operators are intrinsically motivated to keep their nodes running, this means we now need to deal with churn.
The cautionary tale for the cost of active repair under churn is provided in Blake and Rodrigues classical paper.4 How much of a problem this turns out to be in practice largely depends on how we envision the system to work.
Blake and Rodrigues’ model assumes a constant turnover of new nodes, which might not be realistic. Let
Replication. In SII under replication, every repair operation entails:
- picking a node in
that is currently available; - getting it to download
and store it.
If we assume nodes do not delete data on logoff, then it should be clear that the number of repair operations is bounded by
Erasure coding. Erasure coding makes things more complicated as the sets of blocks nodes hold are, perhaps surprisingly, not fungible. Suppose for simplicity that
Every time a block
If they do throw away the data, then things get even worse as nodes might be selected for repair repeatedly, leading to
Before going about implementing complicated replica tracking and repair mechanisms, therefore, I believe we should carefully consider what sort of network dynamics we should expect, particularly in the absence of uptime incentives.
Footnotes
-
Codex Team, “Codex Whitepaper”. https://docs.codex.storage/learn/whitepaper ↩
-
B. Schroeder and G. A. Gibson, “Disk Failures in the Real World: What Does an MTTF of 1,000,000 Hours Mean to You?,” in Proceedings of the 5th USENIX Conference on File and Storage Technologies (FAST ‘07), San Jose, CA, USA, 2007 ↩
-
Which are not real “faults” in the sense that nodes might be crash-recover in the real world, but since we cannot distinguish that from real data loss we typically assume that nodes that stop providing heartbeats have lost their replica or erasure-coded partition permanently. ↩
-
C. Blake and R. Rodrigues. 2003. High availability, scalable storage, dynamic peer networks: pick two. In Proceedings of the 9th conference on Hot Topics in Operating Systems - Volume 9 (HOTOS’03). USENIX Association, USA, 1. ↩ ↩2