Hi,
I'm looking into the application schema support and I'm wondering about the
differences between using feature chaining vs using denormalized tables/views
to create complex features.

As far as I understand feature chaining is sort of a more natural model but has
severe performance issues (N+1 query problem) that appear not to make it
viable for large data sets (and large results).

>From the documentation it is clear that the denormalized approach works fine
for multivalued feature attributes but I have difficulties
understanding exactly when does
it start to break and forces the user to switch to chaining.

Of course there is the issue of managing a large ugly table. But I'm wondering,
can it handle the case of a feature with a collection of sub-features?
What if the sub-features have in turn multi valued attributes or attributes that
are in turn collections?
Also, how does one state the identifier of the sub-features, assuming there
is no interest in publishing them directly? For what I can see it may
be possible
to use a client property "gml:id", but will it be recognized as the
way to perform
the grouping?
(sorry for the apparently silly questions, I'm preparing to use app-schema but
atm I still don't have the input data handy to make tests)

As a final note, is there any plan to try alternative strategies to improve the
feature chaining approach?
For example, joining could be performed by first getting just the list
of fids of the
top features, and then issuing a query to the sub-feature type using those ids
(and ordering the result by that same field) turning the N+1 problem into a
1(ids)+1(topmost data)+1(subfeatures) problem instead.
In case there is filtering on the subfeatures the thing could be
reversed, get the
list of top level feature ids from the sub-features applying the filter and then
start back from the previous approach adding the ids in the main data filter.
Of course database level joining would be preferrable, but it would not spare
us from having generic (and possibly decently performing) strategies to handle
the heterogeneous source data case.

Cheers
Andrea


-----------------------------------------------------
Ing. Andrea Aime
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy

phone: +39 0584962313
fax:     +39 0584962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-----------------------------------------------------

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to