
Ask HN: Will rewriting Cassandra in Go solve GC issues? - xstartup
I am GC&#x2F;DBMS noob.<p>We keep coming across articles which explain Cassandra&#x27;s GC issues.<p>Go also has GC. (Not sure if it&#x27;s better than Java&#x27;s or not)<p>There are also some DBMS implemented in Go but I&#x27;ve personally not heard of them running into GC issues.
======
truth_seeker
Why not use ScyllaDB which is rewritten version of Cassandra in C++.

Or you can use Azul Zing JVM which provides sub millisecond GC latency of heap
size upto 8 tera bytes. It's commercial and little expensive if you target
private cloud but its cheap on AWS marketplace.

Here are some of success stories of customers who invested in Azul Zing for
their big data architecture or otherwise.
[https://www.azul.com/resources/success-
stories/](https://www.azul.com/resources/success-stories/)

------
blaisio
Performance wise, Go is generally in the same "league" as Java. If Cassandra
was rewritten in Go, it would not have the same issues, but it would have some
new different issues.

------
deathtrader666
Look into ScyllaDB. It is written in C, and supposed to be a drop-in
replacement for Cassandra.

------
malux85
Cassandra is not that bad, maybe I didn’t operate it at large enough scale - I
only had ~50 nodes - but u was doing 15,000 writes a second average, and
45,000 peak.

I never really noticed the GC issues and only had to tune a single GC
parameter once.

The bigger issues I had was the need for all the extra disk space when a major
compaction happens.

~~~
riku_iki
> The bigger issues I had was the need for all the extra disk space when a
> major compaction happens.

is leveldb compaction strategy supposed to mitigate this issue?

------
richgora
Rich Gora The only assumption I am making here is that these timeouts are due
to Garbage Collector Stop the World pauses and not other issues such as CPU or
I/O saturation. In my case I was able to produce a handful of multi-second
stop the world GCs during my load test throughout a day. Hence Cassandra .

~~~
riku_iki
Which GC exactly you used in your experiments? JVM has plenty of them with
different properties regarding latency/throughput balance.

