[Mapserver-dev] Optimizing for ArcSDE
Paul Ramsey
pramsey at refractions.net
Tue Oct 19 15:51:32 EDT 2004
Frank Warmerdam wrote:
>
>> We could pool the streams to save this cost. Since we only ever
>> use one stream per connection, would it make sense to pool streams
>> together with connections? I was thinking we could create a new
>> structure with both the sde->connection, and the stream, and we
>> could pass this to the connection pooling API. The
>> msSDECloseConnection() callback function could be modified to close
>> the stream, then the connection.
>>
>> Does anyone have any suggestions? Would this approach work to save
>> us from the stream overhead? Do we even need a solution this
>> complex, or is there something simple that could alleviate this
>> overhead?
>>
>> Independent of streams, we are incurring about a 20ms cost in
>> getting layer info. Would it make sense to cache the layer infos?
>> The layer info probably shouldn't be cached with the connections.
>
>
> Brock,
>
> My take is that for SDE the "connection" we pool should include the
> stream and possibly the layer info. To make this work we will need
> to do some fiddling to ensure the identifier (normally the CONNECTION
> string) is unique for different versions, streams and/for layers.
We cannot cache layerinfo together with stream/connection, because that
would imply one cached connection per layer (lots!). We will have to
cache layerinfo separately (connectionstring + version + layername as key?)
We can cache stream/connection together, and the "key" should be the
connection string + the version string. That way we can retain Howard's
version access ideas while still doing stream caching.
> Of course, I don't know much about SDE, so keep that in mind.
Yeah, reading the function API, this looks doable, but I don't know
about the potential dangers of reusing streams over and over. We'll
have to read up more on the stream management functions.
> Best regards,
More information about the mapserver-dev
mailing list