Gregory Burd
2672bab3ea
Stats overhead due to hitting the clock and pulling a mutex caused a massive slowdown so now work is assigned to a new queue only when the candidate queue is deeper than the average of the other queues and threads are created only when the depth of the queue is larger than the number of threads working on that queue.
2013-07-02 19:58:00 -04:00
Gregory Burd
00e5889ac9
Changed conditions for worker thread creation.
2013-07-02 16:46:04 -04:00
Gregory Burd
c7b45a7c2b
Still ironing out stats.
2013-06-27 10:57:41 -04:00
Gregory Burd
c41e411a92
Worker threads come and go as needed with a lower bound of 2 and an
...
upper bound of ASYNC_NIF_MAX_WORKERS. Stats were improved to use
thread local storage for measures. With stats working again wterl
uses them to determine who to evict. Wterl's signature calculation
for an operation wasn't correct and so the cache wasn't efficient at
all, this has been fixed.
2013-06-25 13:31:43 -04:00
Gregory Burd
ff7d1d6e20
WIP: further simplifying context cache
2013-06-14 10:52:45 -04:00
Gregory Burd
2a4b8ee7d2
WIP: simplify the cache from hash-of-lists to list; use a CAS() operation to protect the most-recently-used (mru) list.
2013-06-10 14:31:59 -04:00
b2c0b65114
Fixes for OS/X and whitespace cleanup.
2013-06-06 15:16:50 -04:00
Gregory Burd
786142ce73
Add a bit of statistics tracking for two reasons, a) to help inform
...
where a request should be enqueded and b) to track request latency.
2013-05-01 22:02:37 -04:00