[ https://issues.apache.org/jira/browse/KUDU-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17450910#comment-17450910 ]
dengke commented on KUDU-3326: ------------------------------ The following is a summary of the changes involved in this discussion: 1. When do deleting, add a parameter to determine whether to delete the trash table directly. If not, the trash table will be retained for a period of time by default. 2. ListTables() does not display the trash table. If we want to display the trash table, we need to add a new API with new parameters. 3. After deleting a table, we do not need to modify the table name, but directly manage it through the newly added independent abandoned table list and use "trashed_time” field to maintains the deletion time. When reloading, the destination container for loading is determined according to whether there are “trashed_time” field (a separate container for the trash table). 4. When do recalling, we could have users recall by specifying a table ID, and potentially giving a new name for the recalled table. In addition to these contents, is there anything to be added? > Add Soft Delete Table Supports > ------------------------------ > > Key: KUDU-3326 > URL: https://issues.apache.org/jira/browse/KUDU-3326 > Project: Kudu > Issue Type: New Feature > Components: api, CLI, client, master, test > Reporter: dengke > Assignee: dengke > Priority: Major > > h2. Brief description: > Soft delete means that the kudu system will not delete the table > immediately after receiving the command to delete the table. Instead, it will > mark the table and set a validity period. After the validity period, will try > again to determine whether the table really needs to be deleted. > This feature can restore data conveniently and timely in the case of > accidental deletion. > h2. Relevant modification points: > 1. After deleting a table, the original table name will be renamed as > KUDU_TRASHED: < timestamp >: < original table name >, which becomes a trash > table. > 2. The contents of the trash table are exactly the same as those of the > original table. Although it cannot be renamed, added or deleted directly, > it can be read and written normally. The trash table will be retained for a > period of time by default (such as 7 days, which can be modified through > parameters). The compact priority of the trash table will be set to the > lowest to save the system resources. > 3. The master needs to add a thread to process expired trash tables and > perform real deletion. > 4. It is allowed to create a table with the same name as the original table, > and the newly created table with the same name can be deleted normally. > 5. It is allowed to recall deleted tables, but the following two situations > cannot be recalled: the same original table name exists and the trash table > has expired. > 6. The KUDU_TRASHED is a reserved string for the system. Users are not > allowed to create a table with table names starting with KUDU_TRASHED. > 7. Kudu tool adaptation soft deletion. > 8. Java API adaptation soft deletion. -- This message was sent by Atlassian Jira (v8.20.1#820001)