Hacker News new | past | comments | ask | show | jobs | submit login

Yes; in vanilla Paxos you need a majority of nodes to be up/reachable to service either a read or a write. There isn't really a distinction between read/write in terms of availability (for better or worse.) I think its pretty unlikely (in terms of db design) that you'd have a consistent system that could service reads but not writes during some manner of outage.



> I think its pretty unlikely (in terms of db design) that you'd have a consistent system that could service reads but not writes during some manner of outage.

Consider a bank account. I can consistently service writes that add or subtract from the balance as long as I can guarantee durability and is willing to blindly update without a consistent view of the balance.

I can only service consistent reads when I can guarantee that I have seen every committed transaction.

In this case we opt for availability over consistency when presenting the current balance, but for consistency when e.g. cutting statements (through the brute-force method of just waiting until all settlement for the relevant dates has occurred).


I think you misread my comment; I said its unlikely to have a consistent system that can service reads but not writes during some manner of disruption.


Ah, yes, I read it as exactly the opposite in fact.

But there are lots of consistent systems that can service reads but not writes during disruption. Databases with synchronous replication, for example would typically continue to handle reads, but fail writes, during a partition.


True, good point!


> I think its pretty unlikely (in terms of db design) that you'd have a consistent system that could service reads but not writes during some manner of outage.

It's very easy to imagine this scenario. All you need is a read replica of your CP RDBMS.

For most systems consistency is only required on write transactions and eventual consistency on read only transactions is acceptable.


Paxos is about ensuring consistency. So why would the original arguments hold for a write-available database like Cassandra - or about log/journal storage, then?




Applications are open for YC Summer 2021

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: