Cross-Application Data Deletion Using Relationship-Based Grouping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in efficiently managing and deleting data objects across multiple applications while adhering to data governance policies and retention requirements, leading to resource wastage and inefficiencies.
Innovation Solution
A system and method for determining and deleting groups of data objects across applications based on predefined relationships and policies, utilizing a computing system that manages data object relationship definitions and sends requests to applications to delete eligible instances.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data deletion operations are performed across multiple applications without coordinated tracking of relationships, then deletion speed increases, but data integrity and compliance with retention policies deteriorate
Solution Approach 1:
The system segments the data deletion process into application-specific phases where each application independently identifies and marks its data objects for deletion. This segmentation allows parallel processing across multiple applications (improving speed) while maintaining individual application control over data relationships (preserving integrity). The central coordination system collects these segmented results and performs final coordinated deletion.
Solution Approach 2:
The system implements feedback mechanisms where applications report their data object status and relationships to a central coordination system. This feedback loop enables the coordinator to track inter-application dependencies and adjust deletion timing accordingly, ensuring data integrity is maintained while allowing efficient parallel processing.
2Reliability
If the system tracks all data object relationships across applications to ensure complete deletion, then data integrity improves, but system complexity and resource consumption increase
Solution Approach 1:
The complexity tracking is segmented and distributed to individual applications rather than centralized. Each application maintains its own local tracking of data object relationships and marks objects for deletion independently. This distributes the complexity burden across multiple simple application-level trackers rather than requiring one complex system-wide tracker.
Solution Approach 2:
The central coordination system acts as an intermediary that collects relationship information from applications without needing to fully understand or process all relationships itself. It receives marked data objects from applications and coordinates deletion based on this simplified input, reducing its own complexity while maintaining system-wide integrity.
3Productivity
If data objects are deleted immediately without checking cross-application references, then deletion efficiency improves, but orphaned data and compliance issues increase
Solution Approach 1:
The system performs preliminary actions by having applications pre-mark their data objects for deletion before final deletion occurs. Applications independently identify which of their objects should be deleted based on local policies and relationships, creating a pre-computed deletion list. This preliminary marking phase allows efficient parallel processing while ensuring cross-application references are considered before actual deletion.
Solution Approach 2:
The deletion process maintains continuity by keeping data objects in a marked-but-not-deleted state until all cross-application references are resolved. This continuous tracking ensures that objects are only deleted when safe, preventing orphaned data while maintaining efficient processing through parallel marking operations.
Data Source
Figure 1
Figure 2~4
Figure 5
AI summary
Some embodiments provide a program that receives a selection of a data object relationship definition. The data object relationship definition specifies a plurality of data objects managed by a plurality of applications and a set of relationships between data objects in the plurality of data objects. The program sends each application in a first subset of the plurality of applications a request for instances of data objects in the plurality of data objects managed by the application. The program receives, from each application in the first subset of the plurality of applications, a list of a set of candidate instances of data objects. Based on the list of the sets of candidate instances of data objects, the program further determines a set of groups of instances of data objects. The program deletes a group of instances of data objects in the set of groups of instances of data objects.