Hello,
The re-election of new Hyperspace master as discussed at (http://www.hypertable.com/documentation/administrator_guide/machine_failure/#hyperspace) does not include transparent auto re-election.
I think the best way around it is to further develop the method String get_current_master() of Hyperspace/BerkeleyDbFilesystem.h and to have it toward a "get_safe_current_master" with the ability to work with a state of other replicas on interval and re-elect a new Hyperspace master when latest is no longer operative.
AN EDIT: best way it is the events handling of void BerkeleyDbFilesystem::db_event_callback procedures.
and there should be another cmd "decommission" to the hyperspace command interpreter and do a dbenv.rep_sync(0) when possible.
Further, It is to have the configuration file applied on run-time, by extending the PropertiesPtr's get methods between the lines 280-320 (https://github.com/kashirin-alex/hypertable/blob/master/src/cc/Common/Properties.h#L287) on TTL or file modify date to load the new configuration name requested (if not all)
Part of the subjective, there is a new configuration option "Hypertable.RangeServer.Location.AutoReInitiate=bool" defaults to false
simple process of if true for auto re-initiate,
(https://github.com/kashirin-alex/hypertable/blob/master/src/cc/Hypertable/RangeServer/RangeServer.cc#L323)
clears current m_location and file
(https://github.com/kashirin-alex/hypertable/blob/master/src/cc/Hypertable/RangeServer/LocationInitializer.cc#L107)
and continues the same way as a new RangeServer came up.
So far no issue raised up and when the RS is marked removed, the log would include "Auto re-initiated location, removed location N" without failure on cluster/RangeServer start.
Will be great to know if there are better plans for the Hyperspace master auto re-election.
Thank You,
Kashirin Alex
Hello,
The re-election of new Hyperspace master as discussed at (http://www.hypertable.com/documentation/administrator_guide/machine_failure/#hyperspace) does not include transparent auto re-election.
I think the best way around it is to further develop the method String get_current_master() of Hyperspace/BerkeleyDbFilesystem.h and to have it toward a "get_safe_current_master" with the ability to work with a state of other replicas on interval and re-elect a new Hyperspace master when latest is no longer operative.
AN EDIT: best way it is the events handling of void BerkeleyDbFilesystem::db_event_callback procedures.
and there should be another cmd "decommission" to the hyperspace command interpreter and do a dbenv.rep_sync(0) when possible.
Further, It is to have the configuration file applied on run-time, by extending the PropertiesPtr's get methods between the lines 280-320 (https://github.com/kashirin-alex/hypertable/blob/master/src/cc/Common/Properties.h#L287) on TTL or file modify date to load the new configuration name requested (if not all)
Part of the subjective, there is a new configuration option "Hypertable.RangeServer.Location.AutoReInitiate=bool" defaults to false
simple process of if true for auto re-initiate,
(https://github.com/kashirin-alex/hypertable/blob/master/src/cc/Hypertable/RangeServer/RangeServer.cc#L323)
clears current m_location and file
(https://github.com/kashirin-alex/hypertable/blob/master/src/cc/Hypertable/RangeServer/LocationInitializer.cc#L107)
and continues the same way as a new RangeServer came up.
So far no issue raised up and when the RS is marked removed, the log would include "Auto re-initiated location, removed location N" without failure on cluster/RangeServer start.
Will be great to know if there are better plans for the Hyperspace master auto re-election.
Thank You,
Kashirin Alex