Contact List Synchronization via Disjoint Set Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Third-party applications often face difficulties in obtaining a consistent list of contacts from social networking applications, as the contact lists may not match due to additions or deletions, hindering their ability to provide services effectively.

Innovation Solution

A method is implemented to compare and synchronize data lists from disparate data sources by identifying matching, adding, and deleting elements between the lists, and aggregating the results in volatile memory, with the final aggregated list being written to non-volatile storage, optimizing memory usage and processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If contact lists are stored in volatile memory for comparison and synchronization, then processing speed and efficiency are improved, but memory consumption increases

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The contact list data is segmented into multiple disjoint sets (first contact list, second contact list, third contact list) that are processed separately and independently. Each set is handled in volatile memory without requiring permanent storage, allowing efficient comparison and synchronization operations while minimizing overall memory requirements through structured data organization.

Inventive Principle:
Principle #1Segmentation

2Speed

If all contact list data is kept in volatile memory for efficient access, then data access speed is improved, but memory usage increases linearly with data size

Engineering Contradiction:
Improvedata access speedVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

Contact list data is pre-processed and organized into structured disjoint sets before being loaded into volatile memory. The data is prepared in advance with established relationships and associations, allowing rapid access and comparison operations during synchronization without requiring additional processing time or excessive memory resources.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If contact lists from multiple sources are aggregated and synchronized, then data accuracy and consistency are improved, but the complexity of data management increases

Engineering Contradiction:
Improvedata consistencyVSAvoiddata management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The contact list synchronization system divides contact data from multiple sources into distinct disjoint sets, each representing a specific data source. This segmentation allows independent processing and comparison of each set while maintaining clear tracking of data origins, simplifying the management of multi-source contact lists and reducing the complexity of data reconciliation operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A contact list aggregation component serves as an intermediary that receives contact lists from multiple disparate sources, processes them through standardized operations, and produces synchronized output. This mediator component abstracts the complexity of multi-source data integration, providing a unified interface for contact list synchronization while maintaining data consistency across different sources.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8352442B2Determination of an updated data source from disparate data sources
Publication Date: 2013.01.08 KYNDRYL INC
  • US8352442B2 patent drawing
  • US8352442B2 patent drawing
  • US8352442B2 patent drawing

AI summary

A method and system for determining an updated data source from first and second disparate data sources. A first and second data list is received from the first and second data sources, respectively. The data elements in the first data list matching data elements in the second data list are written to a first aggregation data list. The data elements in the first data list not matching data elements in the second data list are written to an additions data list. The data elements in the second data list not matching data elements in the first data list are written to a first deletions data list. All data elements in the first aggregation data list and the additions data list are written into a second aggregation data list. All data elements matching the data elements in the first deletions data list are written into a second deletions data list.