chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Florian Müller <f...@apache.org>
Subject Re: dotCMIS sendChunked very slow
Date Wed, 11 Nov 2015 17:25:16 GMT
Hi AJ,

The whole content is buffered on the client in memory before sending if 
you disable chunking. That works well for small documents but may fail 
for large ones. You can run out of memory.
Chunking adds some overhead but not that much.

Have you tried wrapping the content stream that you provide to DotCMIS 
into a BufferedStream (try big buffer sizes)? That may reduce the number 
of chunks and increase the performance.

If your content is really big, you may want to consider creating an 
empty document first and then upload the content afterwards with 
SetContentStream. When the content is sent with CreateDocument() it must 
be Base64 encoded. SetContentStream() can send the plain bytes. That can 
make a big performance difference.

If you server also understands the CMIS Browser Binding, you can try 
PortCMIS [1]. There is no official release yet, but the Browser Binding 
implementation is working and faster than the AtomPub implementation of 
DotCMIS.


- Florian


[1] https://chemistry.apache.org/dotnet/portcmis.html



> We have noticed some significant performance problems storing large
> content to our repository.
> 
> After wading through some of the dotCMIS code we tested setting the
> HttpWebRequest's sendChunked = false (as counter intuitive as it may
> seem).
> 
> Setting this to false increased content transfer upload speeds by
> roughly 300% in all tests we have tried!
> 
> We are struggling with this scenario now.  It seems entirely backwards
> to disable chunked encoding, but we can't argue with the performance
> numbers.  We are testing against a Tomcat 7 based CMIS
> provider/service (using the HTTP 1.1 NIO connector).  Inserting
> fiddler's proxy seems to automatically revert the upload to HTTP 1.0
> standard - no chunking, so it's showing us the faster performance.
> Wireshark we are trying to understand better.
> 
> Just wondering if anyone else has tested this or has any different
> results on different CMIS providers?
> 
> Are there any known tweaks on the Tomcat side to better facilitate the
> chunked transfer uploads?
> 
> What are the impacts of disabling chunking at the dotCMIS client side?
> 
> Thanks for any insight.
> 
> -AJ


Mime
View raw message