You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Romain Manni-Bucau <rm...@gmail.com> on 2012/11/29 12:13:07 UTC

Fwd: svn commit: r1415122 - in /openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd: EjbDaemon.java KeepAliveServer.java

Hi Andy,

thought there was already a buffer in GZip impl

did you bench a bit?

on my little sample the difference was not that much important

any other results?

Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau




---------- Forwarded message ----------
From:  <an...@apache.org>
Date: 2012/11/29
Subject: svn commit: r1415122 - in
/openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd:
EjbDaemon.java KeepAliveServer.java
To: commits@openejb.apache.org


Author: andygumbrecht
Date: Thu Nov 29 11:07:27 2012
New Revision: 1415122

URL: http://svn.apache.org/viewvc?rev=1415122&view=rev
Log:
Still use buffered streams for gzip.

Modified:
    openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
    openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java

Modified: openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java?rev=1415122&r1=1415121&r2=1415122&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
(original)
+++ openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
Thu Nov 29 11:07:27 2012
@@ -30,6 +30,8 @@ import org.apache.openejb.spi.ContainerS
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;

+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.ObjectInputStream;
@@ -97,11 +99,11 @@ public class EjbDaemon implements org.ap
                 return;
             }

-            in = socket.getInputStream();
-            out = socket.getOutputStream();
+            in = new BufferedInputStream(socket.getInputStream());
+            out = new BufferedOutputStream(socket.getOutputStream());
             if (gzip) {
-                in = new GZIPInputStream(socket.getInputStream());
-                out = new FlushableGZIPOutputStream(socket.getOutputStream());
+                in = new GZIPInputStream(new
BufferedInputStream(socket.getInputStream()));
+                out = new BufferedOutputStream(new
FlushableGZIPOutputStream(socket.getOutputStream()));
             }

             service(in, out);

Modified: openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java?rev=1415122&r1=1415121&r2=1415122&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
(original)
+++ openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
Thu Nov 29 11:07:27 2012
@@ -210,8 +210,8 @@ public class KeepAliveServer implements
                     in = new BufferedInputStream(socket.getInputStream());
                     out = new BufferedOutputStream(socket.getOutputStream());
                 } else {
-                    in = new GZIPInputStream(socket.getInputStream());
-                    out = new
FlushableGZIPOutputStream(socket.getOutputStream());
+                    in = new GZIPInputStream(new
BufferedInputStream(socket.getInputStream()));
+                    out = new BufferedOutputStream(new
FlushableGZIPOutputStream(socket.getOutputStream()));
                 }

                 while (running.get()) {

Re: Fwd: svn commit: r1415122 - in /openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd: EjbDaemon.java KeepAliveServer.java

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Ok great,

thought playing with gzipXXX size was enough :(

Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau



2012/11/29 AndyG <an...@orprovision.com>:
> Hi Romain,
>
> I use RMIIO extensively for large binary transfer that I modified with an
> almost identical fix to your flushable gzip implementation. I have tested
> this to death with and without buffering/gzip in the past.
>
> I have found that gzip works substantially better with buffered streams over
> a 'real' network, testing locally is unlikely to reveal massive gains on
> small data - The gzip streams have a 4k buffer, buffered streams an 8k.
>
> The difference in IO code between OpenEJB and RMIIO for this sake is
> trivial, so I have made an assumption (educated guess if you like) that this
> can only be of benefit.
>
> One RMIIO cycling 50mb random binary write test I have is along the lines
> of:
>
> client - buffer - gzip - network - buffer - gunzip - server - blob = 5sec
> av.
>
> client - buffer - network - buffer - server - blob = 7sec av.
>
> And just tested without buffering...
> client - gzip - network - gunzip - server - blob = 12sec av.
>
> So over a day quite a lot!
>
> Andy.
>
>
>
> --
> View this message in context: http://openejb.979440.n4.nabble.com/Fwd-svn-commit-r1415122-in-openejb-trunk-openejb-server-openejb-ejbd-src-main-java-org-apache-openeja-tp4658985p4658989.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Fwd: svn commit: r1415122 - in /openejb/trunk/openejb/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd: EjbDaemon.java KeepAliveServer.java

Posted by AndyG <an...@orprovision.com>.
Hi Romain,

I use RMIIO extensively for large binary transfer that I modified with an
almost identical fix to your flushable gzip implementation. I have tested
this to death with and without buffering/gzip in the past.

I have found that gzip works substantially better with buffered streams over
a 'real' network, testing locally is unlikely to reveal massive gains on
small data - The gzip streams have a 4k buffer, buffered streams an 8k.

The difference in IO code between OpenEJB and RMIIO for this sake is
trivial, so I have made an assumption (educated guess if you like) that this
can only be of benefit.

One RMIIO cycling 50mb random binary write test I have is along the lines
of:

client - buffer - gzip - network - buffer - gunzip - server - blob = 5sec
av.

client - buffer - network - buffer - server - blob = 7sec av.

And just tested without buffering...
client - gzip - network - gunzip - server - blob = 12sec av.

So over a day quite a lot!

Andy.



--
View this message in context: http://openejb.979440.n4.nabble.com/Fwd-svn-commit-r1415122-in-openejb-trunk-openejb-server-openejb-ejbd-src-main-java-org-apache-openeja-tp4658985p4658989.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.