How Do I Cassandra?
slideshare.net
slideshare.net
The md5 hashing to shards around a keyspace ring and the read/write quora were particularly interesting. Definitely going to be browsing the Reddit source (https://github.com/reddit/reddit) for ideas on how to use Cassandra.
The ring is first explained in Section 4.2 Partitioning Algorithm.
I'm always surprised when someone's raw slide decks, for an interesting presentation make it to the front page of HN. I get so little from just an 85 slide deck, especially decks with a slide like
DATA MODEL
I gotcha column family ratttt heeeeyyyaahhh!
Obviously you don't get much out of presetations that are just 20 flickr photos and 10 words but for decks like this you can learn a bit.
Since many presentations are "read" by more people than "watched" I'd hope that authors will pay more attention into improving the readability of their presentations (perhaps by releasing more wordy versions).
Y u no vector clocks?
"...the primary use case for classic vector clocks of merging non-conflicting updates to different fields w/in a value is already handled by cassandra breaking a row into columns."
If anyone has a good, cheap solution for recording/streaming user group presentations, please share.
I'm sure it's better in-person or with a recording though.
When you add a node, you need to decide if you want to rebalance the cluster by moving every node's token a bit so that every node's range consumes 20% of the keyspace, or if you just want to quickly alleviate load by splitting a single node's traffic in half by assigning the new node's token half way into an existing node's range.
Decommissioning a node works the same way, but in reverse.
More detailed info: http://www.datastax.com/docs/1.0/operations/cluster_manageme...
Seriously, it's a much more pleasant slide-consuming experience for your great slides.
http://chip.typepad.com/weblog/2011/08/why-cassandra-is-unfi...
Replication events are too important to be designed to fall on the floor. I want at any given time to know approximately how far behind replication is; I want primary write events to block until replication is at least durably scheduled; and if I pause or slow operation and wait for replication to catch up, I want to know that it _is_ caught up without holes. Cassandra fails utterly to meet these minimal requirements.
Master/slave queue is not the only way to meet these needs, but unless a replacement can fulfill the requirements, I can't responsibly switch.
With that in mind, let me pose this question to you.
Is using a Dynamo architecture (http://www.allthingsdistributed.com/2007/10/amazons_dynamo.h...) for S3 "irresponsible" of Amazon?
I submit that by this point, Amazon (among others) has convincingly demonstrated that this approach can indeed achieve a high degree of reliability.
If you agree, then I suggest that you read through the Dynamo and Eventually Consistent papers again with the "let's assume these people aren't idiots" approach, and see if you can spot what this architecture offers to achieve a similar goal to your "wait for replication to catch up" design.
I the event a replica is unavailable for a write, the co-ordinator stores that write itself and delivers it to the replica once it becomes available again (Hinted Handoff, see the oft linked paper on eventual consistency).
This makes read-repair far less of an issue, usually only as a mechanism to ensure consistency of requests that occur in the window between the node becoming available and the hint being delivered.
It's called eventual consistency for a reason. Writes don't just go missing. If you're uncomfortable with the "eventual" aspect of the replication model then you're better off with a database that sacrifices availability for improved consistency guarantees.
The back pressure argument is laughable. In Cassandra, a write consistency of greater than ONE will ensure the data is replicated to more than one node before acknowledging to the client.
Good thing there is no god, or you should have to watch out for lightning.
While not proof in the scientific sense, this type of evidence is used as a basis for scientific theories that explain much of what we know about the world.
However, I still look forward to your detailed, rigorous rebuttal of my arguments in the previous comment.