Merged PRs
dolt
- 7659: Don't panic for conflicts in the
dolt pull
command
This was reported by a user: #7653
This was covered by a test, but it turns out that the pull, fetch, and push tests were all using SQL_ENGINE=remote-server incorrectly. - 7558: Statistics for multiple branches
Fork interface for how to store database statistics. Can either store in the original source database, in a separate database in.dolt/stats
, or an alternative implementation like a lsm that will have easier append only semantics. The implementation for the noms chunkstore isn't particularly efficient, we will not deduplicate common chunks between branches.
How the new code is organized:statspro
has generic interfaces for how a Dolts-specific stats implementation works.statsnoms
is an implementation that uses a second database at.dolt/stats
to store statistic refs. The stats refs are the same, just now they are named by the branch they reference (ex:refs/statistics/main
). So storage is the concern of the concrete implementation. The common interface forces the implementation to handle branches. The branch switching instatsnoms
are just named refs.
A high level of what's happening during certain operations: There are still two operations, load and update. Load now either initializes the stats database at.dolt/stats
or loads existing stats. Update is the same, ANALYZE or auto refresh.
Most of the changes are just forcing the logic through a generic interface. There were import cycle issues (dtables
) and deadlock issues for creating a database (dolt provider takes a lock that prevents doing certain operation on the session in the stats provider) that motivated packaging decisions.
go-mysql-server
- 2412: New interface for binlog primary callbacks
First pass on connecting the GMS layer with the Dolt layer for handling callbacks when the SQL server is acting in binlog primary mode, through the newBinlogPrimaryController
interface. This new interface pretty closely mirrors the existing callback interface for replica callbacks, theBinlogReplicaController
interface.
Related to #7512
Closed Issues
Performance
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.07 | 3.07 | 1.5 |
groupby_scan | 13.46 | 17.32 | 1.3 |
index_join | 1.37 | 5.18 | 3.8 |
index_join_scan | 1.27 | 2.26 | 1.8 |
index_scan | 34.33 | 63.32 | 1.8 |
oltp_point_select | 0.17 | 0.49 | 2.9 |
oltp_read_only | 3.36 | 8.28 | 2.5 |
select_random_points | 0.33 | 0.78 | 2.4 |
select_random_ranges | 0.39 | 0.95 | 2.4 |
table_scan | 34.33 | 63.32 | 1.8 |
types_table_scan | 74.46 | 176.73 | 2.4 |
reads_mean_multiplier | 2.2 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
oltp_delete_insert | 7.98 | 7.04 | 0.9 |
oltp_insert | 3.75 | 3.49 | 0.9 |
oltp_read_write | 8.43 | 16.12 | 1.9 |
oltp_update_index | 3.82 | 3.62 | 0.9 |
oltp_update_non_index | 3.82 | 3.55 | 0.9 |
oltp_write_only | 5.37 | 8.13 | 1.5 |
types_delete_insert | 7.7 | 7.84 | 1.0 |
writes_mean_multiplier | 1.1 |
TPC-C TPS Tests | MySQL | Dolt | Multiple |
---|---|---|---|
tpcc-scale-factor-1 | 101.15 | 16.93 | 5.7 |
tpcc_tps_multiplier | 5.7 |
Overall Mean Multiple | 3.00 |
---|