发明名称 Messaging with key-value persistence
摘要 Techniques are described for providing a messaging service that employs a distributed key-value store for message persistence. On receiving a message to be enqueued for subsequent delivery, a message identifier is generated and employed as a key to store the message in the key-value store. The message identifier may be generated based on an available location in a message tracking data structure. In some cases, the message tracking data structure may be an append tree data structure that is substantially self-balancing as an increasing number of messages are tracked using the append tree data structure. The message tracking data structure may be further employed to determine a message identifier for a message to be vended from the key-value store.
申请公布号 US9578120(B1) 申请公布日期 2017.02.21
申请号 US201314136771 申请日期 2013.12.20
申请人 Amazon Technologies, Inc. 发明人 Evenson Andrew Ross
分类号 G06F17/30;H04L29/08 主分类号 G06F17/30
代理机构 Lindauer Law PLLC 代理人 Lindauer Law PLLC
主权项 1. A system, comprising: a memory; and at least one computing device configured to implement one or more services, wherein the one or more services are configured to: receive a message to be stored in a queue for subsequent delivery, wherein the queue is divided into a plurality of partitions; select a partition from the plurality of partitions based at least partly on a partition file associated with the partition, the partition file stored in a file system of the at least one computing device; access an append tree data structure configured to track messages according to the partition, the append tree data structure being substantially self-balancing as a number of the tracked messages increases, the append tree data structure stored in the file system; determine an available location for tracking the message using the append tree data structure, the available location being a position in a block of the append tree data structure; determine a message identifier corresponding to the message, the message identifier including: a partition identifier that identifies the partition; a block identifier that identifies the block of the available location in the append tree data structure; and a message index that identifies the position of the available location in the block; and employ the message identifier as a key to store the message in a key-value store corresponding to the file system.
地址 Reno NV US