← Back to team overview

maria-developers team mailing list archive

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

 

Hi Jocelyn,

right, we didn't yet try P8 transactional memory functions. There're no firm
plans either, but there was definitely some research.

Regards,
Sergey

On Sat, May 02, 2015 at 09:26:42PM +0200, jocelyn fournier wrote:
> 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
> 


References