https://www.slideshare.net/ConfluentInc/kafka-on-zfs-better-...
Full talk: https://www.confluent.io/kafka-summit-sf18/kafka-on-zfs (shameless plug)
https://www.slideshare.net/ConfluentInc/kafka-on-zfs-better-...
Full talk: https://www.confluent.io/kafka-summit-sf18/kafka-on-zfs (shameless plug)
50MB/sec multiplies due to replication and consumers. Also in large clusters, the bottleneck comes often from the network switches rather than the rest of the stack.
Also when it comes to sustained load, many people don't realize that 50MB/sec × 10 brokers × 24 hours × 7 days × 3600 seconds leads to 300TB per week (without counting the replication). :)
My org has gone a different direction. We're using spinning rust in GCP and deploying on kubernetes to make scaling out easy. Standard disk provides surprisingly good performance (relative to AWS) and we can easily ingest 10gbps with 20-30 brokers.
There's some pros to Ceph, mostly that you can add/remove drives at-will and the cluster will automatically rebalance. It's just very, very bandwidth hungry for cross-cluster communication.
It doesn't matter that much since it's for a homelab, I could migrate to some 10Gbe links between the cluster at some point and it'll get snappier. ZFS is just such a solid, battle tested piece of tech that it's hard to beat it unless you have a very different set of constraints.
Even then though I can get 125mb/s throughput from iperf, it's more just pointing out that Ceph has some pretty hefty bandwidth overhead. No knock against Ceph, it's a cool piece of tech and has its place if you've got the pipes to support it. The comment was more about how impressive ZFS is.
125MB/sec with iPerf is the max throughput of a 1gig link. Then again, iPerf doesn't do anything with the data. Ceph does a lot with the data once it's pulled off the network (mainly replication or erasure coding to other OSD's).
I can hit 125MB/s on my ZFS migrations so it's not a unachievable number, just that Ceph had overhead(which is fine, it's doing something different than ZFS).
Even the older Arista and whitebox QCT stuff is less than $200-250 per switch. For a lab, I'd rather use something that once lived in a datacenter than something consumer-facing like Ubiquiti.
However at the end of the day if I don't want to keep the kid up at night I gotta run gear that doesn't sound like an F-18 at full throttle.
In your example, they need 16 HDDs to reach 500MB/s, which average to ~30MB per disk.
This is why all modern Macs do transparent encryption even if you didn’t explicitly turn on FDE.
Not that I would necessarily expect the throughput to be significantly different than the native version considering the good performance of JITted Java, but was just commenting on your assumption.
I mostly work with C++, Python and Node in my day to day, so my assumptions are biased.
https://github.com/google/conscrypt
According to reports into Jetty folks, using conscript for TLS, gives 10x improvements
https://webtide.com/conscrypting-native-ssl-for-jetty/
Note, that, from what I read, conscrypt is not compiled for any of the BSDs so if you are testing there, you will have to compile conscrypt yourself
https://issues.apache.org/jira/browse/KAFKA-2561
Not sure it's going to get done at this point. I've only recently started using kafka and found the TLS issues to be somewhat surprising. AES-NI has been around for how long now?
I speculate that this is because it's come out of the hadoop community and they haven't really had much luck implementing security features.
It looks like with Java 9 the SSL stuff in Kafka saw a drastic speed boost.