摘要:
An approach is disclosed for implementing failover and resume when using ordered sequences in a multi-instance database environment. The approach commences by instantiating a first database instance initially to serve as an active instance, then instantiating a second database instance to serve as an instance of one or more passive instances. The active database establishes mastership over a sequence and then processes requests for the ‘next’ symbol by accessing a shared sequence cache only after accessing a first instance semaphore. The active instance and the passive instance perform a protocol such that upon passive database detection of a failure of the active database, one of the passive database instances takes over mastership of the sequence cache, and then proceeds to satisfy sequence value requests. The particular order is observed in spite of the failure.
摘要:
Techniques for monitoring resources of a computer system are provided. A monitoring process collects and reports utilization data for one or more resources of a computer system, such as CPU, memory, disk I/O, and network I/O. Instead of reporting just an average of the collected data over a period of time (e.g., 10 seconds), the monitoring process at least reports individually collected resource utilization values. If one or more of the utilization values exceed specified thresholds for the respective resources, then an alert may be generated. In one approach, the monitoring process is made a real-time priority process in the computer system to ensure that the memory used by the monitoring process is not swapped out of memory. Also, being a real-time priority process ensures that the monitoring process obtains a CPU in order collect resource utilization data even when the computer system is in a starvation mode.
摘要:
Described herein are techniques for using super masters to coordinate accesses by nodes in a database server cluster to data stored in a database. In many cases, the number of inter-nodal messages is reduced, thereby saving the overheads attendant to coordinating accesses in such a system.
摘要:
Techniques for routing client requests among a group of nodes offering a service are described. A coordinator determines that performance could be improved by using affinity-based routing. In one embodiment, the coordinator calculates a Time-to-Live (TTL) metric whereby clients benefit by returning to the same cache and posts this hint to subscribers. Client's start preserving locality data in an affinity context, such that later requests for a connection can be routed to the location last visited. The coordinator measures the system over subsequent intervals. If the gradient of the goodness (viz service quality and capacity) is stable or improving, then the coordinator continues to advise subscribers to use the affinity-based technique. Alternatively, if the gradient of the goodness is deteriorating, then the coordinator posts advice to the subscribers to stop using the affinity-based technique for any instance during the next intervals.
摘要:
A method and system are provided for performing anticipatory changes to a resource governed by a locking mechanism. Entities (such as transactions in a database system) that want to modify a resource request permission to modify the resource. However, prior to receiving permission, they make anticipatory changes to a private version of the resource. The entities are prevented from making the anticipatory changes permanent until they receive permission to make the changes. Because they can make the changes, and proceed to other operations, before receiving permission, any delay in receiving permission has less adverse effect on their performance.
摘要:
Techniques are described herein for handling lock-related inconsistencies. As mentioned above, such inconsistencies occur when two or more sets of lock information, relating to the same resource, convey inconsistent information about locks requested and/or granted on that resource. In general, the techniques involve causing the locally-stored lock information about a resource to be sent to the master node of the resource. The master node of the resource compares the lock information thus received against the lock information maintained by the master node. Based on the comparison, the master node determines how to resolve the lock-related inconsistency, and sends messages to those nodes that need to change their local lock information for the resource. Once all of the lock information has been made consistent, the resource made available for access.
摘要:
Methods and apparatuses for providing access to data in a cluster database are described. Embodiments of the invention include identifying situations in which many nodes require relatively equal access to a data block, and taking appropriate measures to improve the performance of the system in these situations. For example, a node may automatically downgrade its lock from an X lock to an S lock as soon as it has finished a modification of the data. S locks are sent to other nodes in the system as soon as a modification is complete. Modifications to the data are also sent to other nodes in the system as soon as a modification is complete. Depending on the size of the data modification, the entire data block may be sent, or only the modifications to the data may be sent.
摘要:
Locks are placed in a convert queue in a way that compensates for queue bias. Rather than always placing a remote lock in a queue at the tail, a remote lock can be placed further up in the queue, and possibly be interleaved with local locks. As a result, remote processes are granted locks more frequently and swiftly. Locks are placed in a convert queue according based on queue placement factors, which are factors accounted for when placing a lock in a queue.
摘要:
Techniques are provided for responding to the termination of a node by selecting another node, and assigning to the selected node the affinity relationships that existed between the terminated node and one or more objects. The resources that belong to the objects involved in the affinity relationships are remastered to the selected node. The selected node then performs recovery of the resources that had been opened by the terminated node and/or serves as a failover node to execute the transactions that had been executing on the terminated node.
摘要:
Locks are placed in a convert queue in a way that compensates for queue bias. Rather than always placing a remote lock in a queue at the tail, a remote lock can be placed further up in the queue, and possibly be interleaved with local locks. As a result, remote processes are granted locks more frequently and swiftly. Locks are placed in a convert queue according based on queue placement factors, which are factors accounted for when placing a lock in a queue.