|
|
|
Back to newsletter 247 contents
Scalability is not the same as latency. I'm not even sure most people equate these, so maybe I'm just stating the obvious, but a recent conversation I had makes me doubt that.
I was having a conversation with a cloud advocate. He was insistent that everything should be moved to the cloud, any desired performance could be achieved in the cloud, and specifically cloud native - eg moving from Cassandra to DynamoDB (both implemented in Java, though that's not strictly relevant here). His repeated point was that Amazon achieved massive scale by running all their own services on their cloud, so there really was no reason anyone else couldn't.
I tried to explain that, for example, while DynamoDB (a cloud native NoSQL datastore) can provide the same capability as Cassandra, to massive scale (a huge number of requests per second), it can't provide the same latency. DynamoDB can consistently return data in the 5-20 millisecond range even at massive scale. But it can't provide consistent 1 millisecond results, which Cassandra can at scale (DynamoDB has a separate caching capability called DAX for 1-millisecond response targets - but it's a cache, not part of the datastore).
There is a tradeoff. Scalability and latency are separate performance targets and you need to have separate targets defined so you know where to target your efforts. You can't just assume scalability can also give you your desired latencies. Now on to all the usual newsletter list of links, tips, tools, news and articles, and as usual I've extracted all the tips into this month's tips page
Java performance tuning related news
Java performance tuning related tools
Back to newsletter 247 contents