diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2009-05-18 17:28:34 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2009-05-18 17:28:34 +0200 |
commit | 93f873277bfe5ebb309ff5e92f5dc7244ebd9f1a (patch) | |
tree | 0a1431d8ce318552e83cce38273015c5206155a3 /doc/design.tex | |
parent | b81311ac70e4de0bd5c0b0286413ff1b527ef906 (diff) | |
download | rsyslog-93f873277bfe5ebb309ff5e92f5dc7244ebd9f1a.tar.gz rsyslog-93f873277bfe5ebb309ff5e92f5dc7244ebd9f1a.tar.xz rsyslog-93f873277bfe5ebb309ff5e92f5dc7244ebd9f1a.zip |
t-delete list implemented, queue store drivers updated...
... 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.
Diffstat (limited to 'doc/design.tex')
-rw-r--r-- | doc/design.tex | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/doc/design.tex b/doc/design.tex index 7c0641b8..c03e1fab 100644 --- a/doc/design.tex +++ b/doc/design.tex @@ -769,8 +769,6 @@ The full list of the queue store driver interface is: \paragraph{qDel} Delete the object at queue head. Delete pointer is advanced. -\paragraph{qIsAtDelPos} Check if the pointer provided is at the queues current delete position. Returns true, if so, false, otherwise. - Disk queue store drivers may support additional internal functions. However, they should not be exposed to the rest of the queue subsystem. \begin{figure} @@ -783,6 +781,10 @@ Disk queue store drivers may support additional internal functions. However, the Figure \ref{fig_queue_msg_state} shows a logical message state diagram during queue processing. There is no actual state variable, but rather the processing flow demands these state. Note that the state transition from ``dequeued'' to ``queued'' only happens after a fatal failure and a successful system recovery. So this is a rather exceptional case. +Another subtle issue is that we now need two different queue size counters: one for seeing when the queue is physically full and one for detecting when there are no more messages to be dequeued. + +As a simplification, support for ungetting objects can be removed (as objects never leave the queue), what also means that cancel-processing is probably less complex. + \paragraph{Sequential Disk Queue Store Driver} The enequeue, deqeueue and delete pointers must be implemented via three stream objects. Most importantly, the dequeue stream must be configured not to delete files when it closes them. A side-effect of this implementation is that data is actually read twice, once to actually obtain it and a second time to delete it. This could only be avoided by an overall redesign on how the disk queue works. |