Hi team,
  First I want to thanks all for this great software.
  I am using helix for our storage system. In our system we have 3 states  read 
, weak read and offline. The state transactions are  read-> <- weak read-> 
<-offline, very similar to the master/slave example. But the difference is that 
we need participate to control its status , which means a participate can 
decide what is itself's  current ideal state. If a participate find he can’t 
follow write speed(we use a queue to do write , participate consumes message 
from this queue), then it can change its state from read to weak read.  Is 
there a proper way to do this state change from participate side? I looked into 
Helix java doc and found in HelixAdmin there is a method “rebalance” seems can 
achieve my goal, but my scenario is only need to change one server’s 
state,“rebalance” seems too over. Or does this a Helix fit scenario?
  The other solution I thought about is using zookeeper  to manage read and 
weak read states, and helix only maintain the online offline state. Once I get 
an online server from helix , then I will look up into zookeeper to find out 
what is the current read state of this server(maybe push mode from zookeeper is 
more proper).  In this solution we don’t need to change helix ideal state from 
participate side, but this seems like mix helix and zookeeper to maintain state 
machine together.  Could you please give me some advise on my thoughts?

Thanks
Jianqiu

Reply via email to