HNHacker News
TopNewBestAskShowJobs

leventov

177 karma · joined July 23, 2014

submissionscomments
leventov··on Anna: A Fast, Scalable, Flexibly Consistent Key-Value Store
Same thoughts, basically: https://news.ycombinator.com/item?id=16555741
leventov··on Anna: A Fast, Scalable, Flexibly Consistent Key-Value Store
Claims in the blog post (orders of magnitude faster than the current state of the art systems, universal linear universal scalability from threads to many nodes, dimissing Dean's rule of redesign after x10 scale) seem overblown to me.

What have they really built: a purely in-memory KV store that doesn't support synchronous secondary writes for durability. So, any comparisons with ACID KV stores, either disk based (Cassandra, Mongo) or in-memory, are not apples-to-apples comparisons from the beginning. What could be production applications of such system, other than cache?

On their benchmarks: they don't really compare with state of the art.

Selection of competitors in the single-server, multi-core benchmark doesn't include systems like https://github.com/fastio/pedis. Also, they still use 100 millisecond granularity of gossip (within a single server!), while for all other compared systems corresponding metric could be evaluated as nearly 0 by construction, that gives Anna a huge edge.

In multi-node benchmark, they claim 10x over Cassandra. ScyllaDB (https://www.scylladb.com/) claims the same, while being ACID and linearizable, unlike Anna. Also, Anna achieves stronger consistency levels by holding off reads, that kills latency, given 100 millisecond gossip granularity. If it applies only to their multi-key consistency (Read Committed/Uncommitted) it's probably OK, because I suppose that there is no magic bullet that allows to preserve super low latencies and providing similar consistency in Scylla either. But if Anna needs to hold off reads for any of their claimed single-key consistency levels (all of which are weaker than linearizable), that's worse than Scylla. The authors of the paper didn't detail the algorithm for each consistency level.

Seems like the authors don't benchmark multi-node scalability of Anna on any consistency levels except the weakest, simple eventual consistency. It would be interesting to see if Anna scales as well on stronger consistency levels.

To me, the main outcome of this paper is another confirmation that shared-nothing, thread-per-core, message passing designs are beneficial in the modern computing environment. This is not new, however, see H-Store, Scylla/Seastar, Tarantool (https://github.com/tarantool/tarantool), Aeron (https://github.com/real-logic/aeron), Tempesta (https://github.com/tempesta-tech/tempesta), etc.

Novelty is the framework that generalizes thread/node scalability, different consistency levels reusing the same codebase, and having just a single knob - gossip granularity. Practical applications are limited. Certain techniques are probably going to be cherry-picked by systems such as Redis Cluster and In-Memory Data Grids.

leventov··on I'm Peter Roberts, immigration attorney who does work for YC and startups. AMA
Could you elaborate on "core contributor to a major open source project"? Do you know examples of that?

I'm a relatively core contributor of druid.io project, struggling to get a touristic visa (2 failed attempts).

leventov··on String.intern()
No, it would suck more, because currently you have an option to avoid string.intern() altogether (and that is what you should do), and pay nothing for that in runtime. Another boolean flag may cost extra 4-8 bytes on the heap for each String object, whether you use String.intern() or not.
leventov··on I Wrote My Fastest Hashtable
There is a good general segmented hashtable algorithm with ~100 times smaller rehash spikes than in classic hash tables: https://github.com/OpenHFT/SmoothieMap/blob/master/src/main/...

The idea is not super clever so I'm sure many people found & implemented it in papers and other languages, but I didn't find them. Will be grateful if someone points me to prior work.

leventov··on Ask HN: Any recommendations on resources for learning one algorithm a day?
https://github.com/e-maxx-eng/e-maxx-eng

Pretty much in the beginning of translation to English, but the original resource in Russian is a trove of information on algorithms. Suits well for the "one also a day" learning format.

leventov··on InfluxDB 1.0 GA Released: A Retrospective and What’s Next
What about Druid? It is largely supported by Metamarkets and Yahoo, companies which are not trying to monetise the db itself.
leventov··on Memcached design and comparison with Redis
Every modern distrubuted database / IMDG does this
leventov··on Memcached design and comparison with Redis
I entirely agree with you.

Naming the post "Comparison to Redis" and adding some paragraphs about this is a bit glory hunting, because having two buzzwords in the title is better than one :)

Basically it's just Memcached internals discussion and improvements suggestion.

leventov··on Memcached design and comparison with Redis
Now they think about adding concurrency anyway (https://news.ycombinator.com/item?id=9026344) And one day they will implement that, because it is quite difficult to keep talking that single-threaded database solution is OK in today's server CPU landscape, better non-blocking system IO, etc. Why you think A + B (features + concurrency) is better than B + A (concurrency + features)?
leventov··on Show HN: OpenHFT Collections – the fastest Java hash sets and maps ever
Comarison with Trove and other primitive collections libs: http://java.dzone.com/articles/time-memory-tradeoff-example

Why faster:

- no supplemental "states" array in open adressing implementation

- keys and values are stored "in parallel" in the single array, whenever possible: https://github.com/OpenHFT/hftc/issues/23

- generally, attention to the finest detail in implementation

There is no "actual storage code" - it is 95% generated.

Thank you.

← PreviousPage 2 of 2