-
Notifications
You must be signed in to change notification settings - Fork 9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HADOOP-19497: [ABFS] Enable rename and create recovery from client transaction id over DFS endpoint #7509
base: trunk
Are you sure you want to change the base?
Conversation
============================================================
|
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
* @param op The ABFS operation result for the rename attempt. | ||
* @param isMetadataIncompleteState Flag indicating if metadata is incomplete. | ||
* @throws IOException If an I/O error occurs during the rename operation. | ||
* @throws FileAlreadyExistsException If the destination file already exists and overwrite is unauthorized. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unauthorized Blob Overwrite error we only get when the destination file already exists. For invalid permissions we have separate errors thrown. We can remove the "unauthorized overwrite" parts here.
Jira: https://issues.apache.org/jira/browse/HADOOP-19497
We have implemented create and rename recovery using client transaction IDs over the DFS endpoint (HADOOP-19450 [ABFS] Rename/Create path idempotency client-level resolution - ASF JIRA). Since the backend changes were not fully rolled out, we initially implemented the changes with the flag disabled. With this update, we aim to enable the flag, which will start sending client transaction IDs. In case of a failure, we will attempt to recover from the failed state if possible. Here are the detailed steps and considerations for this process:
Implementation Overview: We introduced a mechanism for create and rename recovery via client transaction IDs to enhance reliability and data integrity over the DFS endpoint. This change was initially flagged as disabled due to incomplete backend rollouts.
Current Update: With the backend changes now in place, we are ready to enable the flag. This will activate the sending of client transaction IDs, allowing us to track and manage transactions more effectively.
Failure Recovery: The primary advantage of enabling this flag is the potential for recovery from failed states. If a transaction fails, we can use the client transaction ID to attempt a recovery, minimizing data loss and ensuring continuity.
Next Steps: We will proceed with enabling the flag and closely monitor the system's performance. Any issues or failures will be documented and addressed promptly to ensure a smooth transition.