Skip to content

gpkg / gdal parallel performance less than sequential #286

@roelarents

Description

@roelarents

When serving tiles from a geopackage (~85 GiB, ~20 layers) I see that the response times are drastically lower when requests are made in parallel. E.g. when I create test requests for 6 tiles in parallel the response time is ~8000ms versus ~300ms when I create them one after another.

I've tried looking at the source code (I'm a Rust rookie) but I couldn't find a hint yet. I tried. I've tried supplying the NOLOCK open option. Thinking that it might be the overhead of a locked GPKG that is trying to be opened by multiple clients at the same time. Even though it should by possible to open an sqlite db concurrently. That helped a little to get it to ~7000 ms.

Does anyone have an idea where the delay in response times might originate?

Edit: connection is already opened read-only by default. Opening shared would be unsafe.
Edit2: Made an image with gdal 3.4.2 and t-rex to try out NOLOCK.
Edit3: The same effect happens with a FlatGeoBuf datasource.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions