Hi Doug,
I've uploaded a new patch in the Files section.
http://hypertable-dev.googlegroups.com/web/mem-pool-v2.patch?hl=en&gsc=5nuFORYAAAADFPMKuilKU0JxD31OGBtt57an5Fe8QJeePd7zpGv9tg

This patch indicates the GPL license and this time we give a list
version of memory pool.

BTW, we tested the 4KB buffer version of the memory pool, and found
that its performance is very similar to the tc-malloc one. We think
that this is because there are lots of internal fragments when using
4KB buffer.
And after several tests, we think 512KB is a good trade-off between
the waste of memory and the internal fragments. I will upload a
picture later.

Thanks!

On Dec 2, 9:12 am, "Doug Judd" <[EMAIL PROTECTED]> wrote:
> Hi Phoenix,
>
> I just merged in this patch and noticed one thing.  In the new files that
> you created, the header comment does not indicate the license.  For me to
> pull this patch into the code base, it needs to be GPL 2.0+.  Can you
> re-create this patch and modify the header comments for CellCachePool.h and
> CellCachePoolAllocator.h to include the boilerplate GPL language:
>
> ----------- cut -------------
>  * This file is part of
> Hypertable.
>
>  *
>
>  * Hypertable is free software; you can redistribute it
> and/or
>
>  * modify it under the terms of the GNU General Public
> License
>
>  * as published by the Free Software Foundation; either version 2
>  * of the License, or any later version.
>  *
>
>  * Hypertable is distributed in the hope that it will be
> useful,
>
>  * but WITHOUT ANY WARRANTY; without even the implied warranty
> of
>
>  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
> the
>
>  * GNU General Public License for more
> details.
>
>  *
>
>  * You should have received a copy of the GNU General Public
> License
>
>  * along with this program; if not, write to the Free
> Software
>
>  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
> MA
>
>  * 02110-1301, USA.
> ---------- cut ---------------
>
> Thanks!
>
> - Doug
>
> On Mon, Nov 24, 2008 at 6:11 AM, Phoenix <[EMAIL PROTECTED]> wrote:
>
> > sorry, the patch above has a little problem, I upload a earlier
> > version. This one
>
> >http://hypertable-dev.googlegroups.com/web/mem-pool.patch?hl=en&gsc=-...
> > is OK.
>
> > On Nov 24, 10:00 pm, Phoenix <[EMAIL PROTECTED]> wrote:
> > > Hi Doug,
> > >   In our using of Hypertable, its memory usage is too large. We tested
> > > it and found that the major problem laied in the CellCache. The data
> > > below is from the google heap profiler:
>
> > > <Test Environmet: 16GB Mem, Intel(R) Xeon(R) [EMAIL PROTECTED] * 4, rhel
> > > as4u3>
>
> > >   Function (during
> > > execution)                                                      Memory
> > > Usage
>
> > > Hypertable::CellCache::add
> > > 75.6%
>
> > > __gnu_cxx::new_allocator::allocate
> > > 18.8%
>
> > > Hypertable::DynamicBuffer::grow
> > > 4.1%
>
> > > Hypertable::IOHandlerData::handle_event
> > > 1.0%
>
> > > Hypertable::BlockCompressionCodecLzo::BlockCompressionCodecLzo
> > > 0.5%
>
> > >   We found that the main problem laid in the CellCache(the second one
> > > "allocate" is called by CellMap, which is also in the CellCache). And
> > > after a long time of inserting data, the memory usage keeps a very
> > > high level, which we thought should be freed after doing some
> > > compaction work. In our a ten-server cluster, one range(in this case
> > > we set only a  AccessGroup for each table) used about 32MB. And the
> > > memory is never freed.
>
> > >   After we made some tests and experiments, we implemented a memory
> > > pool for CellCache. After about one week's tests, it works well and
> > > effciently. In the some cluster as mentioned above, each range only
> > > use  about 1.2MB on average, after very short time of the completing
> > > of inserting.
>
> > >   We compare it with the standard version in a single server. In the
> > > standard version, whether use tcmalloc or not (tcmalloc can help some,
> > > it can reduce about 30% of the standard one), the memory usage never
> > > falls down. On contrast, the pool version's memory usage go down
> > > quickly after the inserting is down.
> > >   In the comparation, we insert about 11G data into the hypertable
> > > (about 33 ranges after parsing and inserting). The memory usage in
> > > this process can be seen here <the image and patch is uploaded in the
> > > "Files" of this group>
>
> > >http://hypertable-dev.googlegroups.com/web/RS%20Mem-Usage%20Comparati...
> > >   The purple one we use our pool both for <key,value> pairs and the
> > > CellMap; the yellow one is only for the <key, value> pairs. As seen
> > > from this image, the pool version is very excellent in memory usage.
> > >   And the patch's link ishttp://
> > groups.google.com/group/hypertable-dev/web/mem-pool.patch.tgz?...
>
> > >   We use google heap profiler for the pool version and get the
> > > following data:
>
> > > Function (during execution)      Mem  Usage
> > > CellCachePool::get_memory        94.3%
>
> > > Hypertable::
> > > DynamicBuffer::grow              3.8%
> > > Hypertable
> > > ::BlockCompressionCodecLzo
> > > ::BlockCompressionCodecLzo       1.1%
> > > Hypertable
> > > ::IOHandlerData
> > > ::handle_event                   0.5%
>
> > >   BTW, in our tests, the RangeServer crashed when we set
> > > Hypertable.RangeServer.MaintenanceThreads=4 . We test 0.9.0.11 and
> > > 0.9.0.12, both of them have this problem and this week we want to make
> > > more test about it.
>
> > >   We hope this can help you.
>
> > >   Best wishes.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Hypertable Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/hypertable-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to