2016-12-06 8 views
1

Я тестирую Cassandra на кластере из трех узлов в облаке Google и пытаясь увидеть распределение владения Ranges между узлами (у меня есть RF = 3 для тестового пространства ключей). Я пробовал как кластер CQL, так и кластер Nodetool, но ни один из них не показывает также диапазоны (только версии snitch, partitioner и schema). Запуск cqlsh 5.0.1 | Cassandra 3.9 | Спецификация CQL 3.4.2. Любая идея, как я могу найти эту информацию или почему эти команды не отображают их? Может быть, из-за настройки кластера? Благодарю.cassandra nodetool/cqlsh описать кластер

ответ

1

Изнутри CQL, вы можете запросить system.local таблицу. Эта таблица существует на каждом узле, содержит только одну строку и содержит данные, относящиеся к самому узлу. Колонка tokens содержит те же данные, как возвращаемые с помощью команды nodetool ring:

> SELECT tokens FROM system.local ; 

tokens 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 
{'-1221474524472000659', '-2679404716758606376', '-9167452864191410895', '-9208108764127114640', '1685199701625160019', '1767371464207122869', '5004977198676178684', '5337137237744686089', '6630117681615088706', '7106607077939671384', '7512974951531203644', '8229478807809310370'} 

(1 rows) 

Обратите внимание, что с помощью запроса tokenssystem.local возвращает только маркер диапазонов для текущего узла. Чтобы увидеть их для другого узла в кластере, вы можете запросить столбец tokens в таблице system.peers, где они связаны с IP-адресом (peer).

> SELECT tokens FROM system.peers WHERE peer='192.168.6.114'; 

tokens 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
{'-4094626707569673185', '-5633637686310353556', '-6167080457205238021', '-6475599470116582717', '-6726897113409283403', '-7185540759553541576', '-7282762652579832116', '-7740824590733013501', '-8045274855112430621', '2064433256459654945', '667061811731435593', '7079292008020861651'} 

(1 rows) 
+0

Спасибо, Аарон, есть ли возможность увидеть распределение диапазонов на семью колонок? – Vcrisan

+0

@Vcrisan Диапазоны задаются по узлу и будут одинаковыми для всех таблиц (семейств столбцов) с данными на этом узле. Вот почему такие вещи, как протоколируемые атомные партии, работают в разных таблицах, поскольку ключи разделяются так же, независимо от того, в какой таблице они находятся. – Aaron