G06F9/524

HYBRID DATABASE FOR TRANSACTIONAL AND ANALYTICAL WORKLOADS

A computer-implemented method, medium, and system for global deadlock detection in a hybrid database for transactional and analytical workloads are disclosed. In one computer-implemented method, a daemon is launched on a coordinator segment in a massively parallel processing (MPP) database, where the MPP database is a hybrid database for both transactional workloads and analytical workloads. A respective local wait-for graph for each of a plurality of segments in the MPP database is collected periodically, where each of the plurality of segments includes the coordinator segment or a worker segment of a plurality of worker segments in the MPP database. A global wait-for graph that includes all collected local wait-for graphs is built. The global wait-for graph is used to determine that a global deadlock exists in the MPP database. The global deadlock is broken using one or more predefined policies in response to determining that the global deadlock exists.

METHOD FOR EXECUTING MULTITHREADED INSTRUCTIONS GROUPED INTO BLOCKS
20180011738 · 2018-01-11 ·

A method for executing multithreaded instructions grouped into blocks. The method includes receiving an incoming instruction sequence using a global front end; grouping the instructions to form instruction blocks, wherein the instructions of the instruction blocks are interleaved with multiple threads; scheduling the instructions of the instruction block to execute in accordance with the multiple threads; and tracking execution of the multiple threads to enforce fairness in an execution pipeline.

LOW-OVERHEAD DETECTION TECHNIQUES FOR SYNCHRONIZATION PROBLEMS IN PARALLEL AND CONCURRENT SOFTWARE

The techniques described herein may provide techniques to detect, categorize, and diagnose synchronization issues that provide improved performance and issue resolution. For example, in an embodiment, a method may comprise detecting occurrence of synchronization performance problems in software code, when at least some detected synchronization performance problems occur when a contention rate for software locks is low, determining a cause of the synchronization performance problems, and modifying the software code to remedy the cause of the synchronization performance problems so as to improve synchronization performance of the software code.

Optimizations for long-lived statements in a database system

The subject technology performs a search for a key in a regular space to locate a first visible version of the key. The subject technology determines that the first visible version of the key is not one of a N number of newest versions of the key. The subject technology performs a search of an undo space to locate a second visible version of the key. The subject technology determines whether the first visible version or the second visible version of the key is newer. The subject technology provides a newer version of the key between the first visible version and the second visible version of the key.

Reducing commit wait in a distributed multiversion database by reading the clock earlier

In a distributed system where a client's call to commit a transaction occurs outside the transaction's lock-hold interval, computation of timestamp information for the transaction is moved to a client library, while ensuring that no conflicting reads or writes are performed between a time of the computation and acquiring all locks for the transaction. The transaction is committed in phases, with each phase being initiated by the client library. Timestamp information is added to the locks to ensure that timestamps are generated during lock-hold intervals. An increased number of network messages is thereby overlapped with a commit wait period in which a write in a distributed database is delayed in time to ensure concurrency in the database.

Method of completing a programmable atomic transaction by ensuring memory locks are cleared
11693690 · 2023-07-04 · ·

Disclosed is an instruction for a programmable atomic transaction that is executed as the last instruction and that terminates the executing thread, waits for all outstanding store operations to finish, clears the programmable atomic lock, and sends a completion response back to the issuing process. This guarantees that the programmable atomic lock is cleared when the transaction completes. By coupling thread termination with clearing the lock bit, this guarantees that the thread cannot terminate without clearing the lock.

BALANCED WINNER ASSIGNMENT FOR DEADLOCK RESOLUTION

Processing may be performed in accordance with a policy to assign roles of winner and loser between two nodes. The roles may be used in connection with deadlock resolution processing. A deadlock or potential deadlock may be detected between the two nodes performing processing for two transactions In response to detecting the deadlock or potential deadlock, using a current state may be used to determine whether to perform the deadlock resolution processing to resolve the deadlock or potential deadlock. The current state may indicate whether assignment of the winner and loser roles between the two nodes is in progress. Responsive to the current state indicating that processing is not in progress to assign roles of winner and loser between the two nodes, the current state may be used perform deadlock resolution processing to resolve the deadlock or potential deadlock. The current state may denote which node is the current winner.

HANDLING OWNERSHIP OF PROCESS THREADS
20220413898 · 2022-12-29 ·

Examples for handling ownership of process threads include acquiring ownership of a set of process threads to assign ownership of a subject process thread to an ownership agent. In some examples, acquiring ownership may include acquiring ownership of process threads with a wait event. During acquiring ownership of the set of process threads, one or more process threads that are acquired may be released to attend to an event that has occurred. A thread coordinator that handles ownership during acquiring phase may release and rebid one or more process threads. Upon acquiring all the process threads, the ownership of the subject process thread is assigned to an ownership agent. With a set of ownership conditions, the process threads are acquired efficiently within reduced time and with reduced deadlocks.

Apparatus and method for distributed database query cancellation based upon single node query execution analysis

A master database module is on a master computer node. Slave database modules are on slave computer nodes connected to the master computer node via a network. A distributed database includes executable code executed by processors on the master computer node and the slave computer nodes to receive a distributed database query at the master computer node. A query execution plan is prepared at the master computer node. The query execution plan is deployed on the slave computer nodes. The query execution plan is executed on the slave computer nodes. The slave computer nodes each perform a single node query execution analysis to selectively produce a query cancellation command. The query cancellation command is propagated to the master computer node and the slave computer nodes. The query execution plan is cancelled on the master computer node and the slave computer nodes.

Digital signal processing plug-in implementation
11500695 · 2022-11-15 · ·

In some examples, digital signal processing plug-in implementation may include obtaining attributes of a user interface for a digital signal processing plug-in, and obtaining attributes of digital signal processing logic for the digital signal processing plug-in. The digital signal processing plug-in implementation may include generating, based on the attributes of the user interface and the attributes of the digital signal processing logic, a plug-in process to control operation of the user interface and the digital signal processing logic. Further, the digital signal processing plug-in implementation may include establishing, based on the generated plug-in process, a two-way communication link between a host and the plug-in process to implement the digital signal processing plug-in.