ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Pavlov <dpav...@apache.org>
Subject Re: Consistent ID specification from previous random UUID
Date Mon, 18 Mar 2019 13:16:33 GMT
Hi Ivan,

reasonable points, but we had a long and hot discussion about this logic.

Reason for selecting auto-generation was users that just try to use Apache
Ignite with native persistence for the first time. They must be able to
test features without any extensive setup, but before go-live we expect
them to study the product a little bit more. There are not so many reasons
to use the same folder (or even same device) for 2+ nodes.

Sincerely,
Dmitriy Pavlov

вс, 17 мар. 2019 г. в 13:34, Павлухин Иван <vololo100@gmail.com>:

> Hi Dmitriy,
>
> It is a pitty that we have to guess here. Some comments:
> 1. The usage scenario is not very complex and erything might work well
> with aforementioned patch. Unfortunately some tradeoff and extra
> transformations are involved and consequently it is hard to predict
> how many users will be troubled. But on a bright side the change is
> seemless and perhaps nobody will be really troubled.
> 2. From "honest" code perspective introducing nodeStorageName seems
> better to me because no (surprising) transformations are involved.
> 3. Also, it seems to me that original logic for choosing storage was
> not designed well. From the first glance it looks strange that need
> folders for a particular node in different places. Is not it much
> clear to have all data of the node in a single directory isolated from
> other nodes? AFAIK Hazelcast follows this approach. They generate an
> error when someone is trying to launch second instance in the same
> working directory. Perhaps, we at least should think about changing
> our layout and consider including such change in some future release.
>
> Thank you!
>
> пт, 15 мар. 2019 г. в 17:55, Dmitriy Pavlov <dpavlov@apache.org>:
> >
> > Hi Ivan, yes, after the restart we need to re-use both folder name and
> UUID
> > as consistent ID.
> >
> > About returning exact directory name: I'm just guessing here, but the
> > persistent store is not the only folder, there are several more folders,
> > e.g. binary-meta, etc.
> >
> > About several nodes reusing same root folder, yes, the proposed solution
> > will not works because 00 is hardcoded here. But I expect it will be too
> > rare case.
> >
> > Sincerely,
> > Dmitriy Pavlov
> >
> > пт, 15 мар. 2019 г. в 11:29, Павлухин Иван <vololo100@gmail.com>:
> >
> > > Hi Dmitriy,
> > >
> > > It looks like that case with only one node in working directory is
> > > covered. But what is problem is solved? As I understand before fix in
> > > such case node after restart uses proper folder and proper
> > > consistentId. After fix we can specify automatically generated UUID in
> > > configuration and everything will go smooth. Is it the main problem
> > > case? If yes then such simplicity is very attractive.
> > >
> > > But honestly I do not fully understand why do we need to return a node
> > > to node00-UUID directory after that directory was deleted?
> > >
> > > чт, 14 мар. 2019 г. в 17:21, Dmitriy Pavlov <dpavlov@apache.org>:
> > > >
> > > > Hi, I've prepared demo PR for approach 1, just checking UUID and
> trying
> > > to
> > > > use node00-UUID. https://github.com/apache/ignite/pull/6266/
> Actually
> > > for
> > > > this approach it is really simple, no API change is required.
> > > >
> > > > I guess the case is not very often because automatic folders
> assignment
> > > > works well in most cases.
> > > >
> > > > WDYT?
> > > >
> > > > ср, 13 мар. 2019 г. в 09:42, Павлухин Иван <vololo100@gmail.com>:
> > > >
> > > > > Alex,
> > > > >
> > > > > Why do we need
> > > > > >  - check if consistent ID is set to a string 'nodeXX-UUID'.
In
> this
> > > case
> > > > > > the consistent ID is set to UUID, and the storage folder is
> chosen
> > > > > > according to the proper rules. This change has a minimal chance
> to
> > > affect
> > > > > > current users because it's unlikely that somebody is using
> > > auto-generated
> > > > > > folder naming scheme as consistent ID.
> > > > > ?
> > > > > It looks hacky as well. The thing I do not like here is that a
> > > > > consistentId specified in configuration is not a consistentId used
> by
> > > > > a node sometimes.
> > > > >
> > > > > Can we go just with
> > > > > > - either check if consistent ID is an instance of UUID and then
> take
> > > the
> > > > > > appropriate folder. This approach is straightforward, but may
> affect
> > > > > > current users
> > > > > ?
> > > > >
> > > > > And as a last chance a user will have a possibility to rename a
> > > directory.
> > > > >
> > > > >
> > > > > вт, 12 мар. 2019 г. в 19:33, Alexey Goncharuk <
> > > alexey.goncharuk@gmail.com
> > > > > >:
> > > > > >
> > > > > > Igniters,
> > > > > >
> > > > > > I came across the same issue during development and found no
sane
> > > > > > workaround for this issue. I believe the solution should be
as
> > > simple as
> > > > > > possible because we are already adding a warning to let users
> know
> > > that
> > > > > it
> > > > > > is good to specify a consistent ID in production deployments.
> > > > > >
> > > > > > As for the current solution, I do not like adding a new
> configuration
> > > > > > property like 'storageFolder' because it's another way to shoot
> > > yourself
> > > > > in
> > > > > > the leg (e.g. different nodes have different consistent IDs
but
> > > > > configured
> > > > > > to have the same storage folder).
> > > > > > Why can't we:
> > > > > >  - either check if consistent ID is an instance of UUID and
then
> > > take the
> > > > > > appropriate folder. This approach is straightforward, but may
> affect
> > > > > > current users
> > > > > >  - check if consistent ID is set to a string 'nodeXX-UUID'.
In
> this
> > > case
> > > > > > the consistent ID is set to UUID, and the storage folder is
> chosen
> > > > > > according to the proper rules. This change has a minimal chance
> to
> > > affect
> > > > > > current users because it's unlikely that somebody is using
> > > auto-generated
> > > > > > folder naming scheme as consistent ID.
> > > > > >
> > > > > > Thoughts?
> > > > > >
> > > > > > вт, 12 мар. 2019 г. в 16:51, Dmitriy Pavlov <dpavlov@apache.org
> >:
> > > > > >
> > > > > > > Hi Igniters,
> > > > > > >
> > > > > > > A full description can be found at wiki page
> > > > > > >
> > > > > > >
> > > > >
> > >
> https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Persistent+Store+-+under+the+hood#IgnitePersistentStore-underthehood-SubfoldersGeneration
> > > > > > >
> > > > > > > I like the idea of introducing a property like nodeStorageName
> to
> > > > > specify
> > > > > > > exactly name of a directory to use. For example, it could
have
> > > higher
> > > > > > > priority then IgniteConfiguration.getConsistentId(). It
will
> > > impact the
> > > > > > > mentioned algorithm, but it seems to be easier to understand
by
> > > users.
> > > > > > >
> > > > > > > If nobody else minds, I will try to implement this idea.
> > > > > > >
> > > > > > > Sincerely,
> > > > > > > Dmitriy Pavlov
> > > > > > >
> > > > > > >
> > > > > > > сб, 2 мар. 2019 г. в 08:33, Павлухин Иван
<vololo100@gmail.com
> >:
> > > > > > >
> > > > > > > > Dmitriy,
> > > > > > > >
> > > > > > > > You wrote
> > > > > > > > > we need an order to scan and lock random-UUID
based
> folders.
> > > > > > > >
> > > > > > > > It would be great if you provide a discussion about
that
> order to
> > > > > > > > complete the picture. Currently I cannot understand
why the
> > > order is
> > > > > > > > important.
> > > > > > > >
> > > > > > > > Also, couple of raw thoughts:
> > > > > > > > 1. Can we extend a directory lookup procedure when
> consistent id
> > > is
> > > > > > > > specified to check nodeXX-consistentId directories
as well?
> > > > > > > > 2. Can we introduce a property like nodeStorageName
to
> specify
> > > exact
> > > > > > > > name of a directory to use? It looks like a straightforward
> and
> > > > > > > > universal workaround. Or is node index better in some
sense?
> Why?
> > > > > > > >
> > > > > > > > Please, share your thoughts.
> > > > > > > >
> > > > > > > > чт, 28 февр. 2019 г. в 17:43, Dmitriy Pavlov
<
> dpavlov@apache.org
> > > >:
> > > > > > > > >
> > > > > > > > > Hi Ivan,
> > > > > > > > >
> > > > > > > > > Yes, you catch me, I'm a little bit cheating
with lazy
> > > consensus on
> > > > > > > code
> > > > > > > > > modification without providing a PR because I
was expecting
> > > that
> > > > > nobody
> > > > > > > > > comes to discussion. I will prepare PR shortly.
And since
> we
> > > anyway
> > > > > > > have
> > > > > > > > a
> > > > > > > > > discussion, I will not apply anything by lazy
approval.
> > > > > > > > >
> > > > > > > > > - storageNodeIndex without consistent ID will
not work.
> > > > > > > > >  cfg.getDataStorageConfiguration().setNodeIdx()
will be
> > > required
> > > > > only
> > > > > > > for
> > > > > > > > > case we have consistent ID.
> > > > > > > > >
> > > > > > > > > Hi Stanislav,
> > > > > > > > >
> > > > > > > > > We can't use only consistent ID because
> > > > > > > > >
> > > > > > > > > 1) we need an order to scan and lock random-UUID
based
> folders.
> > > > > Node
> > > > > > > > index
> > > > > > > > > provides the order of scan. I can find the corresponding
> > > > > discussion,
> > > > > > > but
> > > > > > > > I
> > > > > > > > > guess it is not needed.
> > > > > > > > > 2) we need to separate backward compatible folders
from new
> > > > > random-UUID
> > > > > > > > > based folders. Using UUID as folder will not
allow us to
> scan
> > > only
> > > > > new
> > > > > > > > name
> > > > > > > > > format folders.
> > > > > > > > >
> > > > > > > > > I guess specifying node index is a quite rare
case and good
> > > JavaDoc
> > > > > > > will
> > > > > > > > > always help.
> > > > > > > > >
> > > > > > > > > DataStorageConfiguration().setNodeIdx()  JavaDoc
may
> include
> > > > > following
> > > > > > > > > notes:
> > > > > > > > > Node index used for persistent store folders
in case
> several
> > > nodes
> > > > > > > reuse
> > > > > > > > > one persistent store root folder.
> > > > > > > > >
> > > > > > > > > Sincerely,
> > > > > > > > > Dmitriy Pavlov
> > > > > > > > >
> > > > > > > > > чт, 28 февр. 2019 г. в 08:03, Павлухин
Иван <
> > > vololo100@gmail.com>:
> > > > > > > > >
> > > > > > > > > > Dmitiy,
> > > > > > > > > >
> > > > > > > > > > Could please clarify one thing:
> > > > > > > > > > 1. Will it be enough to use only storageNodeIndex
in
> order to
> > > > > reuse
> > > > > > > > > > the same persistence folders when consistentId
is
> > > auto-generated?
> > > > > > > E.g.
> > > > > > > > > > I have a configuration with storageNodeIndex=1
and
> without
> > > > > explicitly
> > > > > > > > > > specified consistentId, will the node after
restart use
> the
> > > same
> > > > > > > > > > persistence folder as before restart?
> > > > > > > > > >
> > > > > > > > > > Also a side note:
> > > > > > > > > > > Please share your vision. I'm going
to apply this
> change by
> > > > > lazy
> > > > > > > > > > consensus
> > > > > > > > > > in 3 days.
> > > > > > > > > > What do you mean by "apply"? I have not
seen any PR yet.
> > > > > > > > > >
> > > > > > > > > > ср, 27 февр. 2019 г. в 21:12, Dmitriy
Pavlov <
> > > dpavlov@apache.org
> > > > > >:
> > > > > > > > > > >
> > > > > > > > > > > Hi Igniters,
> > > > > > > > > > >
> > > > > > > > > > > I would like to fix the issue
> > > > > > > > > > > https://issues.apache.org/jira/browse/IGNITE-11432
> about
> > > > > > > specifying
> > > > > > > > some
> > > > > > > > > > > previous randomly generated UUID as
a new consistent
> ID.
> > > Folder
> > > > > > > > > > generation
> > > > > > > > > > > algorithm here (
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > >
> > >
> https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Persistent+Store+-+under+the+hood
> > > > > > > > > > )
> > > > > > > > > > > allows two options
> > > > > > > > > > > -node00+random UUID
> > > > > > > > > > > - consistendId
> > > > > > > > > > >
> > > > > > > > > > > I would like to add to Ignite configuration
new
> property
> > > > > nodeIndex
> > > > > > > in
> > > > > > > > > > > addition to consistent Id. New Property
will be named
> as
> > > > > > > > > > storageNodeIndex,
> > > > > > > > > > > int, zero-based.
> > > > > > > > > > > This will add the third option of subfolders
> processing:
> > > > > > > > > > > node{storageNodeIndex}+consistentID
> > > > > > > > > > >
> > > > > > > > > > > Please share your vision. I'm going
to apply this
> change by
> > > > > lazy
> > > > > > > > > > consensus
> > > > > > > > > > > in 3 days.
> > > > > > > > > > >
> > > > > > > > > > > Sincerely,
> > > > > > > > > > > Dmitriy Pavlov
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Best regards,
> > > > > > > > > > Ivan Pavlukhin
> > > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Best regards,
> > > > > > > > Ivan Pavlukhin
> > > > > > > >
> > > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Best regards,
> > > > > Ivan Pavlukhin
> > > > >
> > >
> > >
> > >
> > > --
> > > Best regards,
> > > Ivan Pavlukhin
> > >
>
>
>
> --
> Best regards,
> Ivan Pavlukhin
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message