[QGIS-Developer] QgsDataProvider and caching: any defined behaviour?

Richard Duivenvoorde rdmailings at duif.net
Mon Nov 6 02:05:37 PST 2017


Working with a rather large dataset (16M timebased points), I have 
trouble working with this in QGIS, using both the Postgis-provider OR 
the WFS-provider.

As data is properly indexed, retrieving a selected area is fine.

BUT as soon as you try to use the attribute table, I-tool or for example 
the TimeManager, QGIS stalls.

I think(!) because apparently both providers are requesting all data 
again from their datasource, sometimes even ignoring the current extent 
(WFS).

While, it seems more appropriate to 'just use what you already have': 
the dataprovider/QGIS already has all features (both geom + attributes 
in case of WFS for example), so WHY should it request all data again 
(data-freshness?)?

Are others having this problems too?

Could adding a 'Caching-option' for the QgsDataProvider be a 
reasonable/viable option:
- if 'data caching' is enabled, the data will be retrieved only once 
(per extent probably). So showing the Attribute table, I-tool info, or 
using TimeManager/Query should be relatively easy/fast as the features 
are locally (or in memory) cached.
- as soon as you want 'fresh' data you disable the caching temporarily, 
and new data will be requested (as it is doing now apparently).

Or am I missing something (I see there is an option for attributetable 
caching...)?

Not sure about other countries, but here in NL governmental institutes 
start serving huge dataset more and more, either as WMS/WCS/WFS 
services, or more and more as REST/GeoJSON services.

Anybody has some insights ideas about this?

Regards,

Richard Duivenvoorde


More information about the QGIS-Developer mailing list