Method and system for distributed processing in a messaging platform

US10324776B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10324776-B2
Application numberUS-201715859220-A
CountryUS
Kind codeB2
Filing dateDec 29, 2017
Priority dateSep 26, 2013
Publication dateJun 18, 2019
Grant dateJun 18, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for distributed processing involves receiving a graph (G) of targets and of influencers, with each influencer related to at least one target, receiving an action graph of actions performed by one or more of the influencers, and key partitioning G across shards. The method further involves transposing the first graph (G) to obtain a first transposed graph (G T ), valuing partitioning G T across the shards, storing the action graph on multiple shards, issuing, to a shard, a request specifying an influencer, to perform an intersection, receiving a response to the request of a set of influencers each of which is related to a target, and determining whether to send a recommendation to the target based on the response.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving a graph (G) comprising a plurality of nodes that each represent a respective account of a messaging system and a plurality of edges that each represent a relationship between a pair of accounts, wherein each account is either a target of other accounts, an influencer of other accounts, or both a target and an influencer, wherein G represents a plurality of targets and a plurality of influencers, and wherein each directed edge from one node to another node in the graph indicates that the account represented by the other node is an influencer of the account represented by the one node and that the account represented by the one node is a target of the account represented by the other node; value partitioning G across multiple physical shards, wherein the value partitioning of G comprises, for each influencer, applying a hash function to the influencer of the graph to generate a hash result and distributing the in-edges to each influencer to a physical shard identified by the hash result for the influencer; transposing G to obtain a transposed graph (G T ), wherein the transposed graph G T transposes the relationships between the nodes of G; value partitioning G T across the multiple physical shards, wherein each partition of G T in each shard of the multiple physical shards has the same edges as a corresponding partition of G in the shard; in response to a request to determine all accounts represented in G that are influencers of a first account and that are also targets of a second account: issuing to each physical shard a request for an intersection of (i) values found on a lookup of the value partition of G on the shard using the first account as key and (ii) values found on a lookup of the value partition of G T on the shard using the second account as key, and receiving from each shard the respective intersection of values, and performing a union of the intersections of values received from the shards, wherein the results of the union correspond to accounts represented by nodes of G that are influencers of the first account and that are also targets of the second account; determining to send a recommendation to one or more of the accounts of the messaging system identified in the results of the union; and in response to a determination to send the recommendation to one or more of the accounts, sending the recommendation to the determined one or more accounts. 2. The method of claim 1 , wherein each directed edge from one node to another node in the graph indicates that the account represented by the one node is a follower of the account represented by the other node. 3. The method of claim 1 , wherein the multiple physical shards each have one or more data processing nodes and partitioning G and G T across the shards comprises partitioning G and G T across the data processing nodes of the multiple physical shards. 4. A method comprising: receiving a graph (G) comprising a plurality of nodes that each represent a respective account of a messaging system and a plurality of edges that each represent a relationship between a pair of accounts, wherein each account is either a target of other accounts, an influencer of other accounts, or both a target and an influencer, wherein G represents a plurality of targets and a plurality of influencers, and wherein each directed edge from one node to another node in the graph indicates that the account represented by the other node is an influencer of the account represented by the one node and that the account represented by the one node is a target of the account represented by the other node; key partitioning G across a first physical shard and a second multiple physical shards, wherein the key partitioning of G comprises, for each influencer, applying a hash function to the influencer of the graph to generate a hash result and distributing the in-edges to each influencer to a physical shard identified by the hash result for the influencer; transposing G to obtain a first transposed graph (G T ), wherein the first transposed graph G T transposes the relationships between the nodes of G; key partitioning G T across the multiple physical shards, wherein each partition of G T in each shard of the multiple physical shards has the same edges as a corresponding partition of G in the shard; in response to a request to determine all accounts represented in G that are targets of a first account and also targets of a second account: issuing to each physical shard a request for an intersection of (i) values found in a look-up of key partition G T on the shard using the first account as key and (ii) values found in a look-up of key partition G on the shard using the second account as key, and receiving from each shard the respective intersection of values, and performing a union of the intersections of values received from the shards, wherein the results of the union correspond to accounts represented by nodes of G that are targets of the first account and also targets of the second account; determining to send a recommendation to one or more of the accounts of the messaging system identified in the results of the union; and in response to a determination to send the recommendation to one or more of the accounts, sending the recommendation to the determined one or more accounts. 5. The method of claim 4 , wherein each directed edge from one node to another node in the graph indicates that the account represented by the one node is a follower of the account represented by the other node. 6. The method of claim 4 , wherein the multiple physical shards each have one or more data processing nodes and partitioning G and G T across the shards comprises partitioning G and G T across the data processing nodes of the multiple physical shards. 7. A system comprising: one or more computers and one or more storage devices on which are stored instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: receiving a graph (G) comprising a plurality of nodes that each represent a respective account of a messaging system and a plurality of edges that each represent a relationship between a pair of accounts, wherein each account is either a target of other accounts, an influencer of other accounts, or both a target and an influencer, wherein G represents a plurality of targets and a plurality of influences, and wherein each directed edge from one node to another node in the graph indicates that the account represented by the other node is an influencer of the account represented by the one node and that the account represented by the one node is a target of the account represented by the other node; value partitioning G across multiple physical shards, wherein the value partitioning of G comprises, for each influencer, applying a hash function to the influencer of the graph to generate a hash result and distributing the in-edges to each influencer to a physical shard identified by the hash result for the influencer; transposing G to obtain a transposed graph (G T ), wherein the first transposed graph Gt transposes the relationships between the nodes of G; value partitioning G T across the multiple physical shards, wherein each partition of GT in each shard of the multiple physical shards has the same edges as a corresponding partition of G in the shard; in response to a request to determine all accounts represented in G that are influences of a first account and that are also targets of a second account: issuing to each physical shard a first request for an intersection of (i) values found on a lookup of the value partition of G on the shard using the first account as key and (ii) values found on a look

Assignees

Inventors

Classifications

  • Query processing · CPC title

  • Graphs; Linked lists (G06F16/9027 takes precedence) · CPC title

  • G06F9/546Primary

    Message passing systems or structures, e.g. queues · CPC title

  • G06F9/46Primary

    Multiprogramming arrangements · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10324776B2 cover?
A method for distributed processing involves receiving a graph (G) of targets and of influencers, with each influencer related to at least one target, receiving an action graph of actions performed by one or more of the influencers, and key partitioning G across shards. The method further involves transposing the first graph (G) to obtain a first transposed graph (G T ), valuing partitioning G …
Who is the assignee on this patent?
Twitter Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/546. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 18 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).