Abstract:
Techniques are provided for automatic parallelism tuning. At least one batch of change records is assigned to one or more apply processes in a set of active apply processes. A first throughput value is periodically determined based on a number of processed change records in a first time interval. An increment adjustment is periodically performed, including adding an additional apply process, determining a second throughput value, and removing the additional apply process from the set of active apply processes if the second throughput value is not greater than a previous first throughput value by at least an increment threshold. A decrement adjustment is periodically performed, including removing an apply process, determining a third throughput value, and replacing the removed apply process in the set of active apply processes if the third throughput value is not greater than the previous first throughput value by at least a decrement threshold.
Abstract:
Techniques are provided for client and server integration for scalable replication. A replication client transmits change records to a database server over a stream. The database server determines at least one batch comprising change records for at least one transaction. The database server generates dependency data for at least one change record in a batch based on at least one constraint identifier for at least one column. The database server determines an ordered grouping of the change records based on an operation type of each change record and the dependency data of each change record, wherein change records sharing operation types are grouped together unless a division based on the dependency data is determined. The database server generates a reordered transaction comprising a plurality of reordered operations based on the ordered grouping of the change records of the particular batch.
Abstract:
Transient duplicate key violations of unique key constraints are handled during row updates. Row changes are buffered until a point is reached that those changes are safe to execute. Row changes are effectively reordered to avoid constraint violations during execution of updates. In response to receiving a constraint key violation from a server after an attempted update, a client locally stores a record containing information regarding the failed update. Later, in response to the lack of receipt of an error in response to another update to the same column of the same table, the client uses the information in this record to instruct the server to attempt to repeat a failed update that previously attempted to change the value of a row to a value that was present in a uniqueness-constrained column at the time of the failure, but is no longer present due to the successful update.