The present invention generally relates to a system and method for managing an online social network, and more specifically, to a system and method for managing information exchange between members of an online social network.
Online social networking sites have been rapidly gaining in popularity, and operators of online social networking sites have been adding servers and switches to their infrastructure to keep up with the increasing demand. Keeping up with the increasing demand has, however, proved to be difficult for two reasons. First, online social networking sites are virally marketed, as current members actively solicit nonmembers to sign up and join the network, and as a result, its growth has been very rapid. Second, the load on the social networking site is dependent not only on the total number of members but also on the total number of relationships. Because a member typically has multiple relationships, this means that the load increase associated with each new member is much greater than typical.
The present invention deals with the system load demands by improving the processing efficiencies of the online social networking site. The improvement in the processing efficiencies is achieved by providing one or more graph servers to be used in combination with the site's application server. The application server is configured to handle database management tasks, and the graph servers are configured to handle CPU-intensive computational tasks.
More specifically, the application server manages a database that contains member profile information and member relationship information. The graph servers keep track of how the members are socially connected to one another (hereinafter referred to as, “social network map”) in a dedicated memory device, and process and respond to queries from the application server using the social network map stored in the dedicated memory device. The social network map that is stored in the dedicated memory device of the graph servers is updated to reflect any changes to the member relationship information that are made in the database.
Because the present invention processes relationship information using a social network map that is stored in a dedicated memory device, the number of database lookups is decreased and an improvement in the processing speed is achieved. Depending on the number of relationships that are tracked, a dramatic improvement in the processing speed might be achieved with the present invention.
A social network is generally defined by the relationships among groups of individuals, and may include relationships ranging from casual acquaintances to close familial bonds. A social network may be represented using a graph structure. Each node of the graph corresponds to a member of the social network. Edges connecting two nodes represent a relationship between two individuals. In addition, the degree of separation between any two nodes is defined as the minimum number of hops required to traverse the graph from one node to the other. A degree of separation between two members is a measure of relatedness between the two members.
Degrees of separation in a social network are defined relative to an individual. For example, in ME's social network, H and ME are separated by 2 d/s, whereas in G's social network, H and G are separated by only 1 d/s. Accordingly, each individual will have their own set of first, second and third degree relationships.
As those skilled in the art understand, an individual's social network may be extended to include nodes to an Nth degree of separation. As the number of degrees increases beyond three, however, the number of nodes typically grows at an explosive rate and quickly begins to mirror the ALL set.
The application server 200 manages a member database 210, a relationship database 220 and a search database 230. The member database 210 contains profile information for each of the members in the online social network managed by the computer system 100. The profile information may include, among other things: a unique member identifier, name, age, gender, location, hometown, a pointer to an image file, listing of interests, attributes, etc. The profile information also includes VISIBILITY and CONTACTABILITY settings, the uses of which are described below in connection with
The relationship database 220 stores member relationship information in the following format: (MemberID_1, MemberID_2, Time, Add/Delete). MemberID_1 and MemberID_2 identify the two members whose relationship is defined by this input. Time is a variable corresponding to the time stamp of this input. Add/Delete is a variable indicating whether the friendship between MemberID_1 and MemberID_2 is to be added or deleted.
In addition, the contents of the member database 210 are indexed and optimized for search, and stored in the search database 230. The member database 210, the relationship database 220, and the search database 230 are updated to reflect inputs of new member information and edits of existing member information that are made through the computers 500.
The member database 210, the relationship database 220, and the search database 230 are depicted separately in the block diagram of
The application server 200 also manages the information exchange requests that it receives from the remote computers 500. The information exchange requests may be a request to view a member's profile (
The graph servers 300 have a dedicated memory device 310, such as a random access memory (RAM), in which an adjacency list that reflects the member relationship information is stored. A sample adjacency list that reflects the social network map of
The graph servers 300, on a fixed interval, e.g., every five minutes, check the relationship database 220 for any incremental changes to the member relationship information. If there is, e.g., if (current time—5 minutes) is less than or equal to the time stamp corresponding to an entry in the relationship database 220, the adjacency list stored in the dedicated memory device 510 is updated to reflect such incremental change. If a friendship is to be added, the adjacency list item for MemberID_1 is amended to add MemberID_2 and the adjacency list item for MemberID_2 is amended to add MemberID_1. If a friendship is to be deleted, the adjacency list item for MemberID_1 is amended to delete MemberID_2 and the adjacency list item for MemberID_2 is amended to delete MemberID_1. Alternatively, the adjacency list can be updated in real time, i.e., synchronously with the updates to the relationship database 220.
The queries processed by the graph servers 300 include:
For the calculation of the shortest path in the queries listed above, any of the shortest path algorithms for a node network defined by an adjacency list may be used, e.g., breadth first search algorithm. The algorithms for carrying out other calculations that are necessary to process the queries listed above are programmed using conventional techniques.
In
The application server 200 and the graphs servers 300 are depicted separately in the block diagram of
While particular embodiments according to the invention have been illustrated and described above, it will be clear that the invention can take a variety of forms and embodiments within the scope of the appended claims.
The present application is a continuation of U.S. patent application Ser. No. 10/854,054, filed May 26, 2004, entitled “System and Method for Managing an Online Social Network,” which is incorporated by reference herein for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
4987554 | Kaufman | Jan 1991 | A |
4989141 | Lyons et al. | Jan 1991 | A |
5101475 | Kaufman et al. | Mar 1992 | A |
5189608 | Lyons et al. | Feb 1993 | A |
5257365 | Powers et al. | Oct 1993 | A |
5278966 | Parks et al. | Jan 1994 | A |
5359724 | Earle | Jan 1994 | A |
5361385 | Bakalash | Nov 1994 | A |
5379419 | Heffernan et al. | Jan 1995 | A |
5706495 | Chadha et al. | Jan 1998 | A |
5745764 | Leach et al. | Apr 1998 | A |
5765028 | Gladden | Jun 1998 | A |
5781896 | Dalal | Jul 1998 | A |
5794228 | French et al. | Aug 1998 | A |
5794229 | French et al. | Aug 1998 | A |
5794246 | Sankaran et al. | Aug 1998 | A |
5799300 | Ragrawal et al. | Aug 1998 | A |
5805885 | Leach et al. | Sep 1998 | A |
5822751 | Gray et al. | Oct 1998 | A |
5832475 | Agrawal et al. | Nov 1998 | A |
5850547 | Waddington et al. | Dec 1998 | A |
5852821 | Chen et al. | Dec 1998 | A |
5864184 | Lynch | Jan 1999 | A |
5864857 | Ohata et al. | Jan 1999 | A |
5890151 | Agrawal et al. | Mar 1999 | A |
5901287 | Bull | May 1999 | A |
5905985 | Malloy et al. | May 1999 | A |
5915257 | Gartung et al. | Jun 1999 | A |
5918225 | White et al. | Jun 1999 | A |
5918232 | Pouschine et al. | Jun 1999 | A |
5926818 | Malloy | Jul 1999 | A |
5926820 | Agrawal et al. | Jul 1999 | A |
5940822 | Haderie et al. | Aug 1999 | A |
5963936 | Cochrane et al. | Oct 1999 | A |
5978788 | Castelli et al. | Nov 1999 | A |
5978796 | Malloy et al. | Nov 1999 | A |
5987467 | Ross et al. | Nov 1999 | A |
5991754 | Raitto et al. | Nov 1999 | A |
5999192 | Selfridge et al. | Dec 1999 | A |
6003029 | Agrawal et al. | Dec 1999 | A |
6006216 | Griffin et al. | Dec 1999 | A |
6023695 | Osborn et al. | Feb 2000 | A |
6034697 | Becker | Mar 2000 | A |
6064499 | Dalal | May 2000 | A |
6108647 | Poosala et al. | Aug 2000 | A |
6115705 | Larson | Sep 2000 | A |
6122628 | Castelli et al. | Sep 2000 | A |
6134541 | Castelli et al. | Oct 2000 | A |
6141655 | Johnson et al. | Oct 2000 | A |
6151601 | Papierniak et al. | Nov 2000 | A |
6161103 | Rauer et al. | Dec 2000 | A |
6163774 | Lore et al. | Dec 2000 | A |
6173310 | Yost et al. | Jan 2001 | B1 |
6182060 | Hedgcock et al. | Jan 2001 | B1 |
6182061 | Matsuzawa et al. | Jan 2001 | B1 |
6189004 | Rassen et al. | Feb 2001 | B1 |
6205447 | Malloy | Mar 2001 | B1 |
6208975 | Bull et al. | Mar 2001 | B1 |
6209036 | Aldred et al. | Mar 2001 | B1 |
6212515 | Rogers | Apr 2001 | B1 |
6212524 | Weissman et al. | Apr 2001 | B1 |
6212617 | Hardwick | Apr 2001 | B1 |
6249791 | Osborn et al. | Jun 2001 | B1 |
6269369 | Robertson | Jul 2001 | B1 |
6269393 | Yost et al. | Jul 2001 | B1 |
6317750 | Tortolani et al. | Nov 2001 | B1 |
6321241 | Gartung et al. | Nov 2001 | B1 |
6324533 | Agrawal et al. | Nov 2001 | B1 |
6330564 | Hellerstein et al. | Dec 2001 | B1 |
6347332 | Malet | Feb 2002 | B1 |
6374234 | Netz | Apr 2002 | B1 |
6385301 | Nolting et al. | May 2002 | B1 |
6385604 | Bakalash et al. | May 2002 | B1 |
6397195 | Pinard et al. | May 2002 | B1 |
6405208 | Raghavan et al. | Jun 2002 | B1 |
6408292 | Bakalash et al. | Jun 2002 | B1 |
6434544 | Bakalash et al. | Aug 2002 | B1 |
6473764 | Petculescu et al. | Oct 2002 | B1 |
6477536 | Pasumansky et al. | Nov 2002 | B1 |
6484179 | Roccaforte | Nov 2002 | B1 |
6493728 | Berger | Dec 2002 | B1 |
6535872 | Castelli et al. | Mar 2003 | B1 |
6542750 | Hendrey | Apr 2003 | B2 |
6549907 | Fayyad et al. | Apr 2003 | B1 |
6594672 | Lampson et al. | Jul 2003 | B1 |
6601062 | Deshpande | Jul 2003 | B1 |
6629094 | Colby | Sep 2003 | B1 |
6640218 | Golding | Oct 2003 | B1 |
6643661 | Polizzi et al. | Nov 2003 | B2 |
6662174 | Shah et al. | Dec 2003 | B2 |
6732115 | Shah et al. | May 2004 | B2 |
6748394 | Shah et al. | Jun 2004 | B2 |
6763357 | Deshpande et al. | Jul 2004 | B1 |
6766325 | Pasumansky et al. | Jul 2004 | B1 |
6832263 | Polizzi et al. | Dec 2004 | B2 |
7069308 | Abrams | Jun 2006 | B2 |
7177880 | Ruvolo et al. | Feb 2007 | B2 |
7188153 | Lunt | Mar 2007 | B2 |
7478078 | Lunt | Jan 2009 | B2 |
7512612 | Akella | Mar 2009 | B1 |
7895357 | Walker | Feb 2011 | B1 |
20020016924 | Shah et al. | Feb 2002 | A1 |
20020023122 | Polizzi et al. | Feb 2002 | A1 |
20020029207 | Bakalash et al. | Mar 2002 | A1 |
20020038229 | Shah et al. | Mar 2002 | A1 |
20020038297 | Shah et al. | Mar 2002 | A1 |
20020099692 | Shah et al. | Jul 2002 | A1 |
20020111173 | Hendrey | Aug 2002 | A1 |
20020154171 | Lee | Oct 2002 | A1 |
20040088325 | Elder | May 2004 | A1 |
20050091202 | Thomas | Apr 2005 | A1 |
20050165785 | Malkin et al. | Jul 2005 | A1 |
20050177385 | Hull et al. | Aug 2005 | A1 |
20050235062 | Lunt et al. | Oct 2005 | A1 |
20050243736 | Faloutsos | Nov 2005 | A1 |
Number | Date | Country |
---|---|---|
WO 9849636 | Nov 1998 | WO |
Entry |
---|
Li, C. et al., “A Data Model for Supporting On-Line Analytical Processing,” Presented at the International Conference on Information and Knowledge Management, 1996, pp. 81-88. |
Albrecht, J. et al., “Aggregate-Based Query Processing in a Parallel Data Warehouse Server,” Proceedings of the Tenth International Workshop on Database and Expert Systems Applications, Sep. 1-3, 1999, pp. 40-44. |
Pourabbas, E. et al., “Characterization of Hierarchies and Some Operators in OLAP Environment,” Presented at the ACM 2nd International Workshop on Data Warehousing and OLAP, Nov. 2-6, 1999, pp. 1-17. |
Widmann, N. et al., “Efficient Execution of Operations in a DBMS for Multidensional Arrays,” Presented at the ACM SIGMOD 1998, pp. 1-11, http://dblp,unitier.de/db/conf/ssdbm/WidmannB98.html. |
Korn, F. et al., “Efficiently Supporting Ad Hoc Queries in Large Datasets of Time Sequences,” Presented at ACM SIGMOD International Conference on Management of Data, May 11-15, 1997, pp. 1-22, http://www.acm.org/pubs/citations/proceedings/mod/253260.p289-korn/. |
Pedersen, T.B., Aspects of Data Modeling and Query Processing for Complex Multidimensional Data, 2000, pp. 1-180, Danish Academy of Technical Sciences. |
Pourabbas, E. et al., “Hierarchies and Relative Operators in the OLAP Environment,” SIGMOD Record, Mar. 2000, pp. 1-8, vol. 29, No. 1, http://www.dblp,unitrier,de/db/journals/signmod29.html. |
Salem, K. et al., “How to Roll a Join: Asynchronous Incremental View Maintenance,” Presented at ACM SIGMOD on Management of Data Symposium on Principles of Database Systems, May 15-18, 2000, pp. 1-13, http://www.acm.org/pubs/citations/proceedings/mod/342009/p129-salem/#abstract. |
Harinarayan, V. et al., “Implementing Data Cubes Efficiently,” Presented at the ACM SIGMOD International Conference on Management of Data, Jun. 4-6, 1996, pp. 205-216. |
Agrawal, R. et al., “Modeling Multidimensional Databases,” IBM Almaden Research Center, 1995; Presented at the 13th International Conference on Data Engineering Apr. 1997, pp. 1-23. |
Agarwal, S. et al., “On the Computation of Multidimensional Aggregates,” Presented at the 22nd VLDB Conference, 1996, pp. 1-16. |
Hellerstein, J.M. et al., “Online Agrregation,” Presented at the ACM SIGMOD International Conference on Management of Data, May 1997, Tucson, Arizona, pp. 1-12, http://www.acm/org/pubs/citations/proceedings/mod/253260/p171-hellerstein/. |
Elkins, S.B., “Open OLAP,” DBMS, Apr. 1998, pp. 1-7, http://www.dbmsmag.com/9804d14.html. |
Li, C. et al., “Optimizing Statistical Queries by Exploiting Orthogonality and Interval Properties of Grouping Relations,” Presented at the 8th International Conference on Scientific & Statistical Database Management, pp. 1-10, Jun. 1996. |
Ho, C. et al., “Range Queries in OLAP Data Cubes,” Presented at the ACM SIGMOD International Conference on Management of Data, May 11-15, 1997, pp. 1-16, http://www.acm.org/pubs/citations/proceedings/mod/253260/p73-ho/. |
“See Data from All Angels with Multidimensional Database Software” SAS Institute Inc., 2001, 1 page, www.sas,com/products/mddb/index/html. |
Cheung, D.W. et al., “Towards the Building of a Dense-Region-Based OLAP System,” Data and Knowledge Engineering, 2001, pp. 1-27, vol. 36, No. 1, http://www.elsevier.nl/gejng/10/16/74/62/24/24/abstract.html. |
McKie, S., “Essbase 4.0,” DBMS Online, Jul. 1996, pp. 1-4, http://www.dbmsmag.com/9607d13.html. |
Hellerstein, J.M., “Optimization Techniques for Queries with Expensive Methods,” ACM Transactions on Database Systems (TODS), 1998, pp. 113-157, vol. 23, No. 2. |
Colliat, G., “OLAP, Relational, and Multidimensional Database Systems,” SIGMOD Record, Sep. 1996, pp. 64-69, vol. 25, No. 3. |
Kimball R., “The Aggregate Navigator; How to Optimize Your Data Warehouse Using Aggregates Without Driving Your End Users Crazy,” DBMS, Nov. 1995, http://www.dbmsmag.com. |
Pendse, N., “The Origins of Today's OLAP Products,” Feb. 6, 2003, pp. 1-7, http://ww.olapreport.com/origins.htm. |
“Introduction to Structured Query Language,” 2000, pp. 1-33, http:/w3.one.net/about/jhoffmann/sqltut.htm. |
Date, C.J., “An Introduction to Database Systems,” 2000, pp. 250, 266, 289-326, Addison-Wesley, Seventh Edition. |
“The Art of Indexing,” a White Paper by DISC, Oct. 1999, pp. 3-30, Dynamic Information Systems Corporation. |
Harrington, J.L., “Relational Database Design Clearly Explained,” 1998, pp. v-xiii, 1-62, Morgan Kaufman. |
Kimball, R., “Aggregate Navigation with (Almost) No MetaData,” 1996, pp. 1-8, http://www.dbmsmag.com/9608d54.html. |
Duhl, J. et al., “A Performance Comparison of Object and Relational Databases Using the Sun Benchmark,” Proceedings of the Conference on Object Programming Systems Languages and Applications, Sep. 25-30, 1988, pp. 153-163. |
Gupta, H.V., et al. “Index Selection for OLAP,” Proceedings of the 13th International Conference on Data Engineering, Apr. 7-11, 1997, pp. 208-219. |
Chaudhuri, S. et al., “An Overview of Data Warehousing and OLAP Technology,” SIGMOD Record, New York, NY Mar. 1997, vol. 26, No. 1. |
Colby, L.S. et al. “Red Brick Vista, Aggregate Comoputation and Management,” Data Engineering 1998 Proceedings, 14th International Confrenence in Orlando, FL., Feb. 23-27, 1998. |
Albrecht, J. et al. “Management of Multidimensional Aggregates for Efficient Online Analytical Processing, ” Database Engineering and Applications, 1999, International Symposium Proceedings Montreal, Quebec, Canada. |
Zhao, Y. et al., “Array-Based Evaluation of Multi-Dimensional Queries in Object-Relational Database Systems,” Data Engineering, 1998 Proceedings, 14th International Conference in Orlando, FL, Feb. 23-27, 1998. |
Number | Date | Country | |
---|---|---|---|
20110099167 A1 | Apr 2011 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10854054 | May 2004 | US |
Child | 12981311 | US |