Some of the work being done has been around performance. At this point
we have 2 locks
that still need some work.
One of these locks are in the OS memory allocator, to this end I have
spoken to the glic/gcc
maintainers and they are working on a better malloc/free for us. However
the other side of the
equation is to do some optional memory caching.
The biggest area where this will help us is around frame caching. An
experiment in this area
has been done with TLS caching (did not work out as the caches need to
be cross thread) and
a global pool test has determined that we can reduce the number of
allocations by 25% with
such a cache.
However to do this we need a lock free bucket. So, if someone has
interest to create a lock free bucket.
I.e. a lock free structure that you can push pointers into and pop them
back off from many threads at
the same time. If the bucket is empty return NULL. No ordering is required.
What is interesting in that all the cost in a lock free fifo is the
corrections to maintain order which we
don't need. so the CAS or DCAS impls of fifo without order can be used.
For algorithms see work
from Maged M. Michael & Michael L. Scott -- or google a bit
The bucket needs to be able to do at least 2 million insertions and 2M
removals per second without
breaking a sweat.
anyone interested? - nice isolated task, and fun. thought I would toss
it out before I started working on it.
Carl.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]