Fifo queue replication
AssigneeAmazon Technologies, Inc.
InventorStefan Mircea Onofrei
Life of this patent
Estimating the term…
Abstract
A fifo queue service of a provider network allows clients replicate a fifo queue to a secondary backup queue of another region. A local instance of the queue service receives and stores send/receive/delete transactions in an order. The service instance applies the transactions to a primary fifo and replicates only the send requests and delete requests to secondary fifo queue of a remote instance of the fifo queue service (e.g., at another region). The remote instance determines, based on ordering metadata of a replicated request, that the replicated request can be stored in accordance with the ordering metadata (e.g., the replicated request depends on another request that has also been received/replicated). In response, the remote secondary instance stores and applies the replicated request to a secondary fifo queue.
Claims20
A system, comprising:
- one or more processors;
- and
- one or more memories, wherein the one or more memories have stored thereon instructions, which when executed by the one or more processors, cause the one or more processors to implement an instance of a fifo queue service, wherein the instance is configured to, for individual ones of a plurality of primary fifo queues:
- receive a plurality of transactions from producers and consumers that are directed to the primary fifo queue, wherein the transactions comprise requests to send messages, requests to receive messages, and requests to delete messages;
- store the plurality of transactions into a transaction log, wherein the order of the transactions as stored is based on dependencies between different ones of the transactions;
- apply the transactions to the primary fifo queue in the order of the transactions;
- replicate the requests to send and the requests to delete to a secondary fifo queue of a remote instance of the fifo queue service, without replication of the requests to receive, wherein individual requests of the replicated requests comprise metadata that indicates a particular order of the replicated request with respect to other individual requests of the replicated requests based on the order of the transactions;
- and
- one or more other processors;
- and
- one or more other memories, wherein the one or more other memories have stored thereon instructions, which when executed by the one or more other processors, cause the one or more other processors to implement the remote instance of the fifo queue service, wherein the remote instance is configured to:
- receive at least a portion of the replicated requests;
- determine, based at least on the metadata of one of the received replicated requests that indicates the particular order of the received replicated request with respect to another of the received replicated requests, that the received replicated request can be stored into another transaction log in accordance with the particular order;
- in response to the determination, store the received replicated request into the other transaction log in accordance with the particular order;
- and
- apply the received replicated request to a secondary fifo queue in accordance with the particular order, wherein replicated requests of the secondary fifo queue are applied to the secondary fifo queue in accordance with the order of the transactions applied to the primary fifo queue.
A method, comprising:
- performing, by one or more computing devices that implement an instance of a fifo queue service:
- receiving a plurality of transactions from producers and consumers that are directed to a primary fifo queue, wherein the transactions comprise requests to send messages, requests to receive messages, and requests to delete messages;
- storing the plurality of transactions into a transaction log, wherein the transactions are stored in an order;
- applying the transactions to the primary fifo queue in the order of the transactions;
- and
- replicating the requests to send and the requests to delete to a secondary fifo queue of a remote instance of the fifo queue service, without replication of the requests to receive, wherein individual requests of the replicated requests comprise metadata that indicates a particular order of the replicated request with respect to other individual requests of the replicated requests based on the order of the transactions.
One or more non-transitory computer-accessible storage media storing program instructions that when executed on or across one or more processors of a provider network cause the one or more processors to implement an instance of a fifo queue service to:
- receive, from a remote instance of the fifo queue service, a plurality of replicated requests, wherein the replicated requests comprise one or more requests to send messages and one or more requests to delete messages replicated from the remote instance to a secondary fifo queue of the instance, and wherein individual requests of the replicated requests comprise metadata that indicates a particular order of the replicated request with respect to other individual requests of the replicated requests;
- determine, based at least on the metadata of one of the received replicated requests that indicates the particular order of the received replicated request with respect to another of the received replicated requests, that the received replicated request can be stored into a transaction log in accordance with the particular order;
- in response to the determination, store the received replicated request into the transaction log in accordance with the particular order;
- and
- apply the received replicated request to the secondary fifo queue in accordance with the particular order, wherein replicated requests of the secondary fifo queue are applied to the secondary fifo queue in accordance with an order of transactions applied to a primary fifo queue of the remote instance of the fifo queue service.
Dependencies are inferred from the claim text.