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