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.