Partitioned Database Friend Recommendation System

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current online services require users to manually identify friends for online sessions, which is inefficient, especially for new users who do not have existing accounts or associated handles.

Innovation Solution

A system and method for managing friend data within a partitioned database architecture that generates friend recommendations by utilizing a friend service, address book data, and relationship graphs to simplify the process of identifying and connecting with friends for online sessions such as video games, using unique identifiers and hashing to protect user privacy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If users manually identify friends for online sessions, then user privacy and control are maintained, but the process is inefficient and time-consuming

Engineering Contradiction:
Improvefriend identification efficiencyVSAvoidtime required to identify friends
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-processing address book data and relationship graphs before they are needed for friend recommendations. User contact information is imported and processed in advance, creating pre-computed relationship data structures that enable rapid friend identification without manual input during the actual online session setup

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of user data across multiple databases and data structures. Address book information is copied into the relationship graph database, and friend recommendations are generated by querying these copied data structures rather than requiring users to manually search through original contact lists, significantly reducing identification time

Inventive Principle:
Principle #26Copying

2Reliability

If a centralized database is used to store relationship data, then data consistency is maintained, but system load and scalability are reduced

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem scalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The database system is segmented into multiple independent database servers, each storing a portion of the relationship data. The relationship graph is divided into partitions distributed across different servers, allowing the system to handle large volumes of user data while maintaining data consistency through coordinated updates and queries across the segmented structure

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary layer is introduced between the application and the segmented database, managing data consistency across multiple database servers. This intermediary handles query routing, data synchronization, and transaction coordination, ensuring reliable data access while distributing the system load across multiple independent database instances

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If address book data is stored in plain text, then data accessibility is improved, but user privacy is compromised

Engineering Contradiction:
Improvedata accessibilityVSAvoidprivacy risk
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

Different portions of the data are treated with different security qualities. User-provided address book data is hashed and stored in an inaccessible format, while the system-generated relationship graphs and friend recommendations are stored in accessible formats. This local quality differentiation allows the system to maintain both privacy protection for sensitive data and ease of access for processed information

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9792311B2System and method for managing a partitioned database of user relationship data
Publication Date: 2017.10.17 APPLE INC
  • US9792311B2 patent drawing
  • US9792311B2 patent drawing
  • US9792311B2 patent drawing

AI summary

A system and method are described for storing and managing relationship data defining relationships between a plurality of users using a plurality of partitions. For example, a system according to one embodiment of the invention comprises: a relationship graph updater to fetch edge records defining user relationships on an online service from a plurality of queues at a specified time interval, each of the plurality of queues associated with a graph partition, the relationship graph updater creating a temporary update file for each of the plurality of graph partition; a relationship graph merger to determine if each temporary update file has already been merged and, if not, then merging relationship graph data contained in the update files with existing relationship graph data; and the relationship graph merger providing its merged results to a plurality of different relationship graph services.