Movatterモバイル変換


[0]ホーム

URL:


US20170091334A1 - Cache efficiency by social graph data ordering - Google Patents

Cache efficiency by social graph data ordering
Download PDF

Info

Publication number
US20170091334A1
US20170091334A1US14/869,656US201514869656AUS2017091334A1US 20170091334 A1US20170091334 A1US 20170091334A1US 201514869656 AUS201514869656 AUS 201514869656AUS 2017091334 A1US2017091334 A1US 2017091334A1
Authority
US
United States
Prior art keywords
social graph
vertices
social
users
buckets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US14/869,656
Other versions
US10025867B2 (en
Inventor
Igor Kabiljo
Laxman Dhulipala
Alon Michael Shalita
Arun Dattaram Sharma
Brian Christopher Karrer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Facebook Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Facebook IncfiledCriticalFacebook Inc
Priority to US14/869,656priorityCriticalpatent/US10025867B2/en
Publication of US20170091334A1publicationCriticalpatent/US20170091334A1/en
Assigned to FACEBOOK, INC.reassignmentFACEBOOK, INC.ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: SHARMA, ARUN DATTARAM, SHALITA, ALON MICHAEL, KABILJO, IGOR, DHULIPALA, LAXMAN, KARRER, BRIAN CHRISTOPHER
Application grantedgrantedCritical
Publication of US10025867B2publicationCriticalpatent/US10025867B2/en
Assigned to META PLATFORMS, INC.reassignmentMETA PLATFORMS, INC.CHANGE OF NAME (SEE DOCUMENT FOR DETAILS).Assignors: FACEBOOK, INC.
Activelegal-statusCriticalCurrent
Adjusted expirationlegal-statusCritical

Links

Images

Classifications

Definitions

Landscapes

Abstract

Embodiments are disclosed for improving cache or memory efficiency of a social network system. A method according to some embodiments includes steps of: receiving an instruction to improve cache or memory efficiency of social graph data of a social graph; generating based on the social graph a partitioning tree including multiple bottom-level buckets, the partitioning tree dividing the vertices of the social graph into the bottom-level buckets and ordering the bottom-level buckets such that a social network metric regarding the vertices is optimized; assigning user IDs to the vertices of the social network in a numerical sequence based on the ordering of the bottom-level buckets; storing the social graph data of the users in storage locations in an order according to the numeral sequence of the assigned user IDs of the vertices.

Description

Claims (19)

I/We claim:
1. A method for improving storage efficiency of a social network system, comprising:
receiving an instruction to improve cache or memory efficiency of social graph data of a social graph, wherein the social graph includes multiple vertices representing social network users and some of the social network users are friends in a social network;
generating, based on the social graph, a partitioning tree including multiple bottom-level buckets, the partitioning tree dividing the vertices of the social graph into the bottom-level buckets and ordering the bottom-level buckets such that a social network metric corresponding to the vertices is optimized;
assigning user identities (IDs) to the vertices of the social network in a numerical sequence based on the ordering of the bottom-level buckets;
storing the social graph data of the users in storage locations in a storage device in an order according to the numeral sequence of the assigned user IDs of the vertices; and
responding to a social graph data request for a list of requested users by retrieving social graph data of the requested users together from storage locations that are close to each other in the storage device, wherein the requested users are related users who have been assigned the user IDs that are close to each other.
2. The method ofclaim 1, wherein the partitioning tree divides the vertices of the social graph into the bottom-level buckets and orders the bottom-level buckets such that a log cost of the vertices of the social graph is minimized.
3. The method ofclaim 2, wherein at least some of vertices representing friend users are in the same bucket among the bottom-level buckets corresponding to the minimized log cost of the vertices of the social graph.
4. The method ofclaim 1, wherein the partitioning tree divides the vertices of the social graph into the bottom-level buckets and orders the bottom-level buckets such that a log gap cost of the vertices of the social graph is minimized.
5. The method ofclaim 4, wherein vertices representing friends of a particular user tend to stay in the same bucket among the bottom-level buckets corresponding to the minimized log gap cost of the vertices of the social graph.
6. The method ofclaim 1, wherein the social graph data of the vertices are stored in blocks of storage devices, and wherein the size of the bottom-level blocks of the partitioning tree is substantially equal to or less than a block size of the blocks of the storage devices.
7. The method ofclaim 6, wherein said retrieving social graph data comprises:
retrieving social graph data of the requested users together from storage locations that are close to each other, wherein the social graph data of at least two of the requested users are stored in a common block of one of the storage devices.
8. The method ofclaim 1, wherein said assigning user IDs to the vertices of the social network comprises:
assigning alternative user IDs to the vertices of the social network in a numerical sequence based on the ordering of the bottom-level buckets;
wherein the alternative user IDs are different from original user IDs that are assigned to the social network users when accounts of the social network users are created, the original user IDs having no relevance or correlation with relationships between vertices of the social graph.
9. The method ofclaim 1, wherein said generating based on the social graph a partitioning tree comprises:
recursively dividing the social graph into buckets of vertices such that the social network metric regarding the vertices is optimized, the buckets being nodes of the partitioning tree;
determining that bottom-level buckets of the partitioning tree reach a desired level of granularity; and
stopping further divisions of the social graph.
10. The method ofclaim 9, wherein the partitioning tree is a binary partitioning tree, and the nodes of the binary partitioning tree have two branches respectively.
11. The method ofclaim 1, further comprising:
swapping two buckets that are child nodes of a common parent node of the partitioning tree such that the social network metric regarding the vertices is further optimized.
12. The method ofclaim 1, wherein the social network metric regarding the vertices is calculated by sampling a number of representative vertices from the buckets of the social graph.
13. The method ofclaim 1, further comprising:
identifying a sub-optimal vertex that falls into a first bucket based on a sub-optimal decision; and
moving the sub-optimal vertex into a second bucket so that the social network metric regarding the vertices is further optimized;
wherein the first and second buckets belong to a section led by a common ancestor node within a predetermined number of levels.
14. The method ofclaim 1, further comprising:
receiving an instruction to add a new vertex representing a new user to the social graph;
adding the new vertex to a last bucket of the bottom-level buckets of the partitioning tree;
re-generating a new partitioning tree using the bottom-level buckets including the new vertex as initialization; and
assigning new user IDs to the vertices of the social network in a numerical sequence based on the ordering of the bottom-level buckets of the new partitioning tree.
15. A non-transitory machine-readable storage medium comprising a program containing a set of instructions for causing a machine to execute procedures for improving data compression efficiency of a social network system, the procedures comprising:
receiving an instruction to improve data compression efficiency of social graph data of a social graph, the social graph including multiple vertices representing social network users, some of the social network users are friends in a social network;
generating based on the social graph a partitioning tree including multiple bottom-level buckets, the partitioning tree dividing the vertices of the social graph into the bottom-level buckets and ordering the bottom-level buckets such that a social network metric regarding the vertices is optimized;
assigning user IDs to the vertices of the social network in a numerical sequence based on the ordering of the bottom-level buckets; and
storing the social graph data of the users in storage locations in an order according to the numeral sequence of the assigned user IDs of the vertices, wherein the social graph data of the users are stored in a form of differences between the social graph data of respective users and the social graph data of neighboring users.
16. The non-transitory machine-readable storage medium ofclaim 15, wherein a respective user and a neighboring user are fiends in the social network, and the storage space taken by the respective user is less because the difference between the social graph data of the respective user and the social graph data of the neighboring user is small.
17. The non-transitory machine-readable storage medium ofclaim 15, further comprising:
responding to a social graph data request for a list of requested users by retrieving social graph data of the requested users together from storage locations that are close to each other, wherein the requested users are related users who have been assigned the user IDs that are close to each other.
19. The non-transitory machine-readable storage medium ofclaim 15, wherein the partitioning tree divides the vertices of the social graph into the bottom-level buckets and orders the bottom-level buckets such that a log cost or a log gap cost of the vertices of the social graph is minimized.
20. A computing device, comprising:
a networking interface configured for receiving a social graph data request;
one or more storage devices configured to store social graph data of a social graph, the social graph including multiple vertices representing social network users, some of the social network users are friends in a social network;
a partition tree module configured to generate based on the social graph a partitioning tree including multiple bottom-level buckets, the partitioning tree dividing the vertices of the social graph into the bottom-level buckets and ordering the bottom-level buckets such that a social network metric regarding the vertices is optimized;
a reordering module configured to assign user IDs to the vertices of the social network in a numerical sequence based on the ordering of the bottom-level buckets, wherein at least one of the storage devices stores the social graph data of the users in storage locations in an order according to the numeral sequence of the assigned user IDs of the vertices; and
a response module configured to respond to the social graph data request for a list of requested users by retrieving social graph data of the requested users together from storage locations that are close to each other, wherein the requested users are related users who have been assigned the user IDs that are close to each other.
US14/869,6562015-09-292015-09-29Cache efficiency by social graph data orderingActive2036-09-03US10025867B2 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
US14/869,656US10025867B2 (en)2015-09-292015-09-29Cache efficiency by social graph data ordering

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
US14/869,656US10025867B2 (en)2015-09-292015-09-29Cache efficiency by social graph data ordering

Publications (2)

Publication NumberPublication Date
US20170091334A1true US20170091334A1 (en)2017-03-30
US10025867B2 US10025867B2 (en)2018-07-17

Family

ID=58409512

Family Applications (1)

Application NumberTitlePriority DateFiling Date
US14/869,656Active2036-09-03US10025867B2 (en)2015-09-292015-09-29Cache efficiency by social graph data ordering

Country Status (1)

CountryLink
US (1)US10025867B2 (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20180025094A1 (en)*2016-07-192018-01-25Sap SeIncreasing performance of in-memory databases using re-ordered query execution plans
US20180357278A1 (en)*2017-06-092018-12-13Linkedin CorporationProcessing aggregate queries in a graph database
CN110083777A (en)*2018-01-262019-08-02腾讯科技(深圳)有限公司A kind of social network user group technology, device and server
US10387127B2 (en)2016-07-192019-08-20Sap SeDetecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10437798B2 (en)2016-07-192019-10-08Sap SeFull system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10452539B2 (en)2016-07-192019-10-22Sap SeSimulator for enterprise-scale simulations on hybrid main memory systems
US10474557B2 (en)2016-07-192019-11-12Sap SeSource code profiling for line-level latency and energy consumption estimation
US10540098B2 (en)2016-07-192020-01-21Sap SeWorkload-aware page management for in-memory databases in hybrid main memory systems
US10628462B2 (en)*2016-06-272020-04-21Microsoft Technology Licensing, LlcPropagating a status among related events
US10698732B2 (en)2016-07-192020-06-30Sap SePage ranking in operating system virtual pages in hybrid memory systems
US10783146B2 (en)2016-07-192020-09-22Sap SeJoin operations in hybrid main memory systems
US11010379B2 (en)2017-08-152021-05-18Sap SeIncreasing performance of in-memory databases using re-ordered query execution plans
US11068458B2 (en)*2018-11-272021-07-20Advanced Micro Devices, Inc.Mechanism for distributed-system-aware difference encoding/decoding in graph analytics
US11074246B2 (en)*2017-11-172021-07-27Advanced New Technologies Co., Ltd.Cluster-based random walk processing
US11256749B2 (en)*2016-11-302022-02-22Huawei Technologies Co., Ltd.Graph data processing method and apparatus, and system
US11977484B2 (en)2016-07-192024-05-07Sap SeAdapting in-memory database in hybrid memory systems and operating system interface
US20250103650A1 (en)*2023-09-212025-03-27Advanced Micro Devices, Inc.Access Control Metadata Aware Graph Reordering
US12271363B2 (en)*2018-12-142025-04-08Samsung Electronics Co., Ltd.Optimal dynamic shard creation in storage for graph workloads

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US10503714B2 (en)2017-06-022019-12-10Facebook, Inc.Data placement and sharding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20130198191A1 (en)*2010-07-082013-08-01Rubén Lara HernándezMethod for detecting communities in massive social networks by means of an agglomerative approach
US8612688B2 (en)*2010-12-302013-12-17Facebook, Inc.Distributed cache for graph data
US8364717B2 (en)*2011-01-102013-01-29Microsoft CorporationHardware accelerated shortest path computation
KR101794910B1 (en)*2011-06-072017-11-07삼성전자주식회사Apparatus and method for range querycomputing the selectivity of a ragne query for multidimensional data
US10198834B2 (en)*2013-04-292019-02-05Microsoft Technology Licensing, LlcGraph partitioning for massive scale graphs
US9836517B2 (en)*2013-10-072017-12-05Facebook, Inc.Systems and methods for mapping and routing based on clustering

Cited By (19)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US10628462B2 (en)*2016-06-272020-04-21Microsoft Technology Licensing, LlcPropagating a status among related events
US10437798B2 (en)2016-07-192019-10-08Sap SeFull system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10783146B2 (en)2016-07-192020-09-22Sap SeJoin operations in hybrid main memory systems
US10387127B2 (en)2016-07-192019-08-20Sap SeDetecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US20180025094A1 (en)*2016-07-192018-01-25Sap SeIncreasing performance of in-memory databases using re-ordered query execution plans
US10452539B2 (en)2016-07-192019-10-22Sap SeSimulator for enterprise-scale simulations on hybrid main memory systems
US10474557B2 (en)2016-07-192019-11-12Sap SeSource code profiling for line-level latency and energy consumption estimation
US10540098B2 (en)2016-07-192020-01-21Sap SeWorkload-aware page management for in-memory databases in hybrid main memory systems
US11977484B2 (en)2016-07-192024-05-07Sap SeAdapting in-memory database in hybrid memory systems and operating system interface
US10698732B2 (en)2016-07-192020-06-30Sap SePage ranking in operating system virtual pages in hybrid memory systems
US11256749B2 (en)*2016-11-302022-02-22Huawei Technologies Co., Ltd.Graph data processing method and apparatus, and system
US12147473B2 (en)2016-11-302024-11-19Huawei Technologies Co., Ltd.Graph data processing method and apparatus, and system
US20180357278A1 (en)*2017-06-092018-12-13Linkedin CorporationProcessing aggregate queries in a graph database
US11010379B2 (en)2017-08-152021-05-18Sap SeIncreasing performance of in-memory databases using re-ordered query execution plans
US11074246B2 (en)*2017-11-172021-07-27Advanced New Technologies Co., Ltd.Cluster-based random walk processing
CN110083777A (en)*2018-01-262019-08-02腾讯科技(深圳)有限公司A kind of social network user group technology, device and server
US11068458B2 (en)*2018-11-272021-07-20Advanced Micro Devices, Inc.Mechanism for distributed-system-aware difference encoding/decoding in graph analytics
US12271363B2 (en)*2018-12-142025-04-08Samsung Electronics Co., Ltd.Optimal dynamic shard creation in storage for graph workloads
US20250103650A1 (en)*2023-09-212025-03-27Advanced Micro Devices, Inc.Access Control Metadata Aware Graph Reordering

Also Published As

Publication numberPublication date
US10025867B2 (en)2018-07-17

Similar Documents

PublicationPublication DateTitle
US10025867B2 (en)Cache efficiency by social graph data ordering
JP7410181B2 (en) Hybrid indexing methods, systems, and programs
CN111247518B (en) Method and system for database sharding
CN103703450B (en)The method and apparatus that SSD storage accesses
JP6117378B2 (en) System and method for a distributed database query engine
US10769126B1 (en)Data entropy reduction across stream shard
US11169927B2 (en)Efficient cache management
US8782219B2 (en)Automated discovery of template patterns based on received server requests
US20150032680A1 (en)Parallel tree based prediction
CN112328700B (en) A distributed database
CN109783023B (en)Method and related device for data scrubbing
AU2014212780A1 (en)Data stream splitting for low-latency data access
KR102054068B1 (en)Partitioning method and partitioning device for real-time distributed storage of graph stream
CN105556474A (en)Managing memory and storage space for a data operation
CN110737727B (en) A data processing method and system
Hoque et al.Disk layout techniques for online social network data
US20110179013A1 (en)Search Log Online Analytic Processing
CN116680276A (en)Data tag storage management method, device, equipment and storage medium
Zhong et al.Gnnflow: A distributed framework for continuous temporal gnn learning on dynamic graphs
JP7730236B2 (en) Computer system, computer program, and computer-implemented method (workload-driven database reorganization)
US10769110B2 (en)Facilitating queries for interaction data with visitor-indexed data objects
CN104050189A (en)Page sharing processing method and device
US11966399B1 (en)Processing top-K queries on data in relational database systems
US7797322B2 (en)Negative key mapping
US20230409573A1 (en)Adaptive data prefetch

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:FACEBOOK, INC., CALIFORNIA

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KABILJO, IGOR;DHULIPALA, LAXMAN;SHALITA, ALON MICHAEL;AND OTHERS;SIGNING DATES FROM 20151005 TO 20160309;REEL/FRAME:042911/0089

STCFInformation on status: patent grant

Free format text:PATENTED CASE

CCCertificate of correction
MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:4

ASAssignment

Owner name:META PLATFORMS, INC., CALIFORNIA

Free format text:CHANGE OF NAME;ASSIGNOR:FACEBOOK, INC.;REEL/FRAME:058871/0336

Effective date:20211028


[8]ページ先頭

©2009-2025 Movatter.jp