G06F16/2336

LIGHT WEIGHT REDUNDANCY TOOL FOR PERFORMING TRANSACTIONS

Systems, methods, and non-transitory computer readable media are provided for providing a redundancy tool for performing transactions. A transaction to be performed on a data stored in a database may be received. A timestamp may be assigned to the transaction. A lock may be assigned on the timestamp. The transaction may be performed on the data. The lock may be refreshed while performing the transaction on the data. A validity of the lock may be checked at after performing the transaction on the data. Responsive to the lock being valid, a result of performing the transaction on the data may be committed.

Merging conflict resolution for multi-master distributed databases

A server set for a data set may designate a subset of “master” servers that update the data set in order to reduce data version conflicts involving mutually exclusive updates of the data set. Multi-master configurations may fulfill the performance constraints, and the subset of masters may detect and resolve data version conflicts. However, if multiple masters perform conflict resolution for a particular data version conflict, the resolution may produce inefficiency and redundancy (if the masters reach the same outcome) or additional data version conflicts (if the masters reach different outcomes). Instead, among the masters, a merge master may be identified that applies conflict resolution techniques to data version conflicts and forwards the conflict resolution outcome to the other masters for application to the data set to resolve the data version conflict. The other masters may temporarily store updates in a tentative update set until data version conflicts are resolved.

Concurrent execution of database operations

The present disclosure relates to executing concurrent database operations in a database system during a time window. The database operations are configured to use storage units of a storage space of the database system. A first usage speed of free storage units is determined to be used by at least one first database operation and a second usage speed of free storage units to be used by a second database operation. The first and second usage speeds may be used for determining a maximum number of free storage units to be used by the second database operation during the time window. The second database operation may be executed during the time window in accordance with the maximum number. The first database operation may be executed, wherein the execution of the first database operation during the time window being limited to the storage units of the storage space.

Multi-master architectures for distributed databases

Data services for workloads are often provided with a service level agreement specifying various performance guarantees (e.g., latency, availability, scalability, and consistency). Single-master architectures, in which updates to the data set are constrained to a single server, may limit the fulfillment of some performance guarantees. Presented herein are multi-master architectures, in which the server set is partitioned into at least two masters are permitted to update the data set and at least one non-master that is not permitted to update the data set. Non-masters that receive a request to update the data set forward the request to a master server for application to the data set. A master that receives the request applies it to the data set and propagates the update to other master and non-master servers. Conflicting updates may be resolved through a variety of conflict resolution techniques, optionally designating one master server as a conflict resolution server.

System and method for data orchestration for non-relational databases and key-value storage in multiple computing environments
11386119 · 2022-07-12 · ·

A method for managing data includes obtaining, by a database proxy server, a document manifest, wherein the document manifest specifies a plurality of queries, wherein each of the plurality of queries specifies data and a policy to be implemented on the data, wherein the data is stored in a central database, and processing the plurality of queries.

Invoice Numbering
20220215447 · 2022-07-07 ·

Methods and apparatuses for invoice numbering are disclosed. In one embodiment, the method comprises A method for electronically generating invoices for a party with invoice numbers where there are no gaps between invoice numbers nor duplicate invoice numbers, the method comprising: receiving, at a database, a first request to prepare an invoice for the party; preparing the invoice, including calling a command to assign an invoice number to the invoice; acquiring a limited-time lock to cause any other requests to the database related to obtaining invoice numbers for invoices for the party to wait until the invoice number has been assigned and persisting the invoice to the database has completed; assigning the invoice number for the invoice after confirming a highest invoice number already stored in the database, where the invoice number is assigned the number that is next sequentially to the highest invoice number; after assigning a number to the invoice, then persisting the invoice with the assigned invoice number to the database; and releasing the lock in response to completely persisting the invoice with the assigned invoice number to the database.

Versioning validation for data transfer between heterogeneous data stores

Example distributed storage systems, replication managers, and methods provide versioning validation for data transfers between heterogeneous data stores. A first object data store includes a versioned data object with a plurality of sequential versions corresponding to the versioned data object. A versioned write request message is sent to a second object data store and a response is received. The versioning-enabled status of the second object data store is determined from the response message and, if the versioning enabled status is invalid, any residual object versions in the second object data store are deleted based on a delete request.

Write Lock Conflicts in a Storage Network

A storage unit operates by: receiving a write slice request, wherein the write slice request includes a plurality of encoded data slices and wherein the write slice request corresponds to a range; determining whether a write lock conflict exists based on the range; issuing an unfavorable write slice response when the write lock conflict is determined to exist; and when the write lock conflict is determined to not exist: initiating local storage of the plurality of encoded data slices; and issuing a favorable write slice response.

Transactional key-value store

Example implementations disclosed herein can be used to build, maintain, and access databases built database in multi-core computing systems with large VRAM and huge NVRAM. The database with optimistic concurrency control can be built on a transactional key-value data store that includes logically equivalent data pages stored in both VRAM and VRAM. Data records in volatile data pages in the VRAM represent the most recent version of the data. Data records in the NVRAM immutable and are organized in a stratified composite snapshot. A distributed log gleaner process is used to process log entries corresponding to transactions on the volatile data pages and construct the snapshot. The log gleaner sorts the log entries by epoch, key range, and most recent use to partition the snapshot across multiple nodes.

Resolving write conflicts in a dispersed storage network

A method for execution by a dispersed storage and task (DST) execution unit includes receiving a write slice request from a requesting entity, where the write slice request includes a plurality of encoded data slices and a corresponding plurality of slice names. The plurality of slice names are interpreted to produce a slice name range. Whether a write lock conflict exists is determined based on the slice name range. An unfavorable write slice response is issued to the requesting entity when the write lock conflict is determined to exist. When the write lock conflict is determined to not exist, local storage of the plurality of encoded data slices is initiated, a favorable write slice response is issued to the requesting entity, and the processing system indicates that the slice name range is not locked when completing the local storage of the plurality of encoded data slices.