用于高强度写入的数据库引擎

时间:2019-03-03 18:28:54

标签: database cassandra rocksdb

我想每天(仅在空闲时间,例如晚上)向数据库服务器写入数百GB。我也希望数据仅在写入完成后才可用。例如,如果使用RDBMS系统,则将写入临时表,然后在新表和旧表之间交换。

这就是为什么我要对密集写入提供数据库支持的原因。我研究了一些选择。

  • RocksDB:适合写操作,但是因为它是嵌入式数据库,所以没有很好的监视工具。
  • 卡桑德拉:我认为这太过分了。

我研究了其他一些数据库:CockroachDB和HBase。那么哪个数据库适合我的高写密集型且易于管理的目的。

谢谢

2 个答案:

答案 0 :(得分:1)

也许这个问题更适合https://softwarerecs.stackexchange.com/

除此之外,当您查看仅插入一个节点的异步插入和批处理时,Cassandra在许多插入中的性能都很好。我们每天都要处理> 100GB的数据。

请记住,您将需要一种策略来摆脱选择的任何数据库中的旧数据。 cassandra无法为您处理的一件事是“巨大”的事务,该事务使完成完整插入后的数据可见。您必须在应用程序端执行此操作-为此,我们使用“标记插入”,并且仅当标记已设置时才在客户端中进行处理。

Instagram上的一些人也将RocksDB和Cassandra组合成Rocksandra:

https://github.com/Instagram/cassandra/tree/rocks_3.0 https://instagram-engineering.com/open-sourcing-a-10x-reduction-in-apache-cassandra-tail-latency-d64f86b43589

答案 1 :(得分:0)

您可以尝试使用scylla和cassandra来提高写入率。 Cassandra具有许多功能,可提供良好的灵活性和可伸缩性。您可以参考apache.org或datastax cassandra了解更多详细信息。如果您想获得用C ++编写的良好性能,Scylla也是不错的选择。