簡體   English   中英

Cassandra批量插入語句不適用於特定計算機

[英]Cassandra bulk insert statement does not work on specific machine

我正在測試Cassandra,並用C#編寫了一個程序以將數據插入數據庫。 我在具有16 GB RAM和8核的計算機上對其進行了測試。 這工作得很好,它插入了1.000.000行而沒有任何問題,大約花費了80-90秒。

現在,我正在具有4GB內存和1個內核的不同(虛擬)計算機上測試完全相同的程序。 當我在此處進行測試時,在插入大約50.000之后,它不再插入了(一次是48.000,另一次是53.000)。

我的期望是只花費更長的時間,但仍然可以完成1.000.000行的插入。

基本上這是我的代碼

private void bt_insert_Click(object sender, EventArgs e)
    {
        Connect();   //
        List<Meter> userList = fillList();
        DateTime timeStamp = System.DateTime.Now;
        session.Execute("insert into meters (ID, ConnectionMeterID, ConnectionMeterRevision, PeriodStart, PeriodEnd, Volume1, Volume2, Volume3, Volume4, Volume5, Volume6, Volume7, Volume8, DataTypeID, FileID, Remarks, QualityScore, LocationID, Removed) VALUES(1,2,3,'2013-04-03 07:01:00', '2013-04-03 07:01:00', 1,2,3,4,5,6,7,8,9,10,'testest',3.2,11,12)");
        CloseConnection();
    }

我沒有收到任何反饋會發生什么,所以我無法發布錯誤消息。 我不認為它與C#有關。 我認為這是Cassandra造成的,因為它認為執行任務需要很長時間。

session.Execute是一個同步操作。 執行完成后,您會收到協調員的響應,因此代碼正常。 我不會在每次呼叫時都用連接和斷開連接來破壞群集,而是保持連接打開(它實際上是性能殺手)。 關於硬件和測試,我們在當天做了同樣的事情。 我們嘗試對像您這樣的瘦硬件執行瘋狂的負載測試。 不要指望那個盒子里有奇跡,因為卡桑德拉需要至少2個核心,因為所有工作都是在引擎蓋下完成的。 您應該可以使用該框進行開發,但是不要期望有100萬次寫入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM