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]

Reply via email to