Нет, конечно — она сама всё делает. У кассандры есть хорошо оптимизированный механизм репликации между ДЦ — если запис данных произошла в датацентре A и нужно поместить две копии записанных данных в датацентр B, то кассандра посылает только одно сообщение в сторону B, в том датацентре узлы уже сами скоординируются. Так что мы её используем для репликации очень даже хорошо.
забыл сказать что в проекте кторый работает со счетчиками в кассандре мы в тестах н апроизводительность получаем до 10-20К запросов в секунду. Причём добавление каждого следующего сервера линейно добавляет ёмкости по запросам
Почему именно кассандра? Если подходить исторически, то потому что с ней уже некоторое время игрались и были знакомы. С технической точки зрения важнейшими были: простота расширения и отсутствие каких-либо выделенных узлов или процессов: очень не хотелось вносить в систему SPOF или добавлять без нужды сложную архитектуру ка примеру HBase. По функциональности и производительности она очевидно удовлетворяла нашим требованиям.
Фактор репликации у нас равен единице на каждый датацентр, то есть фактически в каждом датацентре находится одна полная копия данных, а в сумме получается шесть копий — благодаря этому все чтения и записи происходят локально в пределах датацентра.
Пишем и читаем с consistency level ONE. Мы не пробовали работать на уровне QUORUM или LOCAL_QUORUM, в основном потому что для нас важнее времена ответа. Та consistency которая обеспечивается на уровне ONE для нас достаточна.
Нет, с потерей данных мы не сталкивались.
Дисков у нас по одному 300-гигабайтнику на сервер, из этих 300Г в худшие времена бывало занято до 150-200G — это было тогда, когда процедура repair выполнялась не так как должна, без предварительной чистки tombstones. В результате все эти tombstones копировались между серверами и занимали кучу места. Сейчас на каждом диске хранится обычно 40-60 гиг, то есть получается на датацентр 120 гиг. Про память писал — 8 гиг на каждом сервере, под кучу для явы отдаём вот так:
MAX_HEAP_SIZE=«3584M»
HEAP_NEWSIZE=«600M»
С запросами ситуация разная в разных датацентрах и в разное время суток. Максимум что приходилось видеть на один сервер — на уровне 200 чтений/100 записей в секунду. В целом на кластер приходится на уровне до 1000 в секунду.
Фактор репликации у нас равен единице на каждый датацентр, то есть фактически в каждом датацентре находится одна полная копия данных, а в сумме получается шесть копий — благодаря этому все чтения и записи происходят локально в пределах датацентра.
Пишем и читаем с consistency level ONE. Мы не пробовали работать на уровне QUORUM или LOCAL_QUORUM, в основном потому что для нас важнее времена ответа. Та consistency которая обеспечивается на уровне ONE для нас достаточна.
Нет, с потерей данных мы не сталкивались.
Дисков у нас по одному 300-гигабайтнику на сервер, из этих 300Г в худшие времена бывало занято до 150-200G — это было тогда, когда процедура repair выполнялась не так как должна, без предварительной чистки tombstones. В результате все эти tombstones копировались между серверами и занимали кучу места. Сейчас на каждом диске хранится обычно 40-60 гиг, то есть получается на датацентр 120 гиг. Про память писал — 8 гиг на каждом сервере, под кучу для явы отдаём вот так:
MAX_HEAP_SIZE=«3584M»
HEAP_NEWSIZE=«600M»
С запросами ситуация разная в разных датацентрах и в разное время суток. Максимум что приходилось видеть на один сервер — на уровне 200 чтений/100 записей в секунду. В целом на кластер приходится на уровне до 1000 в секунду.