Re: [DISCUSSION] Deprecation of obsolete rebalancing functionality
Hi, I am sure we can to reduce this ability, but do not completely. We can use rebalance delay for disable it until manually triggered. CacheConfiguration#setRebalanceDelay(-1) It may helpful for cluster where can not allow performance drop from rebalance at any time. -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Various shutdown guaranties
Hi We need to have ability to calling shutdown with various guaranties. For example: Need to reboot a node, but after that node should be available for historical rebalance (all partitions in MOVING state should have gone to OWNING). Implemented a circled reboot of cluster, but all data should be available on that time (at least one copy of partition should be available in cluster). Need to wait not only data available, but all jobs (before this behavior available through a stop(false) method invocation). All these reason required various behavior before shutting down node. I propose slightly modify public API and add here method which shown on shutdown behavior directly: Ignite.close(Shutdown) /public enum Shutdownn { /** * Stop immediately as soon components are ready. */ IMMEDIATE, /** * Stop node when all partitions completed moving from/to this node to another. */ NORMAL, /** * Node will stop if and only if it does not store any unique partitions, that does not have copies on cluster. */ GRACEFUL, /** * Node stops graceful and wait all jobs before shutdown. */ ALL }/ Method close without parameter Ignite.close() will get shutdown behavior configured for cluster wide. It will be implemented through distributed meta storage and additional utilities for configuration. Also, will be added a method to configure shutdown on start, this is look as IgniteConfiguration.setShutdown(Shutdown). If shutting down did not configure all be worked as before according to IMMEDIATE behavior. All other close method will be marked as deprecated. I will be waiting for your opinions. -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Re: Various shutdown guaranties
> I see no relation between possible data loss on shutdown and waiting for > some jobs to complete. Yes, I do not think that is. More over that I want to union waiting of jobs and waiting rebalance in one shutdown policy. Rather, these various shutdown types mean various types of waiting. IMMEDIATE - nothing to wait, simply calling stop on components. NORMAL - wait all what we can on local node before calling close. GRACEFUL - More strict, in additional we will wait some distributed conditions (for example waiting of nodes with copies of local partitions). No more over that. I will prefer exclude ALL. enum Shutdownn { IMMEDIATE, NORMAL, GRACEFUL } > IgniteConfiguration.setGracefulShutdownTimeout(long); // Force a shutdown I suppose that it is available manually. If client consider that node is stopping is very long, it can to invoke Ignite.close(IMMEDIATE) (or kill -9 ). > IgniteConfiguration.setShutdownPolicy(GRACEFUL|DEFAULT); That does not allow deciding shutdown policy in runtime. If it normally we can to hide method stop(Shutdown) in internal API. > The properties also should be changeable at runtime using JMX or > control.sh interface. Before I was sure the shutdown type will be stored in cluster, but our implicit policy says: "All properties which configured through JMX will not save after restart." -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Various shutdown guaranties
Hi We need to have ability to calling shutdown with various guaranties. For example: Need to reboot a node, but after that node should be available for historical rebalance (all partitions in MOVING state should have gone to OWNING). Implemented a circled reboot of cluster, but all data should be available on that time (at least one copy of partition should be available in cluster). Need to wait not only data available, but all jobs (before this behavior available through a stop(false) method invocation). All these reason required various behavior before shutting down node. I propose slightly modify public API and add here method which shown on shutdown behavior directly: Ignite.close(Shutdown) /public enum Shutdownn { /** * Stop immediately as soon components are ready. */ IMMEDIATE, /** * Stop node when all partitions completed moving from/to this node to another. */ NORMAL, /** * Node will stop if and only if it does not store any unique partitions, that does not have copies on cluster. */ GRACEFUL, /** * Node stops graceful and wait all jobs before shutdown. */ ALL }/ Method close without parameter Ignite.close() will get shutdown behavior configured for cluster wide. It will be implemented through distributed meta storage and additional utilities for configuration. Also, will be added a method to configure shutdown on start, this is look as IgniteConfiguration.setShutdown(Shutdown). If shutting down did not configure all be worked as before according to IMMEDIATE behavior. All other close method will be marked as deprecated. I will be waiting for your opinions. -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Various shutdown guaranties
Hi We need to have ability to calling shutdown with various guaranties. For example: Need to reboot a node, but after that node should be available for historical rebalance (all partitions in MOVING state should have gone to OWNING). Implemented a circled reboot of cluster, but all data should be available on that time (at least one copy of partition should be available in cluster). Need to wait not only data available, but all jobs (before this behavior available through a stop(false) method invocation). All these reason required various behavior before shutting down node. I propose slightly modify public API and add here method which shown on shutdown behavior directly: Ignite.close(Shutdown) /public enum Shutdownn { /** * Stop immediately as soon components are ready. */ IMMEDIATE, /** * Stop node when all partitions completed moving from/to this node to another. */ NORMAL, /** * Node will stop if and only if it does not store any unique partitions, that does not have copies on cluster. */ GRACEFUL, /** * Node stops graceful and wait all jobs before shutdown. */ ALL }/ Method close without parameter Ignite.close() will get shutdown behavior configured for cluster wide. It will be implemented through distributed meta storage and additional utilities for configuration. Also, will be added a method to configure shutdown on start, this is look as IgniteConfiguration.setShutdown(Shutdown). If shutting down did not configure all be worked as before according to IMMEDIATE behavior. All other close method will be marked as deprecated. I will be waiting for your opinions. -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Various shutdown guaranties
Hi We need to have ability to calling shutdown with various guaranties. For example: Need to reboot a node, but after that node should be available for historical rebalance (all partitions in MOVING state should have gone to OWNING). Implemented a circled reboot of cluster, but all data should be available on that time (at least one copy of partition should be available in cluster). Need to wait not only data available, but all jobs (before this behavior available through a stop(false) method invocation). All these reason required various behavior before shutting down node. I propose slightly modify public API and add here method which shown on shutdown behavior directly: Ignite.close(Shutdown) /public enum Shutdownn { /** * Stop immediately as soon components are ready. */ IMMEDIATE, /** * Stop node when all partitions completed moving from/to this node to another. */ NORMAL, /** * Node will stop if and only if it does not store any unique partitions, that does not have copies on cluster. */ GRACEFUL, /** * Node stops graceful and wait all jobs before shutdown. */ ALL }/ Method close without parameter Ignite.close() will get shutdown behavior configured for cluster wide. It will be implemented through distributed meta storage and additional utilities for configuration. Also, will be added a method to configure shutdown on start, this is look as IgniteConfiguration.setShutdown(Shutdown). If shutting down did not configure all be worked as before according to IMMEDIATE behavior. All other close method will be marked as deprecated. I will be waiting for your opinions. -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Re: Various shutdown guaranties
Hi, ignite.cluster().setShutdownPolicy(null); // Clear dynamic value and switch to statically configured. I do not understand why we need it. if user want to change configuration to any other value he set it explicitly. We can to add warning on start when static option does not math to dynamic (dynamic always prefer if it initiated). shutdownPolicy=IMMEDIATE|GRACEFUL Looks better that DEFAULT and WAIT_FOR_BACKUP. I general I consider job cancellation need to added in these policies' enumeration. But we can do it in the future. -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/