[erlang-questions] Slow when using chained gen_server:call's, redesign or optimize?
Sat Jan 28 01:06:04 CET 2012
I'm creating a system where I've ended up with alot of gen_servers that provides a clean interface. When I run this under load I see that the gen_server:call's is becoming a bottleneck.For instance, In a handle_request I might ask an other gen_server to get me a cached object, then ask the database something, then etc...and in some cases I have my-gen_server->cache-gen_server->memcache-client-gen_server as you see it stacks up to alot of steps. I've tried to optimize with deferring gen_server responses and that has given a slight performance improvement but not as drastical as if I for instance bypass one gen_server instance.
Is there a better way to go about this or some smart optimization to do? And FYI, I use gen_server when I need to keep a state of a connection or something so if the answer is to scrap or reduce the number of gen_servers I will need to keep those connections somewhere else.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions