-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VReplication: Support binlog_row_value_options=PARTIAL_JSON #17345
base: main
Are you sure you want to change the base?
Conversation
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
Tests
Documentation
New flags
If a workflow is added or modified:
Backward compatibility
|
1859876
to
a44e7e5
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #17345 +/- ##
==========================================
+ Coverage 67.46% 67.50% +0.04%
==========================================
Files 1581 1581
Lines 253934 254191 +257
==========================================
+ Hits 171305 171595 +290
+ Misses 82629 82596 -33 ☔ View full report in Codecov by Sentry. |
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
a44e7e5
to
c9cf71c
Compare
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
181d05e
to
7b75ed6
Compare
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
49ad080
to
30ce7d4
Compare
Signed-off-by: Matt Lord <[email protected]>
30ce7d4
to
bd3aa67
Compare
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
546db28
to
1e492b9
Compare
Signed-off-by: Matt Lord <[email protected]>
We still needed to increment the json col index for those. Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
2c49948
to
5b5c569
Compare
5b5c569
to
430e852
Compare
Signed-off-by: Matt Lord <[email protected]>
3ad84b6
to
fbd5648
Compare
Signed-off-by: Matt Lord <[email protected]>
fbd5648
to
eb3f1b0
Compare
7452e60
to
be6ea15
Compare
Signed-off-by: Matt Lord <[email protected]>
bb2c2e2
to
7fe38ad
Compare
Signed-off-by: Matt Lord <[email protected]>
7fe38ad
to
1980b89
Compare
Signed-off-by: Matt Lord <[email protected]>
734d56a
to
7b25395
Compare
I'm thinking that this is worth a note in the 22.0 summary. I'm also thinking that it's worth adding a blurb somewhere on the website about our experimental support for more efficient replication:
I'd like to know what reviewers think. If others disagree, then they or I can remove the labels for docs and release notes (I just added them now). Thanks! |
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
Description
This PR adds experimental support for
--binlog-row-value-options=PARTIAL_JSON
. You can read more about this here.This can offer big wins in specific cases. For example...
$.price
from 99.99 to 102.99 (inflation) and the original JSON document is 5MiB.binlog_row_value_options=PARTIAL_JSON
the binlog event will have the full 5MiB document in the BEFORE (original) and AFTER (updated) images. So 10MiB now.JSON_REPLACE
in this case, along with the path of$.price
and the value of 102.99. So we've cut the bytes stored on disk, sent over the wire, and processed in memory by ~ 1/2.Now if you imagine that instead of updating a single row, you updated 10,000 rows... let's say to remove the
$.on_sale
flag on the documents that had it set (Black Friday is over), you can see the big savings that comes with it.Manual test:
With the final result:
Related Issue(s)
Checklist