59 Commits

Author SHA1 Message Date
Rainer Gerhards
fdfcb2a8f9 added advanced flow control for congestion cases (mode depending on message
source and its capablity to be delayed without bad side effects)
2008-03-14 11:04:36 +00:00
Rainer Gerhards
fd21706905 some more 32 bit fun ;) 2008-01-31 14:24:06 +00:00
Rainer Gerhards
41fb70130f bugfix: having fun with 32/64 bit portability - after 15 years, I finally
was trapped again ;) -- now fixed, sizes > 2GB supported on 32bit
    platforms
2008-01-31 12:54:10 +00:00
Rainer Gerhards
0e3b40fd8a - implemented limiting disk space allocated to queues
- addded $MainMsgQueueMaxDiskSpace config directive
- addded $ActionQueueMaxDiskSpace config directive
2008-01-30 19:07:23 +00:00
Rainer Gerhards
6cc46b15d9 - implemented simple output rate limiting
- addded $ActionQueueDequeueSlowdown config directive
- addded $MainMsgQueueDequeueSlowdown config directive
- bugfix: MsgDup() did not work with new base object data structure
2008-01-30 15:37:23 +00:00
Rainer Gerhards
e12e53cfbb added ability to re-enqueue objects into the queue when a worker thread is
cancelled
2008-01-29 17:36:19 +00:00
Rainer Gerhards
c77519ab7b - implemented the $ActionResumeRetryCount config directive
- added queue between main queue and action executor (currently works in
    "direct" mode only, else crashes)
- added $ActionQueueFilename config directive
- added $ActionQueueSize config directive
- added $ActionQueueHighWaterMark config directive
- added $ActionQueueLowWaterMark config directive
- added $ActionQueueDiscardMark config directive
- added $ActionQueueDiscardSeverity config directive
- added $ActionQueueCheckpointInterval config directive
- added $ActionQueueType config directive
- added $ActionQueueWorkerThreads config directive
- added $ActionQueueTimeoutshutdown config directive
- added $ActionQueueTimeoutActionCompletion config directive
- added $ActionQueueTimeoutenQueue config directive
- added $ActionQueueTimeoutworkerThreadShutdown config directive
- added $ActionQueueWorkerThreadMinimumMessages config directive
- added $ActionQueueMaxFileSize config directive
- added $ActionQueueSaveonShutdown config directive
2008-01-28 17:39:46 +00:00
Rainer Gerhards
94bfc28855 cleanup to prepare for release 2008-01-28 11:35:33 +00:00
Rainer Gerhards
59b67824d6 some more testing and cleanup with the queue class (pretty stable now) 2008-01-28 10:48:51 +00:00
Rainer Gerhards
7d8b1c2937 fixed a bug when shutting down DA queue 2008-01-27 14:46:23 +00:00
Rainer Gerhards
0c6c9dfe8a fixed the situation where message processing could be stalled for some
period after DA mode turn off
2008-01-27 10:33:03 +00:00
Rainer Gerhards
439f19ad38 partially fixed bug that caused rsyslogd to stall processing enqueued
messages after turning off DA mode and before any new message were
    arrived (if a new message arrived, everything went back to normal, so
    it was a temporary halt)
2008-01-26 17:30:51 +00:00
Rainer Gerhards
87f0e9b5f9 disk-assisted queue mode finally begins to look good ;) 2008-01-25 19:25:46 +00:00
Rainer Gerhards
5c686c8adc redesigned queue to utilize helper classes for threading support. This is
finally in a running state for regular (non disk-assisted) queues, with
    a minor nit at shutdown. So I can finally commit the work again to
    CVS...
2008-01-24 17:55:09 +00:00
Rainer Gerhards
1679e0643d some further cleanup on the mutexes 2008-01-19 17:33:53 +00:00
Rainer Gerhards
c4bc441e3c seperated mutex for queue size management from those for queue thread
management
2008-01-19 12:22:13 +00:00
Rainer Gerhards
fabcb72a09 saving state 2008-01-18 23:24:51 +00:00
Rainer Gerhards
2bd1e28352 - created an in-depth description of DA assisted queue mode
- snapshot of new thread coding - DA mode still does not work, but need to
    save
2008-01-18 16:01:07 +00:00
Rainer Gerhards
e0df42e014 fixed sync issue on shutdown process if need to persist pure memory queue
to disk
2008-01-17 16:30:49 +00:00
Rainer Gerhards
ed0363210c worked on threading 2008-01-17 12:45:10 +00:00
Rainer Gerhards
75a8f92d50 implemented dynamic startup and shutdown of worker threads based on current
activity
2008-01-16 16:40:11 +00:00
Rainer Gerhards
22b9dc1af1 queue is now able to restore persisted state on startup (but still some
fine tuning to be done)
2008-01-16 09:24:38 +00:00
Rainer Gerhards
bb7c2ef720 changed startup of disk assisted mode to allow for higher concurrency, most
importantly allow the input to continue enqueue msgs while the disk
    queue is initialized. This may help somewhat with UDP and other lossy
    sources
2008-01-15 16:17:51 +00:00
Rainer Gerhards
8f5c0764aa disk assisted queue works quite well, except for startup from disk queue 2008-01-15 11:04:46 +00:00
Rainer Gerhards
75b645f16b some more work on disk assisted mode (still not complete) 2008-01-14 19:08:43 +00:00
Rainer Gerhards
ec27ea55f3 begin disk assisted queue memory queue modes (not fully implemented yet) 2008-01-14 17:53:35 +00:00
Rainer Gerhards
a53b019a4e - implemented config file handlers for
$MainMsgQueueHighWaterMark
$MainMsgQueueLowWaterMark
$MainMsgQueueDiscardMark
$MainMsgQueueDiscardSeverity but did NOT yet implement the functionality
    behind these directives!
2008-01-14 13:54:22 +00:00
Rainer Gerhards
b49bf8c922 removed $MainMsgQueueImmediateShutdown config directive and handling, this
has been superseeded by the Timeout params. Backward compatibility is
    no concern, no version with that directive was ever released.
2008-01-14 11:58:40 +00:00
Rainer Gerhards
77a338e180 - implemented $MainMsgQueueTimeoutActionCompletion config directive
- implemented $MainMsgQueueTimeoutEnqueue config directive
- implemented $MainMsgQueueTimeoutShutdown config directive
- some cleanup
2008-01-14 11:55:24 +00:00
Rainer Gerhards
dd36718bd1 worker shutdown sequence enhanced to try different ways to shut down and
terminate workers if none helps (this protects against badly written
    output plugins which hold the queue for too long)
2008-01-14 08:37:42 +00:00
Rainer Gerhards
bbf0aecbbd added $MainMsgQueuePersistUpdateCount config file directive 2008-01-13 17:16:59 +00:00
Rainer Gerhards
abdcea7d8f support for reading back persistet queue information completed 2008-01-13 15:47:41 +00:00
Rainer Gerhards
dd575394db support for object property bags added 2008-01-11 14:34:53 +00:00
Rainer Gerhards
8dad399750 file stream objects are now persistet on immediate queue shutdown (queue
itself is not yet fully persisted)
2008-01-11 14:12:25 +00:00
Rainer Gerhards
e095d1ab45 added $MainMsgQueueImmediateShutdown config directive 2008-01-11 10:11:55 +00:00
Rainer Gerhards
c9430404db - begun to permit queue to terminate without being drained
- fixed a starvation condition in queueWorker (pthread_yield() was needed)
    could not be seen with any previously released code, came up during new
    development
2008-01-11 09:53:53 +00:00
Rainer Gerhards
68efb41220 - some cleanup
- implemented management function for worker thread 0 in order to change
    queue workers dynamically -- stage work
2008-01-10 17:33:21 +00:00
Rainer Gerhards
aa7e00d8e1 changed queue class to use stream class 2008-01-09 17:25:07 +00:00
Rainer Gerhards
2146e34070 implemented $MainMsgQueueFilePrefix configuration directive 2008-01-09 11:12:20 +00:00
Rainer Gerhards
bff48ee5ed implemented queue object method to set the file name prefix 2008-01-09 08:58:06 +00:00
Rainer Gerhards
fbd4ecdce4 - implemented new GetSize() handler for config files
- implemented $MainMsgQueueMaxFileSize configuration directive
2008-01-09 08:25:25 +00:00
Rainer Gerhards
8d0a174a86 - first implementation of "disk" queue mode finished. It still needs some
work and the deserializer needs also to be expanded, but the queue at
    least performs well now.
- fixed a race condition that could occur when input modules were
    terminated
2008-01-08 13:37:19 +00:00
Rainer Gerhards
6d4bd34517 implemented queue disk reader to switch to multiple files 2008-01-08 08:45:24 +00:00
Rainer Gerhards
571d21a33a - MsgSetProperty() implemented
- defined a property class
- implemented deserializer (needs some more work)
2008-01-07 17:26:49 +00:00
Rainer Gerhards
2c5b4f3c3d implemented buffered read calls for the queue file 2008-01-07 10:41:22 +00:00
Rainer Gerhards
cfbb74e7a5 implemented disk queue as far as I could without an object de-serializer 2008-01-07 09:51:55 +00:00
Rainer Gerhards
558003a725 - added multiple worker thread capability to queue class
- implemented $MainMsgQueueWorkerThreads config directive
2008-01-05 15:58:33 +00:00
Rainer Gerhards
62154cdde9 added the "direct" queueing mode to queue class (no queing at all) 2008-01-05 13:39:40 +00:00
Rainer Gerhards
800ac1889b changed queue object Construction/Startup interface 2008-01-04 17:17:12 +00:00
Rainer Gerhards
eb9f97ee2d removed serialization pointer from queue; used new base class instead 2008-01-04 16:23:37 +00:00