summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-04-23 11:48:47 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-04-23 11:48:47 +0200
commit925a5e34718cc842cb7e7ea6a5c8e8e8fbeb25dd (patch)
tree0496ccadf7727f18aaa117ea9eb81fd79c98c652
parent029218df5b7fbd6a7e4f945ecd32f84236885f53 (diff)
parentf8d9aad08222f59ba2d27437c1e2369896452aa1 (diff)
downloadrsyslog-925a5e34718cc842cb7e7ea6a5c8e8e8fbeb25dd.tar.gz
rsyslog-925a5e34718cc842cb7e7ea6a5c8e8e8fbeb25dd.tar.xz
rsyslog-925a5e34718cc842cb7e7ea6a5c8e8e8fbeb25dd.zip
Merge branch 'beta'
Conflicts: ChangeLog configure.ac doc/manual.html
-rw-r--r--ChangeLog13
-rw-r--r--runtime/queue.c14
2 files changed, 20 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index ffb31415..1ad99be1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,8 @@ Version 4.3.1 [DEVEL] (rgerhards), 2009-04-??
* added (hopefully) easier to grasp queue explanation
- improved testbench
* added tests for queue disk-only mode (checks disk queue logic)
+- bugfix: light and full delay watermarks had invalid values, badly
+ affecting performance for delayable inputs
---------------------------------------------------------------------------
Version 4.3.0 [DEVEL] (rgerhards), 2009-04-17
- new feature: new output plugin omprog, which permits to start program
@@ -26,7 +28,12 @@ Version 4.3.0 [DEVEL] (rgerhards), 2009-04-17
execution. The most probable case for such a case would be invalid
sql inside the template, and this is now much easier to diagnose.
---------------------------------------------------------------------------
-Version 4.1.7 [BETA] (rgerhards), 2009-04-??
+Version 4.1.8 [BETA] (rgerhards), 2009-04-??
+- bugfix: light and full delay watermarks had invalid values, badly
+ affecting performance for delayable inputs
+- bugfix: compile problems in im3195
+---------------------------------------------------------------------------
+Version 4.1.7 [BETA] (rgerhards), 2009-04-22
- bugfix: $InputTCPMaxSessions config directive was accepted, but not
honored. This resulted in a fixed upper limit of 200 connections.
- bugfix: the default for $DirCreateMode was 0644, and as such wrong.
@@ -174,6 +181,10 @@ version before switching to this one.
- bugfix: memory leak in ompgsql
Thanks to Ken for providing the patch
---------------------------------------------------------------------------
+Version 3.22.1 [v3-stable] (rgerhards), 2009-04-??
+- bugfix: light and full delay watermarks had invalid values, badly
+ affecting performance for delayable inputs
+---------------------------------------------------------------------------
Version 3.22.0 [v3-stable] (rgerhards), 2009-04-21
This is the first stable release that includes the full functionality
of the 3.21.x version tree.
diff --git a/runtime/queue.c b/runtime/queue.c
index c4a0fad2..4e017e84 100644
--- a/runtime/queue.c
+++ b/runtime/queue.c
@@ -1295,8 +1295,8 @@ rsRetVal qqueueConstruct(qqueue_t **ppThis, queueType_t qType, int iWorkerThread
ABORT_FINALIZE(RS_RET_OUT_OF_MEMORY);
/* set some water marks so that we have useful defaults if none are set specifically */
- pThis->iFullDlyMrk = (iMaxQueueSize < 100) ? iMaxQueueSize : 100; /* 100 should be far sufficient */
- pThis->iLightDlyMrk = iMaxQueueSize - (iMaxQueueSize / 100) * 70; /* default 70% */
+ pThis->iFullDlyMrk = iMaxQueueSize - (iMaxQueueSize / 100) * 3; /* default 97% */
+ pThis->iLightDlyMrk = iMaxQueueSize - (iMaxQueueSize / 100) * 30; /* default 70% */
pThis->lenSpoolDir = strlen((char*)pThis->pszSpoolDir);
pThis->iMaxFileSize = 1024 * 1024; /* default is 1 MiB */
@@ -1814,9 +1814,11 @@ rsRetVal qqueueStart(qqueue_t *pThis) /* this is the ConstructionFinalizer */
/* call type-specific constructor */
CHKiRet(pThis->qConstruct(pThis)); /* this also sets bIsDA */
- dbgoprint((obj_t*) pThis, "type %d, enq-only %d, disk assisted %d, maxFileSz %lld, qsize %d, child %d starting\n",
+ dbgoprint((obj_t*) pThis, "type %d, enq-only %d, disk assisted %d, maxFileSz %lld, qsize %d, child %d, "
+ "full delay %d, light delay %d starting\n",
pThis->qType, pThis->bEnqOnly, pThis->bIsDA, pThis->iMaxFileSize,
- qqueueGetOverallQueueSize(pThis), pThis->pqParent == NULL ? 0 : 1);
+ qqueueGetOverallQueueSize(pThis), pThis->pqParent == NULL ? 0 : 1,
+ pThis->iFullDlyMrk, pThis->iLightDlyMrk);
if(pThis->qType == QUEUETYPE_DIRECT)
FINALIZE; /* with direct queues, we are already finished... */
@@ -2171,12 +2173,12 @@ qqueueEnqObj(qqueue_t *pThis, flowControl_t flowCtlType, void *pUsr)
*/
if(flowCtlType == eFLOWCTL_FULL_DELAY) {
while(pThis->iQueueSize >= pThis->iFullDlyMrk) {
- dbgoprint((obj_t*) pThis, "enqueueMsg: FullDelay mark reached for full delayble message - blocking.\n");
+ dbgoprint((obj_t*) pThis, "enqueueMsg: FullDelay mark reached for full delayable message - blocking.\n");
pthread_cond_wait(&pThis->belowFullDlyWtrMrk, pThis->mut); /* TODO error check? But what do then? */
}
} else if(flowCtlType == eFLOWCTL_LIGHT_DELAY) {
if(pThis->iQueueSize >= pThis->iLightDlyMrk) {
- dbgoprint((obj_t*) pThis, "enqueueMsg: LightDelay mark reached for light delayble message - blocking a bit.\n");
+ dbgoprint((obj_t*) pThis, "enqueueMsg: LightDelay mark reached for light delayable message - blocking a bit.\n");
timeoutComp(&t, 1000); /* 1000 millisconds = 1 second TODO: make configurable */
pthread_cond_timedwait(&pThis->belowLightDlyWtrMrk, pThis->mut, &t); /* TODO error check? But what do then? */
}