Hi List, I've been noticing heavy IO/application lockup when serving large shapefiles with geoserver 2.2.1/geotools 8.3 under very heavy load simulated with JMeter.
If the "Create spatial index if missing/outdated" option is left enabled, the
whole system gets bogged down checking if indices were up-to-date. Disabling
this option speeds things up massively up but prevents the index being used
altogether for WFS getfeature queries filtering by featureid, so these queries
take minutes instead of seconds to return.
Tracing the checkbox through the system, I ended up in the GeoTools project in
the ShapeFileDataStoreFactory.java file. I can see the checkbox value being
used as a switch to enable/disable using the shapefile index:
if (createIndex) {
store = new IndexedShapefileDataStore(url, namespace,
useMemoryMappedBuffer, cacheMemoryMaps, true, IndexType.QIX,
dbfCharset);
} else {
store = new ShapefileDataStore(url, namespace,
useMemoryMappedBuffer, cacheMemoryMaps, dbfCharset);
}
I'd really like to disable index updating in my production environment but I
also want to be able to use shapefile indexes. I've developed a rough and
ready git patch against geotools 8.3 to allow this (attached). The patch
creates a new variable to always enable the index for local files. I could
rework this to use the param class and be set in the map that gets sent to
createNewDataStore() Is there any interest in this?
For GeoServer, the current checkbox label is a bit misleading, it took me a
while to figure out why the indexes weren't being used. Perhaps it could be
changed to say something like "enable spatial index and update if
missing/outdate" or split into two options if the GeoTools code is changed to
support it:
* Enable spatial index
* Create spatial index if missing/outdated
Would it possible to get this fix or something similar into GeoServer and
Geotools?
Thanks,
Geoff
shapefile_index_switch.patch
Description: shapefile_index_switch.patch
------------------------------------------------------------------------------ Monitor your physical, virtual and cloud infrastructure from a single web console. Get in-depth insight into apps, servers, databases, vmware, SAP, cloud infrastructure, etc. Download 30-day Free Trial. Pricing starts from $795 for 25 servers or applications! http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________ Geoserver-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
