On Tue, Oct 19, 2010 at 12:12 PM, Blair Zajac <blair_at_orcaware.com> wrote:
...
> 3) Pools are painful to use. We have repository, revision and transaction
> C++ objects stored in an LRU cache. They cache revision and transaction
> roots for improved performance. Using the wrong pool for a RPC method can
> cause memory leaks (we just found one Monday causing a backend server to run
> out of memory). Constructing and destroying pools in the wrong order can
> cause the process to crash. This is hard to get right, so using a different
> model would be very useful. I haven't had the cycles to look at Hyrum's new
> C++ object and see how that would help.
While I'd appreciate the extra eyeballs, don't get your hopes up. The
objects are still being managed and stored in pools internally, which
causes all kinds of overheads. It's probably not nearly as performant
as your looking for (though it does hide the complexity of Pools from
C++ consumers, which is a big part of the design goals.)
-Hyrum
Received on 2010-10-19 19:42:14 CEST