Я читаю через https://apacheignite.readme.io/docs/affinity-collocation, но у меня не было хорошего понимания того, как работает с affinity-collocation или его поведением.Как работает affinity-collocation в Inite?
Предположим, у меня есть объект Employee (его идентификатор - 1000), чей companyId равен 1, то этот объект Employee будет размещен вместе с объектом Company, идентификатор которого равен 1. То есть они будут находиться в одном и том же узле, но в отличается кэш:
Employee Cache: <1000, EmployeeObjWhoseCompanyIdIs1>
Company Cache: <1, CompanyObj>
Но что, если есть третий тайник, скажем Страна кэш, и он также имеет ключ, 1, то есть:
Country Cache: <1, CountryObj>
Затем будет объект Employee и объект Country также будет находиться в одном узле?
Из определения класса Affinity, он определяет только affKey
, к которому в расстанавливать с, но она не определяет кэш, которому принадлежит данный affKey
Спасибо @Valentin за полезный ответ. Но я не думаю, что это совпадение :-). В реальных случаях существует множество таблиц базы данных, которые используют функцию автоматического увеличения для поля id. То есть, они оба типа номера (или длинного типа), и они будут одинаковыми по значению. Я думаю, что это значительно увеличит изменение, которое произойдет с некоторой логически неправильной вещью (идентификатор компании и идентификатор страны не связаны, но они останутся на одном узле) – Tom
@Tom, я имел в виду, что семантически это совпадение. То есть бизнес-логика никогда не должна полагаться на этот факт и рассматривать его как коллокацию, потому что это не так. Однако это случается довольно часто. –
Спасибо за ясное объяснение, и теперь я понял поведение и его эффект. – Tom