Cassandra Ограничение количества ячеек

этот предел в 2 миллиарда ячеек на раздел все еще действителен?

http://wiki.apache.org/cassandra/CassandraLimitations

Допустим, вы экономите в среднем 16 байт на ячейку. Тогда вы «просто» можете сохранить 16 * 2e9 байт = 32 ГБ данных (плюс имя столбца) на одной машине!? Или, если вы представите квадратную таблицу, вы сможете хранить 44721 строку с 44721 столбцом в каждой!?

На самом деле не похоже на большие данные.

Это правильно?

Спасибо!

солод


person Malte    schedule 12.07.2014    source источник
comment
Это на раздел, а не на базу данных. У вас может быть много (миллионов) разделов на одном узле.   -  person RussS    schedule 12.07.2014


Ответы (1)


Ограничение в 2 миллиарда ячеек все еще действует, и вы, скорее всего, захотите изменить свои данные, если начнете видеть такое количество ячеек в разделе.

Максимальное количество ячеек (строк x столбцов) в одном разделе — 2 миллиарда.

Раздел определяется ключом раздела в CQL и определяет, где будет храниться конкретный фрагмент данных. Например, если бы у меня было два узла с вымышленным диапазоном 0-100 и 100-200. Ключи разделов с хешированным значением от 0 до 100 будут находиться на первом узле, а ключи с хешированным значением от 100 до 200 — на втором узле. На самом деле Cassandra использует алгоритм Murmur3 для хеширования первичных ключей, генерирующих значения от -2^63 до 2^63-1.

Реальное ограничение, как правило, основано на том, сколько уникальных значений у вас есть для вашего ключа раздела. Если у вас недостаточно уникальности в одном столбце, многие пользователи объединяют столбцы для создания большей уникальности (составной первичный ключ).

http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/create_table_r.html

Дополнительная информация о хешировании и о том, как C* хранит данные.

http://www.datastax.com/documentation/cassandra/2.0/cassandra/architecture/architecturePartitionerAbout_c.html

person RussS    schedule 13.07.2014
comment
Спасибо! Я думал, что узел — это раздел, а ключ раздела определяет, в каком разделе находится строка. Но теперь понятно :) - person Malte; 13.07.2014