Skip to content

QGIS3 QGIS Server code sprint Notes

Jacolin edited this page Dec 13, 2016 · 19 revisions

QGIS code sprint (almost) live!

14 developpers and contributors to QGIS and QGIS servers met in city of Lyon in France the 12 th and 13th december 2016 Brainstorm over QGIS server architecture

Common view

Just after coffee, a common brainstorming to share the global vision over QGIS server :

Day 1

![Alt text]QGIS brainstorm

Work being done by each one:

Oslandia (Hugo Mercier)

QEP 74 from Martin Dobias over Qgis layer registry refactoring will bring multiple project support. Oslandia would like to work on a prototype

  • get rid of the old map renderer (https://github.com/qgis/QGIS/pull/3809 by Paul Blottiere)
  • avoid too much gui dependencies
  • prototype
  • finish pull request
  • work on SLD FE
  • Functionnality Matrix

3 Liz (David Marteau)

  • architecture: NGINX + QGIS server cluster

    • deploy cluster of fcgi apps sucks
    • hacking around plugins to get syslog logging
    • Server cache invalidation not working over NTFS (inotify problem).
  • RABBITMQ + qgis server cluster

    • fcgi not applicable
    • Embedding is very basic (no control over I/O)
  • Qgis server Services as pllugins like providers

  • python loader

  • response object

    • should be python compliant
    • enable streaming
    • do not presume HTTP being the protocol response format
    • Provide I/O falicities
  • implemented: abstract interfaces / service registry / native loader

  • Work in Progress

    • python loader
    • Tests
    • Write Services

See https://github.com/dmarteau/QGIS

Heavy discussion on plugin architecture

boundless Alessandro Passotti request for an external cache to allow scaling / load balancing system each qgis instance should be able to centralize cache (qgis server node farm use case) to avoid cache duplication

Discussion,"do we need a project cache? " why not just export a binary blob when saving qgs project? No more xml parsing then.

Camptocamp

  • Performance test for QGIS 2 and QGIS 3
  • Add environment variables to manage configuration of test (server, warm up, users, etc.)

Tracking of what is done during Code sprint

group 1

group 2

  1. https://github.com/qgis/QGIS/pull/3809 - replace QgsMapRenderer has been merged. During this work Paul noticed that multithread rendering on server side worked, but that all tests failed. One hypothesis is that tests are not compatible with multithread rendering. If that's verified, we could expect huge performance improvements on rendering! A good candidate for day-2 work.

  2. Performance benchmark framework improvements

Day 2

Second day started with following points for each:

3 LIZ

  • work on backport recent compliance server OGC CITE improvements to 2.18 and 2.14 (original work from Marco)
  • work on implementing modular approach in server

Oslandia

  • testing multiprocessing rendering branch
  • architecture refactor
  • play CITE compliance tests and check New documentation

Boundless (ElPaso)

  • Server Doc

Still heavy discussion about caching of projects. Is a cache really mandatory (again)?

Camptocamp

  • Performance tests:
    • Test QGIS 3 and QGIS 2 (results)
    • Prepare Multithreadin settings in QGIS3 config
  • QGIS Server Optimization from performance test results
  • Diagrame legends improvment
  • Processing: QEP#84
Clone this wiki locally