|
|
|
Cassandra и память
|
|||
|---|---|---|---|
|
#18+
Изучаю cassandry. Версия 1.1.2 Библиотеки для касандры взял astynax Java 6. Windows Вообщем есть простейший код создающий объект вида ключ/значение общий объем каждого объекта около 2кб. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. В цикле создаю в базе по 10, 20, 100 тыщ объектов. Тестирую. Работает очень быстро. Просто пипец летает. SQL субд рвет ака роко сифреди девушку. Но есть одна проблема. Не очищается память. Память используется именно движком кассандры. После каждого прогона она вырастает и назад не освобождается. Проверял долго. Что на 10 что на 100 тыщах одна и таже ситуация. Вижу по диспечеру процессов.Думал дело в интервалах работы сборщика, но на ночь оставлял, приходил, а картина та же. с какой памятью ее оставил с такой же она была и утром. Почему он оставляет память занятой ведь совершенно точно что даныне объекты на диск уже сброшены и еще ни разу на чтение не запрашивались? Знаю что касанадра сперва накапливает объекты в памяти, а затем пишет их большой пачкой в коммит лог и только после этого в саму базу. но интервалы такого поведения в настройках стоят на 10 секундах. Да, есть способ изменить алгоритм работы с коммитлогом и заставить его кидать на диск данные без задержки но и это почему то не спасает от переполнения памяти и к тому же идет потеря скорости работы. вот конкретно пример для 10 тыщ объектов: - касандра тока стартовала - занимает 80М в памяти - запустил прогу с добавлением 10 тыщ объектов - выросло до 148М - закрыл приложение. у касандры все равно 148М. - снова запустил прогу и погнал скрипт. касандра выросла до 250M. причем я скрипт не менял, а значит там не новые объекты создавались а апдейтились уже сущесвующие(там так работает). - снова запустил - опять теже самые объекты но память выросла еще до 340М. - и т.д. - растет до максимума и рано или поздно падает, причем с разными ошибками, то Map failed по причине out of memory, то трифтовый сервис скажет read 0 байт и тоже отшибет соединение. - если сразу зафигачить мллион объектов то Map failed практически гарантировано. Что не так делаю? может что-то нужно закрывать после execute? хотя вроде в доках про это ничего нет. Что можно еще настроить в касандре? Или ее ненадежность это фича а не бага? PS пробовал как на голой касандре так и на касандре в составе DataStax - один фиг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2012, 12:36:22 |
|
||
|
Cassandra и память
|
|||
|---|---|---|---|
|
#18+
Вообще, а она должна возвращаться со временем к исходному состоянию по занимаемой памяти, при условии что нагрузки нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2012, 14:20:53 |
|
||
|
Cassandra и память
|
|||
|---|---|---|---|
|
#18+
Касандра это экзотика? svenooooooom!! ты ж вроде проект на ней собирался делать) как же на склру не хватает функционала личных сообщений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2012, 18:23:21 |
|
||
|
Cassandra и память
|
|||
|---|---|---|---|
|
#18+
Кореец, Здесь есть форум по nosql. Попробуйте спросить там. Плюс, у таких проектов хорошее community - спросите в их почтовой рассылке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2012, 18:41:45 |
|
||
|
Cassandra и память
|
|||
|---|---|---|---|
|
#18+
КореецКасандра это экзотика? svenooooooom!! ты ж вроде проект на ней собирался делать) как же на склру не хватает функционала личных сообщений. Он уже не программистишка больше и ничего сам не собирался а дураков походу не нашлось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2012, 19:43:48 |
|
||
|
Cassandra и память
|
|||
|---|---|---|---|
|
#18+
авторРаботает очень быстро. Просто пипец летает. SQL субд рвет ака роко сифреди девушку. Я сейчас провел некоторые тесты на офисном компьютере. Запись в файл 200Мб занимает 13с. Запись в таблицу (id, text) 100000 строк по 2кб каждая занимает 40с. Даже если кассандра пишет со скоростью диска, то разница равна 3x. А она наверняка пишет медленнее. В общем, как роко сифреди девушку не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2012, 19:46:41 |
|
||
|
Cassandra и память
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪА она наверняка пишет медленнее. В общем, как роко сифреди девушку не получается. только что проверил на компе. core2Duo 2Гц. 2Гб оперативки. обе базы локальные. ничего иного комп не нагружает. 100 тыщ коротких строчек. несколько прогонов теста для майскл Код: java 1. 2. 3. 4. 5. 6. 7. для кассандры Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Кассандра стабильно 4-5 сек. Майскл 13-15 сек. Скорость выше в 3 раза. Такие соотношения существенны. Рвет. И еще как))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 20:43:48 |
|
||
|
Cassandra и память
|
|||
|---|---|---|---|
|
#18+
Commit в mysql гарантирует, что данные оказались на жестком диске и не пропадут в результате сбоя электричества. Кассандра таких гарантий не дает. Чтобы не сравнивать яблоки с апельсинами, уберите коммит после каждой строчки и выключите автокоммит. Кстати, откуда вы берете столько данных (десятки тысяч строк в секунду)? Если это не OLTP, а импорт, то для него в РСУБД есть специальные средства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 22:01:12 |
|
||
|
Cassandra и память
|
|||
|---|---|---|---|
|
#18+
Я поспешил, в варианте с mysql коммит за пределами цикла. Какие результаты для вставки данных, количество которых в разы превышает размер оперативной памяти? Например, 10Гб? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 22:03:54 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=278&tid=2131338]: |
0ms |
get settings: |
16ms |
get forum list: |
23ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
45ms |
get topic data: |
18ms |
get forum data: |
4ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 293ms |
| total: | 477ms |

| 0 / 0 |
