Transaction Dependency Graph Partitioning for Distributed Database Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed systems, managing large-scale computing resources across varying hardware and geographical locations is complex due to resource variability and network performance issues, leading to inefficient data access and continuous re-partitioning of data, which hampers execution performance.
Innovation Solution
A method for database management in distributed systems that involves collecting transactions, generating a transaction dependency graph, partitioning it based on server rules, and distributing transactions for execution, rather than data partitioning, to reduce execution time and eliminate the need for continuous re-partitioning.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data is partitioned and stored on different hard disks at different servers, then data storage capacity is improved, but data access difficulty increases
Solution Approach 1:
The patent introduces a management system as an intermediary that coordinates data access across distributed servers. The management system receives access requests, determines the location of required data partitions, and retrieves data from appropriate servers, thereby simplifying the access process for users while maintaining distributed storage benefits
Solution Approach 2:
The system implements feedback mechanisms where the management system continuously monitors data access patterns and server status. Based on this feedback, the system can dynamically adjust data partitioning strategies and access routes, optimizing both storage efficiency and access speed over time
2Adaptability or versatility
If data is continuously re-partitioned to adapt to changing workloads, then system adaptability is improved, but execution performance deteriorates
Solution Approach 1:
The patent implements dynamic partitioning where data partitions can be reassigned to different servers based on current workload conditions, server capacity, and access patterns. This dynamic adjustment allows the system to adapt to changing requirements without complete re-partitioning, maintaining performance by making incremental optimizations
Solution Approach 2:
The system performs preliminary analysis of workload patterns and server capabilities to pre-determine optimal partitioning strategies. By anticipating future needs and preparing partitioning configurations in advance, the system can adapt to workload changes more efficiently without causing performance degradation during actual execution
3Quantity of substance
If data is accessed from hard disks at different servers, then distributed storage is achieved, but data access time increases
Solution Approach 1:
The management system performs preliminary data retrieval operations by anticipating which data partitions will be needed based on access patterns. Data is pre-fetched from distributed servers and cached in local memory or buffer zones before actual access requests are processed, significantly reducing access time while maintaining distributed storage architecture
Solution Approach 2:
The management system acts as an intermediary that caches frequently accessed data partitions locally. When data access requests are received, the system first checks local caches before querying distributed servers, reducing network latency and access time while preserving the benefits of distributed storage for less frequently accessed data
Data Source
AI summary
Methods for database management in a distributed system are provided, wherein the distributed system at least includes a plurality of servers. The method includes the steps of: collecting transactions to be executed, wherein each transaction corresponds to a plurality of requests and each request is associated with at least one data; generating a transaction dependency graph corresponding to the requests according to data dependency among the data associated with the requests of all the transactions; partitioning the transaction dependency graph to generate a plurality of partitions corresponding to the servers; generating execution plans corresponding to the partitions; distributing the transactions to the servers for execution based on the generated execution plans.


