MS RFC 22a: Feature cache for long running processes and
query processing (update)
Stephen Woodbridge
woodbri at SWOODBRIDGE.COM
Wed Jun 27 15:03:16 EDT 2007
Frank, Daniel,
Is this a case where we need to separate the machinery from the application?
What I mean by this is that having a good abstract machinery that will
be flexible and to solve a variety of problems is a good thing. A second
issue is solve specific problems with the machinery.
We do not have to leave that up to the user to solve, we can build that
into the basic internal structures that implement the mapfile. If we
know a layer will be used for both rendering and querying, then we build
the internal representation using this machinery.
To the extent that we also expose it to users is a separate question and
one that should probably protect the novice from constructing poorly
or invalidly nested layers, but should not prevent power users from
taking advantage of it.
Simplicity is nice, but the only way to get that is to start pruning
code. The more developers, the more code, the more solutions we tackle
all add complexity to the product and it takes a lot of effort for
everyone to stay on top of things.
I'm throwing this out as food for thought and not advocating a direction
as the discussion sounds like it adds some interesting capabilities, but
I have not had time to more than skim over the rfc.
-Steve W
Frank Warmerdam wrote:
> Daniel Morissette wrote:
>> If I understood the RFC correctly, the proposed solution to this
>> problem will be to embed all layers inside a CACHE wrapper layer,
>> correct? So by default all postgis/oracle/sde/etc connections will
>> still suffer from the double-pass query problem unless we add the
>> CACHE layer around them, right? This adds an additional thing that
>> users needs to be aware of in order to tune their app.
>
> Daniel,
>
> I share this concern. Essentially that we have put the onus
> on the user to setup a cache layer to get queries working
> at a reasonable speed instead of treating this internally
> as I had originally proposed.
>
>> - What does nesting do if the outer layer is not of connection type
>> cache, layerfilter or geomtrans? For instance what happens if I have a
>> layer of type point (shapefile) which contains two nested layers of
>> type point?
>
> I believe nested layers that are not addressed by their parent or some
> other layer would never be used for anything, wouldn't show up in
> WMS layer lists, etc.
>
>> - With respect to STYLEITEM AUTO the plan is to cache the class
>> objects for each shape? Won't that be expensive for large layers?
>
> I had this concern too, though it isn't clear to me what else could
> be done. I trust we will only pay this class object penalty when
> styleitem auto is in effect.
>
>> I feel bad for raising all those issues since you seem to have put
>> quite a bit of hard work on this, and would need to put even more work
>> to implement it. It also seems that everybody else likes the proposal,
>> so hopefully it's just me who's not "getting it"... and in this case
>> please show me the light. :)
>
> My conservative side feels very much the same. The complexity frightens
> me, and yet I don't want to be too negative after all the effort Tamas
> has put in.
>
> Best regards,
More information about the mapserver-dev
mailing list