2016-05-09 1 views
0

Я тестирую Cassandra, и я сделал программу на C# для вставки данных в мою базу данных. Я тестировал его на машине с 16-гигабайтным баком и 8 ядрами. Это работало отлично, и он вставил 1.000.000 строк без каких-либо проблем, потребовалось около 80-90 секунд.Оператор массовой вставки Cassandra не работает на конкретной машине

Теперь я тестирую ту же программу на другой (виртуальной) машине с 4 ГБ оперативной памятью и 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#. Я думаю, что его что-то вызывает Кассандра, если он думает, что это займет много времени, чтобы выполнить задачу.

ответ

2

session.Execute - это действие синхронизации. Когда выполнение завершается, вы получили ответ от координатора, поэтому код в порядке. Я бы не разбивал кластер с подключением и отключением при каждом вызове, но поддерживал соединение открытым (его фактически убийцей производительности). Что касается оборудования и тестов, мы сделали то же самое в тот же день. Мы попробовали выполнить сумасшедшие тесты нагрузки на тоном оборудовании, таком как ваше. Не ожидайте чудес от этого ящика, поскольку Кассандре требуется как минимум 2 ядра из-за всей работы, выполняемой под капотом. Вы должны быть в состоянии делать разработку с этим полем, но не ожидаете, что 1mil пишет.

+0

Благодарим за отзыв, это действительно имеет смысл. – Proliges

Смежные вопросы