Re: POHMELFS high performance network filesystem. Transactions, failover,performance.

From: Jeff Garzik
Date: Wed May 14 2008 - 14:24:33 EST


Sage Weil wrote:
What is your opinion of the Paxos algorithm?
It is slow. But it does solve failure cases.

For writes, Paxos is actually more or less optimal (in the non-failure cases, at least). Reads are trickier, but there are ways to keep that fast as well. FWIW, Ceph extends basic Paxos with a leasing mechanism to keep reads fast, consistent, and distributed. It's only used for cluster state, though, not file data.

I think the larger issue with Paxos is that I've yet to meet anyone who wants their data replicated 3 ways (this despite newfangled 1TB+ disks not having enough bandwidth to actualy _use_ the data they store).

I've seen clusters in the field that planned for this -- they don't want to lose their data.


Similarly, if only 1 out of 3 replicas is surviving, most people want to be able to read their data, while Paxos demands a majority to ensure it is correct.

This isn't necessarily true -- it's quite easy for most applications to come up with an alternate method for ensuring correctness of retrieved data, if one assumes Paxos consensus was achieved during the write-data phase earlier in time. Checksumming is a common solution, but not the only one. Domain- or app-specific solution, as noted, of course.

Overall, reads can be optimized outside of Paxos in many ways.


(This is why Paxos is typically used only for critical cluster configuration/state, not regular data.)

Yep, I'm working on a config daemon a la Chubby or zookeeper, based on Paxos, that does just this. :)

Jeff


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/