Changes between Version 2 and Version 3 of MapGuideRfc123


Ignore:
Timestamp:
10/25/11 07:10:43 (13 years ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc123

    v2 v3  
    7474
    7575{{{
    76 primary_[PrimaryClassName].[PropertyName] AS [PropertyName]
     76primary.[PropertyName] AS [PropertyName]
    7777}}}
    7878
    79 primary_PrimaryClassName will be specified as the alias for the FdoIExtendedSelect::SetAlias() method
     79primary will be specified as the alias for the FdoIExtendedSelect::SetAlias() method
    8080
    8181Properties from the secondary class will be specified as the following FDO computed property:
    8282
    8383{{{
    84 secondary_[SecondaryClassName].[PropertyName] AS [Prefix][PropertyName]
     84secondary.[PropertyName] AS [Prefix][PropertyName]
    8585}}}
    8686
    87 secondary_SecondaryClassName will be used as the alias for the join criteria that is added to the FdoIExtendedSelect's join criteria collection.
     87secondary will be used as the alias for the join criteria that is added to the FdoIExtendedSelect's join criteria collection.
    8888
    8989Because the Extended Class Definition in a feature source does not explicity specify the list of properties from the secondary class to include, we include '''all properties''' from any secondary class that we are joining on by default.
     
    105105Iteration logic for the normal case (not 1:1), is simply to pass over to the underlying reader's ReadNext() method. Tracking of identity property values is not required for this case.
    106106
    107 Though not reflective of what the final implementation may be performance-wise, support for FDO joins has already been implemented in [http://mg-desktop.googlecode.com mg-desktop] and the benefits there are clear. The performance times for a 17000 feature by 16000 feature join (of [http://code.google.com/p/mg-desktop/source/browse/DesktopTestData/ParcelsJoinTest.sqlite this dataset]) are outlined below.
     107Performance-wise, support for FDO joins has already been implemented in [http://mg-desktop.googlecode.com mg-desktop] and the benefits there are clear. The performance times for a 17000 feature by 16000 feature join (of [http://code.google.com/p/mg-desktop/source/browse/DesktopTestData/ParcelsJoinTest.sqlite this dataset]) are outlined below.
    108108
    109109|| Test Case              || SDF    || SQLite ||
     
    113113|| Left Outer Join (1:1)  || 320.9s || 4.6s   ||
    114114
     115As can be seen from this table, FDO joins performed on average, '''100 times''' faster than the traditional feature join counterpart! The SQLite provider implements the FDO join APIs. The SDF provider does not and is delegated to the GwsQueryEngine.
    115116
    116 The SQLite provider implements the FDO join APIs. The SDF provider does not and is delegated to the GwsQueryEngine
    117 
    118 We don't expect the same numbers in MapGuide due to server/web tier overhead, but this should give a clear indication of the orders of magnitude in performance gains if this RFC is implemented.
     117In the current implementation for the MapGuide Server, the SQLite numbers are even faster due to connection pooling and other caching mechanisms that are absent from the mg-desktop implementation.
    119118
    120119=== Aggregates ===