The previous (now deleted) release 1.36.1 had a start up time issue for databases > 10GB. We patched it with this one. That release was only up for an hour or so, so it is unlikely anyone got it. Thus, we moved this to 1.37.0 to warn people, just in case.
This minor release includes an internal interface change to the chunk journal index. The first startup process for a database with the old index format will perform a rewrite. This rewrite is a one-time penalty that in testing is <5% of the time it would take to reimport the database.
Merged PRs
dolt
- 7833: Bug fix: Apply replication settings for newly cloned databases
Dolt SQL servers using remote-based replication will pull new databases if the @@dolt_replication_remote_url_template system variable is configured, but those new databases weren't getting configured to continue pulling updates from the remote.
This change registers the newly cloned databases asReadReplicaDatabase
instances, so that they will poll their remote and pull new commits. It also adds some additional logging to help debug issues with remote-based replication. - 7829: Changed RootValue into an interface
Companion:- dolthub/doltgresql#232
This changes theRootValue
into an interface. Every function that seems unique to Dolt'sRootValue
has been changed into a function variable, with the variable being overwritten from Doltgres to point to a different function.
- dolthub/doltgresql#232
- 7799: Archive Serialization and Deserialization
This PR doesn't direclty change any Dolt behavior. It just lays the groundwork for archive creation and reading. Currently, no file is materialized by this code as unit tests exercise it with ByteSinks. - 7780: Reformat journal index
Change the way we write journal index lookups. Each write appends a lookup to abufio.Writer
that lazily writes to disk. And after some increment we flush a CRC/root value record for consistency checking the index during bootstrap. This avoids big stalls for flushing a batch of index records. We also only write anaddr16
now, because that's what we load into the default chunk address map.
Databases with the older format will pay a one-time startup penalty to rewrite the journal index. In testing this appears to be 5-10% of the import time for the database. - 7836: Journal index offset 8bytes
On >10GB datasets, offsets overflow uint32. Bug from previous PR #7780 - 7834: minver refactor to be used by doltgres
- 7821: Prevent panic when dropping columns in schema merge
Fixes #7762
In certain cases, performing a schema merge when the merged schema had fewer columns than the base schema would cause a panic.
We actually had a test for this, but the test was disabled because a limitation in how the test harness generated column tags was causing incorrect detection of merge conflicts.
To re-enable these tests, this PR slightly relaxes the logic for merge conflicts wrt column tags. This is safe to do because column tags shouldn't influence the result of merges outside of helping to identify renamed columns, so long as the merge behaves the same in both directions.
Closed Issues
- 7762: Panic during schema merge
Performance
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.07 | 2.97 | 1.4 |
groupby_scan | 13.22 | 17.63 | 1.3 |
index_join | 1.37 | 5.18 | 3.8 |
index_join_scan | 1.27 | 2.22 | 1.7 |
index_scan | 34.33 | 53.85 | 1.6 |
oltp_point_select | 0.17 | 0.51 | 3.0 |
oltp_read_only | 3.36 | 8.43 | 2.5 |
select_random_points | 0.33 | 0.8 | 2.4 |
select_random_ranges | 0.39 | 0.95 | 2.4 |
table_scan | 34.33 | 54.83 | 1.6 |
types_table_scan | 74.46 | 134.9 | 1.8 |
reads_mean_multiplier | 2.1 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
oltp_delete_insert | 7.98 | 6.91 | 0.9 |
oltp_insert | 3.75 | 3.43 | 0.9 |
oltp_read_write | 8.43 | 16.12 | 1.9 |
oltp_update_index | 3.82 | 3.55 | 0.9 |
oltp_update_non_index | 3.82 | 3.43 | 0.9 |
oltp_write_only | 5.37 | 7.84 | 1.5 |
types_delete_insert | 7.7 | 7.56 | 1.0 |
writes_mean_multiplier | 1.1 |
TPC-C TPS Tests | MySQL | Dolt | Multiple |
---|---|---|---|
tpcc-scale-factor-1 | 102.12 | 22.29 | 4.6 |
tpcc_tps_multiplier | 4.6 |
Overall Mean Multiple | 2.60 |
---|