You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by David Radio <da...@gmail.com> on 2021/09/29 17:46:35 UTC

CMIS REST Update Properties Performance Tweaks

Hello!

Thank you in advance for your time and attention to my questions.

I need to update one property on about 4 million documents and I want to do
it in the most performant way possible.

I am aware that it is very important to be reusing the session object and
that there is a bulk update option that only requires one trip to the
server to update multiple docs.

It does seem that a round trip to the server is required to instantiate a
document that will be getting a property update.

Is it possible to instantiate that document without a round trip and just a
guid?

Are there any round trips I can skip that I haven’t mentioned above?

Thank You!
Dave

Re: CMIS REST Update Properties Performance Tweaks

Posted by Florian Müller <fm...@apache.org>.
Hi Dave,

there are at least two options:


1. You can use Session.queryObjects() [1] to get many, if not all, 
objects with a few calls (or even with one call).
2. If you really want to avoid a round trip, you can use the low-level 
API [2]. It might not be a pleasant experience, but it very close to the 
wire protocol.

- Florian


[1] 
https://chemistry.apache.org/java/javadoc/org/apache/chemistry/opencmis/client/api/Session.html#queryObjects-java.lang.String-java.lang.String-boolean-org.apache.chemistry.opencmis.client.api.OperationContext-

[2] Session.getBinding().getObjectService().bulkUpdateProperties() -> 
https://chemistry.apache.org/java/javadoc/org/apache/chemistry/opencmis/commons/spi/ObjectService.html#bulkUpdateProperties-java.lang.String-java.util.List-org.apache.chemistry.opencmis.commons.data.Properties-java.util.List-java.util.List-org.apache.chemistry.opencmis.commons.data.ExtensionsData-



> Hello!
>
> Thank you in advance for your time and attention to my questions.
>
> I need to update one property on about 4 million documents and I want to do
> it in the most performant way possible.
>
> I am aware that it is very important to be reusing the session object and
> that there is a bulk update option that only requires one trip to the
> server to update multiple docs.
>
> It does seem that a round trip to the server is required to instantiate a
> document that will be getting a property update.
>
> Is it possible to instantiate that document without a round trip and just a
> guid?
>
> Are there any round trips I can skip that I haven’t mentioned above?
>
> Thank You!
> Dave
>