hash实现

【测试环境】

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(列值) % 节点数]

posted @ 2021-09-29 00:42  stupidstan2019  阅读(28)  评论(0编辑  收藏  举报