github dolthub/dolt v1.18.0
1.18.0

latest releases: v1.43.13, v1.43.12, v1.43.11...
13 months ago

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 a message column to the output of dolt_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:
    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;
    
    takes 30 minutes to reorder, and 15 seconds to run when reordering is disabled.
    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

Don't miss a new dolt release

NewReleases is sending notifications on new releases.