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: 10659330
    Abstract: 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: Grant
    Filed: June 28, 2018
    Date of Patent: May 19, 2020
    Assignee: Satori Worldwide, LLC
    Inventors: Igor Milyakov, Fredrik Erik Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
  • Publication number: 20200044994
    Abstract: 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: Application
    Filed: September 4, 2019
    Publication date: February 6, 2020
    Inventors: Igor Milyakov, Fredrik E. Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
  • Publication number: 20190335010
    Abstract: 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: Application
    Filed: July 9, 2019
    Publication date: October 31, 2019
    Inventor: Igor Milyakov
  • Publication number: 20190334850
    Abstract: 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: Application
    Filed: July 10, 2019
    Publication date: October 31, 2019
    Inventor: Igor Milyakov
  • Patent number: 10447623
    Abstract: 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: Grant
    Filed: February 24, 2017
    Date of Patent: October 15, 2019
    Assignee: Satori Worldwide, LLC
    Inventors: Igor Milyakov, Fredrik E. Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
  • Patent number: 10389674
    Abstract: 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: Grant
    Filed: June 27, 2018
    Date of Patent: August 20, 2019
    Assignee: Satori Worldwide, LLC
    Inventor: Igor Milyakov
  • Patent number: 10382574
    Abstract: 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: Grant
    Filed: March 1, 2018
    Date of Patent: August 13, 2019
    Assignee: SATORI WORLDWIDE, LLC
    Inventor: Igor Milyakov
  • Patent number: 10187278
    Abstract: 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: Grant
    Filed: February 24, 2017
    Date of Patent: January 22, 2019
    Assignee: Satori Worldwide, LLC
    Inventors: Igor Milyakov, Fredrik Erik Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
  • Publication number: 20180331992
    Abstract: 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: Application
    Filed: June 27, 2018
    Publication date: November 15, 2018
    Inventor: Igor Milyakov
  • Publication number: 20180309650
    Abstract: 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: Application
    Filed: June 28, 2018
    Publication date: October 25, 2018
    Inventors: Igor Milyakov, Fredrik Erik Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
  • Publication number: 20180248776
    Abstract: 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: Application
    Filed: February 24, 2017
    Publication date: August 30, 2018
    Inventors: Igor Milyakov, Fredrik Erik Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
  • Publication number: 20180248820
    Abstract: 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: Application
    Filed: February 24, 2017
    Publication date: August 30, 2018
    Inventors: Igor Milyakov, Fredrik E. Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
  • Publication number: 20180241691
    Abstract: 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: Application
    Filed: April 4, 2018
    Publication date: August 23, 2018
    Inventors: Lev Walkin, Igor Milyakov, Oleg Khabinov, Dmitry Demeshchuk
  • Patent number: 10038661
    Abstract: 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: Grant
    Filed: November 16, 2017
    Date of Patent: July 31, 2018
    Assignee: SATORI WORLDWIDE, LLC
    Inventor: Igor Milyakov
  • Publication number: 20180191854
    Abstract: 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: Application
    Filed: March 1, 2018
    Publication date: July 5, 2018
    Inventor: Igor Milyakov
  • Patent number: 9967203
    Abstract: 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: Grant
    Filed: August 8, 2016
    Date of Patent: May 8, 2018
    Assignee: SATORI WORLDWIDE, LLC
    Inventors: Lev Walkin, Igor Milyakov, Oleg Khabinov, Dmitry Demeschchuk
  • Patent number: 9942339
    Abstract: 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: Grant
    Filed: May 4, 2017
    Date of Patent: April 10, 2018
    Assignee: SATORI WORLDWIDE, LLC
    Inventor: Igor Milyakov
  • Publication number: 20180091612
    Abstract: 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: Application
    Filed: May 4, 2017
    Publication date: March 29, 2018
    Inventor: Igor Milyakov
  • Publication number: 20180077104
    Abstract: 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: Application
    Filed: November 16, 2017
    Publication date: March 15, 2018
    Inventor: Igor Milyakov
  • Publication number: 20180041444
    Abstract: 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: Application
    Filed: August 8, 2016
    Publication date: February 8, 2018
    Inventors: Lev Walkin, Igor Milyakov, Oleg Khabinov, Dmitry Demeshchuk