Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable replication start on initialization #615

Merged
merged 2 commits into from
Sep 17, 2024

Conversation

grooverdan
Copy link
Member

START REPLIA was inssued during initializing which mean that even before /docker-entrypoint/initdb.d there was initializtion going on.

Entrypoints that needed data initialzation didn't complete with this nicely. Also if there wasn't any initialization there would be little time for the replication to acheive anything before being shutdown ready for the final start.

Moved --skip-slave-start to the default docker_temp_server_start implementation.

Closes #614

START REPLIA was issued during initializing which mean that
even before /docker-entrypoint/initdb.d there was initializtion
going on.

Entrypoints that needed data initialzation didn't complete with
this nicely. Also if there wasn't any initialization there
would be little time for the replication to acheive anything
before being shutdown ready for the final start.

Moved --skip-slave-start to the default docker_temp_server_start
implementation.

Technically this is a compaibility break that is likely to be
of significants if:
* /docker-entrypoint/initdb.d contains a script waiting
  for replication to catch up.

The recitifcation to the previous behaviour is:
/docker-entrypoint/initdb.d contains a SQL to START REPLICA.
Recommend also having another script that is:

until healthcheck.sh --replication_io \
                     --replication_sql \
                     --replication_seconds_behind_master=0 \
                     --replication
                     --no-connect;
do
  sleep 1
done

Closes MariaDB#614
There is an implicit --connect option in healthcheck
so that a normal use can be sure MariaDB is running
on a tcp socket.

There is a case in /docker-entrypoint-initdb.d where
its desirable to perform healthchecks for components
without a --connect. In this case, use --no-connect
in the healthcheck to avoid an implicit --connect test.
@grooverdan grooverdan force-pushed the issue614-replication-on-startup branch from fa5b9d8 to 90a7e44 Compare September 17, 2024 07:29
@grooverdan grooverdan merged commit d556174 into MariaDB:next Sep 17, 2024
@grooverdan grooverdan deleted the issue614-replication-on-startup branch September 17, 2024 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant