Merged PRs
dolt
- 6760: dolt backup: Fix dropped error on the final stage of updating the destination with the newly pushed backup.
- 6754: go/libraries/doltcore/sqle/cluster: Replicate
DROP DATABASE
statements so that a dropped database is also dropped on replicas. - 6753: adds message column to dolt_push output
Adds amessage
column to the output ofdolt_push()
to provide additional information. - 6752: go/libraries/doltcore/sqle/cluster: Fix a possible deadlock in permissions replication.
go-mysql-server
- 2047: Don't reorder joins that are too large to efficiently analyze.
The current implementation of the join order builder scales poorly if there are too many joins. It's likely possible to improve it, but in the meantime, I'm disabling join reordering on joins that have too many tables (currently defined to be more than 20.)
In these situations, the analyzer takes longer to run the reordering than it does to actually execute any of our test cases, so running the analysis in this case can only slow us down.
I expect this is unlikely to adversely affect users because joins this large are rare, and when they do occur they are often written in a way that the explicit order is good enough.
For example, this test from sqllogictests:
takes 30 minutes to reorder, and 15 seconds to run when reordering is disabled.SELECT x63,x53,x62,x52,x11,x5,x40,x64,x27,x28,x21,x41,x22,x30,x16,x14,x56,x32,x46,x50,x1,x34 FROM t46,t34,t1,t32,t53,t21,t63,t11,t30,t62,t27,t50,t16,t64,t40,t56,t22,t28,t52,t5,t41,t14 WHERE a21=b5 AND b30=a52 AND a62=b46 AND a14=3 AND b52=a28 AND b53=a14 AND a63=b28 AND b40=a56 AND a11=b64 AND a53=b22 AND b1=a34 AND b32=a41 AND a50=b63 AND a64=b62 AND b11=a30 AND b27=a40 AND a22=b56 AND b21=a46 AND a1=b50 AND b34=a16 AND a27=b16 AND a5=b41;
MySQL runs the query in under a second, demonstrating that reordering can still massively improve performance if we can make the algorithm more efficient. But this is a good stopgap measure. - 2044: use session builder from harness in the server engine
Small fixes for memory harness for enginetest:- use sessionBuilder from the harness instead of DefaultSessionBuilder
- convert row result for
SHOW
queries
Closed Issues
- 6611: Creating attribute with more than 64 character is allowed but causes error.
- 6724: dolt merge doesn't produce deterministic hashes
Latency
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.07 | 3.02 | 1.5 |
groupby_scan | 12.98 | 17.95 | 1.4 |
index_join | 1.27 | 4.74 | 3.7 |
index_join_scan | 1.23 | 2.22 | 1.8 |
index_scan | 32.53 | 58.92 | 1.8 |
oltp_point_select | 0.14 | 0.39 | 2.8 |
oltp_read_only | 2.71 | 7.3 | 2.7 |
select_random_points | 0.31 | 0.72 | 2.3 |
select_random_ranges | 0.37 | 0.97 | 2.6 |
table_scan | 32.53 | 58.92 | 1.8 |
types_table_scan | 74.46 | 170.48 | 2.3 |
reads_mean_multiplier | 2.2 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 4.82 | 5.57 | 1.2 |
oltp_insert | 2.43 | 2.71 | 1.1 |
oltp_read_write | 5.99 | 13.95 | 2.3 |
oltp_update_index | 2.35 | 2.71 | 1.2 |
oltp_update_non_index | 2.43 | 2.76 | 1.1 |
oltp_write_only | 3.36 | 6.79 | 2.0 |
types_delete_insert | 4.74 | 5.99 | 1.3 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 1.9 |
---|