Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve WFS-T interface to support mass insert or updates to split into chunks #743

Open
tfr42 opened this issue Aug 23, 2016 · 3 comments
Labels
contributions welcome asking for contribution (time and money sponsor) feature feature funding welcome financial sponsoring wanted (money) hard WFS deegree Web Feature Service
Milestone

Comments

@tfr42
Copy link
Member

tfr42 commented Aug 23, 2016

Currently a WFS-T Insert operation requires that a <FeatureCollection/> is self contained and all inner references between features are resolvable.
In case of processing big (> 1GB) WFS-T Insert requests the JVM may run into OoM error (depending on the max heap size settings of the JVM).
Support for mass data inserts is required.

@tfr42 tfr42 added enhancement enhancement or improvement contributions welcome asking for contribution (time and money sponsor) hard funding welcome financial sponsoring wanted (money) labels Aug 23, 2016
@tfr42
Copy link
Member Author

tfr42 commented Aug 9, 2017

Workarounds and known limits for import of big GML files:

  • When using the WFS-T INSERT action the following points shall be considered:
  • When using the FeatureStore Loader the same hints as for the WFS-T INSERT applies
  • When you want to build your own client using deegrees FeatureStore API you have to provide
    • a deegree workspace with a valid SQLFeatureStore configuration
    • you can use the deegree CLI tool to generate the SQL DDL scripts for the underlying database (PostgreSQL/PostGIS and Oracle DBMS are supported) and the SQLFeatureStore configuration files (BLOB and relational mapping is supported)
  • Writing data directly into the database you have to create the database schema
    • you can use the deegree CLI tool to generate the SQL DDL scripts for the underlying database (PostgreSQL/PostGIS and Oracle DBMS are supported)
    • for this approach the relational mapping is recommended, but using BLOB modus works as long as the tool you are using is able to insert GML objects into the database.

@tfr42 tfr42 added feature feature and removed enhancement enhancement or improvement labels Aug 17, 2017
@tfr42
Copy link
Member Author

tfr42 commented Aug 17, 2017

Instead of enhancing the WFS-T interface we now favour to extend the deegree-cli-utility with improved capabilities of the FeatureStore Loader.

@tfr42
Copy link
Member Author

tfr42 commented Nov 19, 2017

Current findings and recommendations when importing large GML files (>500 MB):

  • use deegree 3.4-RC5 or higher
  • enable WFS-T with <DisabledResources> for code list values (see PR Enhanced deegree WFS by disabling resolve of external features #787)
  • use Oracle JDK 8 and configure your JVM with -server -Xms<N>g -Xmx<N>g -Xmn<M>g -XX:MaxMetaspaceSize=256m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
    • where N is about factor 8 of the size of the GML file (size on disk)
    • where M is about factor 0.4 of N
    • for example you want to import GML file with a size of 1.5 GB you want to set the JVM options for the heap size to -Xms12g -Xmx12g -Xmn4g
  • and ensure that the server provides at least 4 CPU/cores (required for parallel GC) and 16 GB RAM (or for larger files than 1.5 GB provide N+2GB RAM).

@tfr42 tfr42 added this to the 3.4.1 milestone Nov 24, 2017
@lgoltz lgoltz added the WFS deegree Web Feature Service label Jan 8, 2018
@tfr42 tfr42 modified the milestones: 3.4.1, Backlog Apr 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contributions welcome asking for contribution (time and money sponsor) feature feature funding welcome financial sponsoring wanted (money) hard WFS deegree Web Feature Service
Projects
None yet
Development

No branches or pull requests

2 participants