This patch allows for multiple RRD writer threads to service the queue.
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Tue, 11 Nov 2008 16:36:13 +0000 (16:36 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Tue, 11 Nov 2008 16:36:13 +0000 (16:36 +0000)
commit802fc81d6c21d0fc535ce4fa3e654005751f6571
treef5f4b61f7cdbb81ee6908fd30eb1edbd15422d0a
parent17627a0b3aaa92aff3b01520b05ea04fa1ba9a86
This patch allows for multiple RRD writer threads to service the queue.

Now, rrdcached can have more simultaneous I/O requests into the kernel.
This may allow the kernel to re-order disk writes, resulting in better
disk throughput.  In practice, throughput is increased by 2-3x.

The flush (-f) timer maintenance has been moved from queue_thread_main
into its own thread.

Be more careful about when to use pthread_cond_signal vs _broadcast, since
multiple threads may be waiting on &queue_cond.

--kevin

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1665 a5681a0c-68f1-0310-ab6d-d61299d08faa
doc/rrdcached.pod
src/rrd_daemon.c