US2019268293A1PendingUtilityA1

Scalable, real-time messaging system

Assignee: SATORI WORLDWIDE LLCPriority: Aug 7, 2015Filed: May 8, 2019Published: Aug 29, 2019
Est. expiryAug 7, 2035(~9 yrs left)· nominal 20-yr term from priority
H04L 67/142H04L 51/14H04L 47/826H04L 47/801H04L 51/214H04L 47/50H04L 67/55
54
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for storing messages of each of a plurality of channels in one or more respective buffers, wherein each buffer comprises a respective buffer time-to-live, wherein each buffer comprises a plurality of blocks, wherein each block of the plurality of blocks stores one or more of the messages, wherein each block comprises a respective block time-to-live, and wherein the block time-to-live is different than the buffer time-to-live. The method may also include the action of sending, by the one or more computer processors, the messages for a channel of the plurality of channels retrieved from one or more blocks that have not expired.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method, comprising:
 storing, by One or more computer processors, messages of each of a plurality of channels in one or more respective buffers,
 wherein each buffer comprises a respective buffer time-to-live, wherein each buffer comprises a plurality of blocks, wherein each block of the plurality of blocks stores one or more of the messages, wherein each block comprises a respective block time-to-live, and wherein the block time-to-live is different than the buffer time-to-live; and 
   sending, by the one or more computer processors, the messages for a channel of the plurality of channels retrieved from one or more blocks that have not expired.   
     
     
         2 . The method of  claim 1 , wherein storing the messages of each of the plurality of channels in the one or more respective buffers comprises:
 storing the messages received at an earlier time in blocks having respective block time-to-lives that will expire sooner than blocks used to store messages received at a later time.   
     
     
         3 . The method of  claim 1 , wherein the block time-to-live is shorter than the buffer time-to-live. 
     
     
         4 . The method of  claim 1 , comprising removing one or more of the blocks having respective block time-to-lives that have expired. 
     
     
         5 . The method of  claim 4 , wherein the retrieved messages persist in unremoved blocks until respective block time-to-lives of the unremoved blocks expire. 
     
     
         6 . The method of  claim 1 , wherein each channel comprises an ordered plurality of messages. 
     
     
         7 . The method of  claim 1 , comprising:
 arranging the stored messages in the buffer according to when the messages were received.   
     
     
         8 . The method of  claim 1 , comprising:
 removing the buffers when the buffer time-to-live tear the buffer has expired.   
     
     
         9 . The method of  claim 1 , comprising sending the messages for the channel to one or more subscriber clients subscribed to the channel after a predetermined time period. 
     
     
         10 . The method of  claim 1 , wherein the messages are received from one or more publishers, and wherein each of the messages is associated with a respective channel of the plurality of channels. 
     
     
         11 . A system, comprising:
 one or more computer processors programmed to perform operations to:
 store messages of each of a plurality of channels in one or more respective buffers, 
 wherein each buffer comprises a respective buffer time-to-live, wherein each buffer comprises a plurality of blocks, wherein each block of the plurality of blocks stores one or more of the messages, wherein each block comprises a respective block time-to-live, and wherein the block time-to-live is different than the buffer time-to-live; and 
 send the messages for a channel of the plurality of channels retrieved from one or more blocks that have not expired. 
   
     
     
         12 . The system of  claim 11 , wherein to store the messages of each of the plurality of channels in the one or more respective buffers the one or more computer processors are further to:
 store the messages received at an earlier time in blocks having respective block time-to-lives that will expire sooner than blocks used to store messages received at a later time.   
     
     
         13 . The system of  claim 11 , wherein the block time-to-live is shorter than the buffer time-to-live. 
     
     
         14 . The system of  claim 11 , wherein the operations are further to:
 remove one or more of the blocks having respective block time-to-lives that have expired.   
     
     
         15 . The system of  claim 14 , wherein the retrieved messages persist in unremoved blocks until respective block time-to-lives of the unremoved blocks expire. 
     
     
         16 . The system of  claim 11 , wherein each channel comprises an ordered plurality of messages. 
     
     
         17 . The system of  claim 11 , wherein the operations are further to:
 arrange the stored messages in the buffer according to when the messages were received.   
     
     
         18 . The system of  claim 11 , wherein the operations are further to:
 remove the buffers when the buffer time-to-live for the buffer has expired.   
     
     
         19 . The system of  claim 11 , wherein the one or more computer processors are further to send the messages for the channel to one or more subscriber clients subscribed to the channel after a predetermined time period. 
     
     
         20 . A non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the one or more computer processors to:
 store messages of each of a plurality of channels in one or more respective buffers,
 wherein each buffer comprises a respective buffer time-to-live, wherein each buffer comprises a plurality of blocks, wherein each block of the plurality of blocks stores one or more of the messages, wherein each block comprises a respective block time-to-live, and wherein the block time-to-live is different than the buffer time-to-live; and 
 send the messages for a channel of the plurality of channels retrieved from one or more blocks that have not expired.

Join the waitlist — get patent alerts

Track US2019268293A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.