English

Bug: For every client request to the geodatabase, a query to detect the time_last_modified is executed against the sde.lineages_modified table

Description

Every time a client application performs a query against the geodatabase working with versioned feature or object classes (map display, selection, identify, custom ArcObjects, ArcGIS Server applications, etc.), ArcSDE executes a query against the sde.lineages_modified table to detect if the lineage being accessed has been recently modified.

These additional queries based on the number of users and the frequency of executions could have a negative impact on performance and scalability.

Cause

The ArcSDE gsrvr process maintains a cache of information about states and lineages that the client application has referenced. The intention of the cache is to maintain properties of the states and lineages locally within the client application process in order to avoid querying the database directly each time the information is required.

The frequency and when the cache queries the database to obtain the latest representation of an object's properties is dependent on two primary variables: a time interval (a lineage's modified time interval is based on a one second increment), and the values for various entries in the sde.sde_tables_modified table.

In the case of maintaining the cache with the lineages_modified properties, the cache was not correctly checking the local timestamp of the cache prior to determining if a query needed to be executed against the sde.lineages_modified table to obtain the latest values.

Workaround

There is no workaround to the issue.