2016-12-07 1 views
0

Я хотел бы измерить время, которое требуется для записи, сделанной на одной реплике, для распространения на другие геораспределенные реплики (для экспериментальных целей). Кассандра предоставляет какой-то механизм для измерения этого?Notifiy, когда реплика Cassandra получает запись

PS. Основной поиск Google не дал прямых результатов (фактически ничего не значимого вообще), поэтому я предполагаю, что делать это непросто. Любые другие предложения, связанные с другими инструментами, также приветствуются.

+0

Возможно, вы можете сделать это, зарегистрировав некоторые действия Cassandra. Вы можете сделать это с помощью 'logback.xml' в каталоге конфигурации. –

ответ

2

В одно время вы можете включить трассировку в запросе и выполнить запрос CL.ALL, данные трассировки будут иметь временные метки для получения каждой копии. Но это то, что вы не можете сделать для всех запросов.

Чтобы получить более общий смысл, вы можете использовать CASSANDRA-11569, чтобы получить кросс-задержку сообщения DC, а именно, как долго мутации координаторов берутся, чтобы добраться до реплики (или, по крайней мере, другого DC). Это не обязательно указывает на то, сколько времени занимает кворум узлов в этом другом DC, чтобы получить мутацию из-за записи прокси.

Уклонение времени узла может действительно затруднить работу.

Некоторые люди в прошлом обращались к этому, выполняя местный кворум и каждый запрос кворума и сравнивая их. Проблема, заключающаяся в том, что LQ, затем EQ пишет, заключается в том, что при переходе на удаленный DC Cassandra будет копировать все записи в этом DC через одну прокси-запись (против координатора, фактически отправляющего на каждый узел). Если этот узел попадает в GC, он, вероятно, получит всплеск. Также в современных кластерах существует спекулятивный повтор, который все равно будет добавлять время первой записи к задержке.

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