Commit Graph

85 Commits

Author SHA1 Message Date
elianddb b59aad1939 read_only always true on standby 2025-11-05 13:03:29 -08:00
Neil Macneale IV 2263d186fd Keep cluster dolt_gc tests in place with auto_gc disabled. 2025-10-16 09:13:31 -07:00
Neil Macneale IV 3c1d4c772c Don't expect GC to fail in cluster tests. 2025-10-15 14:57:13 -07:00
Neil Macneale IV f5a68f7d97 Account for nil AutoGCBehavior object to indicate default behavior 2025-10-15 11:55:24 -07:00
elianddb e1a9cb3204 amend select query in repro 2025-08-25 21:21:43 +00:00
elianddb f3c9b49630 Add repro for AUTO_INCREMENT not syncing on failover (cluster suite)
Integrates failing test into existing sql-server-cluster.yaml and removes standalone files. Implements fix: refresh AUTO_INCREMENT trackers on primary promotion to align with replicated data, preventing duplicate key errors post-failover. Adds debug logs (enable logrus debug to view). Prepares ground for resolving #9725.
2025-08-25 17:26:26 +00:00
Aaron Son 09e0ee22eb Add @GLOBAL.dolt_auto_gc_enabled system variable to inspect whether auto GC is enabled.
The system variable is read-only. The only way to enable Auto GC remains setting:

behavior:
  auto_gc_behavior:
    enable: true

in the config.yaml file which is given to `dolt sql-server` in its `--config` parameter.
2025-07-07 15:22:40 -07:00
Aaron Son 48f26f3562 go: sqle/dprocedures: fetch,pull,push: Rebase the remote database before we interact with it.
We need to rebase a remote in order to see its latest changes.

Fixes #9164.
2025-05-05 12:15:52 -07:00
Aaron Son da6ddc205f integration-tests/go-sql-server-driver: Give some replication tests a bit longer grace period to replicate synchronously. 2025-03-17 18:08:23 -07:00
Aaron Son 14f5157b03 [no-release-notes] integration-tests/go-sql-server-driver: Add dynamic port allocation and run these tests in parallel.
Takes local runtime from 500+s to ~100s.
2025-03-17 17:48:33 -07:00
Aaron Son 68175f00d3 go: sqle/dsess: session.go: Fix transaction savepoint creation when cluster replication is enabled.
Cluster replication creates a system database, `dolt_cluster`, which does not
support transactions. There are also UserSpaceDatabases which do not support
CreateTransaction. CreateTransaction has special code to avoid visiting them
when recording the start transaction state. CreateSavepoint needed to be
updated with that logic as well.
2025-03-12 10:54:33 -07:00
James Cor 758627e735 implement implicit commits and fix import behavior (#8767) 2025-01-22 10:27:41 -08:00
Zach Musgrave 324e4bb5ed Removed unused tests 2024-12-06 15:08:23 -08:00
jennifersp 4c704c3dae add SchemaName to DatabaseSchema interface (#8062) 2024-06-25 15:35:14 -07:00
Jason Fulghum 039a79d811 Updating tests for addition of performance_schema 2024-06-24 14:18:08 -07:00
Jason Fulghum 8c315efb28 Removing second show warnings call in branch control block on write replication test 2024-05-13 16:10:34 -07:00
Maximilian Hoffman 5600e2689f Fix nil write session panic (#7792)
* Fix nil write session panic

* invert check

* zach comments

* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh

---------

Co-authored-by: max-hoffman <max-hoffman@users.noreply.github.com>
2024-04-29 17:23:54 -07:00
Aaron Son 4e5febf8b1 Merge pull request #7482 from dolthub/aaron/cluster-standby-takes-epoch-from-primary
go: sqle/cluster: When in standby mode, take the epoch of the primary.
2024-02-14 12:15:27 -08:00
Aaron Son f77d4c494a go: sqle/cluster: When in standby mode, take the epoch of the primary. When in detected_broken_config, become standby if we see a higher numbered primary. 2024-02-09 14:32:06 -08:00
James Cor c98d46058c fix test 2024-02-09 01:28:12 -08:00
Jason Fulghum aacaff1f76 Fixing test references for non-explicitly specified SESSION sys vars 2024-01-17 15:56:53 -08:00
Aaron Son b7b3f7b911 integration-tests/go-sql-server-driver: Fix tests. 2023-12-15 13:55:24 -08:00
Aaron Son 09d9d0312e integration-tests/go-sql-server-driver: Small tweak for TestCluster/adding_new_remotes_to_the_config_creates_those_remotes_on_startup. 2023-12-15 13:03:28 -08:00
Aaron Son 0fbfd0d80a go: sqle: cluster: Create missing remotes for cluster replication on startup if they do not already exist.
Previously `dolt sql-server` would error if there were existing databases and
they were missing any of the remotes listed as cluster replication remotes in
the config.yaml. This changes it so that those remotes are automatically
created at startup instead.
2023-12-15 12:49:11 -08:00
Aaron Son 14efec1153 go: sqle: cluster: Fix MySQLDb and dolt_branch_control replication for the cases where you have more than one standby server in the cluster.
Previously these changes would only get replicated to the first database in the cluster.
2023-12-14 15:11:31 -08:00
Taylor Bantle a0c0fa6e51 Fix existant typo 2023-12-01 11:10:55 -08:00
Aaron Son 0913c5eb8c integration-tests/go-sql-server-driver: sql-server-cluster-users-and-grants.yaml: branch_control_block_on_write_replication: Add an assertion on a connection to server2 after the branch control perms replicate, to ensure we don't send the TERM signal to the server process at the end of the test before it is fully started up. 2023-11-10 15:03:50 -08:00
Aaron Son ce544697da [no-release-notes] integration-tests/go-sql-server-driver: Change our approach to JWTs and X.509 certificates so that we generate what we need when we run the tests.
Fixes a bug where we had expiring certificates and JWTs in the repository and
old commits of the repository would stop passing integration tests and some
time in the future.
2023-11-01 12:54:48 -07:00
Aaron Son bbe8070270 integration-tests/go-sql-server-driver: sql-server-cluster.yaml: Add a test for dolt_cluster_transition_to_standby when there are no dolt databases. 2023-10-18 14:40:24 -07:00
Aaron Son 0c72ec5205 go: sqle: cluster: Take mysql and dolt_branch_control replication state into account when performing a graceful transition to standby. 2023-10-17 15:01:46 -07:00
Aaron Son 17c451c12e Merge remote-tracking branch 'origin/main' into aaron/undrop-cluster-tests 2023-10-06 17:20:22 -07:00
Aaron Son dcc009509e Merge remote-tracking branch 'origin/fulghum/undrop' into aaron/undrop-cluster-tests 2023-10-06 17:20:15 -07:00
Aaron Son de3eed8b73 go: sqle: cluster: Make users and grants replication respect dolt_cluster_ack_writes_timeout_secs. 2023-10-06 15:46:42 -07:00
Aaron Son 6376098755 go: sqle: cluster: Make branch control replication respect dolt_cluster_ack_writes_timeout_secs 2023-10-06 14:33:33 -07:00
Aaron Son b381903a2f integration-tests/go-sql-server-driver: Add a test for undropping a cluster replicated database. 2023-10-04 10:14:20 -07:00
Aaron Son 7d412a14e8 go: sqle: cluster: Improvements for DROP DATABASE replication.
Fix a bug in session handling for the replication api endpoint which would
prevent a dropped database from being recreated on a replica.

Fix a race condition when a database is recreated after it is dropped. In that
case, we stop attempting to replicate the drop, so that it does not replicate
after the new database does.
2023-10-03 14:50:57 -07:00
Aaron Son e4aa6ffad8 go/libraries/doltcore/sqle/cluster: First pass at replicating drop database. 2023-09-29 14:14:09 -07:00
Aaron Son 3b0ca8bb21 go/libraries/doltcore/sqle: cluster: When a database is dropped, shutdown the replication goroutines and stop returning its status in the dolt_cluster_status table. 2023-09-20 15:47:46 -07:00
Aaron Son 1002a5d542 go: sqle: cluster: First pass at replicating branch control permissions. 2023-09-14 13:37:35 -07:00
Aaron Son 8021bc5f02 sqle: cluster: Set the engine to read-only when a replica is in standby mode. Set it back to read-write when it becomes primary.
This prevents standby replicas from running some DDL which they were previously
erroneously allowed to run, including CREATE USER, GRANT, CREATE DATABASE and
DROP DATABASE.
2023-09-01 10:47:23 -07:00
Aaron Son 48cf308d05 Merge pull request #6454 from dolthub/aaron/cluster-replication-users-and-grants
go/libraries/doltcore/sqle/cluster: Add replication of user and grant changes from primary to standby replicas.
2023-08-22 13:28:35 -07:00
Aaron Son 6d7c73575d dolt sql-server: Add a system_variables: key to config.yaml, which allows setting global system variables.
For example, this can be used to set `secure_file_priv` when the server starts
up. That variable is non-dynamic, so it cannot be set with `SET @@GLOBAL...`
2023-08-15 15:53:18 -07:00
Aaron Son 08f91f74a0 go/libraries/doltcore/sqle/cluster: Add replication of user and grant changes from primary to standby replicas. 2023-08-04 11:33:57 -07:00
Aaron Son c0b0cc42d1 dolt clone: Fix dolt clone run against a sql-server where the database has been GCd.
A long-standing bug in the remotesapi which the sql-server exposes could cause
a `dolt clone` to fail when running against a database which had been garbage
collected. This change fixes the bug in the server. It also patches the client
behavior so that it will tolerate responses from older versions of dolt.
2023-06-27 16:41:22 -07:00
Aaron Son 6314e27de9 Merge pull request #6204 from dolthub/aaron/cluster-assume-role-standby-changes
sqle: cluster: Add dolt_cluster_transition_to_standby stored procedure.
2023-06-22 14:03:13 -07:00
Aaron Son 155884711e sqle: cluster: dolt_cluster_transition_to_standby: Add logic to respect and enforce minCaughtUpReplicas. 2023-06-21 16:29:45 -07:00
Aaron Son 0a7cd7e033 sqle: cluster: dolt_cluster_transition_to_standby: Register the implementation (without transition transition thresholds) and test it. 2023-06-21 16:03:59 -07:00
Zach Musgrave 0b52f6c424 Revert "Revert "Merge pull request #5968 from dolthub/zachmu/tx-6""
This reverts commit bb03b8cb25.
2023-06-08 11:09:54 -07:00
Zach Musgrave bb03b8cb25 Revert "Merge pull request #5968 from dolthub/zachmu/tx-6"
This reverts commit 51c2129e51, reversing
changes made to 9692f6ef92.
2023-06-07 17:27:06 -07:00
Zach Musgrave e672c304ab Merge main 2023-06-06 15:17:07 -07:00