Issue Details (XML | Word | Printable)

Key: CORE-2897
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Dmitry Yemanov
Reporter: Carlos H. Cantu
Votes: 2
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Don't send full length of field over the wire when field is null

Created: 01/Mar/10 08:19 PM   Updated: 23/Sep/15 12:17 PM
Component/s: None
Affects Version/s: 2.0.0, 2.5 RC2
Fix Version/s: 3.0 Beta 1

Issue Links:
Relate
 

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.


 Description  « Hide
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.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Carlos H. Cantu made changes - 01/Mar/10 08:25 PM
Field Original Value New Value
Affects Version/s 2.5 RC2 [ 10372 ]
Dmitry Yemanov made changes - 23/Oct/13 05:45 AM
Assignee Dmitry Yemanov [ dimitr ]
Dmitry Yemanov made changes - 27/Apr/14 09:15 AM
Link This issue is related to CORE-2530 [ CORE-2530 ]
Dmitry Yemanov made changes - 27/Apr/14 09:15 AM
Fix Version/s 3.0 Beta 1 [ 10332 ]
Dmitry Yemanov made changes - 09/Sep/14 10:14 AM
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
Dmitry Yemanov made changes - 10/Sep/14 11:55 AM
Status Open [ 1 ] Resolved [ 5 ]
Resolution Fixed [ 1 ]
Nick added a comment - 10/Sep/14 02:33 PM
>>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.

Carlos H. Cantu added a comment - 10/Sep/14 04:25 PM
Nick, agree, but never mind, it will be fixed for all cases in FB 3.

Dmitry Yemanov added a comment - 10/Sep/14 05:29 PM
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.

Pavel Zotov made changes - 27/May/15 04:39 PM
Status Resolved [ 5 ] Resolved [ 5 ]
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.
QA Status Done successfully
Pavel Cisar made changes - 23/Sep/15 12:17 PM
Status Resolved [ 5 ] Closed [ 6 ]