Асинхронный API драйвера как замена для неправильного использования IN и Batch statements

На практике бывают ситуации когда нужно выполнить большое количество однотипных запросов к Cassandra, как правило это приводит к проблеме производительности. Разработчики довольно часто пытаются решить эту проблему с помощью средств для этого не предназначенных, таких как выражение IN и Batch statements, что в свою очередь приводит к другим нехорошим ситуациям…. Read more »

Метрики Apache Cassandra — часть 2: HintedHandOffManager

В этой статье пойдет речь о хинтах (hints) и о метриках, которые позволяют их отслеживать. По личному опыту скажу, что понимание и отслеживание данных метрик помогло на одном из проектов решить проблему с рассинхронизацией данных между репликами. Неконсистентность Для начала кратко расскажу о проблеме. Есть некоторая распределенная система использующая Apache… Read more »

Метрики Apache Cassandra — часть 1: org.apache.cassandra.request

В предыдущей статье были описаны базовые понятия и принципы чтения и анализа метрик Apache Cassandra. В  сегодняшней статье будет подробно рассказано о конкретных метриках из раздела org.apache.cassandra.request (и его близнеце org.apache.cassandra.metrics:type=ThreadPools,path=request), о рекомендуемых значениях и причинах отклонения от этих значений. Данные метрики в основном характеризуют производительность кластера и влияют на… Read more »

Введение в метрики Apache Cassandra

Для чего нужны метрики В этой статье опишу базовые понятия и расскажу как правильно читать метрики. В последующих статьях расскажу про некоторые конкретные метрики, на что они влияют и что может влиять на них. Метрики — это численные показатели каких-либо свойств системы. Они являются очень полезным инструментом для обнаружения и… Read more »

Использование меток времени в Cassandra

Что такое метка времени или timestamp Метка времени (timestamp) является составной частью колонки (column), также как имя колонки и её значение. Каждая операция модификации данных имеет свою метку времени. Метка времени необходима для задания правильной последовательности операций изменения данных и определения наиболее актуальной версии данных. Как работают метки времени Операция… Read more »

Две базовые особенности Apache Cassandra

В статье пойдет речь о двух базовых вещах, которые, как ни странно, многие разработчики упускают из виду при написании клиентского кода, особенно когда работают с CQL: Cassandra — это хранилище типа ключ-значение. Cassandra — это распределенное децентрализованное хранилище. Хранилище ключ-значение (key-value) Очень важно понимать, что вы, по сути, работаете с… Read more »