Hello Helix developers,
I'm trying to use Helix (0.7.1) to manage some resources; every 5 minutes,
such a resource will be added to the cluster; Each resource only has 1
partition, and it's state model is "LEADER_STANDBY" (the leader will do
some exclusive job); the rebalance mode is FULL_AUTO. Now the cluster has
two instances. The interesting thing I found is, all the LEADERs are
assigned to the first node of my cluster, and the other cluster carries all
STANDBYs. Although when I disable the first node, all the LEADERs are
transferred to the second node automatically, I expect there could be some
load balance among them: half leaders on the first node, the others on the
second. Did I do something wrong, or this is expected?
Another issue I faced is, on the helix-ui, it can show all resources, but
when selecting a resource, the "partitions" tab couldn't show which
instances it be assigned to; the only message is "No partitions of
<resource_name> are assigned!"
I checked the UI code, it indicates the reason is the "listFields" is
empty. That matches with what I see with the helix-admin.sh
--listResourceInfo:
IdealState for Resource_Stream_1454391900000_1454392200000:
{
"id" : "Resource_Stream_1454391900000_1454392200000",
"mapFields" : {
"Resource_Stream_1454391900000_1454392200000" : {
}
},
"listFields" : {
"Resource_Stream_1454391900000_1454392200000" : [ ]
},
"simpleFields" : {
"IDEAL_STATE_MODE" : "AUTO_REBALANCE",
"NUM_PARTITIONS" : "1",
"REBALANCE_MODE" : "FULL_AUTO",
"REPLICAS" : "3",
"STATE_MODEL_DEF_REF" : "LeaderStandby",
"STATE_MODEL_FACTORY_NAME" : "DEFAULT"
}
}
ExternalView for Resource_Stream_1454391900000_1454392200000:
{
"id" : "Resource_Stream_1454391900000_1454392200000",
"mapFields" : {
"Resource_Stream_1454391900000_1454392200000" : {
"kylin-dev3_8080" : "LEADER",
"kylin-dev4_8080" : "STANDBY"
}
},
"listFields" : {
},
"simpleFields" : {
"BUCKET_SIZE" : "0"
}
}
I checked the code, it seems for FULL_AUTO, the values for "listFields" and
"mapFields" are empty (at least at the begining). Will it be updated at
some point of time, or how could I trigger that?
Thanks in advance for your help; I'm new to Helix so may not get some
concepts correctly. Just correct me if I'm wrong, thanks!
--
Best regards,
Shaofeng Shi