Patent classifications
G06F9/467
Volatility management for memory device
A Memory Device (MD) for storing temporary data designated for volatile storage by a processor and persistent data designated for non-volatile storage by the processor. An address is associated with a first location in a volatile memory array and with a second location in a Non-Volatile Memory (NVM) array of the MD. Data is written in the first location, and flushed from the first location to the second location. A refresh rate for the first location is reduced after flushing the data from the first location until after data is written again to the first location. In another aspect, a processor designates a memory page in a virtual memory space as volatile or non-volatile based on data allocated to the memory page, and defines the volatility mode for the MD based on whether the memory page is designated as volatile or non-volatile.
CONTROL STATE PRESERVATION DURING TRANSACTIONAL EXECUTION
A method includes saving a control state for a processor in response to commencing a transactional processing sequence, wherein saving the control state produces a saved control state. The method also includes permitting updates to the control state for the processor while executing the transactional processing sequence. Examples of updates to the control state include key mask changes, primary region table origin changes, primary segment table origin changes, CPU tracing mode changes, and interrupt mode changes. The method also includes restoring the control state for the processor to the saved control state in response to encountering a transactional error during the transactional processing sequence. In some embodiments, saving the control state comprises saving the current control state to memory corresponding to internal registers for an unused thread or another level of virtualization. A corresponding computer system and computer program product are also disclosed herein.
TRANSACTIONAL MEMORY SUPPORT FOR COMPUTE EXPRESS LINK (CXL) DEVICES
In one embodiment, an apparatus couples to a host processor over a Compute Express Link (CXL)-based link. The apparatus includes a transaction queue to queue memory transactions to be completed in an addressable memory coupled to the apparatus, a transaction cache, conflict detection circuitry to determine whether a conflict exists between memory transactions, and transaction execution circuitry. The transaction execution circuitry may access a transaction from the transaction queue, the transaction to implement one or more memory operations in the memory, store data from the memory to be accessed by the transaction operations in the transaction cache, execute operations of the transaction, including modifying data from the memory location stored in the transaction cache, and based on completion of the transaction, cause the modified data from the transaction cache to be stored in the memory.
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.
System and method for maintaining a distributed ledger
A method of maintaining a distributed ledger at a client node includes: storing a distributed ledger defining a plurality of records each containing a set of values; storing (i) a local voting weight corresponding to the client node, and (ii) respective remote voting weights for a plurality of remote client nodes; obtaining a proposed update to a record of the distributed ledger; generating a local vote to apply or discard the proposed update and transmitting the local vote to the remote client nodes; receiving remote votes to apply or discard the proposed update from the remote client nodes; determining whether to permit the proposed update based on (i) the local vote and the local voting weight, and (ii) the remote votes and the corresponding remote voting weights; and according to the determination, applying the proposed update to the distributed ledger or discarding the proposed update.
WORKING MEMORY MANAGEMENT
Methods, computer program products, and systems are presented. The method computer program products, and systems can include, for instance: predicting, with use of one or more predictive model, subsequent future state data of a computing node having an associated working memory, wherein the subsequent future state data specifies that a certain transaction currently uninvoked will be invoked by the computing node; prior to the invoking of the certain transaction, proactively establishing one or more control parameter value for controlling the working memory in dependence on the future state data; invoking the certain transaction in response to receipt, by the computing node, of transaction invoking request data for invoking the certain transaction; and executing the certain transaction in dependence on at least one control parameter value of the one or more control parameter value for controlling the working memory.
DISTRIBUTED EVENT PLATFORM FOR PROCESSING AND PUBLISHING EVENT TRANSACTIONS
The present invention is directed to a system and a method for ensuring high availability and guarantee delivery of event streams to target consumer applications. The distributed event streaming platform of the present invention is provided with an event streaming layer comprising a plurality of independent and non-replicating event streaming clusters that are configured to process events received from a producer module. A monitoring module is provided to monitor the propagation and delivery of each propagated event based on event notifications received from an event producer module and a plurality of the consumer modules.
Transaction commit operations with thread decoupling
Innovations in the area of server-side processing when committing transactions to disk in a distributed database system can improve computational efficiency at database nodes and/or reduce network bandwidth utilization. For example, when transactions are committed in a database system, at a master node of the database system, a server uses different threads for certain processor-intensive operations and certain I/O-intensive operations.
Disaggregated rack mount storage side transaction support
A method is described. The method includes performing the following with a storage end transaction agent within a storage sled of a rack mounted computing system: receiving a request to perform storage operations with one or more storage devices of the storage sled, the request specifying an all-or-nothing semantic for the storage operations; recognizing that all of the storage operations have successfully completed; after all of the storage operations have successfully completed, reporting to a CPU side transaction agent that sent the request that all of the storage operations have successfully completed.
PCIe TLP Size And Alignment Management
A data storage device includes a memory device and a controller coupled to the memory device. The controller is configured to issue an unaligned transaction, determine that there is a transfer failure indication for the unaligned transaction, and retry the unaligned transaction with either a different alignment or a different transfer size. The different alignment or the different transfer size is used for another unaligned transaction from a same address range upon successful retry of the unaligned transaction.