Method and system for scaling usage of a social based application on an online social network
AssigneeTelefonica, S.A.
InventorsJosep M. Pujol, Georgos Siganos, Vijay Erramilli, Xiaoyuan Yang, Nikolaos Laoutaris, Parminder Chabbra, Pablo Rodriguez
Life of this patent
Estimating the term…
Abstract
Method, system and computer program to provide transparent scalability to Online Social Networks and better performance of its back-end databases, by an efficient partitioning of the underlying community structure and replicating of user profiles, ensuring that every user has a master or slave replica of all his neighbors on the same partition where he is located.
Claims11
A method for scaling usage of a social based application on an online social network,
- the online social network comprising a plurality of user profiles, each user profile associated with one user of a plurality of users, the plurality of users selectively interacting in online relationships with each other in the social based application;
- a plurality of servers interconnected by a communications network, the plurality of servers comprising a plurality of processors and a plurality of computer readable non-transitory data storages, the plurality of non-transitory computer readable data storages comprising a plurality of partitions;
- each user profile of the plurality of user profiles being associated with a single master replica of the user profile and a plurality of master's slave replica of the user profile,
- for each respective user, the master replica being stored in one partition in one of the servers of the plurality of server, the one partition also storing a master replica or a master's slave replica of all the neighbor users of the respective user, the neighbor users being defined as the users with an online relationship established with the respective user;
- when a new online relationship is created between a first user and a second user of the plurality of users, the first user having first user profile, a first master replica, and a first master's slave replica and a second user having a second user profile, a second master replica, and a second master's slave replica,
- the method executing on a respective one of the processors and comprising the steps of:
- (a) checking if the first master replica and the second master replica are stored in the same partition or if the first master replica is stored with the second masters slave replica in the same partition,
- (b) if step (a) is answered in the affirmative taking no further action;
- (c) if step (a) is answered in the negative, determining the least number of replicas to be generated when
- (i) the first master replica and the second replica are not moved to another partition,
- (ii) the first master replica is moved to a partition associated with the second master replica, and
- (iii) the second master replica is moved to a partition associated with the first master replica;
- wherein step (c) is performed so that the plurality of master replicas are balanced among the plurality of partitions;
- every user has at least K replica slaves, where K is a design parameter, and every master replica of a user has, on the same partition where said master replica is stored, a master replica or a master's slave replica of all the users with an online relationship established with said user;
- and
- (d) selecting and applying from the previous configurations of step (c) the one yielding a smallest aggregate number of replicas.
A system for scaling usage of a social based application in an online social network, the system comprising:
- a plurality of servers interconnected by a communications network;
- a plurality of processors disposed in the plurality of servers;
- a plurality of computer readable non-transitory data storages;
- wherein the online social network comprises a plurality of user profiles, each user profile associated with one user of a plurality of users, the plurality of users selectively interacting in online relationships with each other in the social based application;
- each user profile of the plurality of user profiles being associated with a single master replica of the user profile and a plurality of master's slave replica of the user profile,
- a plurality of partitions disposed in the plurality of non-transitory computer readable data storages;
- wherein for each respective user, one of the plurality of partitions in one of the servers of the plurality of servers stores the master replica, the one partition also storing a master replica or a master's slave replica of all the neighbor users of the respective user, the neighbor users being defined as the users with an online relationship established with the respective user;
- wherein when a new online relationship is created between a first user and a second user of the plurality of users, the first user having a first user profile, a first master replica, and a first master's slave replica and a second user having a second user profile, a second master replica, and a second master's slave replica, the system further comprises computer executable code causing, when executed, a respective one of the processors to perform the steps of:
- (a) checking if the first master replica and the second master replica are stored in the same partition or if the first master replica is stored with the second master's slave replica in the same partition,
- (b) if step (a) is answered in the affirmative taking no further action;
- (c) if step (a) is answered in the negative, determining the last number of replicas to be generated when
- (i) the first master replica and the second replica are not moved to another partition,
- (ii) the first master replica is moved to a partition associated with the second master replica, and
- (iii) the second master replica is moved to a partition associated with the first master replica;
- wherein step (c) is performed so that the plurality of master replicas are balanced among the plurality of partitions;
- every user has at least K replica slaves, where K is a design parameter, and every master replica of a user has, on the same partition where said master replica is stored, a master replica or a master's slave replica of all the users with an online relationship established with said user;
- and
- (d) selecting and applying from the previous configurations of step (c) the one yielding a smallest aggregate number of replicas.
Dependencies are inferred from the claim text.