Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO-Net4j] Compression of Net4j/CDO streams
[CDO-Net4j] Compression of Net4j/CDO streams [message #991500] Wed, 19 December 2012 14:43 Go to next message
Guido Scalise is currently offline Guido Scalise
Messages: 16
Registered: April 2012
Junior Member
Hi!
is it possible to add compression to the Net4j TCP connector? We are trying to work with a repository, accessing it over a 20Mbit and 50Mbit VPNs and the performance is not as good as we expected.

We've tweaked the view prefetch options and the session collection retrieval policy and the performance improved a bit, but we'd like to gain more performance, and being able to compress the Net4j stream seems like the next logical step.

Eike, do you see any drawbacks on this? I was thinking of a *very* lightweight stream compressor so as not to overload the server CPU with (CPU intensive) stream compression tasks, but maybe you've already implemented this in some way.

Regards,
Guido
Re: [CDO-Net4j] Compression of Net4j/CDO streams [message #991825 is a reply to message #991500] Thu, 20 December 2012 09:28 Go to previous message
Eike Stepper is currently offline Eike Stepper
Messages: 5522
Registered: July 2009
Senior Member
Am 19.12.2012 15:43, schrieb Guido Scalise:
> Hi!
> is it possible to add compression to the Net4j TCP connector? We are trying to work with a repository, accessing it
> over a 20Mbit and 50Mbit VPNs and the performance is not as good as we expected.
> We've tweaked the view prefetch options and the session collection retrieval policy and the performance improved a
> bit, but we'd like to gain more performance, and being able to compress the Net4j stream seems like the next logical
> step.
>
> Eike, do you see any drawbacks on this? I was thinking of a *very* lightweight stream compressor so as not to
> overload the server CPU with (CPU intensive) stream compression tasks, but maybe you've already implemented this in
> some way.
You can add IStreamWrappers to the protocol instances that are created per CDOSession:

org.eclipse.net4j.signal.ISignalProtocol.setStreamWrapper(IStreamWrapper)
org.eclipse.net4j.signal.ISignalProtocol.addStreamWrapper(IStreamWrapper)

A simple example is in SignalStreamWrappingTest.

These components are IContainers that emit IContainerEvents when new elements are added:

IAcceptor
IConnector

IConnectors (both on client and server side) have IChannels and an IChannel has an ISignalProtocol

Let me know if you need more hints ;-)

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
Previous Topic:@ForeignKey annotation not working in all cases
Next Topic:[CDO] Using the DB Mapping to populate queries
Goto Forum:
  


Current Time: Tue Sep 16 23:38:11 GMT 2014

Powered by FUDForum. Page generated in 0.01790 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software