gpt4 book ai didi

nosql - 在Cassandra中调整写入性能

转载 作者:行者123 更新时间:2023-12-04 13:32:21 29 4
gpt4 key购买 nike

我们有以下典型场景:

1个列族,少于10个简单列。

当我们从客户那里得到请求时,我们需要在数据库中写入该列族的10 000 000条记录,并且要成批写入(一批中写入1000条)。这通常持续5-10分钟,具体取决于群集中的节点数和复制因子。

在接下来的几个小时开始写操作之后,我们将收到很多更新(每条记录被更新2次)。

因此,我们在一天中的一个时间段(一小时)内进行大量写入/更新操作,此后很少。

问题是:需要采取哪些步骤来提高写入/更新性能。我注意到例如 memtable_flush_queue_size 和类似的配置字段,但是我对cassandra的经验不足,无法确切地知道该怎么做。

任何建议都是有帮助的,

伊万

最佳答案

  • 增加JVM内存(在Java 6+上最大为12 GB)-这将自动增加内存表的大小并减少刷新间隔。这也意味着,频繁的更新将在RAM中合并在一起,而不是在压缩期间合并在一起-这也将减少磁盘使用量。像往常一样有缺点-cassandra将需要更多的时间来启动,因为提交日志会变得更大(当将memtable刷新到SSTable中时,提交日志将被删除)
  • 非常重要:使用单独的磁盘存储数据和提交日志。您可以使用SSD来存储数据。对于提交日志,它没有意义,因为它是顺序写入。
  • 将复制因子更改为1会在群集中产生较少的负载,因为每个节点将必须照顾其数据,而不必额外处理副本,但是您可能会丢失数据-我不建议这样做。

  • 这可能有助于更好地理解:

    http://maciej-miklas.blogspot.de/2012/09/cassanrda-tuning-for-frequent-column.html

    http://maciej-miklas.blogspot.de/2012/08/cassandra-11-reading-and-writing-from.html

    关于nosql - 在Cassandra中调整写入性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21826271/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com