IgniteConfiguration.igniteWorkDir only works one time

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

IgniteConfiguration.igniteWorkDir only works one time

Pavel Tupitsyn
Igniters,

Work directory can be set only once per process, see U.setWorkDirectory
method.

So if there are multiple nodes in a process, or a node is stopped and then
started,
IgniteConfiguration.igniteWorkDir is ignored (IGNITE-3597
<https://issues.apache.org/jira/browse/IGNITE-3597>).

Is there any reason for storing this statically?

Pavel.
Reply | Threaded
Open this post in threaded view
|

Re: IgniteConfiguration.igniteWorkDir only works one time

Vladimir Ozerov
I believe this was done for convenience so that we can get working
directory from any code piece.

This approach looks wrong to me, though. First, it breaks isolation between
nodes. This becomes more and more critical as we implement more
integrations and as users draw more attention to our client nodes. I
believe that soon starting several nodes in the same process will become
absolutely normal use case. Second, it hides bug. For example, we have lots
of unit tests which start multiple nodes in the same process. And I clearly
remember how we almost missed extremely critical bug with marshaller, which
could broke the whole cluster.

Having said that, I believe must fix that in Java ASAP. There should be no
static work dir variable. It should reside somewhere inside kernal context
or be explicitly set to* IgniteConfiguration.workDirectory* when node
starts. The second option is better, because in this case user will have
access to working directory as well.

Any more ideas?

Vladimir.

On Thu, Jul 28, 2016 at 11:54 AM, Pavel Tupitsyn <[hidden email]>
wrote:

> Igniters,
>
> Work directory can be set only once per process, see U.setWorkDirectory
> method.
>
> So if there are multiple nodes in a process, or a node is stopped and then
> started,
> IgniteConfiguration.igniteWorkDir is ignored (IGNITE-3597
> <https://issues.apache.org/jira/browse/IGNITE-3597>).
>
> Is there any reason for storing this statically?
>
> Pavel.
>
Reply | Threaded
Open this post in threaded view
|

Re: IgniteConfiguration.igniteWorkDir only works one time

dsetrakyan
I like the IgniteConfiguration.workDirectory approach.

On Thu, Jul 28, 2016 at 7:00 AM, Vladimir Ozerov <[hidden email]>
wrote:

> I believe this was done for convenience so that we can get working
> directory from any code piece.
>
> This approach looks wrong to me, though. First, it breaks isolation between
> nodes. This becomes more and more critical as we implement more
> integrations and as users draw more attention to our client nodes. I
> believe that soon starting several nodes in the same process will become
> absolutely normal use case. Second, it hides bug. For example, we have lots
> of unit tests which start multiple nodes in the same process. And I clearly
> remember how we almost missed extremely critical bug with marshaller, which
> could broke the whole cluster.
>
> Having said that, I believe must fix that in Java ASAP. There should be no
> static work dir variable. It should reside somewhere inside kernal context
> or be explicitly set to* IgniteConfiguration.workDirectory* when node
> starts. The second option is better, because in this case user will have
> access to working directory as well.
>
> Any more ideas?
>
> Vladimir.
>
> On Thu, Jul 28, 2016 at 11:54 AM, Pavel Tupitsyn <[hidden email]>
> wrote:
>
> > Igniters,
> >
> > Work directory can be set only once per process, see U.setWorkDirectory
> > method.
> >
> > So if there are multiple nodes in a process, or a node is stopped and
> then
> > started,
> > IgniteConfiguration.igniteWorkDir is ignored (IGNITE-3597
> > <https://issues.apache.org/jira/browse/IGNITE-3597>).
> >
> > Is there any reason for storing this statically?
> >
> > Pavel.
> >
>