Scalable disk queue
@bazsi did a bunch of changes. The most important one in our case is that he changed from g_lists to ivykis list for in-memory queues in LogQueueNonReliableDisk.
@bshifter and I added a new output queue, that takes batches of messages instead of a single message, to avoid frequent locking and unlocking.
I'd like to review this too.
As I've heard the code builds on front_cache_size > 0, but nothing ensures this, the user can set it to 0. Shouldn't we have an override for == 0?
Done with another round of review, I won't go another one until we process my comments so far.
Current implementation involves the possibility of requiring more memory due to front_cache and front_cache_output both having the full front_cache_size length. If we decide it is too much, or not intended, we can assign half the size to front_cache, and the other half to front_cache_output.
Thank you for the fixes!