Patents by Inventor Igor Milyakov
Igor Milyakov has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 10659330Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for assigning channels in a messaging system. An example method includes: providing a plurality of channels, wherein each channel includes an ordered plurality of messages; assigning each channel to a channel bucket to form a plurality of channel buckets, wherein each channel bucket includes at least two channels from the plurality of channels; and assigning each channel bucket to a node selected from a plurality of nodes, wherein the node includes one or more buffers for storing messages according to the order from the channel buckets of the node.Type: GrantFiled: June 28, 2018Date of Patent: May 19, 2020Assignee: Satori Worldwide, LLCInventors: Igor Milyakov, Fredrik Erik Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
-
Publication number: 20200044994Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for implementing functionality within a messaging system. An example method includes maintaining a plurality of channels, wherein each channel is associated with a respective key, and wherein at least one key is associated with a respective time-to-live and becomes unavailable when the respective time-to-live expires, and wherein each channel comprises a plurality of messages, and wherein each message comprises a value associated with a respective key to form a plurality of key-value pairs. The method also includes receiving a function comprising (i) a key for identifying a channel of the plurality of channels and (ii) processing instructions to be applied to one or more values associated with the key. The method also includes applying, by one or more computer processors, the processing instructions based at least in part on the key.Type: ApplicationFiled: September 4, 2019Publication date: February 6, 2020Inventors: Igor Milyakov, Fredrik E. Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
-
Publication number: 20190335010Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage device, to execute operatons including retrieving messages of a particular channel of a plurality of channels from respective storage buffers, wherein each storage buffer comprises a respective first time-to-live. The operations may also include storing the retrieved messages of the particular channel in a delivery buffer, wherein the delivery buffer comprises one or more data blocks, and wherein each data block comprises a respective second time-to-live. The operations may also include transmitting, by one or more computer processors, the messages stored in the delivery buffer to subscribers of the particular channel.Type: ApplicationFiled: July 9, 2019Publication date: October 31, 2019Inventor: Igor Milyakov
-
Publication number: 20190334850Abstract: A method includes storing a plurality of blocks in a queue, wherein each block stores one or more respective messages and is associated with a respective time that the block was stored in the queue. The method also includes allowing, by one or more computer processors, messages to be read from inactive blocks having associated storage times between a first time and a second time that is older than the first time, and deleting from the queue one or more inactive blocks having associated storage times older than the second time.Type: ApplicationFiled: July 10, 2019Publication date: October 31, 2019Inventor: Igor Milyakov
-
Patent number: 10447623Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for implementing key-value store functionality within a real-time messaging system. An example method includes: providing a plurality of channels, wherein each channel comprises an ordered plurality of messages, wherein each channel represents a unique key, and wherein each message comprises one or more key-value pairs; receiving a function comprising a key for identifying one of the plurality of channels and processing instructions to be applied to a subset of the key-value pairs; and applying the processing instructions based at least in part on the unique key.Type: GrantFiled: February 24, 2017Date of Patent: October 15, 2019Assignee: Satori Worldwide, LLCInventors: Igor Milyakov, Fredrik E. Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
-
Patent number: 10389674Abstract: A method includes storing, by one or more computer processors, a plurality of blocks in a queue, wherein each block includes at least one received message, and wherein each block is associated with a time that the block was stored in the queue. The method further includes designating, by the one or more computer processors, as inactive one or more blocks having associated storage times that are older than a first time. The method further includes reading, by the one or more computer processors, messages from inactive blocks until a second time that is older than the first time. The method further includes deleting, by the one or more computer processors, one or more inactive blocks from the queue having associated storage times that are older than the second time.Type: GrantFiled: June 27, 2018Date of Patent: August 20, 2019Assignee: Satori Worldwide, LLCInventor: Igor Milyakov
-
Patent number: 10382574Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage device, for storing messages of each of a plurality of channels in one or more respective storage buffers, wherein each storage buffer comprises a respective time-to-live of a first duration. The method may also include retrieving messages of a particular channel from respective storage buffers and storing the retrieved messages of the particular channel in a delivery buffer comprising at least one data block, wherein each data block comprises a respective time-to-live of a second duration. The method may also include delivering the messages stored in the delivery buffer to subscribers of the particular channel.Type: GrantFiled: March 1, 2018Date of Patent: August 13, 2019Assignee: SATORI WORLDWIDE, LLCInventor: Igor Milyakov
-
Patent number: 10187278Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for assigning channels in a messaging system. An example method includes: providing a plurality of channels, wherein each channel includes an ordered plurality of messages; assigning each channel to a channel bucket to form a plurality of channel buckets, wherein each channel bucket includes at least two channels from the plurality of channels; and assigning each channel bucket to a node selected from a plurality of nodes, wherein the node includes one or more buffers for storing messages according to the order from the channel buckets of the node.Type: GrantFiled: February 24, 2017Date of Patent: January 22, 2019Assignee: Satori Worldwide, LLCInventors: Igor Milyakov, Fredrik Erik Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
-
Publication number: 20180331992Abstract: A method includes storing, by one or more computer processors, a plurality of blocks in a queue, wherein each block includes at least one received message, and wherein each block is associated with a time that the block was stored in the queue. The method further includes designating, by the one or more computer processors, as inactive one or more blocks having associated storage times that are older than a first time. The method further includes reading, by the one or more computer processors, messages from inactive blocks until a second time that is older than the first time. The method further includes deleting, by the one or more computer processors, one or more inactive blocks from the queue having associated storage times that are older than the second time.Type: ApplicationFiled: June 27, 2018Publication date: November 15, 2018Inventor: Igor Milyakov
-
Publication number: 20180309650Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for assigning channels in a messaging system. An example method includes: providing a plurality of channels, wherein each channel includes an ordered plurality of messages; assigning each channel to a channel bucket to form a plurality of channel buckets, wherein each channel bucket includes at least two channels from the plurality of channels; and assigning each channel bucket to a node selected from a plurality of nodes, wherein the node includes one or more buffers for storing messages according to the order from the channel buckets of the node.Type: ApplicationFiled: June 28, 2018Publication date: October 25, 2018Inventors: Igor Milyakov, Fredrik Erik Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
-
Publication number: 20180248776Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for assigning channels in a messaging system. An example method includes: providing a plurality of channels, wherein each channel includes an ordered plurality of messages; assigning each channel to a channel bucket to form a plurality of channel buckets, wherein each channel bucket includes at least two channels from the plurality of channels; and assigning each channel bucket to a node selected from a plurality of nodes, wherein the node includes one or more buffers for storing messages according to the order from the channel buckets of the node.Type: ApplicationFiled: February 24, 2017Publication date: August 30, 2018Inventors: Igor Milyakov, Fredrik Erik Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
-
Publication number: 20180248820Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for implementing key-value store functionality within a real-time messaging system. An example method includes: providing a plurality of channels, wherein each channel comprises an ordered plurality of messages, wherein each channel represents a unique key, and wherein each message comprises one or more key-value pairs; receiving a function comprising a key for identifying one of the plurality of channels and processing instructions to be applied to a subset of the key-value pairs; and applying the processing instructions based at least in part on the unique key.Type: ApplicationFiled: February 24, 2017Publication date: August 30, 2018Inventors: Igor Milyakov, Fredrik E. Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
-
Publication number: 20180241691Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, to receive one or more messages for publication, wherein each message is received from a respective publisher for publication on a channel of a plurality of channels, place each message in a respective buffer for the channel of the message, wherein messages are present in the respective buffer during a finite time-to-live period for the respective buffer, and for each buffer that has not expired, send any messages in the buffer to subscribers that are authorized to subscribe to the channel associated with the buffer.Type: ApplicationFiled: April 4, 2018Publication date: August 23, 2018Inventors: Lev Walkin, Igor Milyakov, Oleg Khabinov, Dmitry Demeshchuk
-
Patent number: 10038661Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for storing and transferring messages. An example method includes storing a plurality of blocks in a queue, wherein each block includes one or more respective messages received from at least one publisher, wherein each block is associated with a time that the block was stored in the queue, and wherein storage times increase from a block designating a head of the queue to a block designating a tail of the queue. The example method also includes designating as inactive one or more blocks having associated storage times that are older than a first time, allowing messages to be read from inactive blocks until a second time that is older than the first time, and deleting one or more inactive blocks from the queue having associated storage times that are older than the second time.Type: GrantFiled: November 16, 2017Date of Patent: July 31, 2018Assignee: SATORI WORLDWIDE, LLCInventor: Igor Milyakov
-
Publication number: 20180191854Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage device, for storing messages of each of a plurality of channels in one or more respective storage buffers, wherein each storage buffer comprises a respective time-to-live of a first duration. The method may also include retrieving messages of a particular channel from respective storage buffers and storing the retrieved messages of the particular channel in a delivery buffer comprising at least one data block, wherein each data block comprises a respective time-to-live of a second duration. The method may also include delivering the messages stored in the delivery buffer to subscribers of the particular channel.Type: ApplicationFiled: March 1, 2018Publication date: July 5, 2018Inventor: Igor Milyakov
-
Patent number: 9967203Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving one or more subscription requests, wherein each subscription request is received from a respective subscriber client and is for a respective channel, authorizing one or more of the subscription requests, wherein each authorized subscription request permits the subscriber client of the request to receive messages published to the channel of the request, receiving one or more messages for publication, wherein each message is received from a respective publisher client and is for publication on a respective channel, for each of the messages, placing the message in a respective buffer for the channel of the message, wherein the messages are present in the buffer during a finite time-to-live period for the buffer, and for one or more of the buffers, sending any messages in the buffer to subscriber clients that are authorized.Type: GrantFiled: August 8, 2016Date of Patent: May 8, 2018Assignee: SATORI WORLDWIDE, LLCInventors: Lev Walkin, Igor Milyakov, Oleg Khabinov, Dmitry Demeschchuk
-
Patent number: 9942339Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage device, for: receiving messages from a plurality of publishers; assigning each of the messages to one of a plurality of channels, wherein each channel comprises an ordered plurality of messages; storing messages of each of the channels in respective storage buffers according to the order, wherein each storage buffer comprises a respective time-to-live of a first time duration; for a particular channel, retrieving messages of the particular channel from respective storage buffers; storing the retrieved messages of the particular channel in a delivery buffer, the delivery buffer comprising data blocks, wherein each data block comprises a respective time-to-live of a second time duration; and providing the messages stored in the delivery buffer to a plurality of subscribers of the particular channel.Type: GrantFiled: May 4, 2017Date of Patent: April 10, 2018Assignee: SATORI WORLDWIDE, LLCInventor: Igor Milyakov
-
Publication number: 20180091612Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage device, for: receiving messages from a plurality of publishers; assigning each of the messages to one of a plurality of channels, wherein each channel comprises an ordered plurality of messages; storing messages of each of the channels in respective storage buffers according to the order, wherein each storage buffer comprises a respective time-to-live of a first time duration; for a particular channel, retrieving messages of the particular channel from respective storage buffers; storing the retrieved messages of the particular channel in a delivery buffer, the delivery buffer comprising data blocks, wherein each data block comprises a respective time-to-live of a second time duration; and providing the messages stored in the delivery buffer to a plurality of subscribers of the particular channel.Type: ApplicationFiled: May 4, 2017Publication date: March 29, 2018Inventor: Igor Milyakov
-
Publication number: 20180077104Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for storing and transferring messages. An example method includes storing a plurality of blocks in a queue, wherein each block includes one or more respective messages received from at least one publisher, wherein each block is associated with a time that the block was stored in the queue, and wherein storage times increase from a block designating a head of the queue to a block designating a tail of the queue. The example method also includes designating as inactive one or more blocks having associated storage times that are older than a first time, allowing messages to be read from inactive blocks until a second time that is older than the first time, and deleting one or more inactive blocks from the queue having associated storage times that are older than the second time.Type: ApplicationFiled: November 16, 2017Publication date: March 15, 2018Inventor: Igor Milyakov
-
Publication number: 20180041444Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving one or more subscription requests, wherein each subscription request is received from a respective subscriber client and is for a respective channel, authorizing one or more of the subscription requests, wherein each authorized subscription request permits the subscriber client of the request to receive messages published to the channel of the request, receiving one or more messages for publication, wherein each message is received from a respective publisher client and is for publication on a respective channel, for each of the messages, placing the message in a respective buffer for the channel of the message, wherein the messages are present in the buffer during a finite time-to-live period for the buffer, and for one or more of the buffers, sending any messages in the buffer to subscriber clients that are authorized.Type: ApplicationFiled: August 8, 2016Publication date: February 8, 2018Inventors: Lev Walkin, Igor Milyakov, Oleg Khabinov, Dmitry Demeshchuk