[MCOL-4522] calGetTrace shows double LIO from Community 5.4.1 to Enterprise 5.5.1 Created: 2021-01-29 Updated: 2021-04-15 Resolved: 2021-04-04 |
|
| Status: | Closed |
| Project: | MariaDB ColumnStore |
| Component/s: | PrimProc |
| Affects Version/s: | 5.5.1 |
| Fix Version/s: | 5.5.2 |
| Type: | Bug | Priority: | Major |
| Reporter: | Todd Stoffel (Inactive) | Assignee: | Gregory Dorman (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||||||
| Description |
|
Community 5.4.1 Results:
Enterprise 5.5.1 Results:
It appears that the Logical I/O is more than double in enterprise, we see 0 Partition Blocks Eliminated, and the query time is almost double. |
| Comments |
| Comment by David Hall (Inactive) [ 2021-02-01 ] |
|
In 5.5, in order to be in line with InnoDB, we changed the way we declare char and varchar. It used to be declarations of length were in bytes, now length is declared in number of characters. This means that a varchar(5) declared as UTF will create a field with max length of 15 (3 being the largest number of bytes for a UTF character). The largest number of bytes that can currently be stored in the data file of a varchar is 7 (1st byte is length). So the ZIP varchar(5) becomes a dictionary field. Dictionary fields cannot currently be used in extent elimination, so it requires a full scan. In the future we hope to implement 16 byte char data files (15 usable bytes for varchar), which means this particular definition would again participate in extent elimination. In addition we are working on a design to allow dictionary columns to participate in extent elimination. However, neither of these efforts has been scheduled. There are two workarounds: When used in a WHERE clause. numeric fields are significantly faster than character fields, even when those character fields can participate in extent elimination. |
| Comment by Gregory Dorman (Inactive) [ 2021-02-21 ] |
|
This depends on 4529, which will be 6.1.1 at best... In 5.5.2 the situation is improved due to 4527, which restores the performance for latin1 charsets at least. utf8 series require more work. |
| Comment by Gregory Dorman (Inactive) [ 2021-04-04 ] |
|
Tested in 5.5.2 GA, with latin1. extent elimination of character columns in utf8 needs to wait for 6.1.1 |