【测试环境】
CREATE NODE GROUP ngrp2 WITH (dn1);
CREATE TABLE testgrp2 (id int primary key, note text) DISTRIBUTE BY HASH(id) TO GROUP ngrp2;
insert into testgrp2 values(3, 'text');
【调用栈】
1)计算hash
hash_uint32(3);
返回值=4266872727
2)取余
modulo = compute_modulo(abs(hashValue), list_length(rel_loc_info->nodeList));
3)从node列表里根据modulo取节点
所以核心逻辑就是 节点数组[hash_uint32(列值) % 节点数]