List:Internals« Previous MessageNext Message »
From:Jay Pipes Date:March 2 2009 4:47pm
Subject:Re: [Drizzle-discuss] Removing Array custom vector allocation for
semi-join subqueries
View as plain text  
Michael Widenius wrote:
> Hi!
> 
>>>>>> "Monty" == Monty Taylor <mordred@stripped> writes:
> 
> Monty> Brian Aker wrote:
>>> Hi!
>>>
>>> On Feb 26, 2009, at 12:21 PM, Mats Kindahl wrote:
>>>
>>>> recycling. In that case, any pointers into that old memory that are
> still
>>>> dangling would not be useful, since the memory is likely to be
>>>> overwritten with
>>> mem_root or not mem_root... I consider this to be pretty bad behavior to
>>> rely on.
> 
> Monty> Not mem_root. C++ has much better ways of dealing with this sort of
> Monty> thing (automatic delloc when you're done with stuff) mem_root was likely
> Monty> very important when it was written, and a great idea then.
> 
> Monty> Now it's just extra complexity that hides behavior.
> 
> For certain objects, memroot is a much better way to do it than with
> C++ deallocators:
> 
> - Uses less memory overhead for objects
> - Less mutex, as you mainly do one free per query and
> - Much faster malloc;  Mallocs are done in bigger chunks and for many
>   queries you can avoid do any mallocs at all (when the base memory you
>   have is big enough)
> 
> memroot is of course not useful for objects that changes size or has a
> short life time, but it wasn't designed for these.

For what it's worth, my original email wasn't trying to get into the 
pluses and minuses of mem_root. I'm aware of the advantages it brings in 
certain situations (and am looking at ways in which GNU or Boost's 
::pool_allocator might be a more standard C++ way of bringing that 
functionality into Drizzle).  My original question was simply in regards 
to what might be happening in the lifetime of the pointer which was 
being passed into a vector<> versus Array.  Anyway, I'll have a code 
patch to show later on today which hopefully will clear up the remaining 
questions...

Cheers!

Jay
Thread
Removing Array custom vector allocation for semi-join subqueriesJay Pipes26 Feb
  • Re: Removing Array custom vector allocation for semi-join subqueriesKonstantin Osipov26 Feb
    • Re: Removing Array custom vector allocation for semi-join subqueriesJay Pipes26 Feb
  • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesKonstantin Osipov26 Feb
    • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesJay Pipes26 Feb
Re: [Drizzle-discuss] Removing Array custom vector allocation for semi-join subqueriesBrian Aker26 Feb
  • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesMonty Taylor27 Feb
    • Re: [Drizzle-discuss] Removing Array custom vector allocation for semi-join subqueriesMARK CALLAGHAN27 Feb
      • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesMonty Taylor27 Feb
        • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesKonstantin Osipov27 Feb
          • Re: [Drizzle-discuss] Removing Array custom vector allocation for semi-join subqueriesMARK CALLAGHAN27 Feb
        • Re: [Drizzle-discuss] Removing Array custom vector allocation for semi-join subqueriesMARK CALLAGHAN27 Feb
          • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesJim Starkey27 Feb
    • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesMichael Widenius2 Mar
      • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesJay Pipes2 Mar
      • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesJim Starkey2 Mar
        • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesKonstantin Osipov2 Mar
        • Re: [Drizzle-discuss] Removing Array custom vector allocation forsemi-join subqueriesMichael Widenius5 Mar
Re: [Drizzle-discuss] Removing Array custom vector allocation for semi-join subqueriesBrian Aker26 Feb