[gdal-dev] OGR slow with network files on Windows
Even Rouault
even.rouault at mines-paris.org
Sun Apr 28 12:26:46 PDT 2013
Le dimanche 28 avril 2013 20:40:12, Radim Blazek a écrit :
> Hello,
> I am working on #6448 QGIS issue - Extremely slow shapefile reading
> over network. You can find my latest observations in
> http://hub.qgis.org/issues/6448#note-19
>
> Long story short, OGR does not buffer I/O and Windows does not always
> cache network files.
>
> I have few questions for OGR developers:
> 1. Are there my OGR related notes in the issue comment correct?
Yes. One observation about MITAB not benefiting from VSI_CACHE is that MITAB
uses the standard VSI API (which is just a thin wrapper around C standard
FILE* API), whereas the Shapefile driver uses the VSI Virtual File API. And
VSICache is a virtual file system handled by the VSI Virtual File API.
> 2. Would it be possible to implement buffering in VSI?
For the sake of exhaustivity, I should mention there's a
VSIBufferedReaderHandle object that implements *backwards* buffering. It is
currently used by the /vsigzip/ layer to allow backward reading of small
amounts (gzip streams aren't naturaly seekable. /vsigzip/ has some extension
support for seeking, but this is still rather slow, hence
VSIBufferedReaderHandle ) .
> 3. Is it VSI cache (if VSI_CACHE_SIZE is set to some small number)
> suitable to be used as buffer?
Yes, I think so.
> 4. Would it be possible to implement buffering or to extend VSI cache
> for writing (to allow editing)?
Yes, I don't see any reason why VSICache couldn't be extended for writing. It
should be just a matter of coding it.
> 5. Have you considered to increase CHUNK_SIZE (currently 32768)? Where
> does that size comes from? I saw that XP is using 32768 but from what
> I have read, SMB1 block size limit was 64K but SMB2 should not have
> that limit. E.g. gvSIG 2.0.0 is using via its BigByteBuffer2 class
> block size 61440.
I have not a particular informed opinion on this. Did you try experimenting
increasing CHUNK_SIZE to see if this improves performance ?
Even
More information about the gdal-dev
mailing list