T********i 发帖数: 2416 | 1 At Cassandra Summit opening today, Avi Kivity and Dor Laor (who had
previously written KVM and OSv) announced ScyllaDB — an open-source C++
rewrite of Cassandra, the popular NoSQL database. ScyllaDB claims to achieve
a whopping 10 times more throughput per node than the original Java code,
with sub-millisecond 99%ile latency. They even measured 1 million
transactions per second on a single node. The performance of the new code is
attributed to writing it in Seastar — a C++ framework for writing ... 阅读全帖 |
|
|
w***g 发帖数: 5958 | 3 这个我前段时间刚研究过。mTCP不行。最好的是seastar,就scylladb用的那个。
你还回过我帖子。
seastar有个自带的HTTP客户端叫seawreck,可以上他们的DPDK stack。
他们的网页在这儿https://github.com/scylladb/seastar/wiki/HTTPD-benchmark
我千辛万苦刚刚也跑起来了,两台机器1G网卡背对背连。
Server: 10.2.0.20:10000
Connections: 256
Requests/connection: dynamic (timer based)
Requests on cpu 0: 7714601
Requests on cpu 1: 7529698
Requests on cpu 3: 7504488
Requests on cpu 2: 7484931
Total cpus: 4
Total requests: 30233718
Total time: 60.002058
Requests/sec: 503878.016799
也就是 504K req/s。 我昨天发的... 阅读全帖 |
|
f********r 发帖数: 304 | 4
1primary+
碎片
cassandra 确实算是比较稳定的,但是因为用JVM经常会被人喷,虽然我没遇过什么坑
。现在还有一个copycat scylladb。之前有机会见过他们的高层,感觉兴致勃勃的要彻
底beat casssandra成为下一个mongodb。我现在infra搞的少了,现在帮一个startup
bootstrap他们的产品。基本RDS的postgres (w/ read replica)就搞定。简单易用。
多说两句mongodb。v3以后确实要好很多,但是这是相对v2而言,不是和peer比。
Postgres有很多extension也很好用,虽然sql vs nosql各有利弊,关键还是要看
application的需求。MDB的股票建议大家还是小心点,我看最近daily volume都很弱。
而且它家不赚钱还是有些问题。互联网和软件行业的大部分profit都是做广告,应用(
包括个人和business)以及API的。做infra的monetization都比较困难。比如docker很
方便好用,但是最为公司运营我不看好它家能赚很多钱。同样的hashicorp... 阅读全帖 |
|
T********i 发帖数: 2416 | 5 ScyllaDB claims to achieve a whopping 10 times more throughput per node than
the original Java code, with sub-millisecond 99%ile latency.
你在哪里看到up to的?
% |
|
g*****g 发帖数: 34805 | 6 http://www.scylladb.com/technology/cassandra-vs-scylla-benchmar
看了这个benchmark,目测10倍是没有,8倍?但关键是misleading,没有人会单机跑C*
的,你最少也上3个节点。我怀疑replication会由Network IO latency主导,从而大幅
缩小差距,有可能会然并卵。举个例子就是network latency 1ms, 你kernel bypass
节省了0.1ms,绝对是然并卵。
吹嘘的单机sharding优化没有意义,一个机器当了就全当了,用C*的目的之一就是追求
high availability. 一份数据多机备份是必须的,这反过来直接说明cluster里,
replication factor > 1立马要大打折扣。
在cluster benchmark出来之前,我对这东西保持怀疑态度。 |
|
|
N*****m 发帖数: 42603 | 8 scylladb有dpdk的driver,有点意思 |
|
|
w***g 发帖数: 5958 | 10 编译器没那么神。我在C++里嵌过汇编,速度提高还是很明显的。
gcc的vectorization还有非常大的余地可以提高,可能需要应用人工智能。
Nervana的neon比别的系统快几乎一倍,也就是关键处的汇编语言写得牛逼。
一般来说,脚本语言开发的是不在乎性能部分。
java可以做到O(n),有常数级的差别。这个是boxed type以及type removal这些
语言的局限所致。除非内嵌C++,这个常数级的差别无法突破。
(如果C++全都用需类指针,container里全都存指针,则性能就下降到和java一致。
但C++程序员不会这么写程序。你见到的benchmark估计就是这么来的。)
java和脚本语言之所以现在应用这么广泛,一个大前提是性能敏感部分全都放到
数据库去做了。用java和C++写数据库的性能区别参考这个
http://www.scylladb.com/technology/cassandra-vs-scylla-benchmar
C++可以做到跨平台的最优。但是如果要利用平台特性,比如充分发挥SSD和AVX
指令的性能,基本上就得手工写汇编了。用汇编写的轮子我只... 阅读全帖 |
|
T*******e 发帖数: 4928 | 11 kafka,zookeeper好像都有C++ clients. 因为我没用过所以不知道
是不是C++ clients 很难跟系统的其它部分整合。
web service我倒没注意。scylladb不知好用不。 |
|
|