Database Routing Server Hash-Based Request Distribution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Database management systems face challenges in scalability, speed, data storage efficiency, and security as they handle increasing data volumes and user demands for real-time access, while also managing diverse database technologies and ensuring seamless data flow.
Innovation Solution
The described techniques involve a method for selecting database servers using a hash function to route input/output requests, managing database files by obtaining exclusive locks and caching operations, and concurrently executing multiple database engines to optimize performance and security.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a single database server is used, then device complexity is low, but scalability and speed expectations cannot be met
Solution Approach 1:
The patent divides the database system into multiple servers, each handling specific portions of the data. The routing server segments incoming requests and distributes them to appropriate database servers based on hash functions and configuration files, enabling horizontal scalability while maintaining manageable server individual complexity
Solution Approach 2:
The routing server acts as an intermediary between client devices and database servers. It receives requests, determines the appropriate database server through hash functions, and routes requests accordingly. This intermediary layer abstracts the complexity of managing multiple database servers from the clients while enabling high-speed access
2Adaptability or versatility
If data is stored on multiple servers, then scalability improves, but data management complexity increases
Solution Approach 1:
The patent uses hash functions that take parameters such as user account identifiers and database server counts to generate consistent routing decisions. This parameter-based approach ensures that data is consistently routed to the same server across multiple requests, simplifying data management while enabling scalability
Solution Approach 2:
The configuration file contains copies of database server information and routing rules that can be replicated across multiple systems. This allows the data management complexity to be copied and distributed rather than manually managed, enabling scalability without proportionally increasing operational complexity
3Reliability
If exclusive locks are obtained for database files, then data integrity and security improve, but processing time increases
Solution Approach 1:
The routing server performs preliminary actions by determining the appropriate database server before the actual data processing begins. This pre-routing decision, made through hash functions and configuration file lookups, ensures that when exclusive locks are obtained and data processing starts, the path is already optimized, minimizing overall processing time while maintaining integrity
4Productivity
If multiple database engines are executed concurrently, then productivity and versatility improve, but system complexity increases
Solution Approach 1:
The routing server provides universal functionality by handling routing decisions for multiple database engines and servers through a unified approach. It uses the same hash function and configuration file mechanisms to route requests to different database engines concurrently, enabling high throughput while managing complexity through a universal routing strategy rather than engine-specific management
Data Source
AI summary
The embodiments set forth techniques for selecting database servers to process input/output (I/O) requests. In particular, a routing server can perform the steps of (1) receiving, from a client device, a request to perform an I/O operation to a database file that corresponds to a user account, (2) referencing a configuration file to identify a group of database servers through which access to the database file can be achieved, (3) providing, to a hash function, (i) the user account, and (ii) a count of the group of database servers, to produce a hash value that corresponds to a particular database server within the group of database servers, and (4) in response to determining that the particular database server is accessible: providing the request to the particular database server.


