US2019268293A1PendingUtilityA1

Scalable, real-time messaging system

54
Assignee: SATORI WORLDWIDE LLCPriority: Aug 7, 2015Filed: May 8, 2019Published: Aug 29, 2019
Est. expiryAug 7, 2035(~9.1 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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.