Pod-Based Communication System Routing via Global User Directory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hosted communication systems with a single database architecture are vulnerable to failures, leading to system-wide disruptions when the database becomes unavailable.

Innovation Solution

Implementing a communication system with multiple pods, each serving a subset of user accounts across different data centers, utilizing a global user directory to route service requests and ensure redundancy through pod units in different locations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single database architecture is used to simplify system design and enable easy data sharing, then device complexity is reduced and ease of operation is improved, but system reliability deteriorates because the entire system fails when the database becomes unavailable

Engineering Contradiction:
Improvesystem architecture complexityVSAvoidsystem availability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system is divided into multiple independent pods, each with its own database instance. User accounts are partitioned across different pods, so that a failure in one pod's database does not affect other pods. This segmentation resolves the contradiction by maintaining simple individual pod architectures while achieving system-level reliability through distribution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A global user directory (GUD) is introduced as an intermediary component that maps user keys to specific pods. The GUD enables the router to determine which pod should handle a given service request without requiring all pods to access all databases directly. This mediator simplifies the routing logic while maintaining the distributed architecture's reliability benefits.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple pods with separate databases are implemented to improve system reliability and enable independent subsystem changes, then system robustness is enhanced, but device complexity increases due to the need for routing logic and global user directory

Engineering Contradiction:
Improvesystem robustnessVSAvoidsystem architecture complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Each pod is designed to be universally capable of serving any user account, not just a fixed subset. The pods can dynamically take over service for different users based on load and availability. This multi-functionality reduces the need for complex user-to-pod assignment logic while maintaining reliability, as any healthy pod can handle any user's service requests.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system creates copies of user data across multiple pod databases through replication. When a user's primary pod fails, another pod can serve the user using replicated data copies. This copying approach maintains simplicity by avoiding complex routing decisions while ensuring reliability through data redundancy across the distributed pod network.

Inventive Principle:
Principle #26Copying

3Productivity

If user accounts are distributed across multiple pods to enable concurrent system changes and improve scalability, then productivity is improved through parallel maintenance operations, but measurement precision deteriorates in terms of routing accuracy and data consistency

Engineering Contradiction:
Improvesystem maintenance efficiencyVSAvoidrouting accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system implements health status monitoring and load information feedback mechanisms that allow pods to report their operational state to the router and GUD. This feedback enables the router to make accurate routing decisions based on real-time pod availability and load conditions, maintaining routing precision while allowing concurrent maintenance operations on different pods.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The global user directory pre-establishes the mapping between user keys and pods before service requests arrive. This preliminary organization of user-to-pod associations enables the router to quickly and accurately determine the correct destination pod without complex real-time calculations, maintaining routing precision while supporting distributed architecture and parallel maintenance activities.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9936268B2User partitioning in a communication system
Publication Date: 2018.04.03 RINGCENTRAL INC
  • US9936268B2 patent drawing
  • US9936268B2 patent drawing
  • US9936268B2 patent drawing

AI summary

Systems and methods for routing an incoming service request to one of a plurality of pod units are described. A communication system can be provided that includes a plurality of pods each having a first pod serving a first subset of user accounts associated with a hosted PBX system. The first pod can include a first pod unit in a first data center and a second pod unit in a second data center. A global user directory (GUD) can be used to store a plurality of user keys that are mapped to the plurality of pods. A router can be provided to identify a user key from an incoming service request, query the GUD to identify the first pod as being associated with the user key, and route the incoming service request to one of the first and second pod units.