I have done some experiments like this in the past and most query strings are getting longer rather than shorter. I have also played with some domain specific compression and that looks promising. But I haven't finished it yet.

Florian


For very long and probably repetitive query strings, which should
compress well, you could use a representation based on gzip + base64
of the query string.

Florent

On Fri, Jun 7, 2013 at 11:03 AM, Florian Müller <[email protected]> wrote:
Hi Mark,

The specification does not explicitly say that the entire query string must
be in the header.
The specification says for the AtomPub binding:
"Upon submission (creation) of a query document, a response must be returned
with a Location header representing the feed for that query."

That is, a client should be able to repeat the query by just calling the URL in Location header (via HTTP GET). That means the URL must contain all
necessary information about this query.
There are two approaches to implement that. OpenCMIS uses a stateless approach and puts everything into the URL, which could be become very long. An alternative approach would be to store the query on the server, assign the query statement an id, and return an URL with that id. But that would require some sort of storage on the server side and opens up the question
how long do you want to maintain these ids.


- Florian



Hello

I have question which appears to have been raised some time ago:



http://mail-archives.apache.org/mod_mbox/chemistry-dev/201106.mbox/%3C4DF8D70D.7000200%40alfresco.com%3E

In that thread, there is reference made to this:



http://tomcat.apache.org/tomcat-6.0-doc/config/http.html#Standard_Implementation
-> maxHttpHeaderSize

In the thread, it is also mentioned that:

*The CMIS specification says that the server has to add a Location
header to its query response
that is "representing the feed for that query". That basically means
that the query is repeated
in the HTTP header*.
The default header buffer size in Tomcat 6 and 7 is 8k. If you remove
all other headers you
end up with about 7884 byte -- plus/minus a few bytes.
You can increase header buffer size in Tomcat.
in the HTTP header.
The default header buffer size in Tomcat 6 and 7 is 8k. If you remove
all other headers you
end up with about 7884 byte -- plus/minus a few bytes.
You can increase header buffer size in Tomcat.

Just curious - is this something in the specification that can only be
addressed by placing the entire query String in the header?

We have a use case for which the WHERE IN( ) clause could contain up to 1000 or more 16-digit String values inside the WHERE acme:userID IN( value1, value2, value3....) part of the query - the acme:employeeID is a
custom metadata property of the implemented content model.

FWIW... we use:

OpenCMIS 0.8.0
Alfresco Enterprise 4.1.3


Thanks

Mark
* *



Reply via email to