Redis AOF fsync(ALWAYS)与LSM树

Redis AOF fsync(ALWAYS)与LSM树,第1张

Redis AOF fsync(ALWAYS)与LSM树

LSM是您有时希望实际阅读的AOF。您需要进行一些日常工作,以便以后可以更快地阅读。Redis的设计使您从不或仅在特殊情况下阅读它。另一方面,Cassandra经常读取它来处理请求。

对于像Cassandra这样的数据库,Redis所说的慢实际上是非常快的。

==========================更新

事实证明,我太早得出结论了。从设计的角度来看,上述所有内容都是正确的,但是实现方式却相差甚远。尽管Cassandra声称绝对耐用,但它并没有

fsync
在每个事务上,都没有办法强制执行此 *** 作(但可以使每个事务同步)。我能做的最好的是“在以前的fsync之后至少1毫秒以批处理模式进行fsync”。这意味着对于我正在使用的4个线程基准测试,每个fsync执行4次写入 *** 作,而线程正在等待fsync完成。另一方面,Redis每次写入都会执行fsync,因此频率提高了4倍。通过增加表的更多线程和分区,Cassandra可以赢得更大的收益。但是请注意,您描述的用例不是典型的。其他架构差异(Cassandra擅长分区,Redis擅长计数器,LUA等)仍然适用。

号码:

Redis命令:

set(KEY + (tstate.i++), TEXT);

Cassandra命令:

execute("insert into test.test (id,data) values (?,?)",state.i++, TEXT)

哪里

TEXT = "Wake up, Neo. We have updated our privacy policy."

每秒Redis fsync,硬盘

Benchmark   (address)   Mode  Cnt      Score      Error  UnitsLettuceThreads.shared  localhost  thrpt   15  97535.900 ± 2188.862  ops/s  97535.900 ±(99.9%) 2188.862 ops/s [Average]  (min, avg, max) = (94460.868, 97535.900, 100983.563), stdev = 2047.463  CI (99.9%): [95347.038, 99724.761] (assumes normal distribution)

Redis fsync每次写入,硬盘

Benchmark   (address)   Mode  Cnt   Score   Error  UnitsLettuceThreads.shared  localhost  thrpt   15  48.862 ± 2.237  ops/s  48.862 ±(99.9%) 2.237 ops/s [Average]  (min, avg, max) = (47.912, 48.862, 56.351), stdev = 2.092  CI (99.9%): [46.625, 51.098] (assumes normal distribution)

Redis,每次写入均同步,NVMe(Samsung 960 PRO 1TB)

Benchmark   (address)   Mode  Cnt    Score   Error  UnitsLettuceThreads.shared     remote  thrpt   15  449.248 ± 6.475  ops/s  449.248 ±(99.9%) 6.475 ops/s [Average]  (min, avg, max) = (441.206, 449.248, 462.817), stdev = 6.057  CI (99.9%): [442.773, 455.724] (assumes normal distribution)

Cassandra,每秒同步一次,硬盘

Benchmark       Mode  Cnt      Score     Error  UnitsCassandraBenchMain.write  thrpt   15  12016.250 ± 601.811  ops/s  12016.250 ±(99.9%) 601.811 ops/s [Average]  (min, avg, max) = (10237.077, 12016.250, 12496.275), stdev = 562.935  CI (99.9%): [11414.439, 12618.062] (assumes normal distribution)

Cassandra,每批fsync,但至少要等待1毫秒,HDD

Benchmark       Mode  Cnt    Score   Error  UnitsCassandraBenchMain.write  thrpt   15  195.331 ± 3.695  ops/s  195.331 ±(99.9%) 3.695 ops/s [Average]  (min, avg, max) = (186.963, 195.331, 199.312), stdev = 3.456  CI (99.9%): [191.637, 199.026] (assumes normal distribution)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4895815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存