Details
-
Task
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Fixed
-
10.1.7-2
Description
current_thd() is called many times while creating Items (in many cases 2 or more calls per item).
The problem is not only the number of calls to current_thd(), but also that when we create items we cause more calls, like calling sql_alloc() that calls current_thd and then uses this to call alloc_root() with the right argumetns.
By adding thd as an argument to all functions that creates Items, we can avoid most calls to current_thd(). We can also call alloc_root() directly instead of calling it trough sql_alloc().
Changes in the code as part of this task:
- Add THD as an argument to all functions that creates an Item.
- Replace 'new Item_xxx' with 'new (thd->memroot) Item_xxx
- Add thd->memroot as an argument to push_back() and push_front() for lists.
Before adding this to 10.1 code base, we need to benchmark the result to see that this big change is really worth it.
Attachments
Issue Links
- includes
-
MDEV-8010 Avoid sql_alloc() in Items
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Fix Version/s | 10.1.0 [ 12200 ] | |
Fix Version/s | 10.1.x-Beta [ 15801 ] |
Workflow | defaullt [ 39509 ] | MariaDB v2 [ 43659 ] |
Fix Version/s | 10.1 [ 16100 ] | |
Fix Version/s | 10.1.0 [ 12200 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Priority | Major [ 3 ] | Minor [ 4 ] |
Summary | Remove calls to current_thd while creating Item. | Remove calls to current_thd while creating Item |
Workflow | MariaDB v2 [ 43659 ] | MariaDB v3 [ 64611 ] |
Epic Link | MDEV-7941 [ 50796 ] |
Sprint | 10.1.7-2 [ 12 ] |
Rank | Ranked higher |
Rank | Ranked higher |
Component/s | Parser [ 10201 ] | |
Fix Version/s | 10.1.7 [ 19604 ] | |
Fix Version/s | 10.1 [ 16100 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 64611 ] | MariaDB v4 [ 132332 ] |