> I'm curious as to how you would have so many asset / user permissions that > you couldn't use a standard relational database to model them. Is this some > sort of multi-tenant system where you're providing some generalized asset > check-out mechanism to many, many customers? Even so, I'm not sure the > eventually consistent model wouldn't open you up to check-out collisions, as > you mention yourself.
The assets are binary files on a document tracking system. Our current platform is postgres-backed; the entire system we've written is fairly easily distributed across multiple computers, but postgres isn't. There are reliable databases that do scale out, but they tend to be a little on the pricey side... Our current system works well in the tens to hundreds of millions of documents with hundreds of users, but we're hitting the billions of documents with thousands of users, so cassandra's scaling properties are pretty appealing there. I don't think eventual consistency would be a terrible problem; so long as our system lives in a rack, or at least in a single data center I think the database would become consistent before the documents would be visible by any users of the system. > Am I missing something about your example? Just the scale, I think. I like relational databases, but I'm really interested in trying out cassandra's way, if I can come up with a sane way to model my system in it.