Skip to content

WFS-T is slow for small batches (e.g < 1000) #441

@rwgdrummer

Description

@rwgdrummer

Need to a way to buffer writes.
Up to this point, all additions through a WFS transaction were written to the Data Store upon arrival. They were marked with an additional visibility using the transaction ID. On commit, the transaction ID is removed. This process is not optimal. The reason for the approach is easily support queries that occur during the transaction and to insure the memory foot-print within GeoServer is small. Buffering additions can lead to memory issues if the WFS transactions are extremely large.

To improve performance, the system maintains a buffer of additions.
The buffer is flushed to the store in three cases : (1) fixed size of buffer is exceeded, (2) reads are attempted mid-transaction (not a WFS-T supported use case) and (3) upon commit.
When commit occurs, the buffered additions are written without the transaction ID in a batch, more than doubling the performance.

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