|
|
|
|
|
by ibains
1778 days ago
|
|
We want software engineers who understand compilers and query optimizers and systems. This requires good theoretical foundations with solid engineering skills. It is extremely hard to get these. Most CS majors don’t know much CS - top grads from top US schools undergrads are clueless usually. That’s why you get projects like Hadoop- a large scale systems project written in Java instead of systems languages - because the engineers are poor quality in top companies as well. |
|
I do not think that being written in C++ would have solved any of the problems we had with it. The biggest issue was the thread replication problem on writes (each write is replicated 3x, and each operation is done synchronously with a thread. Lots of parallel writes will mean tens of thousands of threads). Async was known and possible at the time, and I think even fixed upstream.
Java doesn't share machines well (at the time it never returned memory to the operating system, this is fixed now), but your hadoop machines shouldn't be shared. If you want to run a monolithic server, java will do just fine. The garbage collector will work fine unless you do dumb things (which I've also done!)