← Back to team overview

maria-developers team mailing list archive

Re: [Commits] 4bff8b0: MDEV-7004 - Merge scalability fixes from 10.0-power

 

Hi Sergey,

Just to be sure, currently MariaDB doesn't implement any Hardware Transactional Memory Built-in Functions ?
If so, is there any plan to evaluate the gain they could offer to MariaDB ?

Thanks and regards,
  Jocelyn Fournier

Le 04/12/2014 14:45, svoj@xxxxxxxxxxx a écrit :
revision-id: 4bff8b0b03ba82cd0ae6817b54de1780e89047ca
parent(s): 3526fe1b6000b2558290007e5cc3a1018850787c
committer: Sergey Vojtovich
branch nick: 10.1
timestamp: 2014-12-04 17:44:46 +0400
message:

MDEV-7004 - Merge scalability fixes from 10.0-power

Preallocate dynamic array and bitmap on mem_root to avoid expensive malloc.
This reduces number of allocations from 39 to 31 per OLTP RO transaction.

---
  sql/opt_range.cc | 12 ++++++------
  1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 1a9ae3d..813508c 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -1838,8 +1838,6 @@ void SQL_SELECT::cleanup()
    index= key_nr;
    head=  table;
    key_part_info= head->key_info[index].key_part;
-  my_init_dynamic_array(&ranges, sizeof(QUICK_RANGE*), 16, 16,
-                        MYF(MY_THREAD_SPECIFIC));
/* 'thd' is not accessible in QUICK_RANGE_SELECT::reset(). */
    mrr_buf_size= thd->variables.mrr_buff_size;
@@ -1857,9 +1855,12 @@ void SQL_SELECT::cleanup()
    file= head->file;
    record= head->record[0];
- /* Allocate a bitmap for used columns (Q: why not on MEM_ROOT?) */
-  if (!(bitmap= (my_bitmap_map*) my_malloc(head->s->column_bitmap_size,
-                                           MYF(MY_WME | MY_THREAD_SPECIFIC))))
+  my_init_dynamic_array2(&ranges, sizeof(QUICK_RANGE*),
+                         thd->alloc(sizeof(QUICK_RANGE*) * 16), 16, 16,
+                         MYF(MY_THREAD_SPECIFIC));
+
+  /* Allocate a bitmap for used columns */
+  if (!(bitmap= (my_bitmap_map*) thd->alloc(head->s->column_bitmap_size)))
    {
      column_bitmap.bitmap= 0;
      *create_error= 1;
@@ -1923,7 +1924,6 @@ void QUICK_RANGE_SELECT::range_end()
      }
      delete_dynamic(&ranges); /* ranges are allocated in alloc */
      free_root(&alloc,MYF(0));
-    my_free(column_bitmap.bitmap);
    }
    my_free(mrr_buf_desc);
    DBUG_VOID_RETURN;
_______________________________________________
commits mailing list
commits@xxxxxxxxxxx
https://lists.askmonty.org/cgi-bin/mailman/listinfo/commits



Follow ups