|
|
|
|
|
by vardump
4044 days ago
|
|
Both Dynamo and Cassandra are written in Java. Are the replacements still Java? At least Google's counterparts seem to be written in C++. Such as BigTable and GFS. Presumably also Spanner is C++. In addition to C++, especially considering its less good safety/security record, Rust, Golang and Nim should be interesting alternative, safer, implementation language choices. In contrast to idiomatic Java, those languages provide significantly higher CPU cache hit rate for internal data structures due to no value boxing [1] and ability to reliably reduce problems like false sharing [2]. 1: http://www4.di.uminho.pt/~jls/pdp2013pub.pdf (These issues can be worked around in Java by abandoning object orientation and instead having one object with multiple arrays (SoA, structure of arrays). In other words, not List or Array etc. of Point-objects, but class Points { int[] x; int[] y; ... } that contains all points.) 2: http://mechanical-sympathy.blogspot.com/2011/08/false-sharin... (False sharing performance issues) |
|
And I don't understand why anybody should care about CPU cache hit rate. The bottleneck is always going to be in the I/O pipeline. And Java is faster than C++ and vice versa in various situations.