Previously synced node gets entire state when re-connected

35 views
Skip to first unread message

Jase

unread,
Oct 24, 2010, 7:21:16 PM10/24/10
to codership
I have a cluster with about 2GB of data in it, and data being
constantly inserted for testing purposes. I have connected a node at a
time when there was no data being added, waited for it to sync, and
then disconnected it. When I reconnected it shortly afterwards the
connection was very quick, and if I remember correctly there was no
mysqldump based state transfer. The node became synced again very
quickly.

Today I connected a new node, but this time there was data being added
to the database during the state transfer. The transfer was
successful, and took about 8 minutes. I then stopped the node (to
resolve a password issue I have been having, see:
http://groups.google.com/group/codership-team/browse_thread/thread/e21273bdbdf3e868#)
and shortly afterward re-connected it. This time it took about 8
minutes again, and appeared to have dumped the entire database from
the donor again.

Is this the intended behaviour? Or if the node being added was
previously in sync is it supposed to only get the updates that have
occurred since it was last in sync? From what it looks like to me, it
seems that if there is data being added, and the state at rejoin is
different to the state when the node was stopped, a complete dump
occurs, whereas if the database is static, ie no change in the data in
the tables between disconnect and rejoin, the joining node can start
without receiving a dump of the whole database.

Seppo Jaakola

unread,
Nov 4, 2010, 7:02:21 AM11/4/10
to codership


On 25 loka, 01:21, Jase <jasejon...@gmail.com> wrote:
> I have a cluster with about 2GB of data in it, and data being
> constantly inserted for testing purposes. I have connected a node at a
> time when there was no data being added, waited for it to sync, and
> then disconnected it. When I reconnected it shortly afterwards the
> connection was very quick, and if I remember correctly there was no
> mysqldump based state transfer. The node became synced again very
> quickly.
>
> Today I connected a new node, but this time there was data being added
> to the database during the state transfer. The transfer was
> successful, and took about 8 minutes. I then stopped the node (to
> resolve a password issue I have been having, see:http://groups.google.com/group/codership-team/browse_thread/thread/e2...)
> and shortly afterward re-connected it. This time it took about 8
> minutes again, and appeared to have dumped the entire database from
> the donor again.
>
> Is this the intended behaviour? Or if the node being added was
> previously in sync is it supposed to only get the updates that have
> occurred since it was last in sync? From what it looks like to me, it
> seems that if there is data being added, and the state at rejoin is
> different to the state when the node was stopped, a complete dump
> occurs, whereas if the database is static, ie no change in the data in
> the tables between disconnect and rejoin, the joining node can start
> without receiving a dump of the whole database.

MySQL/Galera 0.7 releases use only mysqldump for provisioning the
joiner.
We call this process as: state snapshot transfer (SST). SST happens
whenever
the joining node has different state as the active cluster, and in
your test
this is exactly the case, cluster has advanced due to constant
inserting.

We are working on more advanced node joining methods, .e.g.
incremental SST,
which allows only the "missing delta" to be applied in the joiner.

BTW. there is something strange in your need to "resolve a password
issue",
this should not happen in the first place.

Seppo
Reply all
Reply to author
Forward
0 new messages