Live data from Hacker News

ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

scylladb.com

71–80 of 99 posts

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#71

Earlier quoted context omitted.

Agreed, but which architectural features are you referring to?

Over the last decade, the distributed system nature of modern server hardware internals has become painfully evident in how software architectures scale on a single machine. The traditional approaches -- multithreading, locking, lock-free structures, etc -- are all forms of coordination and agreement in a distributed system, with the attendant scalability problems if not used very carefully. At some point several yea…

> As a corollary, garbage-collected languages do not work for this at all.

As a naive person about this...

Is possible to reap some of the benefits from this kind of architecture in a managed environment (like .NET)?

If a try to implement, for example a sqlite-like/kdb+, memory only database in .NET, how far is possible to go?

Or how avoid some common traps?

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#72
post #68

Earlier quoted context omitted.

Right, I should add that it was two years ago. My point is that the age of a project has nothing to do with the correctness of its Paxos implementation.

Jepsen's finding wasn't that there was a bug in Paxos. It was in how it handled conflicts.

"So you confer with DataStax for a while, and they manage to reproduce and fix the bug: #6029 (Lightweight transactions race render primary key useless), and #5985 (Paxos replay of in progress update is incorrect). You start building patched versions of Cassandra."

"Cassandra lightweight transactions are not even close to correct. Depending on throughput, they may drop anywhere from 1-5% of acknowledged writes–and this doesn’t even require a network partition to demonstrate. It’s just a broken implementation of Paxos. In addition to the deadlock bug, these Jepsen tests revealed #6012 (Cassandra may accept multiple proposals for a single Paxos round) and #6013 (unnecessarily high false negative probabilities)."

That's four bugs independent of the conflict resolution issue.

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#73
post #2

Wow, that autoadvancing website is a deal breaker.

ScyllaDB web person here. If I made it so that you could block one script and get a home page without the horizontally scrolling thingy (but have all the other JS stuff work including syntax highlighting and graphs), would you come back? ( dmarti@scylladb.com )

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#74
post #62

Earlier quoted context omitted.

Add my pet peeve: not listing latency stats. Big Tables does millions of ops/sec but it can take 5(!) seconds to complete one. That's the stat that matters to customers.

http://www.scylladb.com/technology/cassandra-vs-scylla-laten...

Thanks!

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#75
post #62

Earlier quoted context omitted.

Add my pet peeve: not listing latency stats. Big Tables does millions of ops/sec but it can take 5(!) seconds to complete one. That's the stat that matters to customers.

http://www.scylladb.com/technology/cassandra-vs-scylla-laten...

> The test hardware configuration includes:

> 1 DB server (Cassandra / Scylla)

The whole point of Cassandra is to run a cluster of servers to handle load at scale with minimal friction instead of having to buy a big single machine or spend all your time/money trying to run a clustered RDBMS. This test doesn't measure the correct thing.

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#76

Earlier quoted context omitted.

Agreed, but which architectural features are you referring to?

Over the last decade, the distributed system nature of modern server hardware internals has become painfully evident in how software architectures scale on a single machine. The traditional approaches -- multithreading, locking, lock-free structures, etc -- are all forms of coordination and agreement in a distributed system, with the attendant scalability problems if not used very carefully. At some point several yea…

I think that's a generalization that simply shifts the burden elsewhere, and cannot be said to be "the right" architecture in general. There is a reason CPUs implement cache-coherence on top of their "innate" shared-nothing design, and the reason is abstraction. If you don't need certain abstractions, then a sharded approach is indeed optimal, but if you do, then you have to implement them at some level or another, and it's often better to rely on hardware messaging (cache-coherence) than software messaging.

So for some abstractions such as column and other analytics databases, a sharded architecture works very well, but if you need isolated online transactions, strong consistency etc., then sharding no longer cuts it. Instead, you should rely on algorithms that minimize coherence traffic while maintaining a consistent shared-memory abstraction. In fact, there are algorithms that provide the exact same linear-scalability as sharding with an added small latency constant (not a constant factor but a constant addition) while providing much richer abstractions.

Similarly, your statement about "garbage-collected languages" is misplaced. First, there's that abstraction issue again -- if you need a consistent shared memory, then a good GC can be extremely effective. Second, while it is true that GCs don't contribute much to a sharded infrastructure (and may harm its performance), GCs and "GCed languages" are two different things. For example, in Java you don't have to use the GC. In fact, it is common practice for high-performance, sharded-architecture Java code to use manually-managed memory.

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#77
post #68

Earlier quoted context omitted.

Jepsen's finding wasn't that there was a bug in Paxos. It was in how it handled conflicts.

"So you confer with DataStax for a while, and they manage to reproduce and fix the bug: #6029 (Lightweight transactions race render primary key useless), and #5985 (Paxos replay of in progress update is incorrect). You start building patched versions of Cassandra." "Cassandra lightweight transactions are not even close to correct. Depending on throughput, they may drop anywhere from 1-5% of acknowledged writes–and th…

Oh LWT's are a mess, indeed. Thankfully, you don't normally need them.

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#78
post #69
post #66

Earlier quoted context omitted.

> scylla for instance does not leave the cache to the OS. It has its own caches for everything Uh-huh... that's all pretty common for databases. Cassandra would fit that description. > Never blocks on IO or page faults because all IO bypasses the kernel. That just seems nonsensical. Sometimes, you are waiting for IO. That's just reality. It is conceivable you bypass the kernel for I/O, but that creates a lot of compl…

http://www.scylladb.com/technology/memory/ By the way, I think you're replying to one of the devs of Scylla.

I'm sure I am.

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#79
post #69
post #66

Earlier quoted context omitted.

> scylla for instance does not leave the cache to the OS. It has its own caches for everything Uh-huh... that's all pretty common for databases. Cassandra would fit that description. > Never blocks on IO or page faults because all IO bypasses the kernel. That just seems nonsensical. Sometimes, you are waiting for IO. That's just reality. It is conceivable you bypass the kernel for I/O, but that creates a lot of compl…

http://www.scylladb.com/technology/memory/ By the way, I think you're replying to one of the devs of Scylla.

So, in general, I understand there is lots of stuff going on in Scylla that does distinguish it, at least from Cassandra. There is the user space networking logic for IO. However, a lot of the IO overhead with disk, for example.

Re: ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster

#80
post #57
post #33

Wait, did I read that right? the test was with (1) one server? What's the point of that? Smells like a cooked up test.

The point of that is to show how efficient a node can be, because that is what is replaced. All the external facing things for scylla is the same as Cassandra. That includes all the ring stuff and all network protocols. So you should expect similar cluster behavior.

>> So you should expect similar cluster behavior.

i would expect nothing.

If theire numbers were astounding with a 10, 100, 1000 node cluster, they would have published numbers with such set-ups. I call shenanigans on a report that is purposely out of line with the expected use case.

Post reply on HN