Cluster Routing Controller for Cloud Index Scalability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud-based software companies face challenges in accommodating organizational data growth without physical constraints while minimizing costs, and previous approaches fail to seamlessly handle increased customer organization capacity and search performance, especially in environments where data center, node, and index locations may need to change rapidly.
Innovation Solution
Implementing a system that uses a unique 'token' or connection identifier managed by a cluster routing controller (CRC) to redirect searches to different target locations, allowing for instant switching of clusters and indexes without disrupting service, thereby enabling organization extensibility and cluster scalability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If an entire cluster is allotted to each individual organization to provide limitless organizational extensibility, then organizational data can grow without physical constraints, but the cost to cloud based software companies becomes astronomical
Solution Approach 1:
The system segments the cluster into multiple indexes, where each index can serve one or more organizations. This allows the cluster to be divided into manageable units that can be dynamically allocated to different organizations based on their needs, rather than dedicating entire clusters to single organizations.
Solution Approach 2:
The system implements dynamic cluster routing that allows indexes to be moved between clusters based on organizational growth and resource utilization. The cluster routing controller enables seamless redirection of search requests to different index locations, providing adaptability while maintaining cost efficiency through shared resources.
2Adaptability or versatility
If data is distributed across multiple clusters and nodes to improve scalability, then the system can accommodate more organizations, but identifying the correct data center, cluster, node and index name becomes increasingly complex
Solution Approach 1:
The cluster routing controller acts as an intermediary between search requests and the distributed indexes. It receives search requests, determines the appropriate index location across multiple clusters and nodes, and redirects requests accordingly. This intermediary layer abstracts the complexity of data distribution from the search process.
Solution Approach 2:
The cluster routing controller provides universal routing functionality that works across multiple clusters, nodes, and indexes. It handles various routing scenarios (data migration, load balancing, failover) through a single unified mechanism, simplifying the overall system architecture despite the distributed nature of the data.
3Productivity
If indexes are moved between clusters to accommodate organizational growth, then resource utilization can be optimized, but service interruptions may occur during the migration process
Solution Approach 1:
The system creates a new index in the target cluster before migrating data, so that search requests can be gradually redirected to the new location. This preliminary setup ensures that service continuity is maintained during the transition, as the new index is ready to receive requests before the old index is decommissioned.
Solution Approach 2:
The cluster routing controller enables seamless redirection of search requests during index migration. By maintaining active routing to both the old and new index locations during the transition period, the system ensures continuous service without interruptions, allowing data migration to occur while searches continue to function.
Data Source
AI summary
A computer-implemented method is disclosed. The method includes determining whether a level of resource utilization of an organization having a first index and a first cluster requires that the organization is assigned to a second cluster, if the level of resource utilization requires that the organization is assigned to the second cluster, creating a second index for the organization in the second cluster, adding a consul entry in a consul that points to the second index, and upon completion of a data migration operation, changing an entry of the cluster routing controller for the organization, from the first index to the second index. A connection is established using the consul entry.


