ESPRI-Mod / synda

ESGF Downloader (this is a deprecated repository, the tool has now moved to https://github.com/ESGF/esgf-download)
https://espri-mod.github.io/synda/
21 stars 11 forks source link

URL Length (3500) #124

Closed shismo closed 5 years ago

shismo commented 5 years ago

Hi,

I noticed that the URL length limit is 3500 bytes by looking at sdt/bin/sdremotequtils.py and sdt/bin/sdtypes.py. In both files, there are:

if len(url)>3500: # we limit buffer size as apache server doesnt support more than 4000 chars for HTTP GET buffer

We have users complaining this limit is not good enough as they're querying larger datasets in a single request.

The default Apache HTTPD URL limit is 8190 bytes (http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestline); and the default Apache Tomcat URL limit is 8192 bytes (https://tomcat.apache.org/tomcat-8.0-doc/config/http.html).

So, is there any plan to increase this limit from 3500 to let's say 8000 bytes?

Thank you.

AtefBN commented 5 years ago

Hi @shismo I agree, we can definitely experiment with increasing this limit. However, we must keep in mind that the increase will not only affect the apache solr but also Synda when processing the query return which can get heavier as the URL gets more loaded. What I suggest, and I will make sure to implement this asap, is leaving the default value of the limit at 3500 bytes and create an external value in sdt.conf that can be configured per user's wishes. Btw, what version of synda are you running ? And are you guys aware there's a new release of Synda on conda?

AtefBN commented 5 years ago

I have a new build on IPSL anaconda channel with a fix consisting as mentionned earlier today of external configuration in sdt.conf setting for the url max buffer size, the default value I left it at 3500 but feel free to experiment with the value ;) You can read the value from synda to make sure you're on the right settings by invoking: synda config get -n url_max_buffer_size Feel free to re-open the issue if this is not satisfactory :+1: