gpt4 book ai didi

c# - Cassandra 插入性能 c#

转载 作者:行者123 更新时间:2023-11-30 20:31:17 25 4
gpt4 key购买 nike

我正在使用 apache-cassandra-3.10 和 CassandraCSharpDriver 版本 3.2.1 在 Cassandra 上进行概念验证。
我想用 C# 将大量的 Tick 数据放入 Cassandra。
我当前的架构如下所示。

CREATE TABLE my_keyspace.ticks (
instrumentcode int,
timestamp timestamp,
type smallint,
exchange smallint,
price decimal,
volume int,
PRIMARY KEY (instrumentcode, timestamp, type, exchange)
) WITH CLUSTERING ORDER BY (timestamp ASC, type ASC, exchange ASC);

我按以下方式使用准备好的语句:

//setup
Cluster = Cluster.Builder().AddContactPoints("localhost").Build();
Session = Cluster.Connect("my_keyspace");
ps = Session.Prepare("Insert into ticks (instrumentcode, timestamp, type, exchange, price, volume) values(?,?,?,?,?,?)");
//repeated re-using the same prepared statement
var statement = ps.Bind(tickCassandra.Instrumentcode, tickCassandra.Timestamp, tickCassandra.Type, tickCassandra.Exchange, tickCassandra.Price, tick.Volume);
var x = Session.Execute(statement);

在我的开发机器 (i7) 和类似产品的机器(16 核 beast)上,使用这段代码我的插入性能一直停留在每秒 600 次左右。
您是否看到我的架构或 C# 代码有任何性能改进?还是我只需要调整更多 Cassandra 配置?

最佳答案

尝试使用:

//Execute a statement asynchronously
session.ExecuteAsync(statement);

这应该是您现在拥有的东西的巨大提升(大约 3-4 倍)。

评论后编辑:

一旦您将应用程序从 poc 阶段移出,您还需要注意重试和异常处理。有几个非常好的和有用的例子(xmas79 的建议 - 谢谢!)

  1. https://stackoverflow.com/a/39643888/6570821
  2. https://stackoverflow.com/a/40524828/6570821
  3. https://stackoverflow.com/a/40794021/6570821

关于c# - Cassandra 插入性能 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43465357/

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