Specifying location of persistent storage location

classic Classic list List threaded Threaded
22 messages Options
12
Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

Specifying location of persistent storage location

Hi,

 

I’m running a POC looking at the Ignite Persistent Store feature.

 

I have added a section to the configuration for the Ignite grid as follows:

 

            cfg.PersistentStoreConfiguration = new PersistentStoreConfiguration()

            {

                PersistentStorePath = PersistentCacheStoreLocation,

                WalArchivePath = Path.Combine(PersistentCacheStoreLocation, "WalArchive"),

                WalStorePath = Path.Combine(PersistentCacheStoreLocation, "WalStore"),

            };

 

When I run the Ignite grid (a single node running locally) it then creates a folder inside the PersistentCacheStoreLocation with a complicated name, like this (which looks like a collection of IP addresses and a GUID for good measure, and perhaps with a port number added to the end):

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

 

Within that folder are then placed folders containing the content for each cache in the system

 

Oddly, if I stop and then restart the grid I sometime get another folder with a slightly different complicated name, like this:

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

 

How do I ensure my grid uses the same persistent location each time? There doesn’t seem anything obvious in the PersistentStoreConfiguration that relates to this, other than the root location of the folder to store persisted data.

 

Thanks,
Raymond.

 

Dmitry Pavlov Dmitry Pavlov
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location

Hi Raymond,
 
Ignite Persistent Store includes consistentID parameter of cluster node into folders name. It is required because there is possible that 2 nodes would be started at same physical machine.
 
Consistency of using same folder each time is provided by this property,
ClusterNode.consistentID - consistent globally unique node ID. Unlike ClusterNode.id this parameter constains consistent node ID which survives node restarts.
 
Sincerely,
Dmitriy Pavlov


сб, 2 сент. 2017 г. в 23:40, Raymond Wilson <[hidden email]>:

Hi,

 

I’m running a POC looking at the Ignite Persistent Store feature.

 

I have added a section to the configuration for the Ignite grid as follows:

 

            cfg.PersistentStoreConfiguration = new PersistentStoreConfiguration()

            {

                PersistentStorePath = PersistentCacheStoreLocation,

                WalArchivePath = Path.Combine(PersistentCacheStoreLocation, "WalArchive"),

                WalStorePath = Path.Combine(PersistentCacheStoreLocation, "WalStore"),

            };

 

When I run the Ignite grid (a single node running locally) it then creates a folder inside the PersistentCacheStoreLocation with a complicated name, like this (which looks like a collection of IP addresses and a GUID for good measure, and perhaps with a port number added to the end):

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

 

Within that folder are then placed folders containing the content for each cache in the system

 

Oddly, if I stop and then restart the grid I sometime get another folder with a slightly different complicated name, like this:

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

 

How do I ensure my grid uses the same persistent location each time? There doesn’t seem anything obvious in the PersistentStoreConfiguration that relates to this, other than the root location of the folder to store persisted data.

 

Thanks,
Raymond.

 

Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location

Thank you Dmitry!

Sent from my iPhone

On 5/09/2017, at 1:12 AM, Dmitry Pavlov <[hidden email]> wrote:

Hi Raymond,
 
Ignite Persistent Store includes consistentID parameter of cluster node into folders name. It is required because there is possible that 2 nodes would be started at same physical machine.
 
Consistency of using same folder each time is provided by this property,
ClusterNode.consistentID - consistent globally unique node ID. Unlike ClusterNode.id this parameter constains consistent node ID which survives node restarts.
 
Sincerely,
Dmitriy Pavlov


сб, 2 сент. 2017 г. в 23:40, Raymond Wilson <[hidden email]>:

Hi,

 

I’m running a POC looking at the Ignite Persistent Store feature.

 

I have added a section to the configuration for the Ignite grid as follows:

 

            cfg.PersistentStoreConfiguration = new PersistentStoreConfiguration()

            {

                PersistentStorePath = PersistentCacheStoreLocation,

                WalArchivePath = Path.Combine(PersistentCacheStoreLocation, "WalArchive"),

                WalStorePath = Path.Combine(PersistentCacheStoreLocation, "WalStore"),

            };

 

When I run the Ignite grid (a single node running locally) it then creates a folder inside the PersistentCacheStoreLocation with a complicated name, like this (which looks like a collection of IP addresses and a GUID for good measure, and perhaps with a port number added to the end):

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

 

Within that folder are then placed folders containing the content for each cache in the system

 

Oddly, if I stop and then restart the grid I sometime get another folder with a slightly different complicated name, like this:

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

 

How do I ensure my grid uses the same persistent location each time? There doesn’t seem anything obvious in the PersistentStoreConfiguration that relates to this, other than the root location of the folder to store persisted data.

 

Thanks,
Raymond.

 

Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

RE: Specifying location of persistent storage location

Apologies if this is a silly question, but I’m struggling to see how to get at the consistentID member of ClusterNode on the C# client.

 

If I look at IClusterNode I only see “Id”, which is the ID that changes each restart. Is consistentID a Java client only feature?

 

Thanks,

Raymond.

 

From: Raymond Wilson [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 6:04 AM
To: [hidden email]
Subject: Re: Specifying location of persistent storage location

 

Thank you Dmitry!

Sent from my iPhone


On 5/09/2017, at 1:12 AM, Dmitry Pavlov <[hidden email]> wrote:

Hi Raymond,

 

Ignite Persistent Store includes consistentID parameter of cluster node into folders name. It is required because there is possible that 2 nodes would be started at same physical machine.

 

Consistency of using same folder each time is provided by this property,

ClusterNode.consistentID - consistent globally unique node ID. Unlike ClusterNode.id this parameter constains consistent node ID which survives node restarts.

 

Sincerely,

Dmitriy Pavlov

 

 

сб, 2 сент. 2017 г. в 23:40, Raymond Wilson <[hidden email]>:

Hi,

 

I’m running a POC looking at the Ignite Persistent Store feature.

 

I have added a section to the configuration for the Ignite grid as follows:

 

            cfg.PersistentStoreConfiguration = new PersistentStoreConfiguration()

            {

                PersistentStorePath = PersistentCacheStoreLocation,

                WalArchivePath = Path.Combine(PersistentCacheStoreLocation, "WalArchive"),

                WalStorePath = Path.Combine(PersistentCacheStoreLocation, "WalStore"),

            };

 

When I run the Ignite grid (a single node running locally) it then creates a folder inside the PersistentCacheStoreLocation with a complicated name, like this (which looks like a collection of IP addresses and a GUID for good measure, and perhaps with a port number added to the end):

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

 

Within that folder are then placed folders containing the content for each cache in the system

 

Oddly, if I stop and then restart the grid I sometime get another folder with a slightly different complicated name, like this:

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

 

How do I ensure my grid uses the same persistent location each time? There doesn’t seem anything obvious in the PersistentStoreConfiguration that relates to this, other than the root location of the folder to store persisted data.

 

Thanks,
Raymond.

 

Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

RE: Specifying location of persistent storage location

In reply to this post by Raymond Wilson

… also, the documentation for ClusterNode here (https://www.gridgain.com/sdk/pe/latest/javadoc/org/apache/ignite/cluster/ClusterNode.html) only describes a getter for the consistent ID, I need to be able to set it.

 

From: Raymond Wilson [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 9:06 AM
To: '[hidden email]' <[hidden email]>
Subject: RE: Specifying location of persistent storage location

 

Apologies if this is a silly question, but I’m struggling to see how to get at the consistentID member of ClusterNode on the C# client.

 

If I look at IClusterNode I only see “Id”, which is the ID that changes each restart. Is consistentID a Java client only feature?

 

Thanks,

Raymond.

 

From: Raymond Wilson [[hidden email]]
Sent: Tuesday, September 5, 2017 6:04 AM
To: [hidden email]
Subject: Re: Specifying location of persistent storage location

 

Thank you Dmitry!

Sent from my iPhone


On 5/09/2017, at 1:12 AM, Dmitry Pavlov <[hidden email]> wrote:

Hi Raymond,

 

Ignite Persistent Store includes consistentID parameter of cluster node into folders name. It is required because there is possible that 2 nodes would be started at same physical machine.

 

Consistency of using same folder each time is provided by this property,

ClusterNode.consistentID - consistent globally unique node ID. Unlike ClusterNode.id this parameter constains consistent node ID which survives node restarts.

 

Sincerely,

Dmitriy Pavlov

 

 

сб, 2 сент. 2017 г. в 23:40, Raymond Wilson <[hidden email]>:

Hi,

 

I’m running a POC looking at the Ignite Persistent Store feature.

 

I have added a section to the configuration for the Ignite grid as follows:

 

            cfg.PersistentStoreConfiguration = new PersistentStoreConfiguration()

            {

                PersistentStorePath = PersistentCacheStoreLocation,

                WalArchivePath = Path.Combine(PersistentCacheStoreLocation, "WalArchive"),

                WalStorePath = Path.Combine(PersistentCacheStoreLocation, "WalStore"),

            };

 

When I run the Ignite grid (a single node running locally) it then creates a folder inside the PersistentCacheStoreLocation with a complicated name, like this (which looks like a collection of IP addresses and a GUID for good measure, and perhaps with a port number added to the end):

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

 

Within that folder are then placed folders containing the content for each cache in the system

 

Oddly, if I stop and then restart the grid I sometime get another folder with a slightly different complicated name, like this:

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

 

How do I ensure my grid uses the same persistent location each time? There doesn’t seem anything obvious in the PersistentStoreConfiguration that relates to this, other than the root location of the folder to store persisted data.

 

Thanks,
Raymond.

 

Dmitry Pavlov Dmitry Pavlov
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location

Hi Ramond,

Node.Consistent ID by default is the sorted set of local IP addresses and ports. This field value survives during node restart.

At the same time consistent ID may be set using IgniteConfiguration.setConsistentId() if you need to specify it manually. 
I'm not sure how to write in C# syntax, but I am pretty sure it may be configured.

Sincerely,
Dmitriy Pavlov

вт, 5 сент. 2017 г. в 0:12, Raymond Wilson <[hidden email]>:

… also, the documentation for ClusterNode here (https://www.gridgain.com/sdk/pe/latest/javadoc/org/apache/ignite/cluster/ClusterNode.html) only describes a getter for the consistent ID, I need to be able to set it.

 

From: Raymond Wilson [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 9:06 AM
To: '[hidden email]' <[hidden email]>
Subject: RE: Specifying location of persistent storage location

 

Apologies if this is a silly question, but I’m struggling to see how to get at the consistentID member of ClusterNode on the C# client.

 

If I look at IClusterNode I only see “Id”, which is the ID that changes each restart. Is consistentID a Java client only feature?

 

Thanks,

Raymond.

 

From: Raymond Wilson [[hidden email]]
Sent: Tuesday, September 5, 2017 6:04 AM
To: [hidden email]
Subject: Re: Specifying location of persistent storage location

 

Thank you Dmitry!

Sent from my iPhone


On 5/09/2017, at 1:12 AM, Dmitry Pavlov <[hidden email]> wrote:

Hi Raymond,

 

Ignite Persistent Store includes consistentID parameter of cluster node into folders name. It is required because there is possible that 2 nodes would be started at same physical machine.

 

Consistency of using same folder each time is provided by this property,

ClusterNode.consistentID - consistent globally unique node ID. Unlike ClusterNode.id this parameter constains consistent node ID which survives node restarts.

 

Sincerely,

Dmitriy Pavlov

 

 

сб, 2 сент. 2017 г. в 23:40, Raymond Wilson <[hidden email]>:

Hi,

 

I’m running a POC looking at the Ignite Persistent Store feature.

 

I have added a section to the configuration for the Ignite grid as follows:

 

            cfg.PersistentStoreConfiguration = new PersistentStoreConfiguration()

            {

                PersistentStorePath = PersistentCacheStoreLocation,

                WalArchivePath = Path.Combine(PersistentCacheStoreLocation, "WalArchive"),

                WalStorePath = Path.Combine(PersistentCacheStoreLocation, "WalStore"),

            };

 

When I run the Ignite grid (a single node running locally) it then creates a folder inside the PersistentCacheStoreLocation with a complicated name, like this (which looks like a collection of IP addresses and a GUID for good measure, and perhaps with a port number added to the end):

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

 

Within that folder are then placed folders containing the content for each cache in the system

 

Oddly, if I stop and then restart the grid I sometime get another folder with a slightly different complicated name, like this:

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

 

How do I ensure my grid uses the same persistent location each time? There doesn’t seem anything obvious in the PersistentStoreConfiguration that relates to this, other than the root location of the folder to store persisted data.

 

Thanks,
Raymond.

 

Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

RE: Specifying location of persistent storage location

Hi Dmitry,

 

I looked at IgniteConfiguration in the C# client, but it does not have consistentID in its namespace.

 

I pulled the C# client source code and searched in there and was not able to find it. Perhaps this is not exposed in the C# client at all?

 

If that is that case, how would I configure this?

 

Thanks,

Raymond.

 

From: Dmitry Pavlov [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 9:24 AM
To: [hidden email]
Subject: Re: Specifying location of persistent storage location

 

Hi Ramond,

 

Node.Consistent ID by default is the sorted set of local IP addresses and ports. This field value survives during node restart.

 

At the same time consistent ID may be set using IgniteConfiguration.setConsistentId() if you need to specify it manually. 

I'm not sure how to write in C# syntax, but I am pretty sure it may be configured.

 

Sincerely,

Dmitriy Pavlov

 

вт, 5 сент. 2017 г. в 0:12, Raymond Wilson <[hidden email]>:

… also, the documentation for ClusterNode here (https://www.gridgain.com/sdk/pe/latest/javadoc/org/apache/ignite/cluster/ClusterNode.html) only describes a getter for the consistent ID, I need to be able to set it.

 

From: Raymond Wilson [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 9:06 AM
To: '[hidden email]' <[hidden email]>
Subject: RE: Specifying location of persistent storage location

 

Apologies if this is a silly question, but I’m struggling to see how to get at the consistentID member of ClusterNode on the C# client.

 

If I look at IClusterNode I only see “Id”, which is the ID that changes each restart. Is consistentID a Java client only feature?

 

Thanks,

Raymond.

 

From: Raymond Wilson [[hidden email]]
Sent: Tuesday, September 5, 2017 6:04 AM
To: [hidden email]
Subject: Re: Specifying location of persistent storage location

 

Thank you Dmitry!

Sent from my iPhone


On 5/09/2017, at 1:12 AM, Dmitry Pavlov <[hidden email]> wrote:

Hi Raymond,

 

Ignite Persistent Store includes consistentID parameter of cluster node into folders name. It is required because there is possible that 2 nodes would be started at same physical machine.

 

Consistency of using same folder each time is provided by this property,

ClusterNode.consistentID - consistent globally unique node ID. Unlike ClusterNode.id this parameter constains consistent node ID which survives node restarts.

 

Sincerely,

Dmitriy Pavlov

 

 

сб, 2 сент. 2017 г. в 23:40, Raymond Wilson <[hidden email]>:

Hi,

 

I’m running a POC looking at the Ignite Persistent Store feature.

 

I have added a section to the configuration for the Ignite grid as follows:

 

            cfg.PersistentStoreConfiguration = new PersistentStoreConfiguration()

            {

                PersistentStorePath = PersistentCacheStoreLocation,

                WalArchivePath = Path.Combine(PersistentCacheStoreLocation, "WalArchive"),

                WalStorePath = Path.Combine(PersistentCacheStoreLocation, "WalStore"),

            };

 

When I run the Ignite grid (a single node running locally) it then creates a folder inside the PersistentCacheStoreLocation with a complicated name, like this (which looks like a collection of IP addresses and a GUID for good measure, and perhaps with a port number added to the end):

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

 

Within that folder are then placed folders containing the content for each cache in the system

 

Oddly, if I stop and then restart the grid I sometime get another folder with a slightly different complicated name, like this:

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

 

How do I ensure my grid uses the same persistent location each time? There doesn’t seem anything obvious in the PersistentStoreConfiguration that relates to this, other than the root location of the folder to store persisted data.

 

Thanks,
Raymond.

 

dsetrakyan dsetrakyan
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location

Hi Raymond,

Sorry for the initial confusion. The consistent ID is the combination of the local IP and port. You DO NOT need to do anything special to configure it. 

If you had different folders created under the work folder, you probably had more than one node running at the same time. Can you please make sure that it was not the case?

D.

On Mon, Sep 4, 2017 at 2:55 PM, Raymond Wilson <[hidden email]> wrote:

Hi Dmitry,

 

I looked at IgniteConfiguration in the C# client, but it does not have consistentID in its namespace.

 

I pulled the C# client source code and searched in there and was not able to find it. Perhaps this is not exposed in the C# client at all?

 

If that is that case, how would I configure this?

 

Thanks,

Raymond.

 

From: Dmitry Pavlov [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 9:24 AM


To: [hidden email]
Subject: Re: Specifying location of persistent storage location

 

Hi Ramond,

 

Node.Consistent ID by default is the sorted set of local IP addresses and ports. This field value survives during node restart.

 

At the same time consistent ID may be set using IgniteConfiguration.setConsistentId() if you need to specify it manually. 

I'm not sure how to write in C# syntax, but I am pretty sure it may be configured.

 

Sincerely,

Dmitriy Pavlov

 

вт, 5 сент. 2017 г. в 0:12, Raymond Wilson <[hidden email]>:

… also, the documentation for ClusterNode here (https://www.gridgain.com/sdk/pe/latest/javadoc/org/apache/ignite/cluster/ClusterNode.html) only describes a getter for the consistent ID, I need to be able to set it.

 

From: Raymond Wilson [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 9:06 AM
To: '[hidden email]' <[hidden email]>
Subject: RE: Specifying location of persistent storage location

 

Apologies if this is a silly question, but I’m struggling to see how to get at the consistentID member of ClusterNode on the C# client.

 

If I look at IClusterNode I only see “Id”, which is the ID that changes each restart. Is consistentID a Java client only feature?

 

Thanks,

Raymond.

 

From: Raymond Wilson [[hidden email]]
Sent: Tuesday, September 5, 2017 6:04 AM
To: [hidden email]
Subject: Re: Specifying location of persistent storage location

 

Thank you Dmitry!

Sent from my iPhone


On 5/09/2017, at 1:12 AM, Dmitry Pavlov <[hidden email]> wrote:

Hi Raymond,

 

Ignite Persistent Store includes consistentID parameter of cluster node into folders name. It is required because there is possible that 2 nodes would be started at same physical machine.

 

Consistency of using same folder each time is provided by this property,

ClusterNode.consistentID - consistent globally unique node ID. Unlike ClusterNode.id this parameter constains consistent node ID which survives node restarts.

 

Sincerely,

Dmitriy Pavlov

 

 

сб, 2 сент. 2017 г. в 23:40, Raymond Wilson <[hidden email]>:

Hi,

 

I’m running a POC looking at the Ignite Persistent Store feature.

 

I have added a section to the configuration for the Ignite grid as follows:

 

            cfg.PersistentStoreConfiguration = new PersistentStoreConfiguration()

            {

                PersistentStorePath = PersistentCacheStoreLocation,

                WalArchivePath = Path.Combine(PersistentCacheStoreLocation, "WalArchive"),

                WalStorePath = Path.Combine(PersistentCacheStoreLocation, "WalStore"),

            };

 

When I run the Ignite grid (a single node running locally) it then creates a folder inside the PersistentCacheStoreLocation with a complicated name, like this (which looks like a collection of IP addresses and a GUID for good measure, and perhaps with a port number added to the end):

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

 

Within that folder are then placed folders containing the content for each cache in the system

 

Oddly, if I stop and then restart the grid I sometime get another folder with a slightly different complicated name, like this:

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

 

How do I ensure my grid uses the same persistent location each time? There doesn’t seem anything obvious in the PersistentStoreConfiguration that relates to this, other than the root location of the folder to store persisted data.

 

Thanks,
Raymond.

 


Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

RE: Specifying location of persistent storage location

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

Thanks,
Raymond.

 

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 10:23 AM
To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

Hi Raymond,

 

Sorry for the initial confusion. The consistent ID is the combination of the local IP and port. You DO NOT need to do anything special to configure it. 

 

If you had different folders created under the work folder, you probably had more than one node running at the same time. Can you please make sure that it was not the case?

 

D.

 

On Mon, Sep 4, 2017 at 2:55 PM, Raymond Wilson <[hidden email]> wrote:

Hi Dmitry,

 

I looked at IgniteConfiguration in the C# client, but it does not have consistentID in its namespace.

 

I pulled the C# client source code and searched in there and was not able to find it. Perhaps this is not exposed in the C# client at all?

 

If that is that case, how would I configure this?

 

Thanks,

Raymond.

 

From: Dmitry Pavlov [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 9:24 AM


To: [hidden email]
Subject: Re: Specifying location of persistent storage location

 

Hi Ramond,

 

Node.Consistent ID by default is the sorted set of local IP addresses and ports. This field value survives during node restart.

 

At the same time consistent ID may be set using IgniteConfiguration.setConsistentId() if you need to specify it manually. 

I'm not sure how to write in C# syntax, but I am pretty sure it may be configured.

 

Sincerely,

Dmitriy Pavlov

 

вт, 5 сент. 2017 г. в 0:12, Raymond Wilson <[hidden email]>:

… also, the documentation for ClusterNode here (https://www.gridgain.com/sdk/pe/latest/javadoc/org/apache/ignite/cluster/ClusterNode.html) only describes a getter for the consistent ID, I need to be able to set it.

 

From: Raymond Wilson [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 9:06 AM
To: '[hidden email]' <[hidden email]>
Subject: RE: Specifying location of persistent storage location

 

Apologies if this is a silly question, but I’m struggling to see how to get at the consistentID member of ClusterNode on the C# client.

 

If I look at IClusterNode I only see “Id”, which is the ID that changes each restart. Is consistentID a Java client only feature?

 

Thanks,

Raymond.

 

From: Raymond Wilson [[hidden email]]
Sent: Tuesday, September 5, 2017 6:04 AM
To: [hidden email]
Subject: Re: Specifying location of persistent storage location

 

Thank you Dmitry!

Sent from my iPhone


On 5/09/2017, at 1:12 AM, Dmitry Pavlov <[hidden email]> wrote:

Hi Raymond,

 

Ignite Persistent Store includes consistentID parameter of cluster node into folders name. It is required because there is possible that 2 nodes would be started at same physical machine.

 

Consistency of using same folder each time is provided by this property,

ClusterNode.consistentID - consistent globally unique node ID. Unlike ClusterNode.id this parameter constains consistent node ID which survives node restarts.

 

Sincerely,

Dmitriy Pavlov

 

 

сб, 2 сент. 2017 г. в 23:40, Raymond Wilson <[hidden email]>:

Hi,

 

I’m running a POC looking at the Ignite Persistent Store feature.

 

I have added a section to the configuration for the Ignite grid as follows:

 

            cfg.PersistentStoreConfiguration = new PersistentStoreConfiguration()

            {

                PersistentStorePath = PersistentCacheStoreLocation,

                WalArchivePath = Path.Combine(PersistentCacheStoreLocation, "WalArchive"),

                WalStorePath = Path.Combine(PersistentCacheStoreLocation, "WalStore"),

            };

 

When I run the Ignite grid (a single node running locally) it then creates a folder inside the PersistentCacheStoreLocation with a complicated name, like this (which looks like a collection of IP addresses and a GUID for good measure, and perhaps with a port number added to the end):

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

 

Within that folder are then placed folders containing the content for each cache in the system

 

Oddly, if I stop and then restart the grid I sometime get another folder with a slightly different complicated name, like this:

 

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

 

How do I ensure my grid uses the same persistent location each time? There doesn’t seem anything obvious in the PersistentStoreConfiguration that relates to this, other than the root location of the folder to store persisted data.

 

Thanks,
Raymond.

 

 

dsetrakyan dsetrakyan
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location



On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.


 
I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

<property name="localHost" value="my.local.ip.address"/>

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

RE: Specifying location of persistent storage location

Hi,

 

It’s possible this could cause change in the folder name, though I do not think this is an issue in my case. Below are three different folder names I have seen. All use the same port number, but differ in terms of the IPV6 address (I have also seen variations where the IPv6 address is absent in the folder name).

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500

 

I start the nodes in my local setup in a well defined order so I would expect the port to be the same. I did once start a second instance by mistake and did see the port number incremented in the folder name.

 

Are you suggesting the two changes you note below will result in the same folder name being chosen every time, unlike above?

 

Thanks,

Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:17 AM
To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

 

I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

 

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

 

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

 

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

 

<property name="localHost" value="my.local.ip.address"/>

 

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

 

dsetrakyan dsetrakyan
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location


On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

It’s possible this could cause change in the folder name, though I do not think this is an issue in my case. Below are three different folder names I have seen. All use the same port number, but differ in terms of the IPV6 address (I have also seen variations where the IPv6 address is absent in the folder name).

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500

 

I start the nodes in my local setup in a well defined order so I would expect the port to be the same. I did once start a second instance by mistake and did see the port number incremented in the folder name.

 

Are you suggesting the two changes you note below will result in the same folder name being chosen every time, unlike above?



Yes, exactly. My suggestions will ensure that you explicitly bind to the same address every time.
 



 

Thanks,

Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:17 AM
To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

 

I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

 

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

 

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

 

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

 

<property name="localHost" value="my.local.ip.address"/>

 

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

 


Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

RE: Specifying location of persistent storage location

Dmitriy,

 

I set up an XML file based on the default one and added the two elements you noted.

 

However, this has brought up an issue in that the XML file and an IgniteConfiguration instance can’t both be provided to the Ignition.Start() call. So I changed it to use the DiscoverSPI aspect of IgniteConfiguration and set LocalAddress to “127.0.0.1” and LocalPort to 47500.

 

This did change the name of the persistence folder to be “127_0_0_1_47500” as you suggested.

 

While this resolves my current issue with the folder name changing, it still seems fragile as network configuration aspects of the server Ignite is running on have a direct impact on an internal aspect of its configuration (ie: the location where to store the persisted data). A DHCP IP lease renewal or an internal DNS domain change or an internal IT department change to using IPv6 addressing (among other things) could cause problems when a node restarts and decides the location of its data is different.

 

Do you know how GridGain manage this in their enterprise deployments using persistence?

 

Thanks,
Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:41 AM
To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

It’s possible this could cause change in the folder name, though I do not think this is an issue in my case. Below are three different folder names I have seen. All use the same port number, but differ in terms of the IPV6 address (I have also seen variations where the IPv6 address is absent in the folder name).

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500

 

I start the nodes in my local setup in a well defined order so I would expect the port to be the same. I did once start a second instance by mistake and did see the port number incremented in the folder name.

 

Are you suggesting the two changes you note below will result in the same folder name being chosen every time, unlike above?

 

 

Yes, exactly. My suggestions will ensure that you explicitly bind to the same address every time.

 

 

 

 

 

Thanks,

Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:17 AM
To: user <
[hidden email]>
Cc: Raymond Wilson <
[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

 

I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

 

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

 

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

 

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

 

<property name="localHost" value="my.local.ip.address"/>

 

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

 

 

dsetrakyan dsetrakyan
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location



On Mon, Sep 4, 2017 at 6:07 PM, Raymond Wilson <[hidden email]> wrote:

Dmitriy,

 

I set up an XML file based on the default one and added the two elements you noted.

 

However, this has brought up an issue in that the XML file and an IgniteConfiguration instance can’t both be provided to the Ignition.Start() call. So I changed it to use the DiscoverSPI aspect of IgniteConfiguration and set LocalAddress to “127.0.0.1” and LocalPort to 47500.

 

This did change the name of the persistence folder to be “127_0_0_1_47500” as you suggested.

 

While this resolves my current issue with the folder name changing, it still seems fragile as network configuration aspects of the server Ignite is running on have a direct impact on an internal aspect of its configuration (ie: the location where to store the persisted data). A DHCP IP lease renewal or an internal DNS domain change or an internal IT department change to using IPv6 addressing (among other things) could cause problems when a node restarts and decides the location of its data is different.

 

Do you know how GridGain manage this in their enterprise deployments using persistence?


I am glad the issue is resolved. By default, Ignite will bind to all the local network interfaces, and if they are provided in different order, it may create the situation you witnessed.

All enterprise users explicitly specify which network address to bind to, just like you did. This helps avoid any kind of magic in production.


 

 

Thanks,
Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:41 AM


To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

It’s possible this could cause change in the folder name, though I do not think this is an issue in my case. Below are three different folder names I have seen. All use the same port number, but differ in terms of the IPV6 address (I have also seen variations where the IPv6 address is absent in the folder name).

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500

 

I start the nodes in my local setup in a well defined order so I would expect the port to be the same. I did once start a second instance by mistake and did see the port number incremented in the folder name.

 

Are you suggesting the two changes you note below will result in the same folder name being chosen every time, unlike above?

 

 

Yes, exactly. My suggestions will ensure that you explicitly bind to the same address every time.

 

 

 

 

 

Thanks,

Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:17 AM
To: user <
[hidden email]>
Cc: Raymond Wilson <
[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

 

I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

 

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

 

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

 

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

 

<property name="localHost" value="my.local.ip.address"/>

 

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

 

 


Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

RE: Specifying location of persistent storage location

Thanks.

 

I get the utility of specifying the network address to bind to; I’m not convinced using that to derive the name of the internal data store is a good idea! J

 

For instance, what if you have to move a persistent data store to a different server? Or are you saying everybody sets LocalHost or 120.0.0.1 to ensure the folder name is always essentially local host?

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 3:09 PM
To: user <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 6:07 PM, Raymond Wilson <[hidden email]> wrote:

Dmitriy,

 

I set up an XML file based on the default one and added the two elements you noted.

 

However, this has brought up an issue in that the XML file and an IgniteConfiguration instance can’t both be provided to the Ignition.Start() call. So I changed it to use the DiscoverSPI aspect of IgniteConfiguration and set LocalAddress to “127.0.0.1” and LocalPort to 47500.

 

This did change the name of the persistence folder to be “127_0_0_1_47500” as you suggested.

 

While this resolves my current issue with the folder name changing, it still seems fragile as network configuration aspects of the server Ignite is running on have a direct impact on an internal aspect of its configuration (ie: the location where to store the persisted data). A DHCP IP lease renewal or an internal DNS domain change or an internal IT department change to using IPv6 addressing (among other things) could cause problems when a node restarts and decides the location of its data is different.

 

Do you know how GridGain manage this in their enterprise deployments using persistence?

 

I am glad the issue is resolved. By default, Ignite will bind to all the local network interfaces, and if they are provided in different order, it may create the situation you witnessed.

 

All enterprise users explicitly specify which network address to bind to, just like you did. This helps avoid any kind of magic in production.

 

 

 

 

Thanks,
Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:41 AM


To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

It’s possible this could cause change in the folder name, though I do not think this is an issue in my case. Below are three different folder names I have seen. All use the same port number, but differ in terms of the IPV6 address (I have also seen variations where the IPv6 address is absent in the folder name).

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500

 

I start the nodes in my local setup in a well defined order so I would expect the port to be the same. I did once start a second instance by mistake and did see the port number incremented in the folder name.

 

Are you suggesting the two changes you note below will result in the same folder name being chosen every time, unlike above?

 

 

Yes, exactly. My suggestions will ensure that you explicitly bind to the same address every time.

 

 

 

 

 

Thanks,

Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:17 AM
To: user <
[hidden email]>
Cc: Raymond Wilson <
[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

 

I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

 

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

 

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

 

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

 

<property name="localHost" value="my.local.ip.address"/>

 

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

 

 

 

dsetrakyan dsetrakyan
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location



On Mon, Sep 4, 2017 at 8:40 PM, Raymond Wilson <[hidden email]> wrote:

Thanks.

 

I get the utility of specifying the network address to bind to; I’m not convinced using that to derive the name of the internal data store is a good idea! J

 For instance, what if you have to move a persistent data store to a different server? Or are you saying everybody sets LocalHost or 120.0.0.1 to ensure the folder name is always essentially local host?


I think what you are asking about is a database backup or a snapshot. Ignite does not support it out of the box, but you may wish to look at the 3rd party solutions, e.g. the one provided by GridGain - https://docs.gridgain.com/docs/data-snapshots

 

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 3:09 PM
To: user <[hidden email]>


Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 6:07 PM, Raymond Wilson <[hidden email]> wrote:

Dmitriy,

 

I set up an XML file based on the default one and added the two elements you noted.

 

However, this has brought up an issue in that the XML file and an IgniteConfiguration instance can’t both be provided to the Ignition.Start() call. So I changed it to use the DiscoverSPI aspect of IgniteConfiguration and set LocalAddress to “127.0.0.1” and LocalPort to 47500.

 

This did change the name of the persistence folder to be “127_0_0_1_47500” as you suggested.

 

While this resolves my current issue with the folder name changing, it still seems fragile as network configuration aspects of the server Ignite is running on have a direct impact on an internal aspect of its configuration (ie: the location where to store the persisted data). A DHCP IP lease renewal or an internal DNS domain change or an internal IT department change to using IPv6 addressing (among other things) could cause problems when a node restarts and decides the location of its data is different.

 

Do you know how GridGain manage this in their enterprise deployments using persistence?

 

I am glad the issue is resolved. By default, Ignite will bind to all the local network interfaces, and if they are provided in different order, it may create the situation you witnessed.

 

All enterprise users explicitly specify which network address to bind to, just like you did. This helps avoid any kind of magic in production.

 

 

 

 

Thanks,
Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:41 AM


To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

It’s possible this could cause change in the folder name, though I do not think this is an issue in my case. Below are three different folder names I have seen. All use the same port number, but differ in terms of the IPV6 address (I have also seen variations where the IPv6 address is absent in the folder name).

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500

 

I start the nodes in my local setup in a well defined order so I would expect the port to be the same. I did once start a second instance by mistake and did see the port number incremented in the folder name.

 

Are you suggesting the two changes you note below will result in the same folder name being chosen every time, unlike above?

 

 

Yes, exactly. My suggestions will ensure that you explicitly bind to the same address every time.

 

 

 

 

 

Thanks,

Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:17 AM
To: user <
[hidden email]>
Cc: Raymond Wilson <
[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

 

I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

 

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

 

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

 

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

 

<property name="localHost" value="my.local.ip.address"/>

 

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

 

 

 


Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

RE: Specifying location of persistent storage location

I wasn’t thinking of a snapshot so much, as a situation where a server (particularly a virtual server) that might need to be bounced or replaced during a maintenance window. If this was on AWS the process is pretty simple – create a new server (for example with an updated patched AMI) and reattach the EBS volume containing the persisted data. This server may well not have the same IP address (though that could be mitigated with a DNS name).

 

In any event, I’m just trying to convey a sense of unease over how IP configuration controls the naming of the location of persistent data on an Ignite server node and how (especially with a default configuration) this can result in unpredictable changes of the name of the folder Ignite expects to find its persisted data.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 6:12 PM
To: user <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 8:40 PM, Raymond Wilson <[hidden email]> wrote:

Thanks.

 

I get the utility of specifying the network address to bind to; I’m not convinced using that to derive the name of the internal data store is a good idea! J

 For instance, what if you have to move a persistent data store to a different server? Or are you saying everybody sets LocalHost or 120.0.0.1 to ensure the folder name is always essentially local host?

 

I think what you are asking about is a database backup or a snapshot. Ignite does not support it out of the box, but you may wish to look at the 3rd party solutions, e.g. the one provided by GridGain - https://docs.gridgain.com/docs/data-snapshots

 

 

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 3:09 PM
To: user <[hidden email]>


Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 6:07 PM, Raymond Wilson <[hidden email]> wrote:

Dmitriy,

 

I set up an XML file based on the default one and added the two elements you noted.

 

However, this has brought up an issue in that the XML file and an IgniteConfiguration instance can’t both be provided to the Ignition.Start() call. So I changed it to use the DiscoverSPI aspect of IgniteConfiguration and set LocalAddress to “127.0.0.1” and LocalPort to 47500.

 

This did change the name of the persistence folder to be “127_0_0_1_47500” as you suggested.

 

While this resolves my current issue with the folder name changing, it still seems fragile as network configuration aspects of the server Ignite is running on have a direct impact on an internal aspect of its configuration (ie: the location where to store the persisted data). A DHCP IP lease renewal or an internal DNS domain change or an internal IT department change to using IPv6 addressing (among other things) could cause problems when a node restarts and decides the location of its data is different.

 

Do you know how GridGain manage this in their enterprise deployments using persistence?

 

I am glad the issue is resolved. By default, Ignite will bind to all the local network interfaces, and if they are provided in different order, it may create the situation you witnessed.

 

All enterprise users explicitly specify which network address to bind to, just like you did. This helps avoid any kind of magic in production.

 

 

 

 

Thanks,
Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:41 AM


To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

It’s possible this could cause change in the folder name, though I do not think this is an issue in my case. Below are three different folder names I have seen. All use the same port number, but differ in terms of the IPV6 address (I have also seen variations where the IPv6 address is absent in the folder name).

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500

 

I start the nodes in my local setup in a well defined order so I would expect the port to be the same. I did once start a second instance by mistake and did see the port number incremented in the folder name.

 

Are you suggesting the two changes you note below will result in the same folder name being chosen every time, unlike above?

 

 

Yes, exactly. My suggestions will ensure that you explicitly bind to the same address every time.

 

 

 

 

 

Thanks,

Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:17 AM
To: user <
[hidden email]>
Cc: Raymond Wilson <
[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

 

I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

 

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

 

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

 

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

 

<property name="localHost" value="my.local.ip.address"/>

 

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

 

 

 

 

yakov yakov
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location

In reply to this post by Raymond Wilson
+ dev 
Pavel Tupitsin, can you please check that org.apache.ignite.configuration.IgniteConfiguration#setConsistentId has it platform counterpart? I could not find it.

Raymond, you can explicitly set a bind address for Ignite with public string Localhost { get; set; }. This will make consistent ID to use only 1 address. Also I would suggest you disable ipv6 if you don't use it.

Igniters, I think Ignite needs to do these checks and reports:

1. Output the store path and tell its (1) size or state that it is empty and (2) last data file modification date.
2. Output warning if there are other non-empty storage folders under work directory with their sizes and dates.

--Yakov

2017-09-05 4:07 GMT+03:00 Raymond Wilson <[hidden email]>:

Dmitriy,

 

I set up an XML file based on the default one and added the two elements you noted.

 

However, this has brought up an issue in that the XML file and an IgniteConfiguration instance can’t both be provided to the Ignition.Start() call. So I changed it to use the DiscoverSPI aspect of IgniteConfiguration and set LocalAddress to “127.0.0.1” and LocalPort to 47500.

 

This did change the name of the persistence folder to be “127_0_0_1_47500” as you suggested.

 

While this resolves my current issue with the folder name changing, it still seems fragile as network configuration aspects of the server Ignite is running on have a direct impact on an internal aspect of its configuration (ie: the location where to store the persisted data). A DHCP IP lease renewal or an internal DNS domain change or an internal IT department change to using IPv6 addressing (among other things) could cause problems when a node restarts and decides the location of its data is different.

 

Do you know how GridGain manage this in their enterprise deployments using persistence?

 

Thanks,
Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:41 AM


To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

It’s possible this could cause change in the folder name, though I do not think this is an issue in my case. Below are three different folder names I have seen. All use the same port number, but differ in terms of the IPV6 address (I have also seen variations where the IPv6 address is absent in the folder name).

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500

 

I start the nodes in my local setup in a well defined order so I would expect the port to be the same. I did once start a second instance by mistake and did see the port number incremented in the folder name.

 

Are you suggesting the two changes you note below will result in the same folder name being chosen every time, unlike above?

 

 

Yes, exactly. My suggestions will ensure that you explicitly bind to the same address every time.

 

 

 

 

 

Thanks,

Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:17 AM
To: user <
[hidden email]>
Cc: Raymond Wilson <
[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

 

I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

 

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

 

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

 

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

 

<property name="localHost" value="my.local.ip.address"/>

 

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

 

 


ptupitsyn ptupitsyn
Reply | Threaded
Open this post in threaded view
|

Re: Specifying location of persistent storage location

Ignite.NET does not have IgniteConfiguration.ConsistentId, here is the ticket:

Workaround is to use Spring XML for that particular property (keep everything else in .NET, configs will be merged):

On Tue, Sep 5, 2017 at 11:51 AM, Yakov Zhdanov <[hidden email]> wrote:
+ dev
Pavel Tupitsin, can you please check that
org.apache.ignite.configuration.IgniteConfiguration#setConsistentId has it
platform counterpart? I could not find it.

Raymond, you can explicitly set a bind address for Ignite with public
string Localhost { get; set; }. This will make consistent ID to use only 1
address. Also I would suggest you disable ipv6 if you don't use it.

Igniters, I think Ignite needs to do these checks and reports:

1. Output the store path and tell its (1) size or state that it is empty
and (2) last data file modification date.
2. Output warning if there are other non-empty storage folders under work
directory with their sizes and dates.

--Yakov

2017-09-05 4:07 GMT+03:00 Raymond Wilson <[hidden email]>:

> Dmitriy,
>
>
>
> I set up an XML file based on the default one and added the two elements
> you noted.
>
>
>
> However, this has brought up an issue in that the XML file and an
> IgniteConfiguration instance can’t both be provided to the Ignition.Start()
> call. So I changed it to use the DiscoverSPI aspect of IgniteConfiguration
> and set LocalAddress to “127.0.0.1” and LocalPort to 47500.
>
>
>
> This did change the name of the persistence folder to be “127_0_0_1_47500”
> as you suggested.
>
>
>
> While this resolves my current issue with the folder name changing, it
> still seems fragile as network configuration aspects of the server Ignite
> is running on have a direct impact on an internal aspect of its
> configuration (ie: the location where to store the persisted data). A DHCP
> IP lease renewal or an internal DNS domain change or an internal IT
> department change to using IPv6 addressing (among other things) could cause
> problems when a node restarts and decides the location of its data is
> different.
>
>
>
> Do you know how GridGain manage this in their enterprise deployments using
> persistence?
>
>
>
> Thanks,
> Raymond.
>
>
>
> *From:* Dmitriy Setrakyan [mailto:[hidden email]]
> *Sent:* Tuesday, September 5, 2017 11:41 AM
>
> *To:* user <[hidden email]>
> *Cc:* Raymond Wilson <[hidden email]>
> *Subject:* Re: Specifying location of persistent storage location
>
>
>
>
>
> On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <[hidden email]>
> wrote:
>
> Hi,
>
>
>
> It’s possible this could cause change in the folder name, though I do not
> think this is an issue in my case. Below are three different folder names I
> have seen. All use the same port number, but differ in terms of the IPV6
> address (I have also seen variations where the IPv6 address is absent in
> the folder name).
>
> 0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_
> 121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_
> 50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500
>
>
>
>                                                                 ,
>
> 0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_
> 121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_
> 8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500
>
> 0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_
> 121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_
> f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500
>
>
>
> I start the nodes in my local setup in a well defined order so I would
> expect the port to be the same. I did once start a second instance by
> mistake and did see the port number incremented in the folder name.
>
>
>
> Are you suggesting the two changes you note below will result in the same
> folder name being chosen every time, unlike above?
>
>
>
>
>
> Yes, exactly. My suggestions will ensure that you explicitly bind to the
> same address every time.
>
>
>
>
>
>
>
>
>
>
>
> Thanks,
>
> Raymond.
>
>
>
> *From:* Dmitriy Setrakyan [mailto:[hidden email]]
> *Sent:* Tuesday, September 5, 2017 11:17 AM
> *To:* user <[hidden email]>
> *Cc:* Raymond Wilson <[hidden email]>
> *Subject:* Re: Specifying location of persistent storage location
>
>
>
>
>
>
>
> On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]>
> wrote:
>
> Hi,
>
>
>
> I definitely have not had more than one server node running at the same
> time (though there have been more than one client node running on the same
> machine).
>
>
>
> I suspect what is happening is that one or more of the network interfaces
> on the machine can have their address change dynamically. What I thought of
> as a GUID is actually (I think) an IPv6 address attached to one of the
> interfaces. This aspect of the folder name tends to come and go.
>
>
>
> You can see from the folder names below that there are quite a number of
> addresses involved. This seems to be fragile (and I certainly see the name
> of this folder changing frequently), so I think being able to set it to
> something concrete would be a good idea.
>
>
>
>
>
> I think I understand what is happening. Ignite starts off with a default
> port, and then starts incrementing it with every new node started on the
> same host. Perhaps you start server and client nodes in different order
> sometimes which causes server to bind to a different port.
>
>
>
> To make sure that your server node binds to the same port all the time,
> you should try specifying it explicitly in the server node configuration,
> like so (forgive me if this snippet does not compile):
>
>
>
>
>
>
>
> *<property name="discoverySpi">         <bean
> class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
>  <property name="localPort" value="40123"/>         </bean></property>*
>
>
>
> Please make sure that the client nodes either don't have any port
> configured, or have a different port configured.
>
>
>
> You should also make sure that Ignite always binds to the desired local
> interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...)
> property, or like so in XML:
>
>
>
> *<property name="localHost" value="my.local.ip.address"/>*
>
>
>
> If my theory is correct, Ignite should make sure that the clients and
> servers cannot theoretically bind to the same port. I will double check it
> with the community and file a ticket if needed.
>
>
>
>
>

Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

RE: Specifying location of persistent storage location

In reply to this post by yakov

Hi Yakov,

 

Yes, Dmitriy walked me through how setting the LocalHost results in the folder name for the persistent data to be fixed. I also fixed the port number as this is also an aspect of the folder name.

 

Is there a known issue with IPv6 interfaces on a server hosting Ignite?

 

Thanks,
Raymond

 

From: Yakov Zhdanov [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 8:51 PM
To: [hidden email]; [hidden email]
Cc: Dmitriy Setrakyan <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

+ dev 
Pavel Tupitsin, can you please check that org.apache.ignite.configuration.IgniteConfiguration#setConsistentId has it platform counterpart? I could not find it.

Raymond, you can explicitly set a bind address for Ignite with public string Localhost { get; set; }. This will make consistent ID to use only 1 address. Also I would suggest you disable ipv6 if you don't use it.

 

Igniters, I think Ignite needs to do these checks and reports:

 

1. Output the store path and tell its (1) size or state that it is empty and (2) last data file modification date.

2. Output warning if there are other non-empty storage folders under work directory with their sizes and dates.


--Yakov

 

2017-09-05 4:07 GMT+03:00 Raymond Wilson <[hidden email]>:

Dmitriy,

 

I set up an XML file based on the default one and added the two elements you noted.

 

However, this has brought up an issue in that the XML file and an IgniteConfiguration instance can’t both be provided to the Ignition.Start() call. So I changed it to use the DiscoverSPI aspect of IgniteConfiguration and set LocalAddress to “127.0.0.1” and LocalPort to 47500.

 

This did change the name of the persistence folder to be “127_0_0_1_47500” as you suggested.

 

While this resolves my current issue with the folder name changing, it still seems fragile as network configuration aspects of the server Ignite is running on have a direct impact on an internal aspect of its configuration (ie: the location where to store the persisted data). A DHCP IP lease renewal or an internal DNS domain change or an internal IT department change to using IPv6 addressing (among other things) could cause problems when a node restarts and decides the location of its data is different.

 

Do you know how GridGain manage this in their enterprise deployments using persistence?

 

Thanks,
Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:41 AM


To: user <[hidden email]>
Cc: Raymond Wilson <[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

It’s possible this could cause change in the folder name, though I do not think this is an issue in my case. Below are three different folder names I have seen. All use the same port number, but differ in terms of the IPV6 address (I have also seen variations where the IPv6 address is absent in the folder name).

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_9cc8_92bc_50c9_6794_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500                                                                                                                                                                                                                                                         ,

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_9e5_1_a58c_2f32_8005_b03d_2406_e007_9e5_1_c5d8_af4b_55b2_582a_47500

0_0_0_0_0_0_0_1_10_0_75_1_10_3_72_117_127_0_0_1_192_168_121_1_192_168_178_27_192_168_3_1_2406_e007_38b4_1_858c_f0ab_bc60_54ab_2406_e007_38b4_1_c5d8_af4b_55b2_582a_47500

 

I start the nodes in my local setup in a well defined order so I would expect the port to be the same. I did once start a second instance by mistake and did see the port number incremented in the folder name.

 

Are you suggesting the two changes you note below will result in the same folder name being chosen every time, unlike above?

 

 

Yes, exactly. My suggestions will ensure that you explicitly bind to the same address every time.

 

 

 

 

 

Thanks,

Raymond.

 

From: Dmitriy Setrakyan [mailto:[hidden email]]
Sent: Tuesday, September 5, 2017 11:17 AM
To: user <
[hidden email]>
Cc: Raymond Wilson <
[hidden email]>
Subject: Re: Specifying location of persistent storage location

 

 

 

On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <[hidden email]> wrote:

Hi,

 

I definitely have not had more than one server node running at the same time (though there have been more than one client node running on the same machine).

 

I suspect what is happening is that one or more of the network interfaces on the machine can have their address change dynamically. What I thought of as a GUID is actually (I think) an IPv6 address attached to one of the interfaces. This aspect of the folder name tends to come and go.

 

You can see from the folder names below that there are quite a number of addresses involved. This seems to be fragile (and I certainly see the name of this folder changing frequently), so I think being able to set it to something concrete would be a good idea.

 

 

I think I understand what is happening. Ignite starts off with a default port, and then starts incrementing it with every new node started on the same host. Perhaps you start server and client nodes in different order sometimes which causes server to bind to a different port. 

 

To make sure that your server node binds to the same port all the time, you should try specifying it explicitly in the server node configuration, like so (forgive me if this snippet does not compile):

 

<property name="discoverySpi">
         <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="localPort" value="40123"/>
         </bean>
</property>

 

Please make sure that the client nodes either don't have any port configured, or have a different port configured.

 

You should also make sure that Ignite always binds to the desired local interface on client and server nodes, by specifying IgniteConfiguration.setLocalHost(...) property, or like so in XML:

 

<property name="localHost" value="my.local.ip.address"/>

 

If my theory is correct, Ignite should make sure that the clients and servers cannot theoretically bind to the same port. I will double check it with the community and file a ticket if needed.

 

 

 

12