From 54cb24af9165680e648071929bbbd271b9af1e4e Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Fri, 09 Oct 2009 14:52:14 +0000
Subject: [PATCH] - EXPERIMENTAL Parallel Text Writer implementation.
---
opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java | 37 ++++++++++++++++++++++++++++++++++---
1 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java b/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
index 5d145ee..7de3401 100644
--- a/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
+++ b/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
@@ -159,6 +159,10 @@
{
currentWriter = ((AsyncronousTextWriter) writer).getWrappedWriter();
}
+ else if (writer instanceof ParallelTextWriter)
+ {
+ currentWriter = ((ParallelTextWriter) writer).getWrappedWriter();
+ }
else
{
currentWriter = writer;
@@ -196,6 +200,14 @@
asyncWriter.shutdown(false);
}
+ if (writer instanceof ParallelTextWriter && !config.isAsynchronous())
+ {
+ // The asynchronous setting is being turned off.
+ ParallelTextWriter asyncWriter = ((ParallelTextWriter) writer);
+ writer = mfWriter;
+ asyncWriter.shutdown(false);
+ }
+
if (!(writer instanceof AsyncronousTextWriter)
&& config.isAsynchronous())
{
@@ -206,6 +218,16 @@
writer = asyncWriter;
}
+ if (!(writer instanceof ParallelTextWriter)
+ && config.isAsynchronous())
+ {
+ // The asynchronous setting is being turned on.
+ ParallelTextWriter asyncWriter = new ParallelTextWriter(
+ "Parallel Text Writer for " + config.dn().toNormalizedString(),
+ config.isAutoFlush(), mfWriter);
+ writer = asyncWriter;
+ }
+
if ((currentConfig.isAsynchronous() && config.isAsynchronous())
&& (currentConfig.getQueueSize() != config.getQueueSize()))
{
@@ -303,9 +325,18 @@
if (config.isAsynchronous())
{
- this.writer = new AsyncronousTextWriter("Asyncronous Text Writer for "
- + config.dn().toNormalizedString(), config.getQueueSize(), config
- .isAutoFlush(), writer);
+ if (config.getQueueSize() > 0)
+ {
+ this.writer = new AsyncronousTextWriter(
+ "Asyncronous Text Writer for " + config.dn().toNormalizedString(),
+ config.getQueueSize(), config.isAutoFlush(), writer);
+ }
+ else
+ {
+ this.writer = new ParallelTextWriter(
+ "Parallel Text Writer for " + config.dn().toNormalizedString(),
+ config.isAutoFlush(), writer);
+ }
}
else
{
--
Gitblit v1.10.0