Virtual Partitioning Shared Message Bus Auto-Provisioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenant cloud environments, traditional data partitioning methods are inefficient and scalable, as they require manual provisioning of new topics for each customer and can lead to scalability issues due to uneven data distribution across partitions, affecting data locality and resource utilization.

Innovation Solution

The implementation of virtual partitioning of a shared message bus, where data from a particular customer is limited to specific partitions of a shared topic, allowing multiple customers to share a single topic until capacity is reached, with larger customers having their own topics based on needs, and using a weighted stable load balancing algorithm for scheduling virtual partitions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional manual provisioning of new topics for each customer is used, then data isolation is ensured, but device complexity and management overhead increase significantly

Engineering Contradiction:
Improvedata isolationVSAvoidmanagement overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Multiple customer topics are merged into a single shared topic with virtual partitioning. Each customer's data is routed to specific partitions within the shared topic based on a hashing function of the customer ID, ensuring data isolation while reducing the number of topics from N (one per customer) to 1 (shared topic). This eliminates the need for manual provisioning of multiple topics and simplifies management.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared topic is segmented into multiple partitions, with each partition dedicated to specific customers based on their customer IDs. The segmentation is achieved through virtual partitioning where partitions are assigned to customers using a deterministic hashing function, ensuring that each customer's data is isolated to specific partitions while sharing the overall topic infrastructure.

Inventive Principle:
Principle #1Segmentation

2Productivity

If data is evenly distributed across partitions, then resource utilization improves, but data locality deteriorates due to mixed customer data in each partition

Engineering Contradiction:
Improveresource utilizationVSAvoiddata locality
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Each partition within the shared topic has a specific quality characteristic: it is dedicated to serving specific customers (identified by customer ID). This local quality ensures data locality because all data for a given customer is routed to the same partition(s) based on a hashing function, while the overall system maintains even distribution across partitions for balanced resource utilization.

Inventive Principle:
Principle #3Local quality

3Device complexity

If multiple customers share a single topic, then device complexity is reduced, but scalability is limited by partition capacity constraints

Engineering Contradiction:
Improvetopic managementVSAvoidscalability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system dynamically assigns customers to partitions based on their customer IDs using a hashing function. When new customers are added or existing customers grow, the system automatically routes their data to appropriate partitions without requiring manual intervention or topic recreation. This dynamic assignment enables the system to scale from small to large customers while maintaining the shared topic structure.

Inventive Principle:
Principle #15Dynamics

4Reliability

If manual topic provisioning is used for each customer, then data isolation is guaranteed, but loss of time occurs due to manual intervention requirements

Engineering Contradiction:
Improvedata isolationVSAvoidprovisioning time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system provides self-service automatic topic provisioning. When a new customer is added to the system, the shared topic automatically routes their data to the appropriate partition(s) based on their customer ID through a deterministic hashing function. This eliminates the need for manual topic creation and assignment, reducing provisioning time from manual intervention to automatic calculation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11816511B1Virtual partitioning of a shared message bus
Publication Date: 2023.11.14 CISCO TECHNOLOGY INC
  • US11816511B1 patent drawing
  • US11816511B1 patent drawing
  • US11816511B1 patent drawing

AI summary

According to embodiments, a method for virtual partitioning of data includes receiving a data stream comprising a plurality of traces, each trace comprising a plurality of spans from a plurality of users. The method also includes assigning the plurality of traces of the data stream to a plurality of virtual partitions based on each user of the plurality of users, each virtual partition of the plurality of virtual partitions comprising data of a user of the plurality of users. The method also includes scheduling at least a subset of the plurality of virtual partitions to at least one user partition of a shared topic, the at least one user partition comprising data from at least one virtual partition of at least one user of the plurality of users. The method also includes indexing each user partition of the shared topic based on each user and each virtual partition.