G06F9/52

HIGH-PERFORMANCE REMOTE ATOMIC SYNCHRONIZATION
20230229525 · 2023-07-20 ·

One example method may be performed in an operating environment including distributed and/or disaggregated compute nodes that communicate with each other and with a shared computing resource by way of an RDMA fabric. The method may include obtaining, by a first one of the compute nodes, ownership of an atomic synchronization object that controls access to the shared computing resource, using, by the first compute node, the shared computing resource until the shared computing resource is no longer needed by the first compute node, and when the shared computing resource is no longer needed by the first compute node, relinquishing, by the first compute node, the ownership of the atomic synchronization object.

BROKERLESS RELIABLE TOTALLY ORDERED MANY-TO-MANY INTERPROCESS COMMUNICATION ON A SINGLE NODE THAT USES SHARED MEMORY AND MULTICAST
20230229532 · 2023-07-20 ·

Examples described herein include systems and methods for brokerless reliable totally ordered many-to-many inter-process communication on a single node. A messaging protocol is provided that utilizes shared memory for one of the control plane and data plane, and multicast for the other plane. Readers and writers can store either control messages or message data in the shared memory, including in a ring buffer. Write access to portions of the shared memory can be controlled by a robust futex, which includes a locking mechanism that is crash recoverable. In general, the writers and readers can control the pace of communications and the crash of any process does not crash the overall messaging on the node.

Lockless management of immutable objects by multi-threaded processes using multiple counters

In general, the disclosure describes techniques for lockless management of immutable objects by multi-threaded processes. A device comprising a processor may implement the techniques, where the processor execute a multi-threaded process including a producer thread and a consumer thread. The producer thread may instantiate an immutable object, and provide, to the consumer thread, a reference to the immutable object. The producer thread may also increment a reference counter to indicate that the reference has been provided to the consumer thread, where the reference counter is local to the producer thread and inaccessible to the at least two consumer threads. The producer thread may receive, from the consumer thread, a notification that the consumer thread has finished processing the immutable object, and decrement, responsive to receiving the notification, the reference counter. The producer thread may then delete, based on the reference counter, the immutable object.

High-speed broadside communications and control system

A real-time computational device includes a programmable real-time processor, a communications input port which is connected to the programmable real-time processor through a first broadside interface, and a communications output port which is connected to the programmable real-time processor through a second broadside interface. Both broadside interfaces enable 1024 bits of data to be transferred across each of the broadside interfaces in a single clock cycle of the programmable real-time processor.

High-speed broadside communications and control system

A real-time computational device includes a programmable real-time processor, a communications input port which is connected to the programmable real-time processor through a first broadside interface, and a communications output port which is connected to the programmable real-time processor through a second broadside interface. Both broadside interfaces enable 1024 bits of data to be transferred across each of the broadside interfaces in a single clock cycle of the programmable real-time processor.

DATA VERIFICATION IN A DISTRIBUTED DATA PROCESSING SYSTEM
20230015258 · 2023-01-19 ·

A verification device operates to evaluate consistency of input values from a client device used by a server to execute a task. In an example the task may be installation of software into the client device, and the consistency evaluation of the input values may involve evaluating whether identifiers used to obtain attribute values of components of the client device for the installation apply to the same client device. To initiate execution of the task, the client device commands a plurality of data source servers to supply the attribute values. The data source servers return response messages defining the attribute values associated with the identifiers supplied by the client device. The client device supplies the response messages to the server for use in the execution of the task. Before executing the task, the server supplies information from the response messages to a verification device, the information defining a combination of the identifiers of the response messages, as well as the combination of data source servers that have defined attribute values associated with the identifiers. The verification device performing a consistency evaluation on said combination of identifiers, dependent on whether said combination of identifiers is consistent or inconsistent with previously stored combinations of identifiers for said combination of data source servers stored for previously executed tasks and/or whether values of a corresponding further attribute associated with the identifiers in the data source servers in the combination of data source servers are consistent. The server selecting between executing the task or not dependent on a result of the consistency evaluation.

DATA VERIFICATION IN A DISTRIBUTED DATA PROCESSING SYSTEM
20230015258 · 2023-01-19 ·

A verification device operates to evaluate consistency of input values from a client device used by a server to execute a task. In an example the task may be installation of software into the client device, and the consistency evaluation of the input values may involve evaluating whether identifiers used to obtain attribute values of components of the client device for the installation apply to the same client device. To initiate execution of the task, the client device commands a plurality of data source servers to supply the attribute values. The data source servers return response messages defining the attribute values associated with the identifiers supplied by the client device. The client device supplies the response messages to the server for use in the execution of the task. Before executing the task, the server supplies information from the response messages to a verification device, the information defining a combination of the identifiers of the response messages, as well as the combination of data source servers that have defined attribute values associated with the identifiers. The verification device performing a consistency evaluation on said combination of identifiers, dependent on whether said combination of identifiers is consistent or inconsistent with previously stored combinations of identifiers for said combination of data source servers stored for previously executed tasks and/or whether values of a corresponding further attribute associated with the identifiers in the data source servers in the combination of data source servers are consistent. The server selecting between executing the task or not dependent on a result of the consistency evaluation.

Method, device and computer program product for processing computing job

A first set of requirements of a first set of computing tasks for computing resources in a computing system is acquired respectively. Based on a determination that the requirement of a computing task in the first set of computing tasks for a computing resource satisfies a resource threshold condition, the computing task is divided into a plurality of sub-tasks. The resource threshold condition describes the threshold of a computing resource provided by a computing device in a plurality of computing devices in the computing system. A merging task for merging a plurality of sub-results of the plurality of sub-tasks into a result of the computing task is generated. Based on other computing tasks than the computing task in the set of computing tasks, the plurality of sub-tasks, and the merging task, a second set of computing tasks of the computing job is determined so as to process the computing job.

Method, device and computer program product for processing computing job

A first set of requirements of a first set of computing tasks for computing resources in a computing system is acquired respectively. Based on a determination that the requirement of a computing task in the first set of computing tasks for a computing resource satisfies a resource threshold condition, the computing task is divided into a plurality of sub-tasks. The resource threshold condition describes the threshold of a computing resource provided by a computing device in a plurality of computing devices in the computing system. A merging task for merging a plurality of sub-results of the plurality of sub-tasks into a result of the computing task is generated. Based on other computing tasks than the computing task in the set of computing tasks, the plurality of sub-tasks, and the merging task, a second set of computing tasks of the computing job is determined so as to process the computing job.

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.