Unified File Storage System with Selective Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing file sharing systems face inefficiencies in managing storage across multiple client devices, leading to poor user experience due to incomplete file synchronization and limited storage capacity, where files are often ghosted, requiring lengthy downloads and inadequate local access.
Innovation Solution
A unified file storage system that dynamically synchronizes files across client devices based on user preferences and device characteristics, using a synchronization engine to assign files to the most likely device for access, allowing partial synchronization and file splitting to optimize storage usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If files are synchronized to all client devices, then file accessibility is improved, but storage capacity is exceeded
Solution Approach 1:
The system implements selective synchronization where different files are stored on different client devices based on device-specific characteristics such as storage capacity, processing power, and usage patterns. This allows the distributed storage system to optimize local storage usage while maintaining overall file accessibility across the network.
Solution Approach 2:
The system dynamically determines file placement by evaluating current device characteristics, user preferences, and access patterns. File assignments are not static but can be reassigned based on changing conditions, allowing the system to adapt to varying storage capacities and usage requirements over time.
2Speed
If files are downloaded to client devices, then local access speed is improved, but network bandwidth is consumed
Solution Approach 1:
The system performs preliminary file placement by proactively storing files on client devices based on predicted access patterns and device characteristics. This preliminary action reduces the need for subsequent network downloads, as files are already positioned on appropriate devices before access is needed.
Solution Approach 2:
The distributed storage system enables client devices to serve themselves by storing and providing access to files locally when appropriate. This self-service mechanism reduces network bandwidth consumption by eliminating redundant downloads, as devices can access files from their own local storage rather than repeatedly downloading from the network.
3Reliability
If complete file synchronization is implemented, then data consistency is improved, but system complexity increases
Solution Approach 1:
The system segments the file storage architecture into a coordinated distributed system where a central server manages file placement decisions and client devices maintain local storage. This segmentation allows data consistency to be maintained through centralized coordination while keeping individual device implementations relatively simple.
Solution Approach 2:
The central server acts as an intermediary that manages file placement, tracks file locations, and coordinates access across the distributed system. This intermediary simplifies the complexity by centralizing management functions, allowing client devices to have simpler local implementations while maintaining overall system consistency through the mediating server.
Data Source
AI summary
A computing system may store a first file in a system repository that is to be synchronized with at least a first repository associated with a first client device and a second repository associated with a second client device. The computing system may determine that the first repository is to receive a downloaded copy of at least a portion of the first file, and may cause a copy of the at least a portion of the first file to be downloaded from the system repository to the first repository. Based at least in part on the computing system determining that the first repository is to receive the downloaded copy, an identifier of the at least a portion of first file may be stored in the second repository without storing a copy of the at least a portion of the first file in the second repository.


