Database File Move Without Access Interruption
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Concurrent access to data files in database systems often leads to data consistency issues, such as block corruption, necessitating the shutdown of database server instances during file movements, which can result in prolonged unavailability of the database.
Innovation Solution
The move process transitions through stages, allowing concurrent read and write access by communicating progress to database server instances, copying data blocks in batches, and ensuring read consistency by writing to both old and new locations during the transition, thus minimizing downtime.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data files are moved in database systems, then storage location can be changed, but concurrent read and write access is interrupted
Solution Approach 1:
The patent segments the data file into multiple data blocks that can be moved independently. Instead of moving the entire file at once (which would block access), the system divides the file into blocks and transfers them sequentially, allowing other operations to continue on different blocks simultaneously. This segmentation enables partial availability during the move operation.
Solution Approach 2:
The patent implements preliminary actions by creating a copy of the data file at the new location before fully switching access to it. The system prepares the new file location in advance, validates the copy, and only then redirects access. This preliminary preparation ensures that when the switch occurs, data availability is maintained without interruption.
Solution Approach 3:
The patent introduces an intermediary mechanism (the database system's file management layer) that mediates between the file movement operation and the access operations. This intermediary tracks which blocks are being moved and directs read/write requests appropriately - routing them to the old location if the block hasn't been moved yet, or to the new location if it has. This mediation allows concurrent operations without data consistency issues.
2Reliability
If database server instances are shut down during file movements, then data consistency is maintained, but database availability decreases
Solution Approach 1:
The patent implements a dynamic approach where the database system continuously adapts during the file movement process. Rather than a static shutdown, the system dynamically tracks the movement progress of each data block and dynamically redirects access requests in real-time. This dynamic adaptation allows the database to remain available throughout the entire movement process while maintaining consistency.
Solution Approach 2:
The patent employs feedback mechanisms where the system continuously monitors the state of data blocks being moved and uses this information to make real-time decisions about access routing. The file management layer receives feedback about which blocks have been successfully moved and adjusts access patterns accordingly, ensuring data consistency is maintained without requiring shutdowns.
3Reliability
If all data blocks are made unavailable for writes during movement, then data consistency is ensured, but write performance suffers
Solution Approach 1:
The patent applies local quality by treating different data blocks differently based on their movement status. Instead of uniformly blocking all writes, the system allows writes to proceed on blocks that have already been moved to the new location, while directing writes to the old location for blocks still being transferred. This localized differentiation maintains consistency for moved blocks while preserving write performance overall.
Data Source
AI summary
Techniques for moving data files without interrupting access are described. A first process moves a database file from a first location to a second location while the database file is accessible to one or more other processes for read or write operations. According to one technique, the first process communicates a move status and a copy range into the database file to one or more database server instances executing the one or more other processes. The one or more other processes then perform input/output (IO) operations on the database file based at least in part on the move status and the copy range communicated by the first process.


