Skip to content

Conversation

@kobi97
Copy link
Contributor

@kobi97 kobi97 commented Nov 2, 2018

Hello Krowinski
I am sorry for my previous patch.
Because I found my misunderstanding about divided packets.
There is only one binlog event header for divided packets.
Please check my CODE or my explain below
and then you may get it.


This is MySQL Internals Manual: Sending More Than 16Mbytes
https://dev.mysql.com/doc/internals/en/mysql-packet.html

If a MySQL client or server wants to send data, it:
- Splits the data into packets of size (2^24−1) bytes
- Prepends to each chunk a packet header

These are 3 divided packets for Insert Statement with 40Mb field in my test.

header<int(3)> + sequence<int(1)> + payload including binlog event header<string(16,777,215)> +
header<int(3)> + sequence<int(1)> + payload<string(16,777,215)> +
header<int(3)> + sequence<int(1)> + payload<string(6,445,616)>

This is my test environment:

Thank for reading :)

@krowinski
Copy link
Owner

Hi @kobi97 tx for patch, I was thinking if is possible for you to write integration test for that case to be sure that is working ?

@kobi97
Copy link
Contributor Author

kobi97 commented Nov 5, 2018

It is OK with me but I have enough time only in weekend - if it would not be so late for you, I will try to write this weekend.

@krowinski
Copy link
Owner

same here I got little time in weekend

@kobi97
Copy link
Contributor Author

kobi97 commented Nov 11, 2018

I have changed ".travis.yml", you may have to change config in Scrutinizer.

@krowinski krowinski merged commit 81f74c8 into krowinski:master Nov 11, 2018
@krowinski
Copy link
Owner

Cool its working tx!

krowinski added a commit that referenced this pull request Nov 11, 2018
@kobi97 kobi97 deleted the fix/sending_more_than_16mbyte_2 branch November 12, 2018 00:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants