summaryrefslogtreecommitdiffstats
path: root/runtime/queue.c
Commit message (Collapse)AuthorAgeFilesLines
* finishing touches for 5.1.2v5.1.2Rainer Gerhards2009-07-081-1/+1
|
* Merge branch 'v4-devel'Rainer Gerhards2009-07-081-99/+34
|\ | | | | | | | | | | Conflicts: runtime/debug.h runtime/stream.c
* | Merge branch 'v4-beta'Rainer Gerhards2009-07-071-2/+2
|\|
| * performance enhancement: much faster, up to twice as fastRainer Gerhards2009-07-061-2/+2
| | | | | | | | | | | | (depending on configuration). This was a small change, but with big results. There is more potential to explore, but the effects were so dramatic that I think it makes sense to include this fix.
| * bugfix: subtle potential issue during queue shutdownRainer Gerhards2009-06-251-1/+1
| | | | | | | | | | ... this one could cause trouble, but I really don't think it caused any actual harm.
* | bugfix: subtle synchronization issueRainer Gerhards2009-06-251-9/+4
| | | | | | | | | | | | This may have caused a segfault under strange circumstances (but if we just run long enough with a high enough message volume, even the strangest circumstances will occur...)
* | added a few atomic operationsRainer Gerhards2009-06-251-9/+8
| | | | | | | | | | mostly to get thread debugger errors clean (plus, of course, it makes things more deterministic)
* | adapted (and improved) input batching to v5 engineRainer Gerhards2009-06-221-1/+2
| |
* | bugfix: huge memory leak in queue engineRainer Gerhards2009-06-221-0/+1
| | | | | | | | | | (made rsyslogd unusable in production). Occured if at least one queue was in direct mode (the default for action queues).
* | Merge branch 'omfile' into tmpRainer Gerhards2009-06-221-3/+121
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was a complex manual merge, especially in action.c. So if there occur some problems, this would be a good point to start troubleshooting. I run a couple of tests before commiting and they all went well. Conflicts: action.c action.h runtime/queue.c runtime/queue.h runtime/wti.c runtime/wti.h
| * removed uniprocessor optimizationRainer Gerhards2009-06-191-15/+0
| | | | | | | | | | | | ... as it was not even optimal on uniprocessors any longer ;) I keep the config directive in, maybe we can utilize it again at some later point in time (questionable).
| * some cleanupRainer Gerhards2009-06-161-6/+4
| |
| * implemented first version of multi-enqueue support, queue sideRainer Gerhards2009-06-161-0/+126
| |
* | Merge branch 'omfile' into v5-develRainer Gerhards2009-06-161-62/+68
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note that this was NOT a trivial merge, and there may be some issues. This needs to be seen when we continue developing. Conflicts: runtime/msg.h runtime/obj.h runtime/queue.c runtime/srUtils.h runtime/stream.c runtime/stream.h runtime/wti.c tests/Makefile.am tools/omfile.c tools/syslogd.c
| * added capability to fsync() queue disk files for enhanced reliabilityRainer Gerhards2009-06-091-0/+5
| | | | | | | | | | | | | | also adds speed, because you do no longer need to run the whole file system in sync mode. New testbench and new config directives: - $MainMsgQueueSyncQueueFiles - $ActionQueueSyncQueueFiles
| * modified stream class and omfile to work with itRainer Gerhards2009-06-041-2/+1
| | | | | | | | now some basic operations are carried out via the stream class.
| * cleaned up stream class ...Rainer Gerhards2009-06-041-44/+46
| | | | | | | | | | | | ... and also made it callable via an rsyslog interface rather then relying on the OS loader (important if we go for using it inside loadbale modules, which we soon possible will)
* | some cleanup & fix make distcheckRainer Gerhards2009-05-281-14/+3
| |
* | some more fixes for queue engineRainer Gerhards2009-05-281-30/+37
| | | | | | | | The enhanced testbench now runs without failures, again
* | fixing an issue during DA mode queue shutdownRainer Gerhards2009-05-281-62/+46
| | | | | | | | | | also changed DA queue mode in that the regular workers now run concurrently.
* | preserving current changesRainer Gerhards2009-05-281-12/+23
| | | | | | | | | | | | ... in preparation for some larger changes - I need to apply some serious design changes, as the current system does not play well at all with ultra-reliable queues. Will do that in a totally new version.
* | interim commit: working on failure casesRainer Gerhards2009-05-271-103/+211
| | | | | | | | slightly improved situation, would like to save it before carrying on
* | solved design issue with queue terminationRainer Gerhards2009-05-261-95/+158
| | | | | | | | | | | | | | | | | | | | | | ... and also improved the test suite. There is a design issue in the v3 queue engine that manifested to some serious problems with the new processing mode. However, in v3 shutdown may take eternally if a queue runs in DA mode, is configured to preserve data AND the action fails and retries immediately. There is no cure available for v3, it would require doing much of the work we have done on the new engine. The window of exposure, as one might guess from the description, is very small. That is probably the reason why we have not seen it in practice.
* | free last processed message in all casesRainer Gerhards2009-05-201-10/+41
| | | | | | | | | | | | | | | | | | so far, the last processed message was only freed when the next one was processed. This has been changed now. More precisely, a better algorithm has been selected for the queue worker process, which also involves less overhead than the previous one. The fix for "free last processed message" as then more or less a side-effect (easy to do) of the new algorithm.
* | yield() no longer needed on uniproc thanks to new algorithmsRainer Gerhards2009-05-201-7/+0
| |
* | solved the intended-discard-during-dequeue issueRainer Gerhards2009-05-191-10/+12
| |
* | some cleanupRainer Gerhards2009-05-191-86/+0
| |
* | queue size calculation now based on logical/physical dequeueRainer Gerhards2009-05-191-48/+66
| | | | | | | | | | | | ... needed to split the old single counter into two. I wouldn't bet that I made some mistakes while doing so, but at least some ad-hoc tests plus the testbench do no longer indicate errors.
* | removed queue's UngetObj() callRainer Gerhards2009-05-181-99/+11
| | | | | | | | ... which is no longer needed thanks to the new queue design.
* | t-delete list implemented, queue store drivers updated...Rainer Gerhards2009-05-181-47/+306
| | | | | | | | | | | | ... on the way to the ultra-reliable queue modes (redesign doc). This version does not really work, but is a good commit point. Next comes queue size calculation. DA mode does not yet work.
* | moved user object destruction to queue itselfRainer Gerhards2009-05-131-3/+37
| | | | | | | | | | | | So far, the consumer was responsible for destroying objects. However, this does not work well with ultra-reliable queues. This is the first move to support them.
* | moving to a cleaner implementation of batchesRainer Gerhards2009-05-121-19/+30
| | | | | | | | ... now that we know what we need from a theoretical POV.
* | fixed abort condition in DA modeRainer Gerhards2009-04-231-2/+1
| |
* | fixing a small (newly-introduced) memory leakRainer Gerhards2009-04-231-10/+5
| | | | | | | | | | ... plus simplifying free() calls after agreement on mailing list that we no longer need to check if the pointer is non-NULL
* | added $MainMsgQueueDequeueBatchSize and $ActionQueueDequeueBatchSize ↵Rainer Gerhards2009-04-231-12/+10
| | | | | | | | configuration directives
* | Merge branch 'master' into multi-dequeueRainer Gerhards2009-04-231-4/+4
|\|
| * Merge branch 'v3-stable' into betaRainer Gerhards2009-04-231-6/+8
| |\ | | | | | | | | | | | | | | | Conflicts: ChangeLog runtime/queue.c
| | * bugfix: light and full delay watermarks had invalid valuesRainer Gerhards2009-04-231-6/+8
| | | | | | | | | | | | | | | ... badly affecting performance for delayable inputs (but not causeing any other issues)
| | * Merge branch 'beta'Rainer Gerhards2008-10-211-13/+32
| | |\
| | | * bugfix: (potentially big) memory leak on HUPRainer Gerhards2008-10-211-13/+32
| | | | | | | | | | | | | | | | | | | | | | | | - if queues could not be drained before timeout - thanks to David Lang for pointing this out - added link to german-language forum to doc set
* | | | improving debugging info a bitRainer Gerhards2009-04-231-2/+4
| | | |
* | | | now batches are handed down to the actual consumerRainer Gerhards2009-04-221-13/+17
| | | | | | | | | | | | | | | | | | | | | | | | ... but the action consumer does not do anything really intelligent with them. But the DA consumer is already done, as is the main message queue consumer.
* | | | first attempt at dequeueing multiple batches inside the queueRainer Gerhards2009-04-221-71/+111
| | | | | | | | | | | | | | | | | | | | | | | | ... but this code has serious problems when terminating the queue, also it is far from being optimal. I will commit a series of patches (hopefully) as I am on the path to the final implementation.
* | | | some cleanupRainer Gerhards2009-04-171-39/+0
|/ / /
* | | fixed a platform issue the prevented building on solarisRainer Gerhards2009-03-061-0/+5
| | |
* | | integrated various patches for solarisRainer Gerhards2009-03-051-210/+210
| | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunatley, I do not have the full list of contributors available. The patch set was compiled by Ben Taylor, and I made some further changes to adopt it to the news rsyslog branch. Others provided much of the base work, but I can not find the names of the original authors. If you happen to be one of them, please let me know so that I can give proper credits.
* | | added a setting "$OptimizeForUniprocessor"Rainer Gerhards2008-10-221-1/+4
| | | | | | | | | | | | | | | | | | ...to enable users to turn off pthread_yield calls which are counter-productive on multiprocessor machines (but have been shown to be useful on uniprocessors)
* | | bugfix: (potentially big) memory leak on HUPRainer Gerhards2008-10-211-13/+32
| | | | | | | | | | | | | | | This occured if queues could not be drained before timeout. Thanks to David Lang for pointing this out.
* | | moved bParseHostname and bIsParsed to msgFlagsRainer Gerhards2008-10-091-2/+3
| | | | | | | | | | | | | | | | | | This enables us to use more efficient calling conventions and also helps us keep the on-disk structure of a msg object more consistent in future releases.
* | | Merge branch 'master' into perfRainer Gerhards2008-10-091-1/+1
|\| |