Skip to content

GSIP 208

taba90 edited this page Jan 11, 2022 · 8 revisions

GSIP 205 - Add a Fixed Presentation Mode to Layer Dimension Configuration

Overview

This is a proposal for adding a the possibility to configure a fixed list or interval of Time/Elevation dimensions on the LayerConfiguration page. The new functionality will give the possibility to improve the performance of GetCapabilities request when dealing with large dataset: multiple queries are indeed performed to the datasource to request the unique values of time for presentation mode LIST and to compute the MAX and MIN for INTERVAL modes. Allowing to specify a fixed date range or list of values will cause a performance improvement for all the GetCapabilities request dealing with the Dimension values.

Proposed By

  • Marco Volpini

Assigned to Release

This proposal is for:

  • Geoserver 2.27-RC

State

  • Under Discussion
  • In Progress
  • Completed
  • Rejected
  • Deferred

Motivation

The new feature will cause a singificant performance improvement for all the GetCapabilities requests dealing with the dimension informations, expecially in case of large dataset since no datasource querying will be needed to retrieve min/max or unique values.

Proposal

Configuration Changes

We propose to add a new property as a String to hold the fixed dimension value to the DimensionInfo interface. New interface methods will have a default implementation to not break eventually existing implementations.

public class DimensionInfo {
   ...

   /**
     * Returns a string specifying a list of comma separated fixed time or elevation values.
     * @return
     */
    default String getFixedDimensionValue(){
        return null;
    }

    /**
     * Allows setting a list of fixed dimension values as a list of comma separated fixed time or elevation values.
     */
    default void setFixedDimensionValue(String fixedDimensionValue){}
}

The two method will then be implemented in the ResourceInfoImpland in the VectorCustomDimensionEntryclasses.

The new property will be represented on the UI from a TextArea hidden by default that can be optionally used to provide fixed dimensions as a list of comma separated values for all the three different presentation mode List, Continuos interval and Interval and Resolution.

Mock of fixed Dimension value

The string passed will be validated to be a valid time or elevation value and as well to be consistent with the selected presentation mode. It will be clearly documented that no validation will be applied to check that the fixed dimension string matches the actual data and that the user should be the one taking care of providing/keeping a list/interval of values aligned with the ones in the dataset.

Moreover changes in the following classes are foreseen:

Backwards Compatibility

Even if a core configuration object will be modified, the new configuration property will be optional, thus the modification is addittive and is backward compatible.

Feedback

Voting

Project Steering Committee:

  • Alessio Fabiani:
  • Andrea Aime:
  • Ian Turton:
  • Jody Garnett:
  • Jukka Rahkonen:
  • Kevin Smith:
  • Simone Giannecchini:
  • Torben Barsballe:
  • Nuno Oliveira:

Links

  • [Jira Ticket]
  • [pull request]