Yakov, Here is the ticket: https://issues.apache.org/jira/browse/IGNITE-2160
-Val On Mon, Dec 14, 2015 at 1:33 AM, Yakov Zhdanov <yzhda...@apache.org> wrote: > I am ok with the suggestion. Val, can you please file a ticket (or I guess > we already should have one) and put your suggestion to it. > > --Yakov > > 2015-12-14 11:47 GMT+03:00 Valentin Kulichenko < > valentin.kuliche...@gmail.com>: > > > Denis, > > > > Yes, this can be a workaround, but at the same time it makes things even > > more confusing :) This means that client node behavior depends on > > some property on discovery SPI, while this property should influence only > > internals of discovery protocol. > > > > I think the client should always work in the same way: start without > > blocking and then throw disconnect exception if there are no > > servers. Currently this behavior depends on presence of server nodes, > > forceServerMode flag and probably smth else, which makes it > unpredictable. > > > > -Val > > > > On Monday, December 14, 2015, Denis Magda <dma...@gridgain.com> wrote: > > > > > Guys, > > > > > > There is already a configuration property that lets to complete > client's > > > launching procedure even if there is no any server node in a cluster - > > > TcpDiscoverySpi.setForceServerMode. > > > The only side effect of this property is that a client node will > become a > > > part of the ring. > > > > > > Is this property applicable or you want to support something different? > > > > > > -- > > > Denis > > > > > > On 12/12/2015 6:13 AM, Valentin Kulichenko wrote: > > > > > >> Dmitry, > > >> > > >> How do you think, should we just change the behavior or make it > > >> configurable? > > >> > > >> -Val > > >> > > >> On Fri, Dec 11, 2015 at 1:59 PM, Dmitriy Setrakyan < > > dsetrak...@apache.org > > >> > > > >> wrote: > > >> > > >> I agree that we have a consistency issue here. I am OK with the > change. > > >>> > > >>> On Fri, Dec 11, 2015 at 11:43 AM, Valentin Kulichenko < > > >>> valentin.kuliche...@gmail.com> wrote: > > >>> > > >>> Folks, > > >>>> > > >>>> Currently there are two different ways how a client node behaves in > > case > > >>>> there are no server nodes: > > >>>> > > >>>> 1. If it's trying to start, it will wait and block the thread > that > > >>>> called Ignition.start(). > > >>>> 2. If server nodes left when it was already running, it will > throw > > >>>> disconnect exception on any API call. > > >>>> > > >>>> It seems confusing to me (and not only to me, as far as I can see > from > > >>>> > > >>> the > > >>> > > >>>> users' feedback). First of all, it's just inconsistent and requires > > >>>> different processing for these different cases. Second of all, p.1 > is > > >>>> > > >>> often > > >>> > > >>>> treated as a hang, but not as correct behavior. And it's getting > worse > > >>>> > > >>> when > > >>> > > >>>> the node is started as a part of web application, because it blocks > > the > > >>>> application startup process. > > >>>> > > >>>> I think we should start a client node (or at least have a > configurable > > >>>> option) even if there are no servers yet. Until the first server > > joins, > > >>>> > > >>> it > > >>> > > >>>> will just throw disconnect exceptions. > > >>>> > > >>>> Thoughts? > > >>>> > > >>>> -Val > > >>>> > > >>>> > > > > > >