現在、私は2つのコアと4GBのRAMを搭載したマシンで作業しています。私はテーブルにデータを一括して挿入する簡単なC#プログラムを作った(100万行)。コードを実行するたびに、テーブルに約250.000行しか挿入されません。デュアルコアマシンのCassandra
これはハードウェアの問題です。なぜなら、このコードを8つのコアと16GBのRAMを持つ別のマシンで使用すると、問題なく完全にうまく動作し、100万行も挿入されるからです。
私はCassandraからもC#からもエラーはありません。なぜなら、それらをすべて挿入しないからです。
Cassandraの設定を変更する(ヒープスペースを増やす、またはRAMを増やすなど)、Cassandraは行の挿入を停止するだけでなく、実際に挿入を終了することはできますか?
private void bt_cluster_Click(object sender, EventArgs e)
{
Connect(); //Cluster.Builder and connecting to a cluster.
List<Meter> meterList = fillList(); // filling a list with meter ojects
var statement = session.Prepare("insert into meters (ID, ConnectionMeterID, ConnectionMeterRevision, PeriodStart, PeriodEnd, Volume1, Volume2, Volume3, Volume4, Volume5, Volume6, Volume7, Volume8, DataTypeID, FileID, Remarks, QualityScore, LocationID, Removed) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
var tasks = new List<Task>();
foreach (Meter m in meterList)
{
var bind = statement.Bind(m.ID, m.ConnectionMeterID, m.ConnectionMeterRevision, m.date1, m.date2, m.volume1, m.volume2, m.volume3, m.volume4, m.volume5, m.volume6, m.volume7, m.volume8, m.DataTypeID, m.FileID, m.Remarks, m.QualityScore, m.LocationID, m.Removed);
var resultSetFuture = session.ExecuteAsync(bind);
tasks.Add(resultSetFuture);
}
CloseConnection();//shutdown the cluster
}