Abstract:
Methods and systems for providing a rewind of table data in a data management system include: storing a table having table data that defines a plurality of rows and a plurality of columns that define a plurality of cells; capturing change data associated with changes to at least one of the plurality of rows, the plurality of columns, and the plurality of cells; associating the change data with a transaction having a transaction identifier; storing the transaction and the change data in a change bus; retrieving the change data from the change bus based on a rewind request; performing a rewind of a subset of the changes by performing a reverse operation of the change data relating to the subset of changes and according to a reverse operation order; and outputting a clone of the table based on the rewind of the changes of the table.
Abstract:
In accordance with embodiments for facilitating action-based fair allocation and usage of thread resources, and by way of example, a method includes receiving job requests and bids from organizations over a network, where each job request and the corresponding bid is placed by a user associated with an organization having a resource currency value within a multi-tenant database system, determining resource currency values associated with pending jobs relating to the organizations, wherein the resource currency values corresponds to resources dedicated to the pending jobs, performing an auction of the received bids for resources that are not dedicated and remains available for purchase, where a bid includes a purchase request to purchase the available resources, prioritizing the job requests based on the dedicated resources and the auction of the available resources, and processing the job requests based on the prioritized job requests.
Abstract:
Techniques and architectures for workload management. A stream of messages is received with servers coupled to provide access to shared system resources. The servers are organized as at least two groups with a first group providing message queuing services and a second group providing message queuing services under first conditions and modified message queuing services under second conditions. Message queuing services are provided with the first group by treating all jobs as equal, processing jobs asynchronously and processing jobs in the background to defer to foreground, non-message queuing services, jobs. Message queuing services are provided with the second group by treating all jobs as equal, processing jobs asynchronously and processing jobs in the background to defer to foreground, non-message queuing services, jobs under the first conditions. Modified message queuing services are provided with the second group by shortest-slack-first scheduling under the second conditions.
Abstract:
A messaging system implements messaging among application servers and databases, utilizing other servers that implement messaging brokers. A large flood of incoming messages can bring down messaging brokers by overflowing the message queues, negatively impacting performance of the overall system. This disclosure in some embodiments detects and identifies “flooders” in a timely manner and isolates their message traffic to dedicated queues to avoid impacting other system users. Subsequently, a preferred system de-allocates the queues and returns the messaging system to normal operation when flooding conditions subside, and “sweeps” up any remaining orphan messages.
Abstract:
Techniques and architectures for workload management. A stream of messages is received with servers coupled to provide access to shared system resources. The servers are organized as at least two groups with a first group providing message queuing services and a second group providing message queuing services under first conditions and modified message queuing services under second conditions. Message queuing services are provided with the first group by treating all jobs as equal, processing jobs asynchronously and processing jobs in the background to defer to foreground, non-message queuing services, jobs. Message queuing services are provided with the second group by treating all jobs as equal, processing jobs asynchronously and processing jobs in the background to defer to foreground, non-message queuing services, jobs under the first conditions. Modified message queuing services are provided with the second group by shortest-slack-first scheduling under the second conditions.
Abstract:
In accordance with embodiments, there are provided mechanisms and methods for facilitating dynamic workload scheduling and routing of message queues for fair management of the resources for application servers in an on-demand services environment. In one embodiment and by way of example, a method includes detecting an organization of a plurality of organization that is starving for resources. The organization may be seeking performance of a job request at a computing system within a multi-tenant database system. The method may further include consulting, based on a routing policy, a routing table for a plurality of queues available for processing the job request, selecting a queue of the plurality of queues for the organization based on a fair usage analysis obtained from the routing policy, and routing the job request to the selected queue.
Abstract:
A request for an organization migration to move application data and application services of an organization hosted at a source system instance in a multi-tenant computing system to a target system instance in the multi-tenant computing system is received. Based on operational parameters, a time window is selected to execute the organization migration. Computing resource usages of one or both of the source and target system instances in the selected time window are monitored. If computing resources are available, the organization migration is enqueued.
Abstract:
Techniques and structures to prevent exhaustion of a database connection pool, including retrieving data from the database connection pool, monitoring the data to determine whether the connection pool is at risk of an exhaustion condition, analyzing the data to determine whether one or more clients accessing the database connection pool are offenders upon determining that the connection pool is at risk and throttling access to the one or more clients accessing the database connection pool upon determining the one or more clients to be offenders.
Abstract:
Techniques are disclosed relating to processing data stored within database tables in a parallelized manner. In various embodiments, a computer system maintains a database having a database table storing data for a plurality of tenants and an index structure storing indexes for accessing data stored in the database table. In some embodiments, the computer system receives, from a particular tenant, a request to perform a task that includes operating on particular data. In some embodiments, the computer system determines a portion of the index structure corresponding to the particular tenant and divides a range of indexes within that portion into a plurality of index sub-ranges. In various embodiments, the computer system processes portions of the task in parallel by determining an index sub-range for each of a plurality of threads and causing each of the threads to operate on a portion of the particular data specified by its index sub-range.
Abstract:
Techniques and structures to prevent exhaustion of a database connection pool, including retrieving data from the database connection pool, monitoring the data to determine whether the connection pool is at risk of an exhaustion condition, analyzing the data to determine whether one or more clients accessing the database connection pool are offenders upon determining that the connection pool is at risk and throttling access to the one or more clients accessing the database connection pool upon determining the one or more clients to be offenders.