ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Setrakyan <dsetrak...@apache.org>
Subject Re: Specifying location of persistent storage location
Date Tue, 05 Sep 2017 06:11:42 GMT
On Mon, Sep 4, 2017 at 8:40 PM, Raymond Wilson <raymond_wilson@trimble.com>
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:dsetrakyan@apache.org]
> *Sent:* Tuesday, September 5, 2017 3:09 PM
> *To:* user <user@ignite.apache.org>
>
> *Subject:* Re: Specifying location of persistent storage location
>
>
>
>
>
>
>
> On Mon, Sep 4, 2017 at 6:07 PM, Raymond Wilson <raymond_wilson@trimble.com>
> 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:dsetrakyan@apache.org]
> *Sent:* Tuesday, September 5, 2017 11:41 AM
>
>
> *To:* user <user@ignite.apache.org>
> *Cc:* Raymond Wilson <raymond_wilson@trimble.com>
> *Subject:* Re: Specifying location of persistent storage location
>
>
>
>
>
> On Mon, Sep 4, 2017 at 4:28 PM, Raymond Wilson <raymond_wilson@trimble.com>
> 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:dsetrakyan@apache.org]
> *Sent:* Tuesday, September 5, 2017 11:17 AM
> *To:* user <user@ignite.apache.org>
> *Cc:* Raymond Wilson <raymond_wilson@trimble.com>
> *Subject:* Re: Specifying location of persistent storage location
>
>
>
>
>
>
>
> On Mon, Sep 4, 2017 at 3:37 PM, Raymond Wilson <raymond_wilson@trimble.com>
> 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.
>
>
>
>
>
>
>

Mime
View raw message