summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-10-26 20:23:39 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2009-10-26 20:23:39 +0100
commit620cacf47b11c0ce4898be6d0def5996a7ba3e9a (patch)
tree9b51e19ea0ddb42d0dcbc2e4d63a9e60841f9057
parentb585a4e90940e9f4d2d288d462d1c273ae5ffa09 (diff)
downloadrsyslog-620cacf47b11c0ce4898be6d0def5996a7ba3e9a.tar.gz
rsyslog-620cacf47b11c0ce4898be6d0def5996a7ba3e9a.tar.xz
rsyslog-620cacf47b11c0ce4898be6d0def5996a7ba3e9a.zip
added note on lock-free algorithm to design doc
-rw-r--r--doc/design.tex5
1 files changed, 4 insertions, 1 deletions
diff --git a/doc/design.tex b/doc/design.tex
index 1f6b55b7..a3ec8f45 100644
--- a/doc/design.tex
+++ b/doc/design.tex
@@ -821,7 +821,7 @@ Under this system, the upper layer provides plugins to send and receive streams
\includegraphics[scale=0.4]{tls.jpeg}
\end{center}
\caption{Objects at the Network Stream Layer}
-\label{fig_batchmsg_states}
+\label{fig_netstream_objects}
\end{figure}
At the netstream layer, we have a small set of generic classes, which are used for setup of the drivers and driver parameters. This is a very thin layer, mostly a wrapper. Once an actual lower-level netstream driver has been loaded, all parameters are passed through to it.
@@ -839,6 +839,9 @@ A final note on Kerberos: in order to keep compatible with previous protocol han
\section{Future Development}
This section covers topics that can not currently be developed, but where important thoughts came up in discussions. For obvious reasons, the section has brainstorming character.
+\subsection{Lock-Free Queuing}
+On a very busy system, lock contention can limit performance. We should investigate ways to apply lock-free algorithms inside rsyslog. It is believed that at least for some scenarios, lock-free algorigthms can be applied with great benefit. To do so, we should introduce new queue modes, which will use very different semantics from what is described so far for the queue engine. Most importantly, in lock-free mode we will have limits on the number of producers and we will most probably not be able to guarantee audit-grade processing. The later is not a problem, because there are ample use cases that do not require audit-gradeness.
+
\subsection{Audit-Grade High Performance Queue Storage Driver}
An audit grade driver must ensure that no message is lost, but should also be able to handle large workloads. The sequential disk driver does not support the later.