Поиск совместно расположенных данных в ignite - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь разместить данные на основе SQL, приведенного в этой ссылке https://ignite.apache.org/features/collocatedprocessing.html.

Я создал 2 кэша 'Country' и 'City', используя следующие SQL.

-- Cache Country
CREATE TABLE Country (
Code CHAR(3),
Name CHAR(52),
Continent CHAR(50),
Region CHAR(26),
SurfaceArea DECIMAL(10,2),
Population INT(11),
Capital INT(11),
PRIMARY KEY (Code)) WITH "template=partitioned, backups=1";

--Cache City
CREATE TABLE City (
ID INT(11),
Name CHAR(35),
CountryCode CHAR(3),
District CHAR(20),
Population INT(11),
PRIMARY KEY (ID, CountryCode)
) WITH "template=partitioned, backups=1, affinityKey=CountryCode"; 

Я вставил несколько примеров записей, например:

insert into Country values('RU','Rusia','Rusia','Rusia',0.0,00,0);
insert into Country values('IND','India','Asia','Asia',0.0,00,0);


insert into City values(101,'Mumbai','IND','NA',00);
insert into City values(102,'Moscow','RU','NA',00);

Я запустил 2 узла зажигания (на разных машинах) для размещения данных на разных узлах. После нахождения записи дается на узел 0 через визор

cache -scan -c=@c0 -id8=@n0

Я вижу, что оба города Мумбаи и Москва присутствуют на узле 0 (n0), а также на узле 1. Я ожидал, что города Индии будут расположены на узле 0, а города России будут расположены на узле 1, но не оба на одном узле.

Мои вопросы:

  1. Я делаю что-то не так при сопоставлении данных.
  2. Запуск команды visor cache -scan - верный способ найти расположенные данные на узлах?
  3. Если это не так, как мы можем найти, какие данные размещены на узле 0 и узле 1?
  4. Допустим, данные расположены в узле 0 (города Индии) и узле 1 (города в России). Что произойдет, если один из узлов будет отключен от кластера? Будет ли потеря данных? После перезапуска узла данные будут снова размещены?

Заранее спасибо.

1 Ответ

0 голосов
/ 11 марта 2019

Я проверил, и Visor не будет запускать запросы локального сканирования, поэтому любой узел вернет все данные, которые присутствуют в кластере.

Таким образом, вы можете проверить совместимость данных только с кодом.

Если у вас есть резервные копии, данные будут перенесены и не будет потеря данных.При добавлении узла назад данные будут перебалансированы и резервная копия восстановлена.

...