Icon Change Detection

ElevateDB automatically performs change detection when either reading or updating tables.

Reads and Change Detection
When reading from a table, ElevateDB only checks for changes by other sessions when it cannot find the desired data locally in its cache and must physically read the data from the table. The data can be a row, index page, or BLOB block, and the actual check for changes is very quick. If changes are found in the table, ElevateDB will dump its per-session table buffers for the table and retry the read operation that it was in the process of executing when it found that it needed more data from the table.

Information The amount of memory used for per-session table buffering can affect how often ElevateDB detects changes within tables, and ElevateDB allows you to change these settings on a per-table basis. Please see the Buffering and Caching topic for more information on modifying the per-session table buffering settings for a table.

Updates and Change Detection
When performing updates using the INSERT, UPDATE, or DELETE statements, ElevateDB will automatically make sure that it's per-session table buffers contain the most up-to-date data before performing the actual update operation. ElevateDB performs a row buffer comparison when updating or deleting rows to ensure that the row has not been deleted by another session. If this is the case, then ElevateDB will raise a 1007 (EDB_ERROR_ROWDELETED) error indicating that the row has been deleted by another session and the operation will be aborted.

ElevateDB can also perform a row buffer comparison when updating or deleting rows to ensure that the row that is now present in it's cache contains the same values as the row that was intended to be updated or deleted before the operation was initiated (i.e. it's what the user sees when the row is selected). If the row is not the same due to a change by another session, ElevateDB will raise a 1008 (EDB_ERROR_ROWMODIFIED) error indicating that the row has been modified by another session and the operation will be aborted. By default, this behavior is turned off, but it can be enabled if needed. Please see your product-specific documentation for more information on enabling row change detection.
Image