summaryrefslogtreecommitdiffstats
path: root/doc/v8compatibility.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/v8compatibility.html')
-rw-r--r--doc/v8compatibility.html119
1 files changed, 119 insertions, 0 deletions
diff --git a/doc/v8compatibility.html b/doc/v8compatibility.html
new file mode 100644
index 00000000..549a7fef
--- /dev/null
+++ b/doc/v8compatibility.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><title>Compatibility notes for rsyslog v8</title>
+</head>
+<body>
+<h1>Compatibility Notes for rsyslog v8</h1>
+This document describes things to keep in mind when moving from v7 to v8. It
+does not list enhancements nor does it talk about compatibility concerns introduced
+by earlier versions (for this, see their respective compatibility documents). Its focus
+is primarily on what you need to know if you used v7 and want to use v8 without hassle.
+<p>Version 8 offers a completely rewritten core rsyslog engine. This resulted in
+a number of changes that are visible to users and (plugin) developers.
+Most importantly, pre-v8 plugins <b>do not longer work</b> and need to
+be updated to support the new calling interfaces. If you developed a plugin,
+be sure to review the developer section below.
+</p>
+<h2>Mark Messages</h2>
+<p>In previous versions, mark messages were by default only processed if an
+action was not executed for some time. The default has now changed, and mark
+messages are now always processed. Note that this enables faster processing
+inside rsyslog. To change to previous behaviour, you need to add
+action.writeAllMarkMessages="off" to the actions in question.
+
+<h2>Modules WITHOUT v8 Support</h2>
+<p>The following modules will not properly build under rsyslog v8 and
+need to be updated:
+<ul>
+<li>plugins/omgssapi
+<li>plugins/omhdfs
+<li>plugins/omrabbitmq - not project supported
+<li>plugins/omzmq3 - not project supported
+<li>plugins/mmrfc5424addhmac - was a custom project, requires sponsoring
+ for conversion
+<li>plugins/omoracle - orphaned since a while -- use omlibdbi instead
+<li>plugins/mmsnmptrapd - waiting for demand
+<li>plugins/mmcount - scheduled to be updated soon
+</ul>
+
+<h2>Untested Modules</h2>
+<p>The following modules have been updated and successfully
+build, but no "real" test were conducted. Users of these modules
+should use extra care.
+<ul>
+<li>mmsequence
+<li>omprog
+<li>omsnmp
+<li>mmfields
+<li>mmpstrucdata
+<li>plugins/mmaudit
+<li>omlibdbi - will be tested soon
+<li>ommongodb - larger changes still outstanding
+<li>ompgsql - larger chages still outstanding
+<li>omuxsock
+</ul>
+<p>In addition to bug reports, success reports are also appreciated for
+these modules (this may save us testing).
+
+<h2>What Developers need to Know</h2>
+<h3>output plugin interface</h3>
+<p>To support the new core engine, the output interface has been considerably
+changed. It is suggested to review some of the project-provided plugins for
+full details. In this doc, we describe the most important changes from a high
+level perspective.
+<p><b>NOTE: the v8 output module interface is not yet stable.</b> It is highly
+likely that additional changes will be made within the next weeks. So if you
+convert a module now, be prepared for additional mandatory changes.
+
+<p><b>Multi-thread awareness required</b></p>
+<p>The new engine activates one <b>worker</b>instance of output actions on
+each worker thread. This means an action has now three types of data:
+<ul>
+<li>global
+<li>action-instance - previously known pData, one for each action inside the config
+<li>worker-action-instance - one for each worker thread (called pWrkrData), note
+that this is specific to exactly one pData
+</ul>
+The plugin <b>must</b> now by multi-threading aware. It may be called by multiple
+threads concurrently, but it is guaranteed that each call is for a unique
+pWrkrData structure. This still permits to write plugins easily, but enables the
+engine to work with much higher performance. Note that plugin developers
+should assume it is the norm that multiple concurrent worker action instances
+are active a the some time.
+
+<p><b>New required entry points</b></p>
+<p>In order to support the new threading model, new entry points are required.
+Most importantly, only the plugin knows which data must be present in pData and
+pWrkrData, so it must created and destroy these data structures on request of
+the engine. Note that pWrkrData may be destroyed at any time and new ones
+re-created later. Depending on workload structure and configuration, this can happen
+frequently.
+<p>New entry points are:
+<ul>
+<li>createWrkrInstance
+<li>freeWrkrInstance
+</ul>
+
+The calling interface for these entry points has changed. Basically,
+they now receive a pWrkrData object instead pData. It is assumed that
+createWrkrInstance populates pWrkrData-&gt;pData appropriately.
+<ul>
+<li>beginTransaction
+<li>doAction
+<li>endTransaction
+</ul>
+
+<p><b>RS_RET_SUSPENDED is no longer supported when creating an action instance</b>
+<p>This means a plugin must not try to establish any connections or the like
+before any of its processing entry points (like beginTransaction or doAction)
+is called. This was generally also the case von v7, but was not enforced in
+all cases. In v8, creating action creation fails if anything but RS_RET_OK
+is returned.
+
+<p>[<a href="manual.html">manual index</a>] [<a href="http://www.rsyslog.com/">rsyslog site</a>]</p>
+
+<p><font size="2">This documentation is part of the
+<a href="http://www.rsyslog.com/">rsyslog</a> project.<br>
+Copyright &copy; 2013 by <a href="http://www.gerhards.net/rainer">Rainer Gerhards</a> and
+<a href="http://www.adiscon.com/">Adiscon</a>. Released under the GNU GPL
+version 2 or higher.</font></p>
+</body></html>