Skip to content
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

Don't send full length of field over the wire when field is null [CORE2897] #3281

Closed
firebird-issue-importer opened this issue Mar 1, 2010 · 11 comments

Comments

@firebird-issue-importer
Copy link

firebird-issue-importer commented Mar 1, 2010

Submitted by: @WarmBooter

Is related to CORE2530

Votes: 2

It seems that a char field is sent in its full declared length over the wire, even when the field is null, generating unnecessary network traffic. IMHO, this is ok when field contains some data, but should not occur when the field is null.

PS: Thanks Ivan Prenosil for testing.

Commits: 4b5b826 FirebirdSQL/fbt-repository@7259f56

====== Test Details ======

Measurement showed than on 3.0 (SS/SC/CS) transfer of NULLs is more than 5 (five) times
faster than text data with length = 32K. As of 2.5 (SC) than ration is about 1.7 ... 1.8.
Test fills up two tables: one with text data and another with only nulls.
Then we receive data from these tables via EZ/EDS, evaluate elapsed time for both cases
and calculate its ratio. This ratio in 3.0 should be not less than 4x.

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Mar 1, 2010

Modified by: @WarmBooter

Version: 2.5 RC2 [ 10372 ]

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Oct 23, 2013

Modified by: @dyemanov

assignee: Dmitry Yemanov [ dimitr ]

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Apr 27, 2014

Modified by: @dyemanov

Link: This issue is related to CORE2530 [ CORE2530 ]

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Apr 27, 2014

Modified by: @dyemanov

Fix Version: 3.0 Beta 1 [ 10332 ]

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Sep 9, 2014

Modified by: @dyemanov

summary: Dont send full chars over the wire when field is null => Don't send full length of field over the wire when field is null

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Sep 10, 2014

Modified by: @dyemanov

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Sep 10, 2014

Commented by: Nick (nick)

>>IMHO, this is ok when field contains some data, but should not occur when the field is null.
IMHO this is not Ok even field contains some data. Waste of traffik.

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Sep 10, 2014

Commented by: @WarmBooter

Nick, agree, but never mind, it will be fixed for all cases in FB 3.

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Sep 10, 2014

Commented by: @dyemanov

Practically speaking, there's no such thing as "some data" for CHARs, it always occupies fixed (declared) number of bytes. The same is especially true for numbers/dates/etc. It's surely different for VARCHARs, but they were not affected by this ticket.

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented May 27, 2015

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: Done successfully

Test Details: Measurement showed than on 3.0 (SS/SC/CS) transfer of NULLs is more than 5 (five) times
faster than text data with length = 32K. As of 2.5 (SC) than ration is about 1.7 ... 1.8.
Test fills up two tables: one with text data and another with only nulls.
Then we receive data from these tables via EZ/EDS, evaluate elapsed time for both cases
and calculate its ratio. This ratio in 3.0 should be not less than 4x.

@firebird-issue-importer
Copy link
Author

firebird-issue-importer commented Sep 23, 2015

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants