CN111417938A - 针对客户端同步服务更新本地树 - Google Patents
针对客户端同步服务更新本地树 Download PDFInfo
- Publication number
- CN111417938A CN111417938A CN201880077284.0A CN201880077284A CN111417938A CN 111417938 A CN111417938 A CN 111417938A CN 201880077284 A CN201880077284 A CN 201880077284A CN 111417938 A CN111417938 A CN 111417938A
- Authority
- CN
- China
- Prior art keywords
- file
- tree
- content item
- local
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 75
- 230000001360 synchronised effect Effects 0.000 claims description 38
- 238000012217 deletion Methods 0.000 claims description 26
- 230000037430 deletion Effects 0.000 claims description 26
- 230000033001 locomotion Effects 0.000 claims description 9
- 238000005067 remediation Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 34
- 230000004048 modification Effects 0.000 description 122
- 238000012986 modification Methods 0.000 description 122
- 230000009471 action Effects 0.000 description 61
- 230000015654 memory Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 19
- 230000008859 change Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 230000006399 behavior Effects 0.000 description 8
- 230000000246 remedial effect Effects 0.000 description 8
- 238000013475 authorization Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000002730 additional effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
- G06F16/125—File system administration, e.g. details of archiving or snapshots using management policies characterised by the use of retention policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/156—Query results presentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/168—Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
- G06F16/1787—Details of non-transparently synchronising file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Automation & Control Theory (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Small-Scale Networks (AREA)
- Circuits Of Receivers In General (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Computer And Data Communications (AREA)
- Finger-Pressure Massage (AREA)
- Communication Control (AREA)
Abstract
所公开的技术涉及一种系统,所述系统被配置来检测与客户端设备的本地文件系统上的内容项相关联的第一文件事件;确定所述第一文件事件违反一组本地树约束中的本地树约束;执行与所述违反的本地树约束相关联的补救;并且基于所述一组观察到的文件事件来更新本地树,其中所述本地树表示文件系统状态。
Description
相关申请的交叉引用
本申请要求2017年12月29日提交的美国非临时申请15/858,125和2017年12月29日提交的美国非临时申请15/858,146以及2017年12月28日提交的美国临时申请号62/611,473的优先权,所述申请通过引用明确地整体并入本文。
背景
内容管理系统允许用户使用网络跨多个设备访问和管理内容项。一些内容管理系统可允许用户共享内容项并且提供有助于用户协同使用内容项的另外的特征。内容管理系统通常将内容项存储在服务器上并且允许用户通过网络访问内容项。一些内容管理系统还允许将本地副本存储在客户端设备上,以便以更自然的接口(例如,本机应用程序或在客户端设备的文件系统内)向用户提供对内容项的更快访问。另外,这使用户在用户离线时能够访问内容项。内容管理系统尝试跨多个客户端设备和服务器使内容项的副本同步,使得每个副本是相同的。然而,内容项同步是困难的并且与许多技术障碍相关联。
附图说明
通过参考在附图中示出的特定实现方式,本技术的上述和其他优点和特征将变得显而易见。本领域普通技术人员将理解,这些附图仅示出了本技术的一些实例,并且本技术的范围将不限于这些实例。此外,技术人员将通过使用附图如以另外的特征和细节所描述和解释的来理解本技术的原理,在附图中:
图1示出根据一些实施方案的内容管理系统和客户端设备的实例;
图2示出根据一些实施方案的客户端同步服务的实例;
图3示出根据各种实施方案的树数据结构的实例;
图4示出根据各种实施方案的树数据结构的实例;
图5示出根据本主题技术的各种实施方案的用于使用树数据结构来使服务器状态和文件系统状态同步的示例性方法;
图6示出根据本主题技术的各种实施方案的用于在使用树数据结构来使服务器状态和文件系统状态同步时解决冲突的示例性方法;
图7示出根据各种实施方案的示出违反添加操作规则的树数据结构的实例;
图8示出根据本主题技术的各种实施方案的用于使服务器状态和文件系统状态逐步地收敛的示例性方法;
图9示出根据各种实施方案的树数据结构的实例;
图10示出示例性场景;
图11示出根据本主题技术的各种实施方案的两个操作计划的示例性维恩图表示。
图12示出根据本主题技术的各种实施方案的用于管理操作计划改变的示例性方法;
图13示出根据本主题技术的各种实施方案的示例性场景;
图14示出根据本主题技术的各种实施方案的用于更新本地树的示例性方法;
图15示出根据本主题技术的各种实施方案的用于响应于移动或重命名操作来更新本地树的示例性方法;并且
图16示出用于实现本技术的某些方面的系统的实例。
具体实施方式
本技术的各种实例在下文中详细讨论。虽然讨论了具体的实现方式,但应理解这仅出于说明目的而进行。相关领域的技术人员应认识到,可在不背离本技术的精神和范围的情况下使用其他组件和配置。
计算和网络技术的各种进步使内容管理系统能够向用户提供跨多个设备对内容项的访问。内容项可包括但不限于文件、文档、消息(例如,电子邮件消息或文本消息)、媒体文件(例如,照片、视频和音频文件)、包含多个文件的文件夹或任何其他内容单元。内容项可与多个用户共享、被编辑、删除、添加、重命名或移动。然而,跨若干个计算设备(例如,服务器和客户端设备)以及跨若干个用户账户使这些内容项同步仍然存在缺陷并且充满技术障碍。
为了说明技术障碍中的一些,第一机器(例如,客户端设备或服务器)可向第二机器发送通信,所述第二机器提供关于用户已如何修改由内容管理系统管理的内容项的信息。这些通信可由第二机器使用以使第二机器上的内容项同步,使得对第一机器上的内容项执行的动作反映在第二机器上的内容项中,并且第一机器上的内容项与第二机器上的内容项基本上相同。
然而,由于用于传输通信的一个或多个网络所使用的各种网络路由协议、第一机器或第二机器的技术操作或某种其他原因,可发送若干通信并且通信可被无序地接收。此外,用户可能正在对大量内容项执行大量修改,在短时间内撤消先前的修改,或者对先前修改的内容项或一组内容项快速地执行另外的修改。这增加了这些通信被无序地接收、某些通信过时或第二机器将对不是最新的内容项执行操作的可能性。因此,许多操作可能与内容项的当前状态不兼容。实际上,甚至可能难以检测到一些操作是与其他操作还是与内容项的当前状态冲突。
另外,关于同步动作存在固有的等待时间。例如,第一机器首先检测在第一机器上采取的动作,并且通信被生成并且然后通过网络传输。通信由第二机器接收,所述第二机器仍然可正处理或已处理先前的通信并且可在第二机器处采取通信中详述的动作。在这种说明性场景中,存在其中第一机器、第二机器和网络的有限计算资源(例如,带宽、存储器、处理时间、处理周期等)引入等待时间的若干个点。当等待时间增加时,由于某种原因通信与内容项的当前状态发生冲突的可能性增加。此外,处理这些冲突通信并且解决冲突也耗费不必要的计算资源(诸如处理时间、内存、能量或带宽),并且进一步增加了等待时间。
为了进一步使事情复杂化,第二机器和/或访问内容项的另外的机器上的相同或不同用户也可能正在对内容项执行修改。因此,上述问题可能成倍增加,并且出现关于本地动作是否与远程动作冲突和/或本地动作是否正在对最新内容项进行操作的另外的技术问题。
所公开的技术满足了本领域对用于内容管理系统的客户端同步服务的需求,这为上述以及其他技术问题提供了技术解决方案。客户端同步服务可被配置来在客户端设备上操作并且标识内容管理系统的服务器上的内容项与客户端设备上的对应内容项之间的同步失配。对于每个同步失配,客户端同步服务可标识使内容项同步所需的操作并且发起那些操作。
客户端同步服务可使用一组树数据结构(“树”)来跟踪服务器上的内容项的状态、客户端设备上的内容项的状态以及它们的同步状态。根据一些实施方案,可使用一组3个树。三个树可包括表示服务器状态的远程树、表示客户端设备上的文件系统状态的本地树、以及表示用于本地树和远程树的合并基础的同步树。合并基础可被认为是本地树和远程树的共同祖先,或者本地树与远程树之间最后已知的同步状态。因此,当所有3个树(例如,远程树、同步树和本地树)相同时,客户端同步服务可确定服务器状态和客户端设备状态同步。
当检测到对内容项的服务器状态或内容项的客户端设备文件系统状态(“文件系统状态”)的修改时,客户端同步服务更新适当的树并且基于树的三权分立来确定服务器状态和文件系统状态是否同步。基于对树中的一个的更新,服务器状态和文件系统状态可变得同步、变得不同步或变得进一步不同步。如果服务器状态和文件系统状态不同步,则客户端同步服务可标识出使服务器状态和文件系统状态收敛并且使服务器状态和文件系统状态更靠近同步状态所需的至少一组初始操作。
通过依赖于所述一组树数据结构来监控服务器状态和文件系统状态提供根源于计算技术对各种技术问题的替代性方案和/或解决方案。例如,客户端同步服务能够跟踪服务器状态以及文件状态,并且存储这两种状态的合并基础的表示。因此,本主题技术的各种实施方案避免了与接收多个通信相关联的技术问题,所述多个通信指定用户如何远程地修改内容项并且确定应在本地实现这些修改的顺序、所述修改是与其他修改冲突还是过时以及远程修改是否与用户在本地执行的本地修改冲突。这些问题中的许多问题是由其他解决方案引起的,所述其他解决方案无法跟踪所涉及的各个参与者(例如,服务器和客户端设备)的状态,并且无法快速地确定状态是否同步。相反,这些其他解决方案依赖于接收有关在没有服务器状态和文件系统状态是否同步的上下文的情况下如何在本地修改内容项的指令。
此外,由于服务器状态和文件系统状态被连续地监控,因此就过程复杂性以及计算时间和资源而言,确定它们是否同步更为有效。如下文进一步详细描述的,客户端同步服务以更加确定的方式使服务器状态和文件系统状态逐步地且有条不紊地实现同步。因此,内容管理系统特征的扩展和测试也更加有效。
内容管理系统
在一些实施方案中,所公开的技术部署在具有内容项同步能力和协同特征等的内容管理系统的上下文中。在图1A中示出示例性系统配置100,所述示例性系统配置100描绘了内容管理系统110与客户端设备150进行交互。
账户
内容管理系统110可与账户相关联地存储内容项,以及执行多种内容项管理任务,诸如检索、修改、浏览和/或共享一个或多个内容项。此外,内容管理系统110可使账户能够从多个客户端设备访问一个或多个内容项。
内容管理系统110支持多个账户。实体(用户、用户组、团队、公司等)可利用内容管理系统创建账户,并且账户细节可存储在账户数据库140中。账户数据库140可存储所注册实体的档案信息。在一些情况下,所注册实体的档案信息包括用户名和/或电子邮件地址。账户数据库140可包括账户管理信息,诸如账户类型(例如,免费或付费账户的各个层)、分配的存储空间、使用的存储空间、具有驻留在其上的所注册内容管理客户端应用程序152的客户端设备150、安全设置、个人配置设置等。
账户数据库140可存储与实体相关联的账户组。组可基于组策略和/或访问控制列表而具有许可权,并且组的成员可继承所述许可权。例如,营销组可访问一组内容项,而工程组可访问另一组内容项。管理员组可修改组、修改用户账户等。
内容项存储
内容管理系统110的特征是内容项的存储,所述内容项可存储在内容存储装置142中。内容项可以是任何数字数据,诸如文档、协同内容项、文本文件、音频文件、图像文件、视频文件、网页、可执行文件、二进制文件等。内容项还可包括用于将内容项与不同行为(诸如文件夹、zip文件、播放列表、专辑等)分组在一起的集合或其他机制。集合可以是指一个文件夹或由共同属性相关或分组的多个内容项。在一些实施方案中,内容存储装置142与其他类型的存储装置或数据库组合以处置特定功能。内容存储装置142可存储内容项,而关于内容项的元数据可存储在元数据数据库146中。同样,关于内容项在内容存储装置142中的存储位置的数据可存储在内容目录144中。另外,关于改变、访问等的数据可存储在服务器文件日志148中。各种存储装置/数据库(诸如内容存储装置142、内容目录144、服务器文件日志148和元数据数据库146)中的每一者可包括多于一个此类存储装置或数据库,并且可分布在许多设备和位置上。其他配置也是可能的。例如,来自内容存储装置142、内容目录144、服务器文件日志148和/或元数据数据库146的数据可组合成一个或多个内容存储装置或数据库,或者进一步被分割成另外的内容存储装置或数据库。因此,内容管理系统110可包括比图1中所示的更多或更少的存储装置和/或数据库。
在一些实施方案中,内容存储装置142与至少一个内容存储服务116相关联,所述至少一个内容存储服务116包括用于管理内容项的存储的软件或其他处理器可执行指令,包括但不限于接收要存储的内容项、准备要存储的内容项、为内容项选择存储位置、从存储装置检索内容项等。在一些实施方案中,内容存储服务116可将内容项划分成更小的小块以用于存储在内容存储装置142处。组成内容项的每个小块的位置可记录在内容目录144中。内容目录144可包括存储在内容存储装置142中的每个内容项的内容条目。内容条目可与标识内容项的唯一ID相关联。
在一些实施方案中,标识内容目录144中的内容项的唯一ID可从确定性哈希函数导出。导出内容项的唯一ID的这种方法可确保如此辨识内容项重复,因为确定性哈希函数将针对相同内容项的每个副本输出相同的标识符,但将针对不同的内容项输出不同的标识符。使用这种方法,内容存储服务116可针对每个内容项输出唯一ID。
内容存储服务116还可在元数据数据库146中指定或记录用于内容项的内容路径。内容路径可包括内容项的名称和/或与内容项相关联的文件夹层次结构。例如,内容路径可包括一个文件夹或文件夹路径,其中内容项存储在客户端设备上的本地文件系统中。尽管内容项以块形式存储在内容存储装置142中并且可不存储在树状目录结构下,但是此类目录结构对于用户而言是舒适的导航结构。内容存储服务116可定义或记录用于内容项的内容路径,其中目录结构的“根”节点可以是用于每个账户的名称空间。在名称空间内可以是由账户和/或内容存储服务116的用户定义的目录结构。元数据数据库146可存储用于每个内容项的内容路径作为内容条目的一部分。
在一些实施方案中,名称空间可包括嵌套在目录结构中,好像它们存储在根节点内一样的另外的名称空间。这可在账户访问共享集合时发生。共享集合可在内容管理系统110内分配有其自己的名称空间。虽然一些共享集合实际上是共享集合的根节点,但是它们位于从属于目录结构中的账户命名空间并且可显现为账户文件夹内的文件夹。如上所述,目录结构对于用户而言仅是一种舒适的导航结构,但与内容存储装置142中的内容项的存储位置不相关。
虽然账户查看内容项的目录结构与内容管理系统110处的存储位置不相关,但是目录结构可取决于客户端设备150所使用的文件系统而与客户端设备150上的存储位置相关。
如上所述,内容目录144中的内容条目还可包括组成内容项的每个小块的位置。更具体地,内容条目可包括标识组成内容项的小块在内容存储装置142中的位置的内容指针。
除了内容路径和内容指针之外,内容目录144中的内容条目还可包括标识访问内容项的用户账户的用户账户标识符和/或标识访问内容项的组和/或内容条目所属的名称空间的组标识符。
内容存储服务116可通过标识重复的内容项或组成内容项或内容项版本的重复块来减少所需的存储空间的量。替代存储多个副本,内容存储装置142可存储内容项的单一副本或内容项的块,并且内容目录144可包括指针或其他机制以将重复项链接到单一副本。
内容存储服务116还可与内容项的唯一ID相关联地存储元数据,所述元数据描述内容项、内容项类型、文件夹、文件路径和/或内容项与元数据数据库146中的各种账户、集合或组的关系。
内容存储服务116还可将关于改变、访问等的数据日志存储在服务器文件日志148中。服务器文件日志148可包括内容项的唯一ID和改变或访问动作的描述以及时间戳或版本号和任何其他相关数据。服务器文件日志148还可包括指向受改变或内容项访问影响的块的指针。内容存储服务可通过使用内容项版本控件来提供撤消操作的能力,所述内容项版本控件跟踪对内容项的改变、内容项的不同版本(包括发散的版本树)以及可从服务器文件日志148获取的改变历史。
内容项同步
内容管理系统110的另一个特征是内容项与至少一个客户端设备150同步。一个或多个客户端设备可采用不同的形式并且具有不同的能力。例如,客户端设备1501是具有可由驻留在其上的多个应用程序访问的本地文件系统的计算设备。客户端设备1502是其中内容项仅可被特定应用程序或通过由特定应用程序给出的许可权访问并且内容项通常存储在应用程序特定空间中或云中的计算设备。客户端设备1503是通过web浏览器访问内容管理系统110并且通过web接口访问内容项的任何客户端设备。虽然示例性客户端设备1501、1502和1503以诸如膝上型计算机、移动设备或web浏览器的形态因素描绘,但是应当理解,其描述不限于这些示例性形态因素的设备。例如,移动设备(诸如客户端1502)可具有可由驻留在其上的多个应用程序访问的本地文件系统,或者客户端1502可通过web浏览器访问内容管理系统110。这样,当考虑客户端150的能力时,不应将形态因素视为限制性的。取决于设备的特定能力,在本文关于客户端设备150描述的一个或多个功能在每个客户端设备上可用或不可用——文件访问模型就是一种此类能力。
在许多实施方案中,客户端设备与内容管理系统110的账户相关联,但是在一些实施方案中,客户端设备可使用共享链接来访问内容并且不需要账户。
如上所述,一些客户端设备可使用web浏览器来访问内容管理系统110。然而,客户端设备还可使用在客户端设备150上存储并运行的客户端应用程序152来访问内容管理系统110。客户端应用程序152可包括客户端同步服务156。
客户端同步服务156可与服务器同步服务112通信,以使对内容项的改变在客户端设备150与内容管理系统110之间同步。
客户端设备150可通过客户端同步服务156使内容与内容管理系统110同步。同步可以是平台无关的。也就是说,内容可跨具有不同类型、能力、操作系统等的多个客户端设备同步。客户端同步服务156可使对内容项的任何改变(新的、删除的、修改的、复制的或移动的内容项)在客户端设备150的文件系统的指定位置中同步。
内容项可从客户端设备150同步到内容管理系统110,并且反之亦然。在其中同步是从客户端设备150到内容管理系统110的实施方案中,用户可直接从客户端设备150的文件系统操纵内容项,而客户端同步服务156可针对对所监控文件夹内的文件的改变监控客户端设备150上的目录。
当客户端同步服务156在其监控的目录中检测到内容的写入、移动、复制或删除时,客户端同步服务156可使所述改变同步到内容管理系统服务116。在一些实施方案中,客户端同步服务156可执行内容管理系统服务116的一些功能,包括上述功能,诸如将内容项分成块、对内容项进行哈希以生成唯一标识符等。客户端同步服务156可在客户端存储索引164内对内容进行索引并且将结果保存在存储索引164中。索引可包括存储路径加上每个内容项的唯一服务器标识符和唯一客户端标识符。在一些实施方案中,客户端同步服务156从服务器同步服务112学习唯一服务器标识符,并且从客户端设备150的操作系统学习唯一客户端标识符。
客户端同步服务156可使用存储索引164来促进客户端存储装置内的至少一部分内容与同内容管理系统110上的用户账户相关联的内容同步。例如,客户端同步服务156可将存储索引164与内容管理系统110进行比较,并且检测客户端存储装置上的内容与同内容管理系统110上的用户账户相关联的内容之间的差异。然后,客户端同步服务156可通过适当地上传、下载、修改和删除客户端存储装置上的内容来尝试协调差异。内容存储服务116可适当地存储内容项的所改变或新块并且更新服务器文件日志148、元数据数据库146、内容目录144、内容存储装置142、账户数据库140等。
当从内容管理系统110同步到客户端设备150时,在服务器文件日志148中记录的内容项的安装、修改、添加、删除、移动可触发使用通知服务117向客户端设备150发送通知。当客户端设备150被告知改变请求时,从对客户端设备已知的最后的同步点开始进行列于服务器文件日志148中的改变。当客户端设备150确定它与内容管理系统110不同步时,客户端同步服务156请求包括改变的内容项块,并且更新其所改变内容项的本地副本。
在一些实施方案中,存储索引164存储树数据结构,其中一个树根据服务器同步服务112反映目录的最新表示,而另一个树根据客户端同步服务156反映目录的最新表示。客户端同步服务可起作用来确保通过从服务器同步服务112请求数据或将客户端设备150上的改变提交给内容管理系统110来使树结构匹配。
有时客户端设备150可能不具有可用的网络连接。在这种场景中,客户端同步服务156可监控用于内容项改变的所链接集合,并且使那些改变形成队列以供稍后在网络连接可用时与内容管理系统110同步。类似地,用户可手动开始、停止、暂停或恢复与内容管理系统110的同步。
客户端同步服务156可使与内容管理系统110上的特定用户账户相关联的所有内容同步。替代地,客户端同步服务156可使与内容管理系统110上的特定用户账户相关联的总内容中的一部分内容同步。选择性地仅使一部分内容同步可保留客户端设备150上的空间并且节省带宽。
在一些实施方案中,客户端同步服务156选择性地存储与特定用户账户相关联的一部分内容,并且将占位符内容项存储在客户端存储装置中以用于内容的其余部分。例如,客户端同步服务156可将其相应完整内容项的具有相同文件名、路径、扩展名、元数据的占位符内容项存储在内容管理系统110上,但是缺少完整内容项的数据。占位符内容项的大小可以为几个字节或更小,而相应的完整内容项可能显著地更大。在客户端设备150尝试访问内容项之后,客户端同步服务156可从内容管理系统110检索内容项的数据,并且将完整内容项提供给访问的客户端设备150。这种方法可提供显著的空间和带宽节省,同时仍然提供对内容管理系统110上的用户内容的完全访问。
协同特征
内容管理系统110的另一个特征是促进用户之间的协同。协同特征包括内容项共享、对内容项进行评论、对内容项进行协同作用、即时消息传送、提供关于内容项的存在状态信息和可见状态信息等。
共享
内容管理系统110可通过共享服务128来管理共享内容。通过提供到内容的链接来共享内容可包括使内容项可从与内容管理系统110进行网络通信的任何计算设备访问。然而,在一些实施方案中,链接可与由内容管理系统110和访问控制列表145实施的访问约束相关联。共享内容还可包括使用共享服务128链接内容以使内容管理系统110内的内容与至少一个另外的用户账户(除与内容项相关联的原始用户账户之外)共享,使得每个用户账户能够访问内容项。另外的用户账户可通过接受内容来获得对内容的访问,所述内容然后可通过web接口服务124或直接从与客户端设备150上的其账户相关联的目录结构内访问。可以平台无关的方式执行共享。也就是说,可跨具有不同类型、能力、操作系统等的多个客户端设备150共享内容。还可跨不同类型的用户账户共享内容。
为了在内容管理系统110内共享内容项,共享服务128可将一个用户账户标识符或多个用户账户标识符添加到访问控制列表数据库145中与内容项相关联的内容条目,因此从而准许所添加用户账户访问内容项。共享服务128还可将用户账户标识符从内容条目移除以约束用户账户对内容项的访问。共享服务128可将内容项标识符、被允许访问内容项的用户账户标识符以及访问级别记录在控制列表数据库145中。例如,在一些实施方案中,与单一内容条目相关联的用户账户标识符可关于相关联内容项对相应的用户账户标识符指定不同的许可权。
为了在内容管理系统110之外共享内容项,共享服务128可生成自定义网络地址(诸如统一资源定位符(URL)),所述自定义网络地址允许任何web浏览器访问内容管理系统110中的内容项或集合而无需任何认证。为了实现这一点,共享服务128可在生成的URL中包括内容标识数据,所述内容标识数据稍后可用于正确地标识并返回所请求内容项。例如,共享服务128可在生成的URL中包括账户标识符和内容路径或内容项标识代码。在选择URL之后,可将URL中所包括的内容标识数据传输到内容管理系统110,所述内容管理系统110可使用接收的内容标识数据来标识适当的内容项并且返回所述内容项。
除生成URL之外,共享服务128还可被配置来在访问控制列表数据库145中记录已创建内容项的URL。在一些实施方案中,与内容项相关联的内容条目可包括指示是否已创建内容项的URL的URL标志。例如,URL标志可以是布尔值,所述布尔值初始地设置为0或假以指示尚未创建内容项的URL。共享服务128可在生成内容项的URL之后将标志的值改变为1或真。
在一些实施方案中,共享服务128可使一组许可权与内容项的URL相关联。例如,如果用户尝试通过URL访问内容项,则共享服务128可向内容项提供一组受限许可权。受限许可权的实例包括如下约束:用户不能下载内容项、保存内容项、复制内容项、修改内容项等。在一些实施方案中,受限许可权包括仅允许从特定域(即,从公司网络域内)或者由与特定域相关联的账户(例如,与公司账户(例如,@acme.com))相关联的账户访问内容项的约束。
在一些实施方案中,共享服务128也可被配置来停用生成的URL。例如,每个内容条目还可包括URL活动标志,所述URL活动标志指示是否应响应于来自生成的URL的请求而返回内容。例如,如果URL活动标志设置为1或真,则共享服务128仅可返回由生成的链接请求的内容项。因此,通过改变URL活动标志的值,可容易地约束对已经针对其生成URL的内容项的访问。这允许用户约束对共享内容项的访问,而无需移动内容项或删除生成的URL。同样,共享服务128可通过再次将URL活动标志的值改变为1或真来重新激活URL。用户因此可容易地恢复对内容项的访问,而无需生成新的URL。
在一些实施方案中,内容管理系统110可指定用于上传内容项的URL。例如,具有用户账户的第一用户可请求这种URL,将URL提供给贡献用户,并且贡献用户可使用URL将内容项上传到第一用户的用户账户。
团队服务
在一些实施方案中,内容管理系统110包括团队服务130。团队服务130可提供用于创建并管理定义的用户账户团队的功能性。可为公司创建团队以及子团队(例如,事业单位或项目团队等),并且向团队和子团队分配用户账户,或者可针对任何定义的用户账户组创建团队。团队服务130可向团队、私有用户账户文件夹和访问受限的共享文件夹提供公共的共享空间。团队服务还可向管理员提供管理接口以管理团队内的集合和内容项,并且可管理与团队相关联的用户账户。
授权服务
在一些实施方案中,内容管理系统110包括授权服务132。授权服务132确保尝试访问名称空间的用户账户具有访问所述名称空间的适当权限。授权服务132可从客户端应用程序152接收遵循访问命名空间的请求的令牌并且可将允许的能力返回给用户账户。对于具有多个访问级别的用户账户(例如,具有用户权限和管理员权限的用户账户),授权服务132也可需要明确的特权提升来避免管理员的意外动作。
存在状态和可见状态
在一些实施方案中,内容管理系统可提供关于与之共享内容项的用户如何交互或已经与内容项交互的信息。在一些实施方案中,内容管理系统110可报告与之共享内容项的用户当前正在查看内容项。例如,当客户端设备150正在访问内容项时,客户端协同服务160可通知通知服务117。通知服务117然后可向访问相同内容项的其他用户的所有客户端设备通知客户端设备150的用户相对于内容项存在。
在一些实施方案中,内容管理系统110可报告与共享内容项交互的用户的历史。协同服务126可查询数据源(诸如元数据数据库146和服务器文件日志148)以确定用户已经保存内容项,用户尚未查看内容项等,并且使用通知服务117来向其他用户散布这种状态信息,使得他们可知道当前正在或已经查看或修改内容项的人。
协同服务126可促进与内容相关联的评论,即使内容项本身不支持评论功能性。此类评论可存储在元数据数据库146中。
协同服务126可向用户始发和传输通知。例如,用户可在评论中提及另一个用户,并且协同服务126可向该用户发送他已经在评论中被提及的通知。各种其他内容项事件可触发通知,包括删除内容项、共享内容项等。
协同服务126可提供消息传送平台,由此用户可发送和接收即时消息、语音呼叫、电子邮件等。
协同内容项
在一些实施方案中,内容管理服务还可包括协同文档服务134,所述协同文档服务134可提供交互式内容项协同平台,由此用户可同时创建协同内容项,在协同内容项中进行评论并且管理协同内容项内的任务。协同内容项可以是用户可使用协同内容项编辑器创建和编辑的文件并且可包含协同内容项元素。协同内容项元素可包括协同内容项标识符、一个或多个作者标识符、协同内容项文本、协同内容项属性、交互信息、评论、共享用户等。协同内容项元素可存储为数据库实体,所述数据库实体允许搜索和检索协同内容项。多个用户可同时或在不同时间处访问、查看、编辑协同内容项并对协同内容项进行协同。在一些实施方案中,这可通过要求两个用户通过web接口访问内容项并且在所述web接口那里他们可同时处理内容项的相同副本来进行管理。
协同伴随接口
在一些实施方案中,客户端协同服务160可出于显示与呈现在客户端设备150上的内容项相关的信息的目的而提供本机应用程序伴随接口。在其中内容项由在客户端设备150上存储并执行的本机应用程序访问的实施方案中,其中内容项在客户端设备150的文件系统的指定位置中,使得内容项由内容应用程序152管理,本机应用程序可不提供任何本机方式来显示上述寻址的协同数据。在此类实施方案中,客户端协同服务160可检测到用户已经打开了内容项,并且可利用针对内容项的另外的信息(诸如协同数据)提供覆盖。例如,另外的信息可包括对内容项的评论、内容项的状态、先前或当前查看内容项的其他用户的活动。这种覆盖可警告用户改变可能会丢失,因为另一个用户当前正在编辑内容项。
在一些实施方案中,可使用公共或私有应用程序编程接口来访问上文论述的服务或存储装置/数据库中的一者或多者。
某些软件应用程序可以用户的名义通过API访问内容存储装置142。例如,当用户提供认证凭证以读取、写入、创建、删除、共享或以其他方式操纵内容时,软件包(诸如在客户端设备150上运行的应用程序)可以编程方式直接向内容管理系统110进行API调用。
用户可通过由web接口服务124生成和服务的web接口来查看或操纵存储在用户账户中的内容。例如,用户可在web浏览器中导航到由内容管理系统110提供的web地址。通过web接口对内容存储装置142中的内容作出的改变或更新(诸如上传内容项的新版本)可传播回与用户账户相关联的其他客户端设备。例如,各自具有其自己的客户端软件的多个客户端设备可与单一账户相关联,并且所述账户中的内容项可在多个客户端设备中的每一个之间同步。
客户端设备150可以用户的名义连接到内容管理系统110。用户可直接与客户端设备150交互,例如,当客户端设备150是台式计算机或膝上型计算机、电话、电视、物联网设备等时。替代地或另外地,客户端设备150可以用户的名义进行作用而无需用户物理访问客户端设备150,例如当客户端设备150是服务器时。
客户端设备150的一些特征由装配在客户端设备150上的应用程序启用。在一些实施方案中,应用程序可包括内容管理系统特定的组件。例如,内容管理系统特定的组件可以是独立应用程序152、一个或多个应用程序插件和/或浏览器扩展。然而,用户还可通过驻留在客户端设备150上并且被配置来与内容管理系统110通信的第三方应用程序(诸如web浏览器)来与内容管理系统110交互。在各种实现方式中,客户端应用程序152可呈现供用户与内容管理系统110交互的用户接口(UI)。例如,用户可通过与文件系统集成一体的文件系统资源管理器或通过使用web浏览器应用程序显示的网页来与内容管理系统110交互。
在一些实施方案中,客户端应用程序152可被配置来管理内容管理系统110的多于一个账户的内容并且使所述内容同步。在此类实施方案中,客户端应用程序152可保持登录到多个账户并且向多个账户提供正常服务。在一些实施方案中,每个账户可显现为文件系统中的文件夹,并且该文件夹内的所有内容项可与内容管理系统110同步。在一些实施方案中,客户端应用程序152可包括选择器以选择多个账户中的一个作为主要账户或默认账户。
虽然内容管理系统110被呈现为具有特定组件,但是本领域技术人员应当理解,系统100的体系结构配置仅仅是一种可能的配置并且具有更多或更少组件的其他配置是可能的。另外,服务可具有更多或更少的功能,甚至包括描述为与另一服务一起的功能性。此外,本文关于实施方案描述的特征可与关于另一个实施方案描述的特征组合。
虽然系统100被呈现为具有特定组件,但是本领域技术人员应当理解,系统100的体系结构配置仅仅是一种可能的配置并且具有更多或更少组件的其他配置是可能的。
客户端同步服务
图2示出根据一些实施方案的客户端同步服务156的实例。根据一些实施方案,客户端同步服务156可在图1的客户端设备中实现。然而,在其他实施方案中,客户端同步服务156可在另一个计算设备上实现。客户端同步服务156被配置来使对内容项的改变在内容管理系统与在其上运行客户端同步服务156的客户端设备之间同步。
客户端同步服务156可包括文件系统接口205、服务器接口210、树存储装置220、计划器225和调度器230。还可包括另外的或替代性组件。在下文关于图2论述客户端同步服务156及其组件的高级描述。然而,贯穿全文论述客户端同步服务156及其组件的另外的细节和实施方案。
文件系统接口205被配置来处理对客户端设备的本地文件系统上的内容项的改变并且更新本地树。例如,文件系统接口205可与图1的客户端同步服务156通信以检测对客户端设备的本地文件系统上的内容项的改变。也可通过图1的客户端应用程序152来进行并检测改变。文件系统接口205可对本地树进行更新。可基于对客户端设备上的内容项的改变(新的、删除的、修改的、复制的、重命名的或移动的内容项)来进行对本地树的更新。
服务器接口210被配置来帮助处理在内容管理系统的远程存储装置处对内容项的远程改变并且更新远程树。例如,服务器接口210可与图1的服务器同步服务112通信,以使对内容项的改变在客户端设备150与内容管理系统110之间同步。可检测对内容管理系统110处的内容项的改变(新的、删除的、修改的、复制的、重命名的或移动的内容项),并且可对远程树进行更新以反映内容管理系统110处的改变。
树存储装置220被配置来存储并维持由客户端同步服务156使用的树数据结构。例如,树存储装置220可存储本地树、同步树和远程树。根据一些实施方案,树存储装置200可将树数据结构存储在持久性存储器(例如,硬盘或其他辅助存储设备)中以及主存储器(例如,RAM或其他主存储设备)中,以便减少等待时间和响应时间。例如,在客户端设备或客户端同步服务156启动时,树数据结构可从持久性存储器中检索并且加载到主存储器中。树存储装置220可访问和更新主存储器上的树数据结构,并且在关闭客户端设备或客户端同步服务156之前,树存储装置220可将更新的树数据结构存储在持久性存储器上。因为主存储器的成本昂贵并且在大多数客户端设备上通常受大小限制,所以实现另外的技术改进以减少树数据结构在主存储器上的占用空间。这些技术解决方案在下文中进一步描述。
计划器225被配置来基于树数据结构的状态检测与内容管理系统相关联的服务器状态和与客户端设备相关联的文件系统状态之间的差异。例如,计划器225可确定在远程树与同步树之间是否存在差异。远程树与同步树之间的差异指示对存储在内容管理系统处的一个或多个内容项远程地执行的动作已经致使服务器状态和文件系统状态不同步。类似地,计划器225也可确定在本地树与同步树之间是否存在差异。本地树与同步树之间的差异指示对存储在客户端设备上的一个或多个内容项本地执行的动作已经致使服务器状态和文件系统状态不同步。如果检测到差异,则计划器225生成使树数据结构同步的一组操作。
在一些场景中,基于远程树与同步树之间的差异生成的一组操作和基于本地树与同步树之间的差异生成的一组操作可发生冲突。计划器225也可被配置来将两组操作合并成单一合并的操作计划。
调度器230被配置来采取生成的操作计划并且管理那些操作的执行。根据一些实施方案,调度器230将操作计划中的每个操作转换成需要执行以便执行所述操作的一系列一个或多个任务。在一些场景中,一些任务可能变得过时或不再相关。调度器230被配置来标识那些任务并且取消它们。
树数据结构
图3示出根据各种实施方案的树数据结构的实例。树数据结构可存储在客户端设备处并且由客户端同步服务(诸如图2中的客户端同步服务156)管理。在图3中,示出了树数据结构,所述树数据结构包括远程树310、同步树330和本地树350。
远程树310表示服务器状态或从客户端设备(例如,在内容管理系统的服务器上)远程地存储的内容项的状态。本地树350表示文件系统状态或本地存储在客户端设备上的对应的内容项的状态。同步树330表示本地树和远程树的合并基础。合并基础可被认为是本地树和远程树的共同祖先,或者本地树与远程树之间最后已知的同步状态。
每个树数据结构(例如,远程树310、同步树330或本地树350)可包括一个或多个节点。每个节点可具有一个或多个子节点,并且父级-子级关系由边表示。例如,远程树310包括节点312和314。节点312是节点314的父级,而节点314是节点312的子级。这种父级-子级关系由边316表示。根节点(诸如根节点312)不具有父节点。叶节点(诸如节点314)不具有子节点。
树数据结构中的每个节点可表示内容项(例如,文件、文档、文件夹等)。例如,根节点312可表示与内容管理系统相关联的根文件夹,并且节点314可表示位于该根文件夹中的文件(例如,名为“Foo.txt”的文本文件)。树数据结构中的每个节点可包含数据,例如像指定内容项的父节点的文件标识符的目录文件标识符(“DirFileID”)、用于内容项的文件名、用于内容项的文件标识符以及用于内容项的元数据。在一些实施方案中,树数据结构中的每个节点可由其文件标识符键控或引用并且具有从根到节点的唯一路径。
如上所述,当所有3个树(例如,远程树310、同步树330和本地树350)相同时,客户端同步服务可确定客户端设备的服务器状态和文件系统状态同步。换句话讲,当树的树结构和它们表达的关系相同并且它们的节点中所包含的数据也相同时,树被同步。相反,如果3个树不相同,则这些树不同步。在图3所示的示例性场景中,远程树310、同步树330和本地树350被示出为相同并且同步,并且因此,服务器状态和文件系统状态同步。
使用树数据结构来跟踪改变
图4示出根据各种实施方案的树数据结构的实例。与图3所示的树数据结构一样,图4所示的树数据结构(包括远程树410、同步树430和本地树450)可存储在客户端设备处并且由客户端同步服务(诸如图2中的客户端同步服务156)管理。在图3中,示出树数据结构。
图4示出在先前同步状态(诸如图3所示的场景)之后的场景,对树中所表示的内容项执行另外的动作以修改内容项,使得树不再同步。同步树430维持先前已知的同步状态的表示并且可由客户端同步服务使用以标识服务器状态与文件系统状态之间的差异以及生成供内容管理系统和/或客户端设备执行以收敛,使得服务器状态和文件系统状态同步的操作。
例如,用户(访问内容项的与同客户端设备相关联的用户相同的用户或不同用户)可对由内容管理系统存储的“foo.txt”内容项进行修改。该内容项由远程树410中的节点414表示。远程树410中所示的修改是移除(例如,将内容项从由内容管理系统管理的空间中移除)或删除foo.txt内容项。这些修改可在例如另一个客户端设备上通过web浏览器执行,并且所述修改同步到由内容管理系统存储的内容项或由内容管理系统存储的内容项。
当在内容管理系统上进行改变时,内容管理系统生成指定所进行的改变的修改数据,并且将修改数据传输到客户端设备上的客户端同步服务。客户端同步服务基于修改数据来更新表示由内容管理系统存储的内容项的服务器状态的远程树。例如,在远程树410中,表示foo.txt内容项的节点414被示出为已删除。
客户端同步服务可标识远程树410与同步树430之间的差异,并且因此确定对在内容管理系统处的内容项的修改已经致使服务器状态和文件系统状态不再同步。客户端同步服务可进一步针对存储在客户端设备上的内容项生成并执行一组或一系列操作,所述一组或一系列操作被配置来使服务器状态和文件系统状态收敛以使得它们将同步。
另外地或替代地,用户(访问内容项的与同内容管理系统处的修改相关联的用户相同的用户或不同用户)可对本地存储在客户端设备上的与内容管理系统相关联的内容项进行修改。例如,用户可向“/root”文件夹添加文件夹“/bar”并且向“/bar”文件夹添加“Hi.doc”文档。
当在客户端设备上进行改变时,客户端设备(例如,图1的客户端同步服务156或客户端应用程序152)生成指定所进行的改变的修改数据并且将修改数据传递到客户端设备上的客户端同步服务。客户端同步服务基于修改数据来更新表示存储在客户端设备上的内容项的文件系统状态的本地树。例如,在本地树450中,节点452和节点454被示出为已添加。节点452和节点454分别表示“/bar”文件夹和“Hi.doc”文档。
客户端同步服务可标识本地树450与同步树430之间的差异,并且因此确定对在客户端设备处的内容项的修改已经致使服务器状态和文件系统状态不再同步。客户端同步服务可进一步针对由内容管理系统存储的内容项生成一组或一系列操作,所述一组或一系列操作被配置来使服务器状态和文件系统状态收敛以使得它们将同步。这些操作可被传输到内容管理系统以供执行。
如图4所示,对存储在客户端设备上的内容项和由内容管理系统存储的内容项的修改可基本上同时或在特定时间段内发生。这些修改可反映在树数据结构中并且由客户端同步服务使用以并行生成用于客户端设备和用于内容管理系统的操作。然而,在其他场景中,修改可不必在同一时间段内发生,并且可以按需的方式生成操作。此外,尽管图4示出用于添加内容项和删除内容项的场景,但是还支持其他类型的修改,诸如编辑、重命名、复制或移动内容项。
根据各种实施方案,标识两个树数据结构之间的差异并且生成操作可涉及检查两个树数据结构中的每个节点并且确定是否已经对节点执行动作。动作可包括例如添加节点、删除节点、编辑节点或移动节点。这些动作然后可用于生成被配置来使服务器状态和文件系统状态收敛的操作。
例如,如果两个树数据结构是同步树和远程树,则客户端同步服务可通过例如请求同步树中所有节点的文件标识符来标识同步树中的每个节点。对于同步树中的每个节点或所述节点的文件标识符,客户端同步服务可确定所述节点或所述文件标识符是否也在远程树中。在远程树中没有发现同步树中的节点或文件标识符可指示已经将节点从由远程树表示的服务器状态中删除。因此,客户端同步服务可确定删除动作在远程树上已发生。如果在远程树中发现节点或所述节点的文件标识符,则客户端同步服务可检查远程树中的节点是否已被编辑或移动。
为了确定远程树中的节点是否已相对于同步树中的节点进行编辑,客户端同步服务可将同步树中节点的元数据与远程树中对应的节点(例如,具有相同文件标识符的节点)的元数据进行比较。元数据可包括可用于确定由节点表示的内容项是否已经被编辑的信息。例如,元数据可包括基于内容项或其一部分中的数据生成的一个或多个哈希值。另外地或替代地,元数据可包括内容项的大小值、最后修改的值或其他值。可将同步树中的节点的元数据与远程树中的节点的元数据进行比较。如果元数据不匹配,则对内容项的编辑在由远程树表示的服务器状态下可能已编辑。因此,客户端同步服务可确定对于远程树上的节点已发生编辑动作。如果元数据匹配,则编辑可能没有发生。
为了确定远程树中的节点是否已移动,客户端同步服务可将同步树中节点的位置与远程树中对应的节点(例如,具有相同文件标识符的节点)的位置进行比较。位置可包括例如节点所位于的路径、文件名和/或指定节点的父级的文件标识符的目录文件标识符(“DirFileID”)。如果位置匹配,则移动可能没有发生。另一方面,如果位置不匹配,则内容项的移动在由远程树表示的服务器状态下可能已发生。因此,客户端同步服务可确定对于远程树上的节点已发生移动动作。
为了确定是否已将节点添加到远程树,客户端同步服务可标识在同步树中未发现的远程树中的任何节点或文件标识符。如果节点或文件标识符在远程树中发现而在同步树中没有发现,则客户端同步服务可确定该节点的添加动作在表示服务器状态的远程树上已发生。
尽管关于同步树和远程树对上述实例进行了描述,但是在其他实施方案中,同步树和本地树可发生类似的过程,以便标识同步树与本地树之间的差异并且确定哪些动作在表示文件系统状态的本地树上已发生。
使用树数据结构的同步
图5示出根据本主题技术的各种实施方案的用于使用树数据结构来使服务器状态和文件系统状态同步的示例性方法。尽管本文描述的方法和过程可以特定次序与某些步骤和操作一起示出,但是除非另有说明,否则以类似或替代性次序或并行执行的另外的、更少或替代性步骤和操作在各种实施方案的范围内。方法500可由在客户端设备上运行的系统(例如像图2的客户端同步服务156)来实现。
系统被配置来标识表示由内容管理系统存储的内容项的服务器状态的远程树、表示存储在客户端设备上的对应的内容项的文件系统状态的本地树与表示服务器状态与文件系统状态之间已知的同步状态的同步树之间的差异。基于这些差异,可生成一组操作,所述一组操作如果被执行,则被配置来使服务器状态和文件系统状态朝向三个树数据结构将相同的同步状态收敛。
例如,在操作505处,系统可接收针对由内容管理系统存储或存储在客户端设备上的内容项的修改数据。在操作510处,修改数据可用于更新远程树或本地树。
修改数据指定与内容管理服务相关联的一个或多个内容项进行了何种改变。因此,可从内容管理系统或从客户端设备(例如,从在图1中的客户端设备150上运行的客户端应用程序152)接收修改数据。从内容管理系统接收的修改数据可被称为服务器修改数据。服务器修改数据指定内容管理系统对一个或多个内容项进行了何种改变,并且在操作510处可用于更新远程树。从客户端设备接收的修改数据可被称为客户端修改数据。客户端修改数据指定对客户端设备上的一个或多个内容项进行了何种改变,并且在操作510处可用于更新本地树。
在操作515处,系统可确定由内容管理系统存储的内容项的服务器状态和存储在客户端设备上的内容项的文件系统状态是否同步。因为本地树和远程树表示文件系统状态和服务器状态并且不断更新以跟踪发生在内容管理系统和客户端设备处的改变,所以确定服务器状态和文件系统状态是否同步可通过将本地树和/或远程树与同步树进行比较以发现树之间的差异来完成。发现树之间的差异的这个过程有时被称为使树“差异化”。
根据一些实施方案和场景,确定服务器状态和文件系统状态是否同步可包括标识远程树与同步树之间的差异和/或标识本地树与同步树之间的差异中的一者或多者。远程树与同步树之间的差异可指示对由内容管理系统存储的内容项的改变发生,所述改变可能不会反映在客户端设备处。类似地,本地树与同步树之间的差异可指示对在客户端设备处存储的内容项的改变发生,所述改变可能不会反映在内容管理系统处。
如果树之间不存在差异,则服务器状态和文件系统状态同步,并且不需要同步动作。因此,方法可返回至操作505并且等待新修改数据。另一方面,如果检测到差异,则在操作520处,系统可生成被配置来使服务器状态和文件系统状态收敛的一组操作。
生成的所述一组操作取决于检测到的一个或多个差异。例如,如果两个树之间的差异是添加的内容项,则生成的所述一组操作可包括检索所述添加的内容项并且添加它。如果两个树之间的差异是内容项的删除,则生成的所述一组操作可包括删除内容项。根据一些实施方案,所述一组操作还可包括多次检查以确保维持树约束。如将在下文进一步描述,所述一组操作可能与服务器状态、文件系统状态或未决执行的其他操作的当前状态冲突。因此,系统还可在前进之前解决这些冲突。
如上所述,如果远程树与同步树之间存在差异,则对由内容管理系统存储的内容项的改变可发生,所述改变可能不会反映在客户端设备处。因此,在这种场景中,系统可生成一组客户端操作,所述一组客户端操作被配置来对存储在客户端设备上的内容项进行操作以使服务器状态和文件系统状态收敛,并且在操作525处可将该组客户端操作提供给客户端设备以供执行。
另一方面,如果本地树与同步树之间存在差异,则对在客户端设备处存储的内容项的改变可发生,所述改变可能不会反映在内容管理系统处。因此,在这种场景中,系统可生成一组服务器操作,所述一组服务器操作被配置来对由内容管理系统存储的内容项进行操作以使服务器状态和文件系统状态收敛,并且在操作525处可将该组服务器操作提供给内容管理系统以供执行。在一些情况下,两种情况都可能是正确的,并且一组客户端操作和一组服务器操作可被生成并且在操作525处提供给它们预期的接收者。
一旦将所述一组或多组操作提供给一个或多个预期的接收者,方法就可返回至操作505并且等待新修改数据。所述一组或多组操作可提供朝向服务器状态和文件系统状态的收敛的一个或多个步骤,或者提供使服务器状态和文件系统状态同步所需的所有步骤。例如,内容管理系统可接收所述一组服务器操作并且对由内容管理系统存储的内容项执行所述一组服务器操作。所述一组服务器操作的这种执行引起对由内容管理系统存储的内容项的改变,所述改变在服务器修改数据中被检测和指定,所述服务器修改数据被传输回至系统。然后,系统可更新远程树并且确定服务器状态和文件系统状态是否同步。
客户端设备可接收所述一组客户端操作并且对存储在客户端设备上的内容项执行所述一组客户端操作。所述一组客户端操作的这种执行引起对存储在客户端设备上的内容项的改变,所述改变在客户端修改数据中被检测和指定,所述客户端修改数据被传递至系统。然后,系统可更新本地树并且确定服务器状态和文件系统状态是否同步。方法500的这些操作可继续直到服务器状态和文件系统状态同步。
方法500的操作关于客户端侧和服务器侧(例如,本地树和远程树、文件系统状态和服务器状态、一组客户端操作和一组服务器操作、客户端修改数据和服务器修改数据)进行了描述。在各种实施方案中,与两侧相关联的操作可并行地、顺序地、与另一侧隔离地或组合地发生。
如将进一步详细论述,根据一些实施方案,在提供操作用于执行之前,系统可检查操作以确定它们是否符合一组规则或不变量。如果操作违反规则,则系统执行与违反规则相关联的解决过程。
另外,根据一些实施方案,系统(例如,图2中的客户端同步服务156的调度器230)可管理所述一组操作的执行。例如,所述一组操作中的每个操作可与任务、执行线程、一系列步骤或指令相关联。系统可被配置来执行任务、线程、步骤或指令并且与客户端设备和/或内容管理系统对接以执行所述一组操作并且使服务器状态和文件系统状态收敛。
冲突处置
如上文关于图5所描述,同步树与远程树之间的差异被标识并且用于生成被配置来使服务器状态和文件系统状态收敛的一组客户端操作。然而,在一些情况下,所述一组客户端操作可与本地树的当前状态冲突。类似地,同步树与本地树之间的差异被标识并且用于生成被配置来使服务器状态和文件系统状态收敛的一组服务器操作。然而,所述一组服务器操作可与远程树的当前状态冲突。另外地或替代地,所述一组客户端操作和所述一组服务器操作可彼此冲突或违反由系统维持的另一规则或不变量。因此,本主题技术的各种实施方案通过解决这些冲突来提供另外的技术改进。
例如,图2的客户端同步服务156中的计划器225可标识一组操作(例如,所述一组客户端操作或所述一组服务器操作)中与规则冲突的操作。用于标识冲突的每个规则也可与冲突的解决方案相关联。客户端同步服务可基于冲突的解决方案来更新所述一组操作,或者可通过执行与冲突的解决方案相关联的操作,之后提供所述一组操作以供执行来解决冲突。
图6示出根据本主题技术的各种实施方案的用于在使用树数据结构来使服务器状态和文件系统状态同步时解决冲突的示例性方法600。尽管本文描述的方法和过程可以特定次序与某些步骤和操作一起示出,但是除非另有说明,否则以类似或替代性次序或并行执行的另外的、更少或替代性步骤和操作在各种实施方案的范围内。方法600可由在客户端设备上运行的系统(例如像图2的客户端同步服务156)来实现。
在操作620处,系统可接收被配置来使服务器状态和文件系统状态收敛的一组操作。所述一组操作可以是例如所述一组客户端操作、所述一组服务器操作或关于图5的方法500生成和描述的一组组合操作。
在操作650处,系统基于一组规则来标识所述一组操作中的一个或多个违规。所述一组规则可由图2中的客户端同步服务156存储并且针对要解决的操作指定多个约束、不变量或冲突。所述一组规则可应用于树数据结构并且帮助控制同步行为。所述一组规则中的每个规则也可与违反该规则的解决方案相关联或以其他方式链接到所述解决方案。例如,解决方案可包括更改所述一组操作中的一个或多个操作、移除一个或多个操作、添加一个或多个操作、对服务器状态或文件状态进行一个或多个另外的动作或动作的组合。
对于一组操作中的每个操作,系统可确定是否违反所述一组规则中的任何规则。如果违反规则,则系统标识违反的解决方案,并且在操作655处执行所述解决方案。解决方案可包括诸如如下的动作:修改所述一组操作中的一个或多个操作、移除或添加一个或多个操作或对服务器状态或文件状态进行另外的动作。
一旦执行了解决方案动作,系统就可在操作660处基于解决方案和所述一组操作来生成一组解决或重建基础操作,并且在操作665处将所述一组解决操作提供给适当的实体以供执行。例如,可将所述一组解决操作提供给图2中的客户端同步服务146的调度器230以用于管理执行。替代地,如果所述一组操作是一组客户端操作,则可将所述一组解决操作提供给客户端设备。如果所述一组操作是一组服务器操作,则可将所述一组解决操作提供给内容管理服务。另外,图6的方法600可顺序地、并行地或以各种不同的次序基于一组客户端操作和一组服务器操作执行。
根据一些实施方案,每种类型的操作可与相同规则或一组不同规则相关联。例如,操作类型可包括例如添加内容项、删除内容项、编辑内容项、移动内容项、重命名内容项等。所述一组操作可由各自属于上述操作类型中的一个的操作组成。每个操作类型可与特定的一组规则相关联。
出于说明目的,针对“添加”操作类型的一组规则可包括诸如如下的规则:内容项的文件标识符在树中必须是唯一的(例如,树中的两个节点都不能具有相同的文件标识符),指定内容项的父节点的文件标识符的目录文件标识符(“DirFileID”)必须存在于相对的树数据结构中,并且用于内容项的DirFileID和文件名组合未在相对树中使用。
如在此使用的相对树是指表示相对实体的状态的树数据结构。例如,被配置来在客户端设备上操作的一组客户端操作以及对客户端设备上的文件系统所产生的改变将反映在本地树中。因此,针对所述一组客户端操作的相对树是远程树。类似地,一组服务器操作被配置成传输至内容管理系统以供执行并且对服务器状态所产生的改变将反映在远程树中。因此,针对所述一组服务器操作的相对树是本地树。
图7示出根据各种实施方案的示出违反添加操作规则的树数据结构的实例。树数据结构包括远程树710、同步树750和本地树770。当引用本地树770时,远程树710可被认为是相对树。另一方面,当引用远程树710时,本地树770可被认为是相对树。图7示出在远程树710中添加由节点712表示的内容项的一组操作。例如,客户端同步服务可将远程树710与同步树750进行比较,标识差异,并且生成包括添加节点712的一组操作。节点712与为4的FileID、为3的DirFileID(其引用父节点714,所述父节点714是节点712的父级)以及“Hi”的文件名相关联。父节点714与为3的FileID、为1的DirFileID(其引用根节点716,所述根节点716是节点714的父级)以及“Foo”的文件名相关联。
客户端同步服务可执行图6的方法600,并且确定针对节点712的添加操作违反了针对“添加”操作类型的“内容项的目录文件标识符(“DirFileID”)必须存在于相对的树数据结构中”规则。这在图7中通过本地树770不具有文件ID为3的节点来示出,所述节点引用节点712的父节点714。例如,这可在远程树710与同步树750之间的差异被确定并且生成一组操作之后,将对应于节点714的“Foo”节点从相对树中移除时发生。
与该规则相关联的解决方案可包括从同步树750中删除从本地树770缺少的节点以使同步树750和本地树770同步并且使远程树710和同步树750重新差异化(例如,发现远程树710与同步树750之间的差异)。在图7所示的场景中,同步树750中的节点754将被移除758,并且差异化操作将开始标识远程树710与同步树750之间的差异。这将导致在所述一组操作中包括对节点714的添加操作以及针对节点712的添加操作。
类似地,违反针对“添加”操作类型的“内容项的文件标识符在树中必须是唯一的”规则可通过包括以下的操作来解决:从内容管理系统请求用于要添加的节点的新文件ID,以及当添加节点时使用新文件ID。违反针对“添加”操作类型的“内容项的DirFileID和文件名组合未在相对树中使用”规则可通过包括以下的操作来解决:通过与两个节点相关联的元数据检查内容项是否相同。如果内容项相同,则可能已在其他动作中添加了要添加的内容项。如果内容项不相同,则可重命名要添加的内容项的文件名。例如,要添加的内容项的文件名可附加有文本“(冲突版本)”。
逐步进行的计划器
尽管图3、图4和图7所示的各种树数据结构包含相对较少数目的节点并且结构相对简单,但是由系统支持的树数据结构可能大得多且复杂并且具有多个级别,并且每个级别处潜在地具有大数目的节点。因此,在操作期间存储树数据结构所需的存储器用量可能相当大,并且对树数据结构进行操作所需的计算时间和资源可能相当大。例如,发现远程树与同步树和/或本地树与同步树之间的差异并且生成使远程树和同步树和/或本地树和同步树收敛所需的操作可能需要大量的存储器、时间和其他计算资源。
不幸地,这些计算资源是有限的。例如,客户端设备可具有有限数量的可用存储器,并且使树差异化并且生成操作所需的时间长度可阻碍客户端设备、客户端应用程序或由内容管理系统提供的内容管理服务的可用性。此外,使服务器状态和文件系统状态收敛所需的时间越长,对任一状态的中间改变就越可能使正在计算或执行的所述一组操作和/或目标同步状态过时。因此,本主题技术的各种实施方案通过逐步地收敛服务器状态和文件系统状态以及表示它们的树数据结构来提供另外的技术改进。
图8示出根据本主题技术的各种实施方案的用于使服务器状态和文件系统状态逐步地收敛的示例性方法800。尽管本文描述的方法和过程可以特定次序与某些步骤和操作一起示出,但是除非另有说明,否则以类似或替代性次序或并行执行的另外的、更少或替代性步骤和操作在各种实施方案的范围内。方法800可由在客户端设备上运行的系统(例如像图2的客户端同步服务156)来实现。
在操作805处,系统可接收可用于更新远程树或本地树的修改数据。例如,可从内容管理服务接收服务器修改数据,并且所述服务器修改数据指定与由内容管理系统存储的一个或多个内容项相关联的修改或其他动作(例如,编辑、添加、删除、移动或重命名)。服务器修改数据可用于更新远程树,所述远程树表示由内容管理系统存储的内容项的服务器状态。类似地,客户端修改数据可从客户端设备(例如,客户端应用程序)接收并且指定与存储在客户端设备上的一个或多个内容项相关联的修改或其他动作。客户端修改数据可用于更新本地树,所述本地树表示存储在客户端设备上的内容项的文件系统状态。
基于指定与内容项相关联的修改的接收的修改数据,在操作810处,系统可标识对应于修改的内容项的节点并且将所述节点添加到修改的内容项列表(例如,将与节点相关联的文件标识符添加到修改的内容项列表)。在系统前进至方法800的下一阶段之前,操作805和810可连续发生达一定时间。例如,另外的修改数据可被接收并且用于更新由系统管理的树并且将节点添加到修改的内容项列表。
为了使服务器状态和文件系统状态逐步地收敛,在操作815处,系统获取修改的内容项列表中的每个节点并且确定如何修改节点(例如,哪些动作与节点相关联)。在一些实施方案中,修改数据可指定对节点的修改。然而,在其他实施方案中,系统可基于远程树与同步树的比较和/或本地树与同步树的比较来确定对节点的修改。例如,修改可包括添加节点、删除节点、编辑节点或移动节点。
对于修改的内容项列表中的每个节点或所述节点的文件标识符,系统可执行一系列检查以确定对节点执行何种修改(如果有的话)。例如,系统可确定文件标识符是否在同步树中但不在远程树中。在远程树中没有发现同步树中的文件标识符可指示已经将节点从由远程树表示的服务器状态中删除。因此,客户端同步服务可确定对节点的删除修改在远程树上已发生。类似地,系统还可确定文件标识符是否在同步树中但不在本地树中。在本地树中没有发现同步树中的文件标识符可指示已经将节点从由本地树表示的文件系统状态中删除。因此,客户端同步服务可确定对节点的删除修改在本地树上已发生。
为了确定是否已对节点执行编辑修改,系统可将同步树中节点的元数据与远程树中对应的节点(例如,具有相同文件标识符的节点)的元数据进行比较。元数据可包括可用于确定由节点表示的内容项是否已经被编辑的信息。例如,元数据可包括基于内容项或其一部分中的数据生成的一个或多个哈希值。另外地或替代地,元数据可包括内容项的大小值、最后修改的值或其他值。如果元数据不匹配,则对内容项的编辑在由远程树表示的服务器状态和/或由本地树表示的文件系统状态下可能已编辑。因此,系统可确定对于远程树和/或本地树上的节点已发生编辑动作。
为了确定远程树中的节点是否已移动,系统可将同步树中节点的位置与远程树和/或本地树中对应的节点(例如,具有相同文件标识符的节点)的位置进行比较。位置可包括例如节点所位于的路径、文件名和/或指定节点的父级的文件标识符的目录文件标识符(“DirFileID”)。如果位置匹配,则移动可能没有发生。另一方面,如果位置不匹配,则内容项的移动在远程树或本地树中可能已发生。因此,客户端同步服务可确定对于远程树和/或本地树上的节点已发生移动动作。
为了确定是否已将节点添加到远程树,系统可确定修改的内容项列表中的文件标识符是在远程树中还是在本地树中,但不是在同步树中。如果在远程树或本地树中发现文件标识符,而在同步树中没有发现文件标识符,则系统可确定已对于该节点发生添加修改。
一旦对修改的内容项列表中的节点的一个或多个修改被确定,则在操作820处,系统可确定那些修改中的任一个是否具有相依性。如将关于图9进一步示出,当例如不首先发生另一修改就无法执行所述修改时,对节点的修改具有相依性。
如果修改不具有相依性,则在操作825处,系统将修改添加到不受阻止的动作列表。如果修改具有相依性,则在操作830处所述修改被暂时阻止,并且如果不首先处理另一修改就不能执行。在处理修改中的每一个之后,系统可从修改的内容项列表中清除与修改相关联的文件标识符。
图9示出根据各种实施方案的树数据结构的实例。图9所示的树数据结构可存储在客户端设备处并且由系统(诸如图2中的客户端同步服务156)管理。出于说明的目的,在图9中仅示出和描述了远程树910和同步树950。类似的操作和描述也可应用于本地树。
远程树910包括文件标识符为1的根节点912、文件标识符为5且文件名为“Foo”的节点914、文件标识符为6且文件名为“Bar”的节点916以及文件标识符为7且文件名为“Bye”的节点918。同步树包括文件标识符为1的根节点952。
基于图9所示的树数据结构,系统可标识出在操作810处文件标识符为5、6和7的节点已被修改,并且将这些节点添加到修改的内容项列表,如由图9中的参考标号980所示。在操作815处,系统确定对修改的内容项列表中的节点的修改列表。如由远程树910与同步树950的比较可见,节点914、916和918已添加到远程树910。更具体地,如图9中的参考标号982所示,文件标识符为6且名为“Bar”的节点916已作为子级添加到文件标识符为5的节点914。这由参考标号982中的“Add(6,5,Bar)”条目表示。文件标识符为7且名为“Bye”的节点918已作为子级添加到文件标识符为5的节点914。这由参考标号982中的“Add(7,5,Bye)”条目表示。文件标识符为5且名为“Foo”的节点914已作为子级添加到文件标识符为1的根节点912。这由参考标号982中的“Add(5,/root,Foo)”条目表示。
在操作820处,系统确定节点914的添加修改不具有相依性,并且因此未受到阻止。因此,在操作825处,系统将与节点914相关联的修改(例如,由参考标号982中的“Add(5,/root,Foo)”条目表示的修改)添加到不受阻止的动作列表。这在图9的附图标号984中可见。另一方面,由参考标号982中的“Add(6,5,Bar)”条目和“Add(7,5,Bye)”条目表示的针对节点916和918的修改取决于首先发生的由“Add(5,/root,Foo)”表示的修改。换句话讲,在添加节点914之前,不能添加节点916和/或节点918。因此,这些修改包括在由图9中的参考标号986示出的受阻止的动作列表中。
返回至图8的方法800,在操作835处,系统可从不受阻止的动作列表中选择一组修改并且基于选择的所述一组修改来生成一组操作。所述一组操作被配置来使服务器状态和文件系统状态收敛。生成的所述一组操作取决于从不受阻止列表中选择的所述一组修改。例如,如果选择的所述一组修改包括与图9中的节点914相关联的添加修改(例如,由参考标号984中的“Add(5,/root,Foo)”条目表示的修改),则生成的所述一组操作可包括从内容管理系统检索添加的内容项并且将其添加到客户端设备的本地文件系统。
根据一些实施方案,系统可从不受阻止的动作列表中选择所有修改以生成一组或多组操作。然而,在一些场景中,不受阻止列表中的修改数目可能相当高,并且处理所有修改所需的计算资源(例如,存储器和处理时间)相当大。为了减轻这些技术负担,系统可在不受阻止的动作列表中选择较小的一组修改,以便逐步地处理。例如,系统可选择第一个或前X个或第一或前X百分比的修改来生成操作。在过程的进一步迭代中,可处理不受阻止列表中的剩余修改。
在一些实施方案中,可对不受阻止列表中的修改进行排序以用于处理。可基于例如修改类型(例如,删除修改优先于添加修改)、与修改相关联的元数据(例如,对较小大小的内容项的添加修改优先于对较大大小的内容项的添加修改,对较大大小的内容项的删除修改优先于对较小大小的内容项的删除修改等)来对修改进行排序。
这些排序规则可由系统存储并且可被设计来实现用于内容同步的各种性能目标。例如,删除修改可优先于添加修改,以便在可添加新内容项之前为用户释放尽可能多的可能的有限存储空间。较小内容项的添加可优先于较大内容项,以便关于所添加的内容项的数目尽快地提供尽可能多的进步。
在操作835处,系统可将所述一组操作提供给内容管理系统和/或客户端设备。如上所述,与由内容管理系统执行的动作相关联的修改可能不会反映在客户端设备处。因此,在这种场景中,系统可生成一组客户端操作,所述一组客户端操作被配置来对存储在客户端设备上的内容项进行操作以使服务器状态和文件系统状态收敛,并且在操作835处可将该组客户端操作提供给客户端设备以供执行。
另一方面,与由客户端设备执行的动作相关联的修改可能不会反映在内容管理系统处。因此,在这种场景中,系统可生成一组服务器操作,所述一组服务器操作被配置来对由内容管理系统存储的内容项进行操作以使服务器状态和文件系统状态收敛,并且在操作835处可将该组服务器操作提供给内容管理系统以供执行。
在一些情况下,两种情况都可能是正确的,并且一组客户端操作和一组服务器操作可被生成并且在操作835处提供给它们预期的接收者。所述一组操作还可包括多次检查以确保维持树约束。例如,所述一组操作可解决如关于图6所论述的各种冲突或约束。
一旦将所述一组或多组操作提供给一个或多个预期的接收者,方法就可返回至操作805并且等待新修改数据。例如,关于图9所示的场景,所述一组操作可包括从内容管理系统检索与节点914相关联的内容项,并且将其添加到客户端设备的本地文件系统。这将导致在本地树(图9中未示出)和同步树950中添加对应于节点914的节点。在图8的过程800的下一次迭代中,由参考标号982中的“Add(6,5,Bar)”条目和“Add(7,5,Bye)”条目表示的节点916和节点918的添加修改不再被阻止,因为它们的父级,即,节点914已被添加到同步树。因此,在参考标号982中由“Add(6,5,Bar)”条目和“Add(7,5,Bye)”条目表示的节点916和节点918的添加修改可被添加到不受阻止的动作列表并且用于生成被配置来使服务器状态和文件系统状态收敛的一组或多组操作。
所述一组或多组操作可针对服务器状态和文件系统状态的逐步收敛提供一个或多个步骤。尽管实现逐步过程有时可能更加复杂,但是逐步过程可实现处理时间减少和所需的存储器减少。这些以及其他初始技术改进自然地导致了另外的技术改进。例如,因为处理时间减少,所以来自客户端设备或内容管理系统的另外的改变使得某些修改陈旧或过时的可能性也降低。
关于图9,出于说明的目的,内容项、修改、动作或文件标识符的各种分组被描述为列表。其他类型的数据结构也兼容。例如,不受阻止的动作列表可实现为B树数据结构,以便保持数据分类并且允许以对数时间进行搜索、按顺序访问、插入和删除。
调度器
在一些实施方案中,客户端同步服务可生成被配置来使服务器状态和文件系统状态的收敛一组或一系列操作,并且将这些操作提供给内容管理系统或客户端设备以供执行。然而,在一些场景中,客户端设备的文件系统上或内容管理系统上的改变可致使生成的所述一组操作在所述一组操作处于执行过程中时变得过时或陈旧。各种实施方案涉及提供对这些和其他技术问题的技术解决方案。例如,客户端同步服务可被配置来监控客户端设备的文件系统上或内容管理系统上的改变并且根据需要更新客户端设备和/或内容管理。此外,客户端同步服务可被配置来通过允许同时执行操作来提高性能并且减少处理时间。
根据一些实施方案,图2所示的客户端同步服务156的计划器225可生成由无序的一组操作组成的一个或多个操作计划。计划内的所有操作都没有相依性,并且因此能够以单独线程或以任何次序同时执行。根据一些实施方案,计划中的操作是可由内容管理系统和/或客户端设备采取的抽象指令,以便使状态和树数据结构收敛。示例性指令可包括远程或本地添加内容项、远程或本地删除内容项、远程或本地编辑内容项或远程或本地移动内容项。
图2所示的客户端同步服务156的调度器230可被配置来从计划器225接收操作计划,管理计划中的操作的执行,确定计划是否已被更新或改变并且管理更新或改变的计划的执行。例如,调度器230可与文件系统接口205和服务器接口210协作以执行实现计划中的操作所需的任务和步骤。这可包括从文件系统或内容管理系统接收确认,或者当没有网络连接时或当内容项被某种其他应用程序锁定时接收错误处置活动(诸如处置重试)。
每个操作可由称为任务的脚本或线程来实现。任务与相关联操作的应用程序协作,并且可包括实现操作所需的一个或多个步骤。例如,“本地添加操作”可指示内容项已被添加到客户端设备的本地文件系统,并且因此内容项应被添加在内容管理系统处以便使服务器状态和文件系统状态同步。因此,本地添加操作可与“本地添加任务”相关联,所述“本地添加任务”包括实现本地添加操作所需的一个或多个步骤。所述步骤可包括以下中的一项或多项:向内容管理系统通知新内容项,将内容项以一个或多个数据块上传至内容管理系统,确认内容管理系统已接收到所有数据块,确保内容项不被破坏,将内容项的元数据上传至内容管理系统,并且承诺将内容项添加到内容管理系统处的适当位置。
任务可开始执行,在等待其他事件完成时在明确定义的点处暂停,当事件发生时重新开始,并且最后终止。根据一些实施方案,调度器230被配置来取消、重新生成或替换任务。例如,基于对服务器状态或文件系统状态的改变,任务可在执行之前变得失效,并且调度器230可在失效任务被执行之前将其取消。
如上所述,计划器225可基于一组树数据结构(例如,远程树、同步树和本地树)来生成操作计划。随时间推移,计划器225基于树数据结构的状态来继续生成操作计划。如果树数据结构改变以反映服务器状态和文件系统状态的状态,则计划器225还可生成与先前计划不同的新的更新计划。调度器230执行由计划器225生成的每个操作计划。
在一些场景中,后续计划的操作的改变可致使意外行为与执行过程中的先前计划中的操作发生冲突。例如,当正在执行第一计划中的操作时,操作中的一个或多个在第二计划中被取消(或不存在)。为了说明,图10示出示例性场景,其中在时间t1处,由远程树表示的服务器状态和由本地树表示的文件系统状态同步,如通过远程树、同步树和本地树全部匹配示出。基于该同步状态,计划器225可在t1处生成无操作的计划(例如,空计划)。
客户端设备上的用户可从本地文件系统中删除内容项A,或者将内容项A从由客户端同步服务156管理的文件夹中移出,这通过在时间t2处将节点A从本地树中移除来反映。计划器225可在时间t2处基于树数据结构的状态来生成包括操作LocalDelete(A)的计划。调度器230可发起实现LocalDelete(A)操作所需的任务或步骤。这些步骤可包括将指令传输至内容管理系统以删除内容项A。
在将删除内容项A的指令传输至内容管理系统之后,客户端设备上的用户可撤消对内容项A的删除或将内容项A移动回至先前的位置。在时间t3处基于此新动作来更新本地树,并且计划器可生成无操作的空的新计划。树数据结构再次匹配,并且系统在时间t3处处于同步状态。
然而,因为将删除内容项A的指令传输至内容管理系统,所以内容管理系统将内容项A从服务器状态删除。尽管调度器230可尝试取消对内容项A的删除,但是指令可能已经由内容管理系统传输并完成。服务器中的该改变被传送至客户端同步服务器156,所述客户端同步服务器156通过在时间t4处删除节点A来更新远程树。计划器225可注意到远程树中的改变以及远程树与同步树之间的差异,并且确定在服务器状态下内容项A被移除。因此,计划器225将在时间t4处创建具有RemoteDelete(A)操作的计划。为了使服务器状态和文件系统状态同步,最终将内容项A从客户端设备和本地树中删除。
问题在于,将内容项A从服务器状态中移除,生成RemoteDelete(A)操作以及最终将内容项A从文件系统状态中移除都不是有意的并且往后(down the line)可能会给用户带来进一步的问题。此外,在一些情况下,应用程序或过程也可访问内容项,并且意外的同步行为可引起一连串的另外的技术问题。各种实施方案涉及在使服务器状态与文件系统状态之间的内容项同步时防止意外的后果发生。
根据一些实施方案,当取消不再在操作计划中的失效操作的任务时,调度器230可在前进至发起其他任务的执行之前等待取消完成。例如,调度器230可在进行其他任务之前等待从客户端设备或内容管理系统接收取消的确认。调度器230可确定是否已发起任务,并且如果尚未发起任务,则调度器可取消任务并且确认任务不再等待执行。如果已发起任务,则确认可来自客户端设备或内容管理系统,并且通知调度器与已取消任务相关联的所有步骤都已撤消。根据一些实现方式,调度器230一旦发起任务就不允许取消任务。对于所有任务或任务或任务类型的某些子集(例如,向内容管理系统发送关于文件系统状态的更新以用于与服务器状态同步的提交任务),情况可能如此。
为了提高性能并且允许同时执行任务以及取消任务,调度器230还可被配置来基于第一操作计划与更新的第二操作计划之间的差异来管理任务的执行和取消。图11示出根据本主题技术的各种实施方案的两个操作计划的示例性维恩图1100表示。计划器225可利用第一组操作来生成计划1 1110,接收对树数据结构的更新,并且利用第二组操作来生成更新的计划2 1120。
计划1 1110和计划2 1120可共享多个共有操作,所述多个共有操作由维恩图1100的部分1130表示。计划1 1110和计划2 1120也可共享不共有的多个操作。例如,基于由计划器225检测到的对树结构的更新,在计划1 1110中不在计划2 1120中的操作失效并且不再是当前的。计划1 1110的这些失效操作由维恩图1100的部分1140表示。在计划2 1120中不在计划1 1110中的新操作由部分1150表示。表示计划1 1110与计划2 1120之间的差异和共性的部分1130、1140和1150中的每一个可包括无操作或许多操作,这取决于对树数据结构中所反映的服务器状态和文件系统状态的更新。
因为部分1140中的操作不再在最新计划中,所以调度器230可取消与这些操作相关联的任务。为了防止意外的同步行为,推迟与在计划2中不在计划1中(例如,在部分1150中)的操作相关联的任务,直到完成取消与部分1140中的操作相关联的任务为止。然而,因为每个计划中的操作被配置成能够同时执行,所以与由部分1130表示的计划1和计划2的相交部中的操作相关联的任务可与取消与部分1140中的操作相关联的任务同时执行,而无需等待它们完成。通过允许同时取消与部分1140相关联的任务和执行与部分1130相关联的任务,可实现更有效地使用可用的计算资源以及减少处理时间。
图12示出根据本主题技术的各种实施方案的用于管理操作计划改变的示例性方法。尽管本文描述的方法和过程可以特定次序与某些步骤和操作一起示出,但是除非另有说明,否则以类似或替代性次序或并行执行的另外的、更少或替代性步骤和操作在各种实施方案的范围内。方法1200可由在客户端设备上运行的系统(例如像图2的客户端同步服务156)来实现。
系统可被配置来从内容管理系统和/或客户端设备接收关于与内容管理服务相关联的内容项的更新。例如,系统可接收由内容管理服务存储的内容项的服务器修改数据,并且基于所述服务器修改数据来更新远程树。远程树表示由内容管理系统存储的内容项的服务器状态。系统还可接收针对存储在客户端设备上的内容项的客户端修改数据,并且基于所述客户端修改数据来更新本地树。本地树表示存储在客户端设备上的内容项的文件系统状态。
在操作1205处,系统可接收第一组操作,所述第一组操作被配置来使与内容管理系统相关联的服务器状态和与客户端设备相关联的文件系统状态收敛。例如,系统可标识同步树与远程树之间或同步树与本地树之间的差异,并且基于树之间的任何差异来生成所述第一组操作。同步树表示服务器状态与文件系统状态之间已知的同步状态。
系统可开始实现所述第一组操作。例如,在一些情况下,操作呈准备传输至内容管理系统和/或客户端设备以供执行的格式。在其他情况下,操作可转变成可由系统管理的一个或多个任务、脚本或执行线程。系统可根据任务、脚本或执行线程与内容管理系统和/或客户端设备对接,以便使服务器状态和文件系统状态收敛。
在这期间,系统可继续从内容管理系统和/或客户端设备接收关于与内容管理服务相关联的内容项的修改数据。基于所述修改数据,系统可更新远程树或本地树并且基于对树数据结构的更新来生成第二组操作。在操作1210处,系统可接收所述第二组操作。
在操作1215处,系统标识在所述第一组操作中不在所述第二组操作中的第一操作(如果有的话)。如果系统发现在所述第一组操作中不在所述第二组操作中的操作,则由于修改数据中所指定的改变,该操作可能失效且过时。因此,系统将在操作1220处发起取消第一操作。取消第一操作可包括多个步骤、用于这些步骤的多个确认接收以及大量的处理时间。
在操作1225处,系统标识包括在所述第一组操作和所述第二组操作两者中的第二操作(如果有的话)。如果系统发现所述第一组操作和所述第二组操作两者中的操作,则尽管具有修改数据中所指定的修改,该操作可能仍然无效。此外,由于两组操作中的操作被配置成能够相对于所述一组中的其他操作同时执行或以任何次序执行,因此当取消第一操作时第二操作可继续执行。因此,系统将在操作1230处发起执行第二操作,而无需等待第一操作完成取消。
在操作1235处,系统标识在所述第二组操作中但不在所述第一组操作中的第三操作(如果有的话)。如果系统发现在所述第二组操作中不在所述第一组操作中的操作,则由于修改数据中所指定的改变,该操作可能是新操作。为了防止意外的后果出现,系统将发起等待第一操作完成取消。在操作1240处,系统可确定第一操作已完成取消,并且因此在操作1245处发起执行第三操作。
更新本地树
如上所述,本地树被配置来反映存储在客户端设备的本地文件系统上的内容项的文件系统状态。例如,图2中的客户端同步服务156的文件系统接口205被配置来对客户端设备的本地文件系统进行改变(例如,添加、删除、移动、编辑或重命名一个或多个内容项),检测对本地文件系统的改变,并且基于对本地文件系统的所述改变来更新本地树。这些改变可能是由文件系统上的用户动作、客户端设备上运行的第三方应用程序引起的,也可能是由使文件系统状态与服务器状态同步的客户端同步服务引起的。
本主题技术的各种实施方案提供了各种技术解决方案以基于对本地文件系统的改变来更新本地树。在各种实施方案中,本地树以及其他树数据结构对于客户端设备与内容管理系统之间的同步过程至关重要。例如,一旦进行了对本地树的更新,系统的其余部分对所述更新做出反应,并且在某些情况下,对本地树的改变可以同步并应用于内容管理系统处的服务器状态。因此,重要的是要注意本地树的更新方式。
例如,如果用户将文件从A.txt重命名为B.txt,则在某些情况下,系统可检测到内容项A.txt的删除和内容项B.txt的添加。这可引起在本地树上删除A.txt的节点,并添加B.txt的节点。然而,这导致在一段时间内本地树上不存在针对重命名的内容项的节点的情况。这可对数据完整性造成重大损害,因为在添加B.txt的节点之前,客户端设备、客户端应用程序和/或客户端同步服务可能会关闭、失败或重新启动,因此,用户的内容项丢失。然后,用户的内容项的丢失可同步到内容管理系统处的服务器状态。用户将内容项从一个位置移动到另一位置会带来类似的风险。
另外,可乱序检测到对本地文件系统的改变,并且所述改变可包括大量改变,这些改变不一定全部与用户或应用程序的单一动作相关。在对本地文件系统进行许多改变时,客户端应用程序也可已关闭或未运行。在启动时,客户端应用程序可对本地文件系统进行爬网,将所述本地文件系统与本地树进行比较,并且确定在客户端应用程序关闭时对本地文件系统进行了哪些改变。这些改变可能未按正确的时间次序排列。如果没有仔细更新本地树,这些因素也可导致意外的同步行为。
一组约束可用于确保树数据结构完整性并防止意外的同步行为。约束可包括,例如,(1)树中的所有节点与文件标识符(fileID)相关联,(2)树中的所有节点具有唯一的文件标识符,(3)非空父节点不能删除,(4)已删除的节点实际上从由客户端同步服务管理的位置删除(而不是仅移动)或移动,(5)所有兄弟节点具有唯一的文件名,而不考虑大小写,(6)所有节点必须具有现有父级,和/或(7)所有兄弟节点同意其父级文件id(DirFileID)。在一些实现方式中,可使用以上约束的子集,可使用替代约束或另外的约束,或组合。一组约束可应用于所有树数据结构或者仅应用于树数据结构的子集,而一组或多组不同的约束可应用于其他树数据结构。
当检测到对本地文件系统的改变时,可对照所述一组约束检查所述改变。如果改变与所述一组约束一致,则可基于对本地文件系统的改变来更新本地树。如果改变违反约束中的一个,则所述约束可要求满足另外的条件。例如,约束可要求在将改变应用于本地树之前观察另外的文件事件、执行一个或多个补救步骤或组合。当动作发生以满足某些约束(例如,采取补救步骤或发生另外的文件事件)时,可能违反其他约束。因此,可连续地检查所述一组约束,直到满足所有约束为止。一旦满足约束,与文件事件相关联的改变就可应用于本地树。
图13示出根据本主题技术的各种实施方案的示例性场景。特别地,图13示出当检测到文件事件1315时本地树1310的当前状态。例如,客户端同步服务可将文件系统与本地树1310进行比较,并且发现文件系统中的内容项存在于/root/a/b/c.txt路径中,但/root/a/b/c.txt处的内容项的节点在本地树1310中不存在。因此,可生成文件事件1315,所述文件事件1315指定需要在本地树1310上的/root/a/b/c.txt处添加节点。
客户端同步服务可将文件事件1315添加到一组观察到的文件事件以便更新,并且确定观察到的文件事件1320是否与一组约束一致,并发现观察到的文件事件1320违反所述一组中的约束中的一个。在图13所示的场景中,观察到的文件事件1320违反“所有节点必须具有现有父级”约束。更具体地,要添加在/root/a/b/c.txt处的节点的父级不存在,节点的祖父母也不存在。因此,在将改变应用于本地树之前,必须先观察另外的文件事件(父节点和祖父母节点的添加)。
客户端同步服务可检测另外的文件事件,并将它们添加到所述一组观察到的文件事件以进行更新。例如,客户端同步服务可检测添加/root/a文件事件和添加/root/a/b文件事件。一旦观察到这些文件事件,就满足了违反的约束(并且没有违反其他约束)。因此,用于更新的所有观察到的文件事件都可应用于本地树。更具体地,可在/root/a处添加节点,可在/root/a/b处添加节点,并且可在/root/a/b/c.txt处添加节点。因此,客户端同步服务将相关文件事件分组在一起,以进行原子更新或整体更新。如将进一步详细描述的,将相关文件事件分组在一起以对本地树进行原子更新提高了树数据结构完整性,防止意外的同步行为,并且防止本地树中出现中间状态。
图14示出根据本主题技术的各种实施方案的用于更新本地树的示例性方法。尽管本文描述的方法和过程可以特定次序与某些步骤和操作一起示出,但是除非另有说明,否则以类似或替代性次序或并行执行的另外的、更少或替代性步骤和操作在各种实施方案的范围内。方法1400可由在客户端设备上运行的系统(例如像图2的客户端同步服务156)来实现。
在操作1405处,系统检测文件事件并将所述文件事件添加到一组观察到的文件事件。例如,在启动时,系统可对客户端设备的文件系统进行爬网,收集关于文件系统的信息,并且将所收集信息与表示文件系统的最后已知状态的本地树进行比较。系统可标识本地树与客户端设备的文件系统之间的差异,并且基于识别出的差异来生成多个文件事件。替代地或另外地,系统可在运行时期间监控文件系统,检测对文件系统进行的未反映在本地树中的改变,并且基于检测到的对文件系统的改变来生成文件事件。可将生成的文件事件视为系统对文件系统的观察。
在操作1410处,系统将对照一组本地树约束检查所述一组观察到的文件事件,以确定是否有任何观察到的文件事件违反本地树约束。如果没有观察到的文件事件违反所述一组本地树约束中的任何约束,则在操作1435处,可使用所述一组观察到的文件事件来更新本地树。
约束的每个违反可与被配置来满足所述约束的补救相关联。例如,如图13所示,“所有节点必须具有现有父级”约束的违反可与观察到父节点的添加的要求相关联。
在其他情况下,约束的违反可需要采取动作来解决违反并满足约束。例如,当用户在文件系统中复制内容项并创建现有内容项的新副本时,新内容项可具有与原始内容项相同的文件标识符。系统可观察到新副本的添加,但是该新副本违反了“树中的所有节点具有唯一的文件标识符”的约束。该约束的违反可与以下补救步骤相关联:在更新本地树之前,针对内容项请求新文件标识符并将新内容标识符分配给内容项,从而解决违反并满足约束。因此,本地树在任何时候都不会处于违反任何约束的状态。
在另一个实例中,用户可在文件系统的文件名已存在的位置中创建新内容项,尽管字母大小写不同。为了说明,当文件“a.txt”已存在且具有相同文件系统路径时,用户可创建名为“A.txt”的文件。客户端设备的操作系统可能允许这样做,而客户端同步服务可能不允许这样做。系统可观察到新内容项的添加,但是该新内容项违反了“所有兄弟节点具有唯一的文件名,而不考虑大小写”的约束。该约束的违反可与编辑新内容项的名称以表示存在大小写冲突的补救步骤相关联。例如,可将“A.txt”文件重命名为“A(大小写冲突).txt”,从而解决违反并满足约束。可移除文件事件,并且重新启动过程,以使得检测到用于添加“A(大小写冲突).txt”内容项的新文件事件,或者可更新针对“A.txt”的文件事件以反映新名称“A(大小写冲突).txt”。
如果一个或多个观察到的文件事件违反一个或多个约束,则系统可在操作1415处确定违反的约束是否要求采取补救动作,或者在操作1425处确定违反的约束是否要求观察另外的文件事件。如果要求另外的补救动作,则在操作1420处,系统可执行另外的补救动作。如果要观察另外的文件事件,则在操作1430处,系统可检测另外的文件事件,并在操作1430处将所述文件事件添加到所述一组观察到的文件事件中。
然后,过程返回到操作1410,以确定所述一组观察到的文件事件是否违反本地树约束。在某些情况下,执行补救动作或将新文件事件添加到所述一组文件事件可导致一个或多个约束的新违反,所述新违反必须在执行对本地树的更新之前解决。因此,过程可以迭代直到不再存在本地树约束的违反为止。然后,过程可进行到操作1435,在操作1435处,系统可基于所述一组观察到的文件事件来更新本地树。
利用移动或重命名改变更新本地树
根据一些实现方式,对本地文件系统上的内容项的移动或重命名操作可引入另外的技术问题。例如,在某些情况下,当用户或应用程序将诸如文件或文件夹的内容项从旧位置移动到新位置时,操作可在文件系统或客户端应用程序中表现为将内容项从旧位置删除,并在新位置处添加新内容项。类似地,将内容项从旧文件名重命名为新文件名可表现为将具有旧文件名的内容项删除并添加具有新文件名的新内容项。此外,如果内容项是作为许多其他内容项的父级的文件夹,并且具有潜在的深层且复杂的树结构,则内容项的移动或重命名也可表现为将所有后代内容项从其旧位置或路径删除到新位置或路径。
如上所述,在将内容项从本地树删除或重新移动与将它们重新添加到新位置或具有新名称之前的中间状态是不期望的,并且增加了用户数据可能会丢失的数据脆弱性。此外,移动或重命名操作对于客户端同步服务表现为删除操作,直到检测到对应的添加操作为止。然而,基于本地文件系统的大小和复杂性,在检测到删除操作之后很长一段时间内可能无法检测到添加操作。例如,客户端同步服务可对本地文件系统的一部分进行爬网并发现内容项的删除,并且未发现内容项已添加到本地文件系统的另一部分,从而完成移动操作,直到客户端同步服务对本地文件系统的该部分进行爬网。
本主题技术的各种实施方案旨在通过提供确定删除操作是移动或重命名操作的一部分还是只是简单的删除操作的更有效且更快速的方法来提供针对这些和其他技术问题的技术解决方案。
图15示出根据本主题技术的各种实施方案的用于响应于移动或重命名操作来更新本地树的示例性方法。尽管本文描述的方法和过程可以特定次序与某些步骤和操作一起示出,但是除非另有说明,否则以类似或替代性次序或并行执行的另外的、更少或替代性步骤和操作在各种实施方案的范围内。方法1500可由在客户端设备上运行的系统(例如像图2的客户端同步服务156)来实现。
在操作1505处,系统检测针对内容项的删除事件。系统可对客户端设备的本地文件系统或本地文件系统的系统被配置来管理(例如,内容管理文件夹)的一部分的改变进行爬网或监控。系统可将本地文件系统与本地树进行比较,以便标识本地文件系统和本地树之间的差异。可基于一个或多个标识出的差异来检测删除事件。例如,内容项的节点存在于本地树中特定位置处,但不存在于本地文件系统上的该位置处。这可指示用户或应用程序已执行导致将内容项从该位置移除的动作,这引起系统检测到删除事件。
引起检测到删除事件的动作可以是由以下项引起的:用户或应用程序将内容项移动到系统所监控的另一位置,将内容项移动到系统未监控的另一位置,重命名内容项(可被某些文件系统视为一项行动),或实际上删除内容项。为了确定引起删除事件的用户动作和/或是否将或已经检测到与删除事件相关联的添加事件,在操作1510处,系统可标识内容项的操作系统提供的标识符。
在一些实施方案中,操作系统提供的标识符可以是索引节点标识符,并且不同于内容管理系统和/或客户端同步服务所提供的文件标识符。在许多情况下,操作系统可提供索引节点标识符,以便除其他事项外,允许基于索引节点标识符快速查询内容项的位置。例如,某些操作系统可提供一个接口,在所述接口中,系统可使用索引节点标识符作为关键字来查询内容项的当前路径或位置。在操作1515处,系统可通过向操作系统查询内容项的位置来确定内容项的位置。响应于所述查询,操作系统可返回索引节点标识符所引用的内容项在本地文件系统中的当前位置或路径。
使用内容项的当前位置,系统可确定是什么动作引起删除事件。例如,如果当前位置为空位置,或以其他方式指示内容项不再在本地文件系统上,则引起删除事件的动作是实际删除。因此,系统可适当地将内容项的节点从本地树中删除。如果当前位置是未由系统(例如,客户端同步服务)管理的位置,则引起删除事件的动作可以是将内容项从其先前位置移动到其当前位置。然而,由于内容项已移出系统所管理的区域,因此系统不再需要跟踪内容项,并且可将内容项的节点从本地树中删除。
如果当前位置是仍由系统管理的新位置,则引起删除事件的动作也是将内容项从其先前位置移动到其当前位置。然而,由于内容项仍在系统所管理的区域内,因此系统应等待检测到对应的添加事件,并将删除事件和添加事件一起视为移动动作,并以原子方式更新本地树,从而反映了引起删除事件的实际动作。
同样,如果当前位置是与由系统管理的旧位置相同的位置,则引起删除事件的动作也是将内容项从其先前位置重命名为其当前位置。在某些文件系统中,重命名操作和移动操作是相关的,因为重命名操作被视为从具有一个名称的一个位置到具有新名称的相同位置的移动操作。因此,系统应等待检测到对应的添加事件(具有新名称),并将删除事件和添加事件一起视为移动或重命名动作,并以原子方式更新本地树,从而反映了引起删除事件的实际动作。
因此,在操作1520处,系统基于内容项的位置来确定删除事件是否与针对内容项的添加事件相关联。如果删除事件不与添加事件相关联,则在操作1525处可处理删除事件。如果删除事件与添加事件相关联,则系统可等待添加事件,在操作1530处检测针对内容项的添加事件,并在操作1535处以对本地树的整体更新处理删除事件与添加事件。
尽管分开描述了图14的方法1400和图15的方法1500,但是这两种方法可彼此协同工作以便更新本地树。例如,如果删除事件不与添加事件相关联,则在图15的操作1525处,可在不将删除事件与对应的添加事件组合的情况下处理删除事件。根据一些实施方案,处理删除事件可包括图14所示的操作,在所述操作中,例如,可将删除事件添加到一组观察到的文件事件并检查所述删除事件以确定是否违反本地树约束。
例如,如果与删除事件相关联的内容项在本地树中具有一个或多个后代节点,则可能违反“非空父节点无法删除”约束。针对该违反的补救可包括等待观察另外的文件事件(例如,针对内容项的每个后代节点的删除事件)。一旦检测到另外的文件事件并且可检查这些另外的文件事件的约束(包括检查以确定另外的删除文件事件是否与另外对应的添加事件相关联)。一旦所有观察到的文件事件都得到验证,就可将文件事件批处理在一起并用于更新本地树。
类似地,如果删除事件与添加事件相关联,则系统可等待添加事件。在操作1535处以对本地树的整体更新处理删除事件与添加事件可包括:将两个事件添加到所述一组观察到的文件事件中,确定所述事件是否违反任何本地树约束,如果确实违反则执行适当的补救,并且基于所述整组观察到的文件事件来更新本地树。
图16示出计算系统1600的实例,所述计算系统1600可以是例如构成客户端设备150、内容管理系统110或其任何组件的任何计算设备,其中系统的组件使用连接1605彼此通信。连接1605可以是通过总线的物理连接或诸如在芯片组架构中与处理器1610的直接连接。连接1605也可以是虚拟连接、网络连接或逻辑连接。
在一些实施方案中,计算系统1600是分布式系统,其中本公开中所描述的功能可分布在一个数据中心、多个数据中心、对等网络等内。在一些实施方案中,所描述的系统组件中的一个或多个表示许多此类组件,每个此类组件执行描述组件的功能中的一些或全部。在一些实施方案中,组件可以是物理设备或虚拟设备。
示例性系统1600包括至少一个处理单元(CPU或处理器)1610和连接1605,所述连接1605将各种系统组件(包括系统存储器1615,诸如只读存储器(ROM)1620和随机存取存储器(RAM)1625)耦合到处理器1610。计算系统1600可包括与处理器1610直接连接、紧密接近处理器1610或者作为处理器1610的一部分集成的高速存储器1612的高速缓存。
处理器1610可包括任何通用处理器和硬件服务或软件服务,诸如存储在存储设备1630中的服务1632、1634和1636,其被配置来控制处理器1610;以及专用处理器,其中软件指令被并入到实际的处理器设计中。处理器1610实质上可以是完全独立成套的计算系统,其包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或不对称的。
为了实现用户交互,计算系统1600包括输入设备1645,所述输入设备1645可表示任何数目的输入机制,诸如用于语音的传声器、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。计算系统1600还可包括输出设备1635,所述输出设备1635可以是本领域技术人员已知的多个输出机制中的一个或多个。在一些情况下,多模态系统可使用户能够提供多种类型的输入/输出以与计算系统1600通信。计算系统1600可包括通信接口1640,所述通信接口1640总体上可支配并管理用户输入和系统输出。在任何特定硬件配置上没有操作限制,并且因此本文的基本特征可以很容易地替代随着开发而改进的硬件或固件配置。
存储设备1630可以是非易失性存储设备并且可以是硬盘或可存储可由计算机访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储器设备、数字多用光盘、盒式磁盘(cartridge)、随机存取存储器(RAM)、只读存储器(ROM)和/或这些设备的一些组合。
存储设备1630可包括软件服务、服务器、服务等,当定义此类软件的代码由处理器1610执行时其致使系统执行功能。在一些实施方案中,执行特定功能的硬件服务可包括存储在计算机可读介质中并与必要的硬件组件(诸如处理器1610、连接1605、输出设备1635等)一起实现功能的软件组件。
为了解释清楚,在一些情况下,本技术可以被呈现为包括单独的功能块,所述单独的功能块包括包含设备、设备组件、软件中体现的方法中的步骤或例程或者硬件和软件的组合的功能块。
本文所述的任何步骤、操作、功能或过程可单独地或与其他设备组合地用硬件和软件服务来执行或实现。在一些实施方案中,服务可以是驻留在客户端设备的存储器和/或内容管理系统的一个或多个服务器中的软件并且当处理器执行与服务相关联的软件时执行一个或多个功能。在一些实施方案中,服务是执行特定功能的程序或程序集合。在一些实施方案中,服务可被认为是服务器。存储器可以是非暂时性计算机可读介质。
在一些实施方案中,计算机可读存储设备、介质和存储器可以包括包含比特流等的有线或无线信号。然而,当提及时,非暂时性计算机可读存储介质本身明确地排除了诸如能量、载波信号、电磁波和信号的介质。
根据上述实例的方法可以使用计算机可读介质存储或以其他方式获得的计算机可执行指令来实现。此类指令可以包括例如使得或以其他方式配置通用计算机、专用计算机或专用处理设备来执行某一功能或一组功能的指令和数据。所使用的计算机资源的部分可以通过网络访问。计算机可执行指令可以是例如二进制文件、中间格式指令(诸如汇编语言)、固件或源代码。可用于存储指令、所使用的信息和/或在根据所述实例的方法期间创建的信息的计算机可读介质的实例包括磁盘或光盘、固态存储器设备、闪存、提供有非易失性存储器的USB设备、网络存储设备等。
实现根据这些公开的方法的设备可以包括硬件、固件和/或软件,并且可以采取多种形态因素中的任一种。此类形态因素的典型实例包括服务器、膝上型计算机、智能电话、小型个人计算机、个人数字助理等。本文描述的功能性也可以在外围设备或插入卡中体现。作为另外的实例,此种功能性还可以在不同芯片中的电路板上或者在单个设备中执行的不同进程中实现。
指令、用于传送此类指令的介质、用于执行所述指令的计算资源以及用于支持此类计算资源的其他结构是用于提供这些公开中所述的功能的手段。
尽管使用多种实例和其他信息来解释处于所附权利要求书的范围内的方面,但是基于此类实例中的特定特征或布置不应暗示权利要求书的限制,因为普通技术人员将能够使用这些实例推导出多种多样的实现方式。此外,尽管一些主题可能已用特定于结构特征和/或方法步骤的实例的语言进行描述,但是应理解,所附权利要求书中限定的主题不必限于这些描述的特征或动作。例如,此种功能性可以不同地分布或者在除了本文鉴别的组件之外的组件中执行。相反,所述特征和步骤被公开为处于所附权利要求书的范围内的系统和方法的组件的实例。
Claims (20)
1.一种计算机实现的方法,其包括:
检测与客户端设备的本地文件系统上的内容项相关联的第一文件事件;
将所述第一文件事件添加到一组观察到的文件事件;
确定所述一组观察到的文件事件违反一组本地树约束中的本地树约束;
执行与所述违反的本地树约束相关联的补救;以及
基于所述一组观察到的文件事件来更新本地树,其中所述本地树表示文件系统状态。
2.如权利要求1所述的计算机实现的方法,其中所述第一文件事件是所述客户端设备的所述本地文件系统上的所述内容项的添加、删除、编辑或移动中的一者。
3.如权利要求1所述的计算机实现的方法,其中所述本地树约束是本地树中的所有节点必须具有现有父级的要求,并且其中与所述违反的本地树约束相关联的所述补救要求观察与添加与所述第一文件事件相关联的所述内容项的父级相关联的第二文件事件。
4.如权利要求3所述的计算机实现的方法,其还包括:
检测与添加所述内容项的所述父级相关联的所述第二文件事件;以及
将所述第二文件事件添加到所述一组观察到的文件事件。
5.如权利要求1所述的计算机实现的方法,其中所述本地树约束是所述本地树中的所有节点具有唯一的文件标识符的要求,并且其中所述补救是向与所述第一文件事件相关联的所述内容项分配新文件标识符。
6.如权利要求5所述的计算机实现的方法,其还包括:
从内容管理系统请求所述新文件标识符;以及
向与所述第一文件事件相关联的所述内容项分配所述新文件标识符。
7.如权利要求1所述的计算机实现的方法,其中所述补救是编辑与所述第一文件事件相关联的所述内容项的文件名。
8.如权利要求1所述的计算机实现的方法,其还包括:标识所述本地树与所述本地文件系统之间的差异,其中所述第一文件事件是基于所述本地树与所述本地文件系统之间的所述差异。
9.如权利要求1所述的计算机实现的方法,其还包括:在所述执行所述补救之后,确定所述一组观察到的文件事件满足所述一组本地树约束,其中所述更新所述本地树是基于满足所述一组本地树约束。
10.如权利要求1所述的计算机实现的方法,其还包括
确定服务器状态和所述文件系统状态不同步,其中所述确定是基于所述本地树与表示所述服务器状态与所述文件系统状态之间的已知同步状态的同步树之间的差异;
基于所述差异来针对由内容管理系统存储的所述内容项生成一组操作,其中所述一组操作被配置来对由所述内容管理系统存储的所述内容项进行操作以使所述服务器状态和所述文件系统状态收敛;以及
管理所述一组操作的执行。
11.一种包括指令的非暂时性计算机可读介质,所述指令在由计算系统执行时致使所述计算系统:
检测与客户端设备的本地文件系统上的内容项相关联的第一文件事件;
确定所述第一文件事件违反一组本地树约束中的本地树约束;
执行与所述违反的本地树约束相关联的补救;并且
基于所述第一文件事件来更新本地树,其中所述本地树表示文件系统状态。
12.如权利要求11所述的非暂时性计算机可读介质,其中所述第一文件事件是所述客户端设备的所述本地文件系统上的所述内容项的添加、删除、编辑或移动中的一者。
13.如权利要求11所述的非暂时性计算机可读介质,其中所述指令进一步致使所述计算系统:标识所述本地树与所述本地文件系统之间的差异,其中所述第一文件事件是基于所述本地树与所述本地文件系统之间的所述差异。
14.如权利要求11所述的非暂时性计算机可读介质,其中所述指令进一步致使所述计算系统:
基于所述本地树与表示服务器状态与所述文件系统状态之间的已知同步状态的同步树之间的差异来确定所述服务器状态与所述文件系统状态不同步;
基于所述差异来针对由内容管理系统存储的所述内容项生成一组操作,其中所述一组操作被配置来对由所述内容管理系统存储的所述内容项进行操作以使所述服务器状态和所述文件系统状态收敛;并且
管理所述一组操作的执行。
15.一种系统,其包括:
处理器;以及
存储指令的非暂时性计算机可读介质,所述指令在由所述处理器执行时致使所述处理器:
检测与客户端设备的本地文件系统上的内容项相关联的第一文件事件;
将所述第一文件事件添加到一组观察到的文件事件;
确定所述一组观察到的文件事件违反一组本地树约束中的本地树约束;
执行与所述违反的本地树约束相关联的补救;并且
基于所述一组观察到的文件事件来更新本地树,其中所述本地树表示文件系统状态。
16.如权利要求15所述的系统,其中所述指令进一步致使所述处理器:
检测与添加所述内容项的父级相关联的第二文件事件;并且
将所述第二文件事件添加到所述一组观察到的文件事件。
17.如权利要求15所述的系统,其中所述指令进一步致使所述处理器:标识所述本地树与所述本地文件系统之间的差异,其中所述文件事件是基于所述本地树与所述本地文件系统之间的所述差异。
18.如权利要求15所述的系统,其中所述指令进一步致使所述处理器:在执行所述补救之后,确定所述一组观察到的文件事件满足所述一组本地树约束,其中所述更新所述本地树是基于满足所述一组本地树约束。
19.如权利要求15所述的系统,其中所述指令进一步致使所述处理器:
基于所述本地树与表示服务器状态与所述文件系统状态之间的已知同步状态的同步树之间的差异来确定所述服务器状态与所述文件系统状态不同步;
基于所述差异来针对由内容管理系统存储的所述内容项生成一组操作,其中所述一组操作被配置来对由所述内容管理系统存储的所述内容项进行操作以使所述服务器状态和所述文件系统状态收敛;并且
管理所述一组操作的执行。
20.如权利要求15所述的系统,其中所述本地树存储在所述客户端设备上。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762611473P | 2017-12-28 | 2017-12-28 | |
US62/611,473 | 2017-12-28 | ||
US15/858,146 US10877993B2 (en) | 2017-12-28 | 2017-12-29 | Updating a local tree for a client synchronization service |
US15/858,125 | 2017-12-29 | ||
US15/858,125 US10866964B2 (en) | 2017-12-28 | 2017-12-29 | Updating a local tree for a client synchronization service |
US15/858,146 | 2017-12-29 | ||
PCT/US2018/065352 WO2019133270A1 (en) | 2017-12-28 | 2018-12-13 | Updating a local tree for a client synchronization service |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111417938A true CN111417938A (zh) | 2020-07-14 |
CN111417938B CN111417938B (zh) | 2023-11-28 |
Family
ID=62949013
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880078587.4A Active CN111512301B (zh) | 2017-12-28 | 2018-12-10 | 针对客户端同步服务更新远程树 |
CN201880079908.2A Active CN111465930B (zh) | 2017-12-28 | 2018-12-10 | 客户端同步中的违反解决的方法、系统和计算机可读介质 |
CN201880083719.2A Active CN111527487B (zh) | 2017-12-28 | 2018-12-10 | 用于内容项同步的唯一标识符的指配和再分配 |
CN201880073349.4A Active CN111448558B (zh) | 2017-12-28 | 2018-12-12 | 增量客户端同步 |
CN201880083720.5A Active CN111566633B (zh) | 2017-12-28 | 2018-12-12 | 用于使内容项同步的提交协议 |
CN201880083815.7A Active CN111512302B (zh) | 2017-12-28 | 2018-12-12 | 再同步内容管理系统中的元数据 |
CN201880077284.0A Active CN111417938B (zh) | 2017-12-28 | 2018-12-13 | 针对客户端同步服务更新本地树 |
CN201880075620.8A Active CN111373388B (zh) | 2017-12-28 | 2018-12-13 | 有效地传播差异化值的方法和装置 |
CN201880068962.7A Active CN111263937B (zh) | 2017-12-28 | 2018-12-17 | 内容管理客户端同步服务 |
CN201880078715.5A Active CN111448559B (zh) | 2017-12-28 | 2018-12-18 | 客户端同步更新的有效管理 |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880078587.4A Active CN111512301B (zh) | 2017-12-28 | 2018-12-10 | 针对客户端同步服务更新远程树 |
CN201880079908.2A Active CN111465930B (zh) | 2017-12-28 | 2018-12-10 | 客户端同步中的违反解决的方法、系统和计算机可读介质 |
CN201880083719.2A Active CN111527487B (zh) | 2017-12-28 | 2018-12-10 | 用于内容项同步的唯一标识符的指配和再分配 |
CN201880073349.4A Active CN111448558B (zh) | 2017-12-28 | 2018-12-12 | 增量客户端同步 |
CN201880083720.5A Active CN111566633B (zh) | 2017-12-28 | 2018-12-12 | 用于使内容项同步的提交协议 |
CN201880083815.7A Active CN111512302B (zh) | 2017-12-28 | 2018-12-12 | 再同步内容管理系统中的元数据 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880075620.8A Active CN111373388B (zh) | 2017-12-28 | 2018-12-13 | 有效地传播差异化值的方法和装置 |
CN201880068962.7A Active CN111263937B (zh) | 2017-12-28 | 2018-12-17 | 内容管理客户端同步服务 |
CN201880078715.5A Active CN111448559B (zh) | 2017-12-28 | 2018-12-18 | 客户端同步更新的有效管理 |
Country Status (8)
Country | Link |
---|---|
US (58) | US10866963B2 (zh) |
EP (9) | EP3714375B1 (zh) |
JP (12) | JP7075998B2 (zh) |
KR (10) | KR102444729B1 (zh) |
CN (10) | CN111512301B (zh) |
AU (12) | AU2018395856B2 (zh) |
CA (10) | CA3084056A1 (zh) |
WO (10) | WO2019133229A1 (zh) |
Families Citing this family (176)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9898520B2 (en) | 2014-03-25 | 2018-02-20 | Open Text Sa Ulc | Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents |
US10481749B1 (en) * | 2014-12-01 | 2019-11-19 | Google Llc | Identifying and rendering content relevant to a user's current mental state and context |
US10963430B2 (en) | 2015-04-01 | 2021-03-30 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
US9922201B2 (en) * | 2015-04-01 | 2018-03-20 | Dropbox, Inc. | Nested namespaces for selective content sharing |
US10218817B2 (en) * | 2015-04-28 | 2019-02-26 | Microsoft Technology Licensing, Llc | Digital rights list for device groups |
US9571573B1 (en) | 2015-10-29 | 2017-02-14 | Dropbox, Inc. | Peer-to-peer synchronization protocol for multi-premises hosting of digital content items |
CN106657254B (zh) * | 2016-10-25 | 2019-10-25 | Oppo广东移动通信有限公司 | 一种联系人信息的同步方法、装置及系统 |
US11269888B1 (en) * | 2016-11-28 | 2022-03-08 | Amazon Technologies, Inc. | Archival data storage for structured data |
US11003632B2 (en) | 2016-11-28 | 2021-05-11 | Open Text Sa Ulc | System and method for content synchronization |
US10372830B2 (en) * | 2017-05-17 | 2019-08-06 | Adobe Inc. | Digital content translation techniques and systems |
US11157631B1 (en) * | 2017-12-19 | 2021-10-26 | Robert J. Whelton | System and method for securely indexing, storing, and retrieving data within a computer network |
US10713378B2 (en) * | 2017-12-19 | 2020-07-14 | Dropbox, Inc. | Techniques for eventually consistent inheritance propagation for nested content item namespaces |
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
CN110007952B (zh) * | 2018-01-02 | 2022-07-12 | 斑马智行网络(香港)有限公司 | 数据处理方法、装置、设备和机器可读介质 |
US11526470B2 (en) * | 2018-01-03 | 2022-12-13 | Salesforce, Inc. | Data validation for data record migrations |
US11855971B2 (en) * | 2018-01-11 | 2023-12-26 | Visa International Service Association | Offline authorization of interactions and controlled tasks |
US11741080B2 (en) * | 2018-02-22 | 2023-08-29 | Flowfinity Wireless, Inc. | Dynamic data editor for data analysis system |
US11301419B2 (en) * | 2018-03-02 | 2022-04-12 | Salesforce.Com, Inc. | Data retention handling for data object stores |
US11397738B2 (en) * | 2018-03-07 | 2022-07-26 | Iguazio Systems Ltd. | Stateless stream handling and resharding |
SG10201803501QA (en) * | 2018-04-26 | 2019-11-28 | Mastercard International Inc | Methods and systems for facilitating sharing of digital documents between a sharing party and a relying party |
US10430606B1 (en) * | 2018-04-30 | 2019-10-01 | Aras Corporation | System and method for implementing domain based access control on queries of a self-describing data system |
US11036680B2 (en) * | 2018-05-10 | 2021-06-15 | Paypal, Inc. | System and method for scouting distributed file system metadata |
US10671370B2 (en) * | 2018-05-30 | 2020-06-02 | Red Hat, Inc. | Distributing file system states |
TWI708144B (zh) * | 2018-06-22 | 2020-10-21 | 慧榮科技股份有限公司 | 快閃記憶體的命名空間操作裝置及電腦程式產品 |
US10931640B2 (en) * | 2018-06-22 | 2021-02-23 | International Business Machines Corporation | Tunneling network traffic using object storage |
US11593315B2 (en) * | 2018-06-26 | 2023-02-28 | Hulu, LLC | Data cluster migration using an incremental synchronization |
US11226854B2 (en) * | 2018-06-28 | 2022-01-18 | Atlassian Pty Ltd. | Automatic integration of multiple graph data structures |
US11074135B2 (en) | 2018-06-29 | 2021-07-27 | Cohesity, Inc. | Large content file optimization |
US10664461B2 (en) | 2018-06-29 | 2020-05-26 | Cohesity, Inc. | Large content file optimization |
US11392649B2 (en) * | 2018-07-18 | 2022-07-19 | Microsoft Technology Licensing, Llc | Binding query scope to directory attributes |
US10776094B2 (en) * | 2018-07-29 | 2020-09-15 | ColorTokens, Inc. | Computer implemented system and method for encoding configuration information in a filename |
US11102214B2 (en) * | 2018-08-27 | 2021-08-24 | Amazon Technologies, Inc. | Directory access sharing across web services accounts |
US11042547B2 (en) * | 2018-09-10 | 2021-06-22 | Nuvolo Technologies Corporation | Mobile data synchronization framework |
US11914612B2 (en) * | 2018-09-24 | 2024-02-27 | Salesforce, Inc. | Selective synchronization of linked records |
HUE058223T2 (hu) * | 2018-10-29 | 2022-07-28 | Grieshaber Vega Kg | Eljárás és berendezés hozzáférési információ továbbítására a folyamatvezérlõ iparban egy terepi eszközhöz való hozzáféréshez |
US11093446B2 (en) * | 2018-10-31 | 2021-08-17 | Western Digital Technologies, Inc. | Duplicate request checking for file system interfaces |
US11347716B1 (en) | 2018-11-27 | 2022-05-31 | Palantir Technologies Inc. | Systems and methods for establishing and enforcing relationships between items |
JP6834060B2 (ja) * | 2018-11-30 | 2021-02-24 | 了宣 山本 | 文書整理支援システム |
US10999370B1 (en) * | 2018-12-28 | 2021-05-04 | BridgeLabs, Inc. | Syncing and sharing data across systems |
US11003630B2 (en) * | 2018-12-30 | 2021-05-11 | Microsoft Technology Licensing, Llc | Remote access of metadata for collaborative documents |
US10776009B2 (en) * | 2019-01-03 | 2020-09-15 | International Business Machines Corporation | Journaling on an appendable non-volatile memory module |
US10902146B2 (en) | 2019-03-19 | 2021-01-26 | Workiva Inc. | Method and computing device for gating data between workspaces |
US11809382B2 (en) | 2019-04-01 | 2023-11-07 | Nutanix, Inc. | System and method for supporting versioned objects |
US11232078B2 (en) * | 2019-04-05 | 2022-01-25 | Sap Se | Multitenancy using an overlay file system |
US10956140B2 (en) | 2019-04-05 | 2021-03-23 | Sap Se | Software installation through an overlay file system |
US11113249B2 (en) | 2019-04-05 | 2021-09-07 | Sap Se | Multitenant application server using a union file system |
US11573930B2 (en) * | 2019-06-03 | 2023-02-07 | Zuora, Inc. | Self-healing data synchronization |
US11226983B2 (en) * | 2019-06-18 | 2022-01-18 | Microsoft Technology Licensing, Llc | Sub-scope synchronization |
CN110474873B (zh) * | 2019-07-09 | 2021-06-29 | 杭州电子科技大学 | 一种基于知悉范围加密的电子文件访问控制方法和系统 |
US20210012025A1 (en) * | 2019-07-10 | 2021-01-14 | At&T Intellectual Property I, L.P. | System and method for session-aware datastore for the edge |
US11294877B2 (en) * | 2019-07-22 | 2022-04-05 | EMC IP Holding Company LLC | Efficient file renames using B-tree based persistence for file system name spaces |
US11301489B2 (en) * | 2019-08-06 | 2022-04-12 | Microsoft Technology Licensing, Llc | Synchronizing online and offline transfer of data to cloud storage system |
US11157462B2 (en) | 2019-08-06 | 2021-10-26 | Microsoft Technology Licensing, Llc | Namespace data object name persistence after decoupling of transportable storage device from data server |
CN110602075A (zh) * | 2019-08-15 | 2019-12-20 | 中国人民银行数字货币研究所 | 一种加密访问控制的文件流处理的方法、装置及系统 |
US11321490B2 (en) * | 2019-09-11 | 2022-05-03 | Salesforce.Com, Inc. | Protected access to metadata based on package membership |
US11481361B1 (en) * | 2019-10-18 | 2022-10-25 | Splunk Inc. | Cascading payload replication to target compute nodes |
US20210117213A1 (en) * | 2019-10-22 | 2021-04-22 | Moveworks, Inc. | Automated service agent for servicing issues described in a group communication channel |
CN112738148B (zh) * | 2019-10-28 | 2024-05-14 | 中兴通讯股份有限公司 | 缓存内容的批量删除方法、装置、设备和可读存储介质 |
US11720526B2 (en) * | 2019-11-12 | 2023-08-08 | ClearTrace Technologies, Inc. | Sustainable energy tracking system utilizing blockchain technology and Merkle tree hashing structure |
US11169864B2 (en) * | 2019-11-21 | 2021-11-09 | Spillbox Inc. | Systems, methods and computer program products for application environment synchronization between remote devices and on-premise devices |
US11290531B2 (en) | 2019-12-04 | 2022-03-29 | Dropbox, Inc. | Immediate cloud content item creation from local file system interface |
US11704334B2 (en) | 2019-12-06 | 2023-07-18 | Nutanix, Inc. | System and method for hyperconvergence at the datacenter |
US11677754B2 (en) * | 2019-12-09 | 2023-06-13 | Daniel Chien | Access control systems and methods |
US11853415B1 (en) * | 2019-12-12 | 2023-12-26 | Rapid7, Inc. | Context-based identification of anomalous log data |
US11287994B2 (en) | 2019-12-13 | 2022-03-29 | Samsung Electronics Co., Ltd. | Native key-value storage enabled distributed storage system |
US11308039B2 (en) | 2019-12-31 | 2022-04-19 | Dropbox, Inc. | Binding local device folders to a content management system for synchronization |
US11301464B2 (en) * | 2020-01-14 | 2022-04-12 | Videoamp, Inc. | Electronic multi-tenant data management system |
US11425143B2 (en) * | 2020-01-23 | 2022-08-23 | Bank Of America Corporation | Sleeper keys |
US20210240859A1 (en) * | 2020-02-04 | 2021-08-05 | Aio Me Ltd. | Immutable downloads |
CN111367855B (zh) * | 2020-02-08 | 2021-06-18 | 重庆节节高科技发展有限公司 | 下载文件的移出方法、装置、计算机设备和存储介质 |
CN111259356B (zh) * | 2020-02-17 | 2022-09-02 | 北京百度网讯科技有限公司 | 授权方法、辅助授权组件、管理服务器和计算机可读介质 |
US11640371B2 (en) | 2020-03-12 | 2023-05-02 | Western Digital Technologies, Inc. | Snapshot management in partitioned storage |
US20230122216A1 (en) * | 2020-03-28 | 2023-04-20 | Dataparency, LLC | Cloaked user-space file system implemented using an entity data store |
US11789972B2 (en) * | 2020-03-31 | 2023-10-17 | Snap Inc. | Data synchronization for content consumed via a client application |
US20210342301A1 (en) * | 2020-04-29 | 2021-11-04 | Hewlett Packard Enterprise Development Lp | Filesystem managing metadata operations corresponding to a file in another filesystem |
US11347874B2 (en) * | 2020-05-29 | 2022-05-31 | Charter Communications Operating, Llc | Enhancing security in a content management system |
US11509463B2 (en) | 2020-05-31 | 2022-11-22 | Daniel Chien | Timestamp-based shared key generation |
US11818114B2 (en) * | 2020-06-12 | 2023-11-14 | Strata Identity, Inc. | Systems, methods, and storage media for synchronizing identity information across identity domains in an identity infrastructure |
US11249715B2 (en) | 2020-06-23 | 2022-02-15 | Switchboard Visual Technologies, Inc. | Collaborative remote interactive platform |
JP2022007746A (ja) * | 2020-06-26 | 2022-01-13 | 株式会社日立製作所 | 情報処理システム及び情報処理方法 |
US11770377B1 (en) * | 2020-06-29 | 2023-09-26 | Cyral Inc. | Non-in line data monitoring and security services |
US11361026B2 (en) | 2020-06-30 | 2022-06-14 | Snowflake Inc. | Accessing files in a database stage using a user defined function |
US10997243B1 (en) * | 2020-06-30 | 2021-05-04 | Snowflake Inc. | Supporting unstructured, semi-structured, and structured files |
US11595379B2 (en) * | 2020-07-01 | 2023-02-28 | Vmware, Inc. | Mechanism of common authentication for both supervisor and guest clusters |
CN111858518B (zh) * | 2020-07-09 | 2022-10-25 | 北京字节跳动网络技术有限公司 | 一种引用文档的更新方法、装置、电子设备及存储介质 |
CN113296792B (zh) * | 2020-07-10 | 2022-04-12 | 阿里巴巴集团控股有限公司 | 存储方法、装置、设备、存储介质和系统 |
WO2022015773A1 (en) * | 2020-07-13 | 2022-01-20 | Journey Mobile, Inc. | Synchronization of source code under development in multiple concurrent instances of an integrated development environment |
US11829500B2 (en) * | 2020-09-04 | 2023-11-28 | Netflix, Inc. | File interface to dynamically manage access to remote files |
US11645266B2 (en) * | 2020-08-13 | 2023-05-09 | Red Hat, Inc. | Automated pinning of file system subtrees |
US11537670B2 (en) * | 2020-09-14 | 2022-12-27 | Open Text Holdings, Inc. | System and method for event driven generation of content |
US11861029B2 (en) * | 2020-09-14 | 2024-01-02 | Box Inc. | Workflow execution state variables |
CN112163043A (zh) * | 2020-09-27 | 2021-01-01 | 万汇互联(深圳)科技有限公司 | 一种CopyTrade信号复制系统 |
US11463446B2 (en) | 2020-09-28 | 2022-10-04 | Dropbox, Inc. | Team member transfer tool |
WO2022081475A1 (en) * | 2020-10-13 | 2022-04-21 | ASG Technologies Group, Inc. dba ASG Technologies | Secure sharing of documents created via content management repository |
US12001872B2 (en) | 2020-10-14 | 2024-06-04 | Nutanix, Inc. | Object tiering from local store to cloud store |
US11392554B2 (en) | 2020-10-19 | 2022-07-19 | Dropbox, Inc. | Synchronizing an external location |
JP7355959B2 (ja) * | 2020-10-19 | 2023-10-03 | ドロップボックス, インコーポレイテッド | 外部ロケーションの同期 |
US11256714B1 (en) * | 2020-10-26 | 2022-02-22 | Coupang Corp. | Systems and methods for managing event storage |
CN112399006B (zh) * | 2020-10-28 | 2022-09-16 | 维沃移动通信(杭州)有限公司 | 文件发送方法、装置及电子设备 |
WO2022087946A1 (en) * | 2020-10-29 | 2022-05-05 | Comcast Cable Communications, Llc | Generating unique identifiers |
US11457012B2 (en) * | 2020-11-03 | 2022-09-27 | Okta, Inc. | Device risk level based on device metadata comparison |
US12088583B2 (en) * | 2020-11-11 | 2024-09-10 | Hewlett Packard Enterprise Development Lp | Permissions for backup-related operations |
US11537786B2 (en) * | 2020-11-16 | 2022-12-27 | Dropbox, Inc. | Generating fillable documents and fillable templates in a collaborative environment |
US20220153551A1 (en) * | 2020-11-17 | 2022-05-19 | Electronics And Telecommunications Research Institute | Method and apparatus for controlling elevator |
US11900164B2 (en) | 2020-11-24 | 2024-02-13 | Nutanix, Inc. | Intelligent query planning for metric gateway |
US11822370B2 (en) * | 2020-11-26 | 2023-11-21 | Nutanix, Inc. | Concurrent multiprotocol access to an object storage system |
KR102472878B1 (ko) * | 2020-11-27 | 2022-12-01 | 이화여자대학교 산학협력단 | 가상 머신 환경에서의 블록 커밋 방법 및 그 방법을 수행하는 가상화 시스템 |
CN112650727B (zh) * | 2020-12-09 | 2022-09-16 | 湖南麒麟信安科技股份有限公司 | 一种面向网络存储系统的通用权限与配额管理系统与方法 |
US12105677B2 (en) * | 2020-12-14 | 2024-10-01 | Dropbox, Inc. | Per-node metadata for custom node behaviors across platforms |
US11366793B1 (en) | 2020-12-21 | 2022-06-21 | Dropbox, Inc. | Data model and data service for content management system |
US12001574B2 (en) | 2020-12-21 | 2024-06-04 | Dropbox, Inc. | Evaluating an access control list from permission statements |
US11789976B2 (en) * | 2020-12-21 | 2023-10-17 | Dropbox, Inc. | Data model and data service for content management system |
US11803652B2 (en) | 2020-12-21 | 2023-10-31 | Dropbox, Inc. | Determining access changes |
US20220197883A1 (en) * | 2020-12-21 | 2022-06-23 | Dropbox, Inc. | Aggregates index |
US11799958B2 (en) | 2020-12-21 | 2023-10-24 | Dropbox, Inc. | Evaluating access based on group membership |
CN112597159B (zh) * | 2020-12-22 | 2024-08-23 | 深圳集智数字科技有限公司 | 用户唯一标识信息的维护方法及装置 |
CN112866251B (zh) * | 2021-01-20 | 2022-04-19 | 哈尔滨工业大学 | 一种多域云防火墙安全策略冲突消解方法及装置 |
EP4033718A1 (en) * | 2021-01-22 | 2022-07-27 | Amadeus S.A.S. | Direct-channel data update in mediated data exchange systems |
CA3206764C (en) | 2021-01-29 | 2024-02-27 | Troy Martin | Sustainable energy physical delivery tracking and verification of actual environmental impact |
US20220247590A1 (en) * | 2021-01-29 | 2022-08-04 | Apple Inc. | Electronic conferencing |
CN112818063A (zh) * | 2021-02-04 | 2021-05-18 | 厦门安盟网络股份有限公司 | 分布式系统的数据同步方法及装置 |
US20220276985A1 (en) * | 2021-02-26 | 2022-09-01 | Intellix.AI Inc. | System and methods for massive data management and tagging |
CN113064886B (zh) * | 2021-03-04 | 2023-08-29 | 广州中国科学院计算机网络信息中心 | 一种标识资源存储和标记管理的方法 |
CN115086757B (zh) * | 2021-03-12 | 2023-12-19 | 北京字跳网络技术有限公司 | 一种历史剪辑操作的回撤方法、装置、设备及存储介质 |
US12026148B2 (en) | 2021-03-24 | 2024-07-02 | International Business Machines Corporation | Dynamic updating of digital data |
US11134119B1 (en) | 2021-03-30 | 2021-09-28 | Dropbox, Inc. | Intent tracking for asynchronous operations |
US11537634B2 (en) | 2021-03-30 | 2022-12-27 | Netapp, Inc. | Methods for hierarchical propagation in tree structures and devices thereof |
CN113132216B (zh) * | 2021-04-20 | 2023-06-27 | 北京京东振世信息技术有限公司 | 即时通信方法、装置及可读存储介质和电子设备 |
CN113126928B (zh) * | 2021-04-22 | 2024-01-23 | 北京百度网讯科技有限公司 | 文件移动方法及装置、电子设备和介质 |
CN112882920B (zh) * | 2021-04-29 | 2021-06-29 | 云账户技术(天津)有限公司 | 告警策略验证方法、装置、电子设备和可读存储介质 |
US11941465B2 (en) * | 2021-04-29 | 2024-03-26 | Michael G. Whitfield | File discovery on a data storage device based on a filesystem location of microservices |
US11882107B2 (en) * | 2021-05-11 | 2024-01-23 | Microsoft Technology Licensing, Llc | Application single sign-on determinations based on intelligent traces |
US12010080B2 (en) * | 2021-05-17 | 2024-06-11 | Apple Inc. | Syndication of links to content |
CN113282542B (zh) * | 2021-05-20 | 2022-07-12 | 支付宝(杭州)信息技术有限公司 | 具有前向安全的可验证可搜索加密方法、装置以及设备 |
US11783073B2 (en) * | 2021-06-21 | 2023-10-10 | Microsoft Technology Licensing, Llc | Configuration of default sensitivity labels for network file storage locations |
US11935006B2 (en) * | 2021-06-25 | 2024-03-19 | Atlassian Pty Ltd. | Centralized access control system for multitenant services of a collaborative work environment |
JP2023012217A (ja) * | 2021-07-13 | 2023-01-25 | 富士通株式会社 | 管理プログラム、管理方法、管理装置 |
US11934347B2 (en) | 2021-07-23 | 2024-03-19 | EMC IP Holding Company LLC | Determining a sharing relationship of a file in namespace snapshots |
CN113377437B (zh) * | 2021-08-11 | 2021-11-09 | 景网技术有限公司 | 一种智慧城市前端设备修复工作量分析方法和系统 |
CN113688109B (zh) * | 2021-08-20 | 2024-05-03 | 招商银行股份有限公司 | It系统监控指标压缩与查询方法、装置及存储介质 |
DE102021209319A1 (de) * | 2021-08-25 | 2023-03-02 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Vermitteln von Datenanforderungen an ein oder mehrere Datenquellen und zur Verarbeitung von angeforderten Daten einer oder mehrerer Datenquellen in einer Anwendung |
US20230064221A1 (en) * | 2021-08-27 | 2023-03-02 | Weld North Education LLC | Live electronic content customization |
CN113641764B (zh) * | 2021-08-31 | 2024-03-19 | 江苏中科云墨数字科技有限公司 | 一种基于数字孪生的数据同步实现方法 |
US11899572B2 (en) | 2021-09-09 | 2024-02-13 | Nutanix, Inc. | Systems and methods for transparent swap-space virtualization |
US11586699B1 (en) * | 2021-09-14 | 2023-02-21 | Accenture Global Solutions Limited | Content processing management system and method |
US12111845B2 (en) * | 2021-09-30 | 2024-10-08 | Dropbox, Inc. | Backup feature provided by bidirectional synchronized content management system |
US12032450B1 (en) * | 2021-09-30 | 2024-07-09 | Amazon Technologies, Inc. | Resource recovery service |
US11546358B1 (en) * | 2021-10-01 | 2023-01-03 | Netskope, Inc. | Authorization token confidence system |
CN114117597A (zh) * | 2021-11-16 | 2022-03-01 | 中铁大桥勘测设计院集团有限公司 | 一种桥梁设计管理方法及装置 |
CN114063925B (zh) * | 2021-11-19 | 2024-09-17 | 研祥智慧物联科技有限公司 | 存储设备排序方法 |
US12032857B2 (en) | 2021-11-22 | 2024-07-09 | Nutanix, Inc. | System and method for shallow copy |
WO2023096134A1 (ko) * | 2021-11-25 | 2023-06-01 | 삼성전자주식회사 | 전자 장치 내에서 제스처 인식 성능 개선을 위한 러닝 방법 |
US12001393B2 (en) * | 2021-11-30 | 2024-06-04 | Dell Products L.P. | Directory snapshots based on directory level inode virtualization |
EP4441624A1 (en) | 2021-12-01 | 2024-10-09 | VideoAmp, Inc. | Symmetric data clean room |
KR20230085707A (ko) * | 2021-12-07 | 2023-06-14 | 삼성전자주식회사 | 무선 통신 시스템에서 단말 관련 정보를 송수신하는 방법 및 장치 |
US20230185670A1 (en) * | 2021-12-13 | 2023-06-15 | Scality, S.A. | Method and apparatus for monitoring storage system replication |
US20230188577A1 (en) * | 2021-12-13 | 2023-06-15 | Atlassian Pty Ltd. | Apparatuses, computer-implemented methods, and computer program products for generating content for presentation at a collaborative content interface based on a captured content source |
US11657046B1 (en) * | 2021-12-17 | 2023-05-23 | Sap Se | Performant dropping of snapshots by converter branch pruning |
CN114422533B (zh) * | 2021-12-29 | 2023-05-09 | 成都鲁易科技有限公司 | 云备份中路径冲突的处理方法、装置及电子设备 |
CN114172744B (zh) * | 2022-01-12 | 2024-10-01 | 深圳市安田数据服务有限公司 | 一种用于多个服务器间的数据传输系统及数据传输方法 |
US11706082B1 (en) | 2022-02-02 | 2023-07-18 | Microsoft Technology Licensing, Llc | Reconciliation of cloud service state |
CN114490164B (zh) * | 2022-04-02 | 2022-08-16 | 深圳市云视机器人有限公司 | 日志的收集方法、系统、设备及计算机存储介质 |
US11921812B2 (en) * | 2022-05-19 | 2024-03-05 | Dropbox, Inc. | Content creative web browser |
US11461480B1 (en) * | 2022-05-24 | 2022-10-04 | Switchboard Visual Technologies, Inc. | Synchronizing private data with reduced trust |
WO2023225763A1 (en) * | 2022-05-27 | 2023-11-30 | Shinydocs Corporation | System and method of in-place content management |
US20240045767A1 (en) * | 2022-08-03 | 2024-02-08 | Druva Inc. | Data management system for detecting changes in a data management system |
US20240045838A1 (en) * | 2022-08-08 | 2024-02-08 | Dropbox, Inc. | Enabling collaboration on an object from a backup service through integration with an object synchronization service |
US20240086320A1 (en) * | 2022-09-08 | 2024-03-14 | Tencent America LLC | Method of sharing unreal engine derived data cache files |
US20240111720A1 (en) * | 2022-10-03 | 2024-04-04 | Dell Products L.P. | Continuous namespace verification for cluster filesystems |
CN115470207A (zh) * | 2022-11-02 | 2022-12-13 | 深圳联友科技有限公司 | 一种基于消息队列和计算框架的数据接入系统及方法 |
WO2024116070A1 (en) * | 2022-12-01 | 2024-06-06 | Kandji, Inc. | User device agent event detection and recovery |
WO2024137075A1 (en) * | 2022-12-22 | 2024-06-27 | Dropbox, Inc. | A method for synchronizing a root namespace in a multi-root synchronization system |
US12093299B1 (en) | 2023-03-30 | 2024-09-17 | Dropbox, Inc. | Generating and summarizing content blocks within a virtual space interface |
US12088667B1 (en) | 2023-03-30 | 2024-09-10 | Dropbox, Inc. | Generating and managing multilocational data blocks |
CN116561089B (zh) * | 2023-07-10 | 2023-09-19 | 成都泛联智存科技有限公司 | 数据同步方法、装置、客户端和计算机可读存储介质 |
CN117041244B (zh) * | 2023-08-25 | 2024-07-09 | 广东保伦电子股份有限公司 | 一种批量上传音频文件的实现方法及处理终端 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100106687A1 (en) * | 2007-01-08 | 2010-04-29 | Apple Inc. | N-Way Synchronization of Data |
CN102693302A (zh) * | 2012-05-21 | 2012-09-26 | 浙江省公众信息产业有限公司 | 快速文件比对方法、系统及客户端 |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
US20140379647A1 (en) * | 2013-06-21 | 2014-12-25 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
CN104685485A (zh) * | 2012-04-23 | 2015-06-03 | 谷歌公司 | 共享和同步电子保存的文件 |
US20150278323A1 (en) * | 2014-03-25 | 2015-10-01 | Alfresco Software, Inc. | Synchronization of client machines with a content management system repository |
US20160085769A1 (en) * | 2014-09-23 | 2016-03-24 | Amazon Technologies, Inc. | Synchronization of Shared Folders and Files |
CN105740418A (zh) * | 2016-01-29 | 2016-07-06 | 杭州亿方云网络科技有限公司 | 一种基于文件监控和消息推送的实时同步系统 |
CN106156359A (zh) * | 2016-07-28 | 2016-11-23 | 四川新环佳科技发展有限公司 | 一种云计算平台下的数据同步更新方法 |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
Family Cites Families (554)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1003733A (en) | 1907-03-18 | 1911-09-19 | Morgan Construction Co | Regenerative metal-heating furnace. |
US3180983A (en) | 1961-12-13 | 1965-04-27 | Rayflex Exploration Co | Geochemical prospecting |
DE69031191T2 (de) | 1989-05-15 | 1998-02-12 | Ibm | System zur Steuerung von Zugriffsprivilegien |
US5220665A (en) | 1990-04-30 | 1993-06-15 | International Business Machines Corporation | Method and system for supporting concurrent use during sequential batch applications utilizing persistent cursors |
US5283856A (en) | 1991-10-04 | 1994-02-01 | Beyond, Inc. | Event-driven rule-based messaging system |
FR2686900B1 (fr) | 1992-01-31 | 1995-07-21 | Rhone Poulenc Rorer Sa | Nouveaux polypeptides ayant une activite de stimulation des colonies de granulocytes, leur preparation et compositions pharmaceutiques les contenant. |
EP0615192B1 (en) | 1993-03-09 | 1997-05-28 | Kabushiki Kaisha Toshiba | Method and apparatus for object traversing suitable for structured memory formed by linked objects |
US20050149450A1 (en) | 1994-11-23 | 2005-07-07 | Contentguard Holdings, Inc. | System, method, and device for controlling distribution and use of digital works based on a usage rights grammar |
JPH08263438A (ja) | 1994-11-23 | 1996-10-11 | Xerox Corp | ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法 |
US5956715A (en) | 1994-12-13 | 1999-09-21 | Microsoft Corporation | Method and system for controlling user access to a resource in a networked computing environment |
US5745750A (en) | 1995-12-15 | 1998-04-28 | International Business Machines Corporation | Process and article of manufacture for constructing and optimizing transaction logs for mobile file systems |
US5778389A (en) | 1996-05-23 | 1998-07-07 | Electronic Data Systems Corporation | Method and system for synchronizing computer file directories |
US5802508A (en) | 1996-08-21 | 1998-09-01 | International Business Machines Corporation | Reasoning with rules in a multiple inheritance semantic network with exceptions |
JPH11249948A (ja) | 1998-02-27 | 1999-09-17 | Toshiba Corp | コンピュータシステム、同システムで使用されるファイルリソース切り替え方法および記録媒体 |
US6119131A (en) | 1998-06-12 | 2000-09-12 | Microsoft Corporation | Persistent volume mount points |
US6401118B1 (en) * | 1998-06-30 | 2002-06-04 | Online Monitoring Services | Method and computer program product for an online monitoring search engine |
US6658571B1 (en) | 1999-02-09 | 2003-12-02 | Secure Computing Corporation | Security framework for dynamically wrapping software applications executing in a computing system |
US6427123B1 (en) | 1999-02-18 | 2002-07-30 | Oracle Corporation | Hierarchical indexing for accessing hierarchically organized information in a relational system |
US6574665B1 (en) | 1999-02-26 | 2003-06-03 | Lucent Technologies Inc. | Hierarchical vector clock |
JP2000250799A (ja) * | 1999-03-02 | 2000-09-14 | Mitsubishi Electric Corp | 複製ファイル管理システム |
US6560655B1 (en) | 1999-06-22 | 2003-05-06 | Microsoft Corporation | Synchronization manager for standardized synchronization of separate programs |
US7506257B1 (en) | 1999-06-30 | 2009-03-17 | Microsoft Corporation | System and method for providing help contents for components of a computer system |
US6629127B1 (en) | 1999-07-26 | 2003-09-30 | Microsoft Corporation | Methods and systems for processing HTTP requests |
US6609198B1 (en) | 1999-08-05 | 2003-08-19 | Sun Microsystems, Inc. | Log-on service providing credential level change without loss of session continuity |
US6594667B2 (en) | 1999-08-23 | 2003-07-15 | International Business Machines Corporation | Method, system and program products for modifying coupling facility structures |
US6546466B1 (en) | 1999-08-23 | 2003-04-08 | International Business Machines Corporation | Method, system and program products for copying coupling facility cache structures |
US7162477B1 (en) | 1999-09-03 | 2007-01-09 | International Business Machines Corporation | System and method for web or file system asset management |
US6408298B1 (en) | 1999-12-15 | 2002-06-18 | Microsoft Corporation | Methods and systems for copying and moving across virtual namespaces |
US7152047B1 (en) | 2000-05-24 | 2006-12-19 | Esecure.Biz, Inc. | System and method for production and authentication of original documents |
US6665863B1 (en) | 2000-05-31 | 2003-12-16 | Microsoft Corporation | Data referencing within a database graph |
US8661539B2 (en) | 2000-07-10 | 2014-02-25 | Oracle International Corporation | Intrusion threat detection |
KR100425494B1 (ko) | 2000-08-21 | 2004-03-30 | 엘지전자 주식회사 | 웹 기반 전송장비의 관리 데이터 동기 방법 |
US7412605B2 (en) | 2000-08-28 | 2008-08-12 | Contentguard Holdings, Inc. | Method and apparatus for variable encryption of data |
US6978271B1 (en) * | 2000-10-31 | 2005-12-20 | Unisys Corporation | Mechanism for continuable calls to partially traverse a dynamic general tree |
US6915507B1 (en) | 2000-11-21 | 2005-07-05 | Microsoft Corporation | Extensible architecture for project-development systems |
US20040088333A1 (en) | 2002-01-25 | 2004-05-06 | David Sidman | Apparatus method and system for tracking information access |
US20100281364A1 (en) | 2005-01-11 | 2010-11-04 | David Sidman | Apparatuses, Methods and Systems For Portable Universal Profile |
US7406656B2 (en) | 2001-04-05 | 2008-07-29 | International Business Machines Corporation | Method, apparatus, and program for creating bookmark symlinks |
US7702641B2 (en) | 2001-06-04 | 2010-04-20 | Oracle America, Inc. | Method and system for comparing and updating file trees |
US7085779B2 (en) | 2001-06-04 | 2006-08-01 | Sun Microsystems, Inc. | File tree change reconciler |
US7962950B2 (en) | 2001-06-29 | 2011-06-14 | Hewlett-Packard Development Company, L.P. | System and method for file system mandatory access control |
US20030041097A1 (en) | 2001-07-11 | 2003-02-27 | Alexander Tormasov | Distributed transactional network storage system |
US7761497B1 (en) | 2001-07-13 | 2010-07-20 | Vignette Software, LLC | Storage medium having a manageable file directory structure |
AU2002313583A1 (en) | 2001-08-01 | 2003-02-17 | Actona Technologies Ltd. | Virtual file-sharing network |
US8249885B2 (en) | 2001-08-08 | 2012-08-21 | Gary Charles Berkowitz | Knowledge-based e-catalog procurement system and method |
US7761535B2 (en) | 2001-09-28 | 2010-07-20 | Siebel Systems, Inc. | Method and system for server synchronization with a computing device |
US7051039B1 (en) | 2001-09-28 | 2006-05-23 | Oracle International Corporation | Mechanism for uniform access control in a database system |
US7526575B2 (en) | 2001-09-28 | 2009-04-28 | Siebel Systems, Inc. | Method and system for client-based operations in server synchronization with a computing device |
US8015204B2 (en) | 2001-10-16 | 2011-09-06 | Microsoft Corporation | Scoped access control metadata element |
US7406473B1 (en) | 2002-01-30 | 2008-07-29 | Red Hat, Inc. | Distributed file system using disk servers, lock servers and file servers |
US7024429B2 (en) | 2002-01-31 | 2006-04-04 | Nextpage,Inc. | Data replication based upon a non-destructive data model |
US7127467B2 (en) | 2002-05-10 | 2006-10-24 | Oracle International Corporation | Managing expressions in a database system |
US7313598B1 (en) | 2002-06-13 | 2007-12-25 | Cisco Technology, Inc. | Method and apparatus for partial replication of directory information in a distributed environment |
US7505971B2 (en) | 2002-06-28 | 2009-03-17 | Hewlett-Packard Development Company, L.P. | Shared drive that provides shared access to editable files in a database |
JP3776866B2 (ja) * | 2002-10-18 | 2006-05-17 | 富士通株式会社 | 電子ドキュメント印刷プログラムおよび電子ドキュメント印刷システム |
US8676843B2 (en) | 2002-11-14 | 2014-03-18 | LexiNexis Risk Data Management Inc. | Failure recovery in a parallel-processing database system |
DE60220418T2 (de) | 2002-11-14 | 2008-01-31 | Alcatel Lucent | Verfahren und Anbieter zur Systemsynchronisation |
EP1422901A1 (en) | 2002-11-22 | 2004-05-26 | Sun Microsystems, Inc. | Client driven synchronization of file and folder content in web publishing |
JP2004234158A (ja) * | 2003-01-29 | 2004-08-19 | Sony Corp | 情報処理装置、およびコンテンツ管理方法、コンテンツ情報管理方法、並びにコンピュータ・プログラム |
US7890543B2 (en) * | 2003-03-06 | 2011-02-15 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7072807B2 (en) | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7567991B2 (en) | 2003-06-25 | 2009-07-28 | Emc Corporation | Replication of snapshot using a file system copy differential |
US7275177B2 (en) | 2003-06-25 | 2007-09-25 | Emc Corporation | Data recovery with internet protocol replication with or without full resync |
US7634482B2 (en) | 2003-07-11 | 2009-12-15 | Global Ids Inc. | System and method for data integration using multi-dimensional, associative unique identifiers |
WO2005015426A1 (en) | 2003-08-08 | 2005-02-17 | Kincaid Technology Corporation | Media keying for updatable content distribution |
JP2005063124A (ja) * | 2003-08-11 | 2005-03-10 | Ntt Communications Kk | 情報同期システム、情報同期方法、情報同期プログラム及びプログラム記録媒体 |
CN100565505C (zh) | 2003-08-21 | 2009-12-02 | 微软公司 | 通过中介文件系统或设备同步计算机系统的系统和方法 |
US7734690B2 (en) | 2003-09-05 | 2010-06-08 | Microsoft Corporation | Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system |
US7203708B2 (en) * | 2003-11-06 | 2007-04-10 | Microsoft Corporation | Optimizing file replication using binary comparisons |
CN1255748C (zh) | 2003-11-24 | 2006-05-10 | 华中科技大学 | 一种存储虚拟化系统的元数据层次管理方法及其系统 |
US9075851B2 (en) | 2003-12-09 | 2015-07-07 | Emc Corporation | Method and apparatus for data retention in a storage system |
US8346803B2 (en) | 2003-12-12 | 2013-01-01 | Knapp Investment Company Limited | Dynamic generation of target files from template files and tracking of the processing of target files |
JP2005189995A (ja) | 2003-12-24 | 2005-07-14 | Hitachi Ltd | ファイル授受プロセス管理方法、および、ファイル授受プロセス可視化方法、ならびに、ファイル授受システムにおけるファイル授受プロセス管理装置、および、ユーザ端末 |
US8108483B2 (en) | 2004-01-30 | 2012-01-31 | Microsoft Corporation | System and method for generating a consistent user namespace on networked devices |
US7685206B1 (en) | 2004-02-12 | 2010-03-23 | Microsoft Corporation | Authorization and access control service for distributed network resources |
AU2005223652B2 (en) | 2004-03-18 | 2011-01-27 | Andrew Peter Liebman | A novel media file access and storage solution for multi-workstation/multi-platform non-linear video editing systems |
US20050222996A1 (en) | 2004-03-30 | 2005-10-06 | Oracle International Corporation | Managing event-condition-action rules in a database system |
US8190741B2 (en) | 2004-04-23 | 2012-05-29 | Neopath Networks, Inc. | Customizing a namespace in a decentralized storage environment |
US7523143B2 (en) | 2004-05-12 | 2009-04-21 | Oracle International Corporation | Mapping source logical clock into destination logical clock in a distributed system |
US7290205B2 (en) | 2004-06-23 | 2007-10-30 | Sas Institute Inc. | System and method for management of document cross-reference links |
US7624106B1 (en) | 2004-09-29 | 2009-11-24 | Network Appliance, Inc. | Method and apparatus for generating user-level difference information about two data sets |
US8069226B2 (en) | 2004-09-30 | 2011-11-29 | Citrix Systems, Inc. | System and method for data synchronization over a network using a presentation level protocol |
US7627574B2 (en) | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Infrastructure for performing file operations by a database server |
US9020887B2 (en) | 2004-12-21 | 2015-04-28 | Proofpoint, Inc. | Managing the status of documents in a distributed storage system |
US7529931B2 (en) | 2004-12-23 | 2009-05-05 | Microsoft Corporation | Managing elevated rights on a network |
US7895158B2 (en) | 2004-12-27 | 2011-02-22 | Solace Systems Inc. | Data logging in content routed networks |
US7805469B1 (en) | 2004-12-28 | 2010-09-28 | Symantec Operating Corporation | Method and apparatus for splitting and merging file systems |
US7664788B2 (en) | 2005-01-10 | 2010-02-16 | Microsoft Corporation | Method and system for synchronizing cached files |
US7660809B2 (en) | 2005-01-31 | 2010-02-09 | Microsoft Corporation | Using a file server as a central shared database |
US7877539B2 (en) | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
US20090198719A1 (en) | 2005-02-12 | 2009-08-06 | Teresis Media Management, Inc. | Methods and appartuses for assisting the production of media works and the like |
US20070016650A1 (en) | 2005-04-01 | 2007-01-18 | Gilbert Gary J | System and methods for collaborative development of content over an electronic network |
JP4824085B2 (ja) | 2005-04-25 | 2011-11-24 | ネットアップ,インコーポレイテッド | ネットワークファイルシステムをキャッシュするシステム、及び方法 |
US8145686B2 (en) | 2005-05-06 | 2012-03-27 | Microsoft Corporation | Maintenance of link level consistency between database and file system |
US7634514B2 (en) | 2005-05-09 | 2009-12-15 | Microsoft Corporation | Synchronizing file system directories |
US7774322B2 (en) | 2005-05-25 | 2010-08-10 | Microsoft Corporation | File transfer error handling |
US9129088B1 (en) | 2005-06-04 | 2015-09-08 | Leo Martin Baschy | User interface driven access control system and methods for multiple users as one audience |
US7447709B1 (en) | 2005-06-29 | 2008-11-04 | Emc Corporation | Methods and apparatus for synchronizing content |
US20070016771A1 (en) | 2005-07-11 | 2007-01-18 | Simdesk Technologies, Inc. | Maintaining security for file copy operations |
US20070022091A1 (en) | 2005-07-20 | 2007-01-25 | Scriptlogic Corporation | Access based file system directory enumeration |
FR2880715A1 (fr) * | 2005-07-21 | 2006-07-14 | France Telecom | Procede et systeme de codage d'un treillis representatif d'une hierarchie d'elements |
GB0516471D0 (en) * | 2005-08-10 | 2005-09-14 | Symbian Software Ltd | Protected software identifiers for improving security in a computing device |
US7930346B2 (en) | 2005-08-24 | 2011-04-19 | Microsoft Corporation | Security in peer to peer synchronization applications |
JP4836533B2 (ja) | 2005-09-27 | 2011-12-14 | 株式会社日立製作所 | ストレージシステムにおけるファイルシステムマイグレーション方法、ストレージシステム及び管理計算機 |
JP3894335B1 (ja) | 2005-10-04 | 2007-03-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベースの整合性を判断する装置、およびその方法 |
US20070088744A1 (en) | 2005-10-13 | 2007-04-19 | Joseph Webber | System and method for automatic directory management in server environments |
KR100678921B1 (ko) | 2005-10-18 | 2007-02-05 | 삼성전자주식회사 | 다중 서버 환경에 적합한 디바이스를 클라이언트로 하여동기화를 수행하는 방법 및 장치 |
US8015319B2 (en) | 2005-10-27 | 2011-09-06 | Huawei Technologies Co., Ltd. | Method, system, client and server for implementing data sync |
US7904941B2 (en) | 2005-11-22 | 2011-03-08 | Cisco Technology, Inc. | Adaptive system for content monitoring |
JP4795787B2 (ja) | 2005-12-09 | 2011-10-19 | 株式会社日立製作所 | ストレージシステム、nasサーバ、及びスナップショット方法 |
US8655850B2 (en) | 2005-12-19 | 2014-02-18 | Commvault Systems, Inc. | Systems and methods for resynchronizing information |
US7636743B2 (en) | 2005-12-19 | 2009-12-22 | Commvault Systems, Inc. | Pathname translation in a data replication system |
JP5016610B2 (ja) | 2005-12-21 | 2012-09-05 | ディジマーク コーポレイション | ルール駆動パンidメタデータルーティングシステム及びネットワーク |
US20070150595A1 (en) | 2005-12-23 | 2007-06-28 | Microsoft Corporation | Identifying information services and schedule times to implement load management |
US8544058B2 (en) | 2005-12-29 | 2013-09-24 | Nextlabs, Inc. | Techniques of transforming policies to enforce control in an information management system |
WO2007120360A2 (en) | 2005-12-29 | 2007-10-25 | Blue Jungle | Information management system |
US20070198540A1 (en) | 2006-02-01 | 2007-08-23 | Kohl John T | Non-bindable mount in a shared mount tree |
US7917942B2 (en) | 2006-02-24 | 2011-03-29 | Nokia Corporation | System and method for configuring security in a plug-and-play architecture |
US20070234398A1 (en) | 2006-03-02 | 2007-10-04 | Thomas Muehlbauer | Controlling Access to Digital Media Content |
US20070208715A1 (en) | 2006-03-02 | 2007-09-06 | Thomas Muehlbauer | Assigning Unique Content Identifiers to Digital Media Content |
US20070208763A1 (en) | 2006-03-02 | 2007-09-06 | Thomas Muehlbauer | Computer Database Record Architecture Based on a Unique Internet Media Identifier |
US9754119B1 (en) | 2006-03-07 | 2017-09-05 | Emc Corporation | Containerized security for managed content |
US20070245353A1 (en) | 2006-03-14 | 2007-10-18 | Amir Ben-Dor | Secure integration of a local and a remote application |
EP1997315B1 (en) | 2006-03-17 | 2016-02-10 | Sony Corporation | System and method for organizing group content presentations and group communications during the same |
US8577940B2 (en) | 2006-03-20 | 2013-11-05 | Parallels IP Holdings GmbH | Managing computer file system using file system trees |
US8561146B2 (en) | 2006-04-14 | 2013-10-15 | Varonis Systems, Inc. | Automatic folder access management |
WO2008005102A2 (en) | 2006-05-13 | 2008-01-10 | Sap Ag | Consistent set of interfaces derived from a business object model |
US7769727B2 (en) | 2006-05-31 | 2010-08-03 | Microsoft Corporation | Resolving update-delete conflicts |
US20070283050A1 (en) | 2006-06-05 | 2007-12-06 | Seagate Technology, Llc | Scheduling reporting of synchronization states |
JP2007328623A (ja) | 2006-06-08 | 2007-12-20 | Fuji Xerox Co Ltd | アクセス制御装置 |
US7805408B2 (en) | 2006-06-09 | 2010-09-28 | Microsoft Corporation | Unified mechanism for presenting and resolving grouped synchronization conflicts |
US7720892B1 (en) | 2006-06-30 | 2010-05-18 | Emc Corporation | Bulk updates and tape synchronization |
US20080005113A1 (en) * | 2006-06-30 | 2008-01-03 | Microsoft Corporation | Sender-driven incentive-based mass p2p file sharing |
US20080005195A1 (en) | 2006-06-30 | 2008-01-03 | Microsoft Corporation | Versioning synchronization for mass p2p file sharing |
US8099452B2 (en) | 2006-09-05 | 2012-01-17 | Microsoft Corporation | Event stream conditioning |
CN101035016A (zh) * | 2007-02-08 | 2007-09-12 | 中兴通讯股份有限公司 | 终端设备配置系统及方法 |
US20080222296A1 (en) | 2007-03-07 | 2008-09-11 | Lisa Ellen Lippincott | Distributed server architecture |
JP2008250903A (ja) | 2007-03-30 | 2008-10-16 | Toshiba Corp | ファイル更新装置、プログラム及び方法 |
US7809828B2 (en) | 2007-04-11 | 2010-10-05 | International Business Machines Corporation | Method for maintaining state consistency among multiple state-driven file system entities when entities become disconnected |
US8127277B2 (en) | 2007-05-21 | 2012-02-28 | International Business Machines Corporation | Framework for conditionally executing code in an application using conditions in the framework and in the application |
US7739547B2 (en) | 2007-06-07 | 2010-06-15 | International Business Machines Corporation | Failure recovery and error correction techniques for data loading in information warehouses |
US8359467B2 (en) | 2007-07-07 | 2013-01-22 | Hewlett-Packard Development Company, L.P. | Access control system and method |
US20090024671A1 (en) | 2007-07-19 | 2009-01-22 | Microsoft Corporation | Content management system and external data storage system data synchronization |
US9298417B1 (en) | 2007-07-25 | 2016-03-29 | Emc Corporation | Systems and methods for facilitating management of data |
JP2009038416A (ja) * | 2007-07-31 | 2009-02-19 | Toshiba Corp | マルチキャスト通信システム、並びにグループ鍵管理サーバ |
US7925631B1 (en) | 2007-08-08 | 2011-04-12 | Network Appliance, Inc. | Method and system for reporting inconsistency of file system persistent point in time images and automatically thawing a file system |
US8214641B2 (en) | 2007-08-23 | 2012-07-03 | Microsoft Corporation | File access in multi-protocol environment |
US20090132400A1 (en) | 2007-09-28 | 2009-05-21 | Verizon Services Organization Inc. | Data metering |
US8438611B2 (en) | 2007-10-11 | 2013-05-07 | Varonis Systems Inc. | Visualization of access permission status |
CA2609083C (en) * | 2007-10-31 | 2016-05-31 | Caseware International Inc. | Hierarchical file synchronization method, software and devices |
US8438612B2 (en) * | 2007-11-06 | 2013-05-07 | Varonis Systems Inc. | Visualization of access permission status |
US8417676B2 (en) | 2007-11-06 | 2013-04-09 | International Business Machines Corporation | Automated method for detecting and repairing configuration conflicts in a content management system |
US8180747B2 (en) | 2007-11-12 | 2012-05-15 | F5 Networks, Inc. | Load sharing cluster file systems |
NZ563634A (en) | 2007-11-22 | 2008-06-30 | Johannes Wijninckx | Method and system for linking electronic artefacts |
US20090150569A1 (en) | 2007-12-07 | 2009-06-11 | Avi Kumar | Synchronization system and method for mobile devices |
US8667034B1 (en) | 2008-02-20 | 2014-03-04 | Emc Corporation | System and method for preserving symbolic links by a storage virtualization system |
US8180983B1 (en) | 2008-02-26 | 2012-05-15 | Network Appliance, Inc. | Caching filenames of a striped directory in predictable locations within a volume locally accessible to a storage server node |
US7747663B2 (en) | 2008-03-05 | 2010-06-29 | Nec Laboratories America, Inc. | System and method for content addressable storage |
KR101574339B1 (ko) | 2008-04-28 | 2015-12-03 | 엘지전자 주식회사 | 이동통신 단말기와 tv간 데이터 동기화 방법 및 장치 |
US8296398B2 (en) | 2008-04-29 | 2012-10-23 | Overland Storage, Inc. | Peer-to-peer redundant file server system and methods |
US9724611B2 (en) | 2008-05-21 | 2017-08-08 | Disney Enterprises, Inc. | Method and system for synchronizing an online application and a portable device |
US8346824B1 (en) | 2008-05-21 | 2013-01-01 | Translattice, Inc. | Data distribution system |
US7917494B2 (en) | 2008-07-11 | 2011-03-29 | Adobe Software Trading Company Limited | System and method for a log-based data storage |
US9081861B2 (en) | 2008-07-21 | 2015-07-14 | Google Inc. | Uniform resource locator canonicalization |
US8554800B2 (en) | 2008-07-30 | 2013-10-08 | Portool Ltd. | System, methods and applications for structured document indexing |
US8990924B2 (en) | 2008-08-27 | 2015-03-24 | Medtronic, Inc. | Multiple user accounts for managing stored information in an implantable medical device system |
US8301994B1 (en) | 2008-09-12 | 2012-10-30 | Adobe Systems Incorporated | Synchronizing multiple hierarchal data structures |
CN101729442B (zh) | 2008-10-23 | 2013-03-20 | 华为技术有限公司 | 一种实现内容共享的方法和装置 |
US8312242B2 (en) | 2008-10-30 | 2012-11-13 | Hewlett-Packard Development Company, L.P. | Tracking memory space in a storage system |
US8108779B1 (en) | 2008-12-16 | 2012-01-31 | Adobe Systems Incorporated | Collaborative editing operations |
US8572036B2 (en) | 2008-12-18 | 2013-10-29 | Datalight, Incorporated | Method and apparatus for fault-tolerant memory management |
US8566362B2 (en) | 2009-01-23 | 2013-10-22 | Nasuni Corporation | Method and system for versioned file system using structured data representations |
US20100306180A1 (en) | 2009-01-28 | 2010-12-02 | Digitiliti, Inc. | File revision management |
US8364984B2 (en) | 2009-03-13 | 2013-01-29 | Microsoft Corporation | Portable secure data files |
US20100242037A1 (en) * | 2009-03-17 | 2010-09-23 | Microsoft Corporation | Software Deployment over a Network |
EP2410431B1 (en) | 2009-03-19 | 2014-05-07 | Murakumo Corporation | Method and system for data replication management |
US8260742B2 (en) * | 2009-04-03 | 2012-09-04 | International Business Machines Corporation | Data synchronization and consistency across distributed repositories |
US9171036B2 (en) | 2009-05-15 | 2015-10-27 | International Business Machines Corporation | Batching heterogeneous database commands |
US8527527B2 (en) | 2009-05-29 | 2013-09-03 | Clear Channel Management Services, Inc. | Content enrichment using unified system of unique identifiers |
US8326802B2 (en) | 2009-06-11 | 2012-12-04 | International Business Machines Corporation | File system location verification using a sentinel |
US8326874B2 (en) | 2009-06-17 | 2012-12-04 | Microsoft Corporation | Model-based implied authorization |
CN101930442A (zh) | 2009-06-24 | 2010-12-29 | 侯方勇 | 一种哈希树的节点更新方法 |
KR20110007419A (ko) | 2009-07-16 | 2011-01-24 | 한국전자통신연구원 | 멀티 메타버스 환경에서의 콘텐츠 전송 시스템 및 이를 이용한 콘텐츠 관리 방법 |
US20110040793A1 (en) | 2009-08-12 | 2011-02-17 | Mark Davidson | Administration Groups |
US8489654B2 (en) | 2009-08-28 | 2013-07-16 | Beijing Innovation Works Technology Company Limited | Method and system for forming a virtual file system at a computing device |
US20110072143A1 (en) * | 2009-09-18 | 2011-03-24 | Industrial Technology Research Institute | Scheduling method for peer-to-peer data transmission and node and system using the same |
US8423581B2 (en) | 2009-10-07 | 2013-04-16 | International Business Machines Corporation | Proxy support for special subtree entries in a directory information tree using attribute rules |
CN102055748B (zh) * | 2009-11-05 | 2016-08-03 | 中兴通讯股份有限公司 | 电子公告板管理方法和系统 |
US8819848B2 (en) | 2009-11-24 | 2014-08-26 | Comcast Interactive Media, Llc | Method for scalable access control decisions |
US9229970B2 (en) | 2009-12-07 | 2016-01-05 | International Business Machines Corporation | Methods to minimize communication in a cluster database system |
JP5458861B2 (ja) | 2009-12-17 | 2014-04-02 | 富士ゼロックス株式会社 | 文書検索装置、プログラム、文書登録装置、および文書検索システム |
US8204860B1 (en) | 2010-02-09 | 2012-06-19 | F5 Networks, Inc. | Methods and systems for snapshot reconstitution |
US8516487B2 (en) | 2010-02-11 | 2013-08-20 | International Business Machines Corporation | Dynamic job relocation in a high performance computing system |
US8572022B2 (en) | 2010-03-02 | 2013-10-29 | Microsoft Corporation | Automatic synchronization conflict resolution |
KR20110105982A (ko) * | 2010-03-22 | 2011-09-28 | 전석한 | 원격 사용자 인증 방법 및 시스템 |
EP2556138B1 (en) | 2010-04-06 | 2014-06-11 | Heliae Development LLC | Methods of and systems for producing biofuels |
US8362876B2 (en) | 2010-04-08 | 2013-01-29 | Merten C William | Interlock system and method |
US8700670B2 (en) | 2010-04-12 | 2014-04-15 | Symantec Corporation | Insert optimization for B+ tree data structure scalability |
JP5531760B2 (ja) | 2010-04-28 | 2014-06-25 | 富士通株式会社 | 情報処理システム及び情報処理方法 |
JP5315291B2 (ja) | 2010-04-30 | 2013-10-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | グラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステム |
US9405845B2 (en) * | 2010-05-17 | 2016-08-02 | Microsoft Technology Licensing, Llc | Adaptable layouts for social feeds |
TW201209043A (en) * | 2010-05-17 | 2012-03-01 | Glaxo Group Ltd | Novel processes |
US8589349B2 (en) | 2010-06-30 | 2013-11-19 | International Business Machines Corporation | Tracking and viewing revision history on a section-by-section basis |
US8566837B2 (en) | 2010-07-16 | 2013-10-22 | International Business Machines Corportion | Dynamic run time allocation of distributed jobs with application specific metrics |
US20120079606A1 (en) | 2010-09-24 | 2012-03-29 | Amazon Technologies, Inc. | Rights and capability-inclusive content selection and delivery |
CN102413313A (zh) | 2010-09-26 | 2012-04-11 | 索尼公司 | 数据完整性验证信息生成方法和装置、数据完整性验证方法和装置 |
US8949939B2 (en) | 2010-10-13 | 2015-02-03 | Salesforce.Com, Inc. | Methods and systems for provisioning access to customer organization data in a multi-tenant system |
US8516249B2 (en) | 2010-10-20 | 2013-08-20 | Verizon Patent And Licensing Inc. | Cloud services layer |
US8548992B2 (en) | 2010-10-28 | 2013-10-01 | Cary Scott Abramoff | User interface for a digital content management system |
US8706701B1 (en) | 2010-11-18 | 2014-04-22 | Emc Corporation | Scalable cloud file system with efficient integrity checks |
US8516149B1 (en) | 2010-12-17 | 2013-08-20 | Emc Corporation | System for operating NFSv2 and NFSv3 clients with federated namespace |
US20120179874A1 (en) | 2011-01-07 | 2012-07-12 | International Business Machines Corporation | Scalable cloud storage architecture |
US9311324B2 (en) | 2011-01-26 | 2016-04-12 | Mitre Corporation | Synchronizing data among a federation of servers with intermittent or low signal bandwidth |
US8688734B1 (en) | 2011-02-04 | 2014-04-01 | hopTo Inc. | System for and methods of controlling user access and/or visibility to directories and files of a computer |
JP5537462B2 (ja) | 2011-02-24 | 2014-07-02 | 株式会社日立製作所 | 通信ネットワークシステム及び通信ネットワーク構成方法 |
US8510267B2 (en) | 2011-03-08 | 2013-08-13 | Rackspace Us, Inc. | Synchronization of structured information repositories |
US9311229B2 (en) | 2011-03-29 | 2016-04-12 | Blackberry Limited | System and method for managing flash memory |
US20120278334A1 (en) | 2011-04-29 | 2012-11-01 | John Abjanic | Database System |
US9501490B2 (en) | 2011-06-20 | 2016-11-22 | Microsoft Technology Licensing, Llc | Automatic synchronization of most recently used document lists |
US9652741B2 (en) | 2011-07-08 | 2017-05-16 | Box, Inc. | Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof |
GB2503625A (en) | 2011-07-08 | 2014-01-01 | Box Inc | Collaboration sessions in a workspace on cloud-based content management system |
US20130268559A1 (en) | 2011-07-13 | 2013-10-10 | Z124 | Virtual file system remote search |
US8572231B2 (en) | 2011-07-14 | 2013-10-29 | Google Inc. | Variable-length nonce generation |
US8589363B2 (en) | 2011-07-19 | 2013-11-19 | Exagrid Systems, Inc. | Systems and methods for managing delta version chains |
US9710535B2 (en) | 2011-08-12 | 2017-07-18 | Nexenta Systems, Inc. | Object storage system with local transaction logs, a distributed namespace, and optimized support for user directories |
US20170123931A1 (en) | 2011-08-12 | 2017-05-04 | Nexenta Systems, Inc. | Object Storage System with a Distributed Namespace and Snapshot and Cloning Features |
US8682462B2 (en) | 2011-08-13 | 2014-03-25 | Colin M. Leonard | Systems and methods for dynamic audio processing |
US8984170B2 (en) | 2011-09-09 | 2015-03-17 | Oracle International Corporation | Idempotence for database transactions |
US20130067542A1 (en) | 2011-09-09 | 2013-03-14 | Deepak Gonsalves | Connection authorization with a privileged access |
KR101289931B1 (ko) | 2011-09-23 | 2013-07-25 | 한양대학교 산학협력단 | 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치 |
US9225772B2 (en) | 2011-09-26 | 2015-12-29 | Knoa Software, Inc. | Method, system and program product for allocation and/or prioritization of electronic resources |
US9578114B2 (en) | 2011-09-27 | 2017-02-21 | Microsoft Technology Licensing, Llc | External service application discovery method |
JP2013077227A (ja) | 2011-09-30 | 2013-04-25 | Fujitsu Ltd | 制御プログラム、情報処理装置および方法 |
JP2013088927A (ja) | 2011-10-14 | 2013-05-13 | Nomura Research Institute Ltd | 認証管理装置および認証管理方法 |
US9805054B2 (en) | 2011-11-14 | 2017-10-31 | Panzura, Inc. | Managing a global namespace for a distributed filesystem |
US8769648B2 (en) | 2011-11-18 | 2014-07-01 | Red Hat, Inc. | Authenticated home directory |
CA2889387C (en) | 2011-11-22 | 2020-03-24 | Solano Labs, Inc. | System of distributed software quality improvement |
GB2500152A (en) | 2011-11-29 | 2013-09-11 | Box Inc | Mobile platform file and folder selection functionalities for offline access and synchronization |
US9483491B2 (en) | 2011-11-29 | 2016-11-01 | Egnyte, Inc. | Flexible permission management framework for cloud attached file systems |
GB2492857B (en) | 2011-11-30 | 2013-07-17 | Avecto Ltd | Method and computer device to control software file downloads |
US8751800B1 (en) | 2011-12-12 | 2014-06-10 | Google Inc. | DRM provider interoperability |
CN102404338B (zh) | 2011-12-13 | 2014-08-20 | 华为技术有限公司 | 一种文件同步方法和装置 |
US9235589B2 (en) * | 2011-12-13 | 2016-01-12 | International Business Machines Corporation | Optimizing storage allocation in a virtual desktop environment |
US8818951B1 (en) | 2011-12-29 | 2014-08-26 | Emc Corporation | Distributed file system having separate data and metadata and providing a consistent snapshot thereof |
US20130179480A1 (en) | 2012-01-05 | 2013-07-11 | Stec, Inc. | System and method for operating a clustered file system using a standalone operation log |
US9164997B2 (en) | 2012-01-19 | 2015-10-20 | Microsoft Technology Licensing, Llc | Recognizing cloud content |
US10469533B2 (en) | 2012-01-24 | 2019-11-05 | Ssh Communications Security Oyj | Controlling and auditing SFTP file transfers |
US9167049B2 (en) * | 2012-02-02 | 2015-10-20 | Comcast Cable Communications, Llc | Content distribution network supporting popularity-based caching |
US9330106B2 (en) | 2012-02-15 | 2016-05-03 | Citrix Systems, Inc. | Selective synchronization of remotely stored content |
JP5929305B2 (ja) | 2012-02-24 | 2016-06-01 | 株式会社リコー | 通信システム、サーバ、端末、プログラム |
US9355120B1 (en) * | 2012-03-02 | 2016-05-31 | Netapp, Inc. | Systems and methods for managing files in a content storage system |
US9503535B2 (en) | 2012-03-06 | 2016-11-22 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for automatically following entities in an online social network |
WO2013134847A1 (en) | 2012-03-16 | 2013-09-19 | Research In Motion Limited | System and method for managing data using tree structures |
US8707035B2 (en) | 2012-03-30 | 2014-04-22 | Decho Corporation | High privacy of file synchronization with sharing functionality |
US20130268480A1 (en) | 2012-04-05 | 2013-10-10 | Box, Inc. | Method and apparatus for selective subfolder synchronization in a cloud-based environment |
US9529818B2 (en) | 2012-04-23 | 2016-12-27 | Google Inc. | Sharing and synchronizing electronically stored files |
US8949179B2 (en) | 2012-04-23 | 2015-02-03 | Google, Inc. | Sharing and synchronizing electronically stored files |
US9239846B2 (en) | 2012-04-23 | 2016-01-19 | Google Inc. | Sharing and synchronizing electronically stored files |
US9244934B2 (en) * | 2012-04-23 | 2016-01-26 | Google Inc. | Sharing and synchronizing electronically stored files |
US20130290323A1 (en) | 2012-04-26 | 2013-10-31 | Appsense Limited | Systems and methods for automatically associating tags with files in a computer system |
US9396216B2 (en) | 2012-05-04 | 2016-07-19 | Box, Inc. | Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform |
US9360942B2 (en) | 2012-05-21 | 2016-06-07 | Door Number 3 | Cursor driven interface for layer control |
US20130318160A1 (en) | 2012-05-28 | 2013-11-28 | Mutaz Seleam Beraka | Device and Method for Sharing Data and Applications in Peer-to-Peer Computing Environment |
US10172774B2 (en) * | 2012-05-30 | 2019-01-08 | Clariant International Ltd. | Use of N-methyl-N-acylglucamines as thickening agents in surfactant solutions |
US8504519B1 (en) | 2012-06-27 | 2013-08-06 | Dropbox, Inc. | Determining a preferred modified version from among multiple modified versions for synchronized files |
WO2014003781A1 (en) | 2012-06-29 | 2014-01-03 | Hewlett-Packard Development Company, L.P. | Sharing of user interface objects via a shared space |
US20150172412A1 (en) | 2012-07-06 | 2015-06-18 | Cornell University | Managing dependencies between operations in a distributed system |
JP2014026331A (ja) | 2012-07-24 | 2014-02-06 | Ntt Docomo Inc | 部分木判定装置、部分木判定方法、及び部分木判定プログラム |
US9794256B2 (en) | 2012-07-30 | 2017-10-17 | Box, Inc. | System and method for advanced control tools for administrators in a cloud-based service |
US9354683B2 (en) | 2012-08-08 | 2016-05-31 | Amazon Technologies, Inc. | Data storage power management |
US9633125B1 (en) | 2012-08-10 | 2017-04-25 | Dropbox, Inc. | System, method, and computer program for enabling a user to synchronize, manage, and share folders across a plurality of client devices and a synchronization server |
GB2494047A (en) | 2012-08-22 | 2013-02-27 | Bae Systems Plc | Method and system for determining actions to be performed |
GB2513671A (en) | 2012-08-27 | 2014-11-05 | Box Inc | Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment |
US10200350B2 (en) | 2012-09-04 | 2019-02-05 | Nokia Technologies Oy | Methods and apparatuses for location-based access management |
US9069979B2 (en) | 2012-09-07 | 2015-06-30 | Oracle International Corporation | LDAP-based multi-tenant in-cloud identity management system |
US9361473B2 (en) | 2012-09-14 | 2016-06-07 | Google Inc. | Correcting access rights of files in electronic communications |
US8769105B2 (en) | 2012-09-14 | 2014-07-01 | Peaxy, Inc. | Software-defined network attachable storage system and method |
US8635373B1 (en) | 2012-09-22 | 2014-01-21 | Nest Labs, Inc. | Subscription-Notification mechanisms for synchronization of distributed states |
US9251114B1 (en) | 2012-10-12 | 2016-02-02 | Egnyte, Inc. | Systems and methods for facilitating access to private files using a cloud storage system |
US9936020B2 (en) | 2012-10-30 | 2018-04-03 | International Business Machines Corporation | Access control of data in a dispersed storage network |
US9203838B2 (en) * | 2012-10-31 | 2015-12-01 | Google Inc. | Providing network access to a device associated with a user account |
CN103812912B (zh) | 2012-11-14 | 2018-01-19 | 北京慧点科技股份有限公司 | 一种维护组织结构信息的方法及装置 |
TWI482031B (zh) | 2012-11-14 | 2015-04-21 | Inst Information Industry | 在雲端儲存服務下提供以檔案為關聯之社群互動方法、系統以及儲存有此方法之電腦可讀取記錄媒體 |
US9209973B2 (en) | 2012-11-20 | 2015-12-08 | Google Inc. | Delegate authorization in cloud-based storage system |
US9755995B2 (en) * | 2012-11-20 | 2017-09-05 | Dropbox, Inc. | System and method for applying gesture input to digital content |
EP2736221A1 (en) | 2012-11-22 | 2014-05-28 | NEC Corporation | Improved synchronization of an application run on two distinct devices |
US9002805B1 (en) | 2012-12-14 | 2015-04-07 | Amazon Technologies, Inc. | Conditional storage object deletion |
US9323939B2 (en) | 2012-12-17 | 2016-04-26 | Ca, Inc. | Multi-tenancy governance in a cloud computing environment |
US8977596B2 (en) | 2012-12-21 | 2015-03-10 | Zetta Inc. | Back up using locally distributed change detection |
US9268797B2 (en) | 2012-12-21 | 2016-02-23 | Zetta Inc. | Systems and methods for on-line backup and disaster recovery |
US8977594B2 (en) | 2012-12-21 | 2015-03-10 | Zetta Inc. | Systems and methods for state consistent replication |
US9390109B2 (en) | 2012-12-21 | 2016-07-12 | Commvault Systems, Inc. | Systems and methods to detect deleted files |
US9128932B2 (en) | 2012-12-21 | 2015-09-08 | Dropbox, Inc. | Condensing event markers |
US8930698B2 (en) | 2012-12-27 | 2015-01-06 | Dropbox, Inc. | Encrypting globally unique identifiers at communication boundaries |
US9069879B2 (en) | 2012-12-27 | 2015-06-30 | Dropbox, Inc. | Globally unique identifiers in an online content management system |
US9071654B2 (en) | 2012-12-27 | 2015-06-30 | Dropbox, Inc. | Maintaining concurrency and consistency of globally unique identifiers |
US9083766B2 (en) | 2012-12-27 | 2015-07-14 | Dropbox, Inc. | Maintaining consistent globally unique identifiers via an asynchronous interface |
US9396245B2 (en) | 2013-01-02 | 2016-07-19 | Box, Inc. | Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9398090B2 (en) | 2013-01-07 | 2016-07-19 | Dropbox, Inc. | Synchronized content library |
US9953036B2 (en) | 2013-01-09 | 2018-04-24 | Box, Inc. | File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
EP2755151A3 (en) | 2013-01-11 | 2014-09-24 | Box, Inc. | Functionalities, features and user interface of a synchronization client to a cloud-based environment |
US8904503B2 (en) | 2013-01-15 | 2014-12-02 | Symantec Corporation | Systems and methods for providing access to data accounts within user profiles via cloud-based storage services |
EP2757491A1 (en) | 2013-01-17 | 2014-07-23 | Box, Inc. | Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform |
US9294485B2 (en) | 2013-01-27 | 2016-03-22 | Dropbox, Inc. | Controlling access to shared content in an online content management system |
GB2510178A (en) | 2013-01-28 | 2014-07-30 | 1 & 1 Internet Ag | System and method for replicating data |
US9310981B2 (en) | 2013-02-13 | 2016-04-12 | Dropbox, Inc. | Seamless editing and saving of online content items using applications |
US9613047B2 (en) * | 2013-02-13 | 2017-04-04 | Dropbox, Inc. | Automatic content item upload |
JP6033949B2 (ja) * | 2013-02-19 | 2016-11-30 | 株式会社日立製作所 | 情報処理システム |
US9418072B2 (en) | 2013-03-04 | 2016-08-16 | Vmware, Inc. | Cross-file differential content synchronization |
US9934241B2 (en) | 2013-03-05 | 2018-04-03 | Hightail, Inc. | System and method for cloud-based read-only folder synchronization |
WO2014138705A1 (en) | 2013-03-08 | 2014-09-12 | Air Computing, Inc. | Systems and methods for managing files in a cloud-based computing environment |
US9426216B2 (en) | 2013-03-10 | 2016-08-23 | Dropbox, Inc. | Content item sharing and synchronization system with team shared folders |
US9747582B2 (en) | 2013-03-12 | 2017-08-29 | Dropbox, Inc. | Implementing a consistent ordering of operations in collaborative editing of shared content items |
US10055474B1 (en) | 2013-03-13 | 2018-08-21 | Emc Corporation | Method and system for connecting a content repository to a file sharing service |
US9152466B2 (en) | 2013-03-13 | 2015-10-06 | Barracuda Networks, Inc. | Organizing file events by their hierarchical paths for multi-threaded synch and parallel access system, apparatus, and method of operation |
CA2905008C (en) | 2013-03-13 | 2021-05-25 | Synacor, Inc. | Content and service aggregation, management and presentation system |
US10628578B2 (en) * | 2013-03-15 | 2020-04-21 | Imagine Communications Corp. | Systems and methods for determining trust levels for computing components using blockchain |
US9251241B2 (en) * | 2013-03-15 | 2016-02-02 | International Business Machines Corporation | Self provisioning and applying role-based security to teamspaces in content repositories |
US9015643B2 (en) | 2013-03-15 | 2015-04-21 | Nvidia Corporation | System, method, and computer program product for applying a callback function to data values |
US9858052B2 (en) | 2013-03-21 | 2018-01-02 | Razer (Asia-Pacific) Pte. Ltd. | Decentralized operating system |
US9300611B2 (en) | 2013-03-26 | 2016-03-29 | Dropbox, Inc. | Content-item linking system for messaging services |
US20140310175A1 (en) | 2013-04-12 | 2014-10-16 | Jack Bertram Coronel | System and device for exchanging cloud-based digital privileges |
CN104113572B (zh) | 2013-04-19 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 用户生成内容的发布方法、系统和前端装置 |
US9870422B2 (en) | 2013-04-19 | 2018-01-16 | Dropbox, Inc. | Natural language search |
US9552363B2 (en) | 2013-04-30 | 2017-01-24 | Microsoft Technology Licensing, Llc | File management with placeholders |
US9411966B1 (en) | 2013-05-21 | 2016-08-09 | Amazon Technologies, Inc. | Confidential data access and storage |
US9325571B2 (en) | 2013-05-28 | 2016-04-26 | Dropbox, Inc. | Access permissions for shared content |
US9633037B2 (en) | 2013-06-13 | 2017-04-25 | Box, Inc | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US9430808B2 (en) | 2013-06-19 | 2016-08-30 | Microsoft Technology Licensing, Llc | Synchronization points for state information |
WO2014203023A1 (en) | 2013-06-19 | 2014-12-24 | Hitachi Data Systems Engineering UK Limited | Decentralized distributed computing system |
US10229134B2 (en) * | 2013-06-25 | 2019-03-12 | Box, Inc. | Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform |
US9053165B2 (en) * | 2013-07-08 | 2015-06-09 | Dropbox, Inc. | Structured content item synchronization |
US20150012616A1 (en) | 2013-07-08 | 2015-01-08 | Dropbox, Inc. | Saving Third Party Content to a Content Management System |
US9282169B1 (en) * | 2013-07-12 | 2016-03-08 | Oxygen Cloud, Inc. | Real-time user interaction-based alterations to the scope of data synchronization between client and remote devices |
US9450904B2 (en) | 2013-07-15 | 2016-09-20 | Dropbox, Inc. | Coordinated notifications across multiple channels |
US10198449B2 (en) | 2013-07-16 | 2019-02-05 | Dropbox, Inc. | Creating unique content item identifiers |
US9239841B2 (en) | 2013-07-16 | 2016-01-19 | Vmware, Inc. | Hash-based snapshots |
US20150026597A1 (en) | 2013-07-17 | 2015-01-22 | Salesforce.Com, Inc. | Enhanced content posting features for an enterprise level business information networking environment |
JP6173085B2 (ja) | 2013-07-18 | 2017-08-02 | キヤノン株式会社 | 情報処理装置及びその制御方法、プログラム、並びに記憶媒体 |
US20150032690A1 (en) | 2013-07-25 | 2015-01-29 | Microsoft Corporation | Virtual synchronization with on-demand data delivery |
US9432457B2 (en) | 2013-08-30 | 2016-08-30 | Citrix Systems, Inc. | Redirecting local storage to cloud storage |
US9251235B1 (en) | 2013-09-11 | 2016-02-02 | Amazon Technologies, Inc. | Log-based synchronization |
US9185099B2 (en) | 2013-09-23 | 2015-11-10 | Airwatch Llc | Securely authorizing access to remote resources |
US9477673B2 (en) | 2013-09-24 | 2016-10-25 | Dropbox, Inc. | Heuristics for selecting and saving content to a synced online content management system |
US9454541B2 (en) | 2013-09-24 | 2016-09-27 | Cyberlink Corp. | Systems and methods for storing compressed data in cloud storage |
US9154308B2 (en) | 2013-09-27 | 2015-10-06 | Google Inc. | Revocable platform identifiers |
US10963482B2 (en) | 2013-10-04 | 2021-03-30 | Alfresco Software, Inc. | Linking of content between installations of a content management system |
US9336227B2 (en) | 2013-10-07 | 2016-05-10 | Sap Se | Selective synchronization in a hierarchical folder structure |
US9819570B2 (en) | 2013-10-09 | 2017-11-14 | International Business Machines Corporation | Dynamic symbolic links for referencing in a file system |
US20150100482A1 (en) * | 2013-10-09 | 2015-04-09 | Ebay Inc. | Payment tree |
CN103559224A (zh) | 2013-10-18 | 2014-02-05 | 华为技术有限公司 | 一种对元数据对象进行散列的方法及装置 |
US10242045B2 (en) | 2013-10-30 | 2019-03-26 | Dropbox, Inc. | Filtering content using synchronization data |
WO2015066523A2 (en) | 2013-11-01 | 2015-05-07 | Anonos Inc. | Dynamic de-identification and anonymity |
US11336648B2 (en) | 2013-11-11 | 2022-05-17 | Amazon Technologies, Inc. | Document management and collaboration system |
JP2015095220A (ja) | 2013-11-14 | 2015-05-18 | ソニー株式会社 | 情報処理装置、情報処理方法および記録媒体 |
US9280678B2 (en) | 2013-12-02 | 2016-03-08 | Fortinet, Inc. | Secure cloud storage distribution and aggregation |
US20150163302A1 (en) | 2013-12-06 | 2015-06-11 | Asurion, Llc | Synchronizing content between devices |
AU2014361702A1 (en) | 2013-12-09 | 2016-07-07 | Business Mobile Solutions Inc. | System and method for creating and transferring media files |
CA2899996C (en) | 2013-12-11 | 2020-04-14 | Intralinks, Inc. | Customizable secure data exchange environment |
FR3015168A1 (fr) | 2013-12-12 | 2015-06-19 | Orange | Procede d'authentification par jeton |
WO2015094193A1 (en) | 2013-12-17 | 2015-06-25 | Hitachi Data Systems Corporation | Distributed disaster recovery file sync server system |
US9703974B1 (en) * | 2013-12-20 | 2017-07-11 | Amazon Technologies, Inc. | Coordinated file system security via rules |
US9817987B2 (en) * | 2013-12-23 | 2017-11-14 | Dropbox, Inc. | Restricting access to content |
US9349020B2 (en) | 2013-12-27 | 2016-05-24 | Facebook, Inc. | Aggregated actions |
US9390281B2 (en) | 2013-12-30 | 2016-07-12 | Open Invention Network, Llc | Protecting data in insecure cloud storage |
US10417196B2 (en) | 2014-01-06 | 2019-09-17 | Tuxera Inc. | Systems and methods for fail-safe operations of storage devices |
US9411814B2 (en) | 2014-01-06 | 2016-08-09 | Dropbox, Inc. | Predictive caching and fetch priority |
US10242222B2 (en) | 2014-01-14 | 2019-03-26 | Baker Hughes, A Ge Company, Llc | Compartment-based data security |
WO2015108520A1 (en) | 2014-01-16 | 2015-07-23 | Hewlett-Packard Development Company, L. P. | Node cluster synchronization |
US9509747B2 (en) | 2014-01-23 | 2016-11-29 | Dropbox, Inc. | Content item synchronization by block |
WO2015110171A1 (en) | 2014-01-24 | 2015-07-30 | Hitachi Data Systems Engineering UK Limited | Method, system and computer program product for replicating file system objects from a source file system to a target file system and for de-cloning snapshot-files in a file system |
SG11201606070QA (en) | 2014-01-24 | 2016-08-30 | Agency Science Tech & Res | Method of file system design and failure recovery with non-volatile memory |
US10212143B2 (en) | 2014-01-31 | 2019-02-19 | Dropbox, Inc. | Authorizing an untrusted client device for access on a content management system |
US9461949B2 (en) | 2014-01-31 | 2016-10-04 | Dropbox, Inc. | Managing links and invitations to shared content |
US20150220917A1 (en) | 2014-02-04 | 2015-08-06 | Christian Aabye | Token verification using limited use certificates |
US9509509B2 (en) | 2014-02-06 | 2016-11-29 | Dropbox, Inc. | Random identifier generation for offline database |
US9542404B2 (en) | 2014-02-17 | 2017-01-10 | Netapp, Inc. | Subpartitioning of a namespace region |
EP2911068B1 (en) | 2014-02-20 | 2017-08-30 | Deutsche Telekom AG | Tree-structure storage method for managing computation offloading data |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US20150248384A1 (en) | 2014-02-28 | 2015-09-03 | Ricoh Company, Ltd. | Document sharing and collaboration |
US9641488B2 (en) | 2014-02-28 | 2017-05-02 | Dropbox, Inc. | Advanced security protocol for broadcasting and synchronizing shared folders over local area network |
US9336219B2 (en) | 2014-03-03 | 2016-05-10 | Netapp, Inc. | Distributed file system snapshot |
US9940311B2 (en) | 2014-03-03 | 2018-04-10 | International Business Machines Corporation | Optimized read/write access to a document object model |
US9838424B2 (en) | 2014-03-20 | 2017-12-05 | Microsoft Technology Licensing, Llc | Techniques to provide network security through just-in-time provisioned accounts |
US9648088B1 (en) | 2014-03-25 | 2017-05-09 | Amazon Technologies, Inc. | Digital content prefetch for travel |
RU2643429C2 (ru) | 2014-03-31 | 2018-02-01 | Общество С Ограниченной Ответственностью "Яндекс" | Способ управления синхронизацией файлов (варианты), электронное устройство (варианты) и машиночитаемый носитель |
US9772787B2 (en) | 2014-03-31 | 2017-09-26 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
US9519510B2 (en) | 2014-03-31 | 2016-12-13 | Amazon Technologies, Inc. | Atomic writes for multiple-extent operations |
US9495478B2 (en) | 2014-03-31 | 2016-11-15 | Amazon Technologies, Inc. | Namespace management in distributed storage systems |
US10264071B2 (en) | 2014-03-31 | 2019-04-16 | Amazon Technologies, Inc. | Session management in distributed storage systems |
ES2881606T3 (es) | 2014-03-31 | 2021-11-30 | Wandisco Inc | Sistema de ficheros geográficamente distribuido que usa replicación de espacio de nombres coordinada |
US20150278024A1 (en) | 2014-04-01 | 2015-10-01 | Commvault Systems, Inc. | Bandwidth-conscious systems and methods for providing information management system services |
US20150288680A1 (en) | 2014-04-02 | 2015-10-08 | Cleversafe, Inc. | Distributing registry information in a dispersed storage network |
US9716753B2 (en) | 2014-04-09 | 2017-07-25 | Dropbox, Inc. | Migrating shared content items between accounts |
US10459892B2 (en) | 2014-04-23 | 2019-10-29 | Qumulo, Inc. | Filesystem hierarchical aggregate metrics |
US9922092B2 (en) | 2014-04-24 | 2018-03-20 | Canon Kabushiki Kaisha | Devices, systems, and methods for context management |
US9270395B2 (en) | 2014-05-05 | 2016-02-23 | Telefonaktiebolaget L M Ericsson (Publ) | Method for robust PTP synchronization with default 1588V2 profile |
US9614826B1 (en) | 2014-05-20 | 2017-04-04 | Symantec Corporation | Sensitive data protection |
US9621940B2 (en) | 2014-05-29 | 2017-04-11 | Time Warner Cable Enterprises Llc | Apparatus and methods for recording, accessing, and delivering packetized content |
US10530854B2 (en) | 2014-05-30 | 2020-01-07 | Box, Inc. | Synchronization of permissioned content in cloud-based environments |
US10140309B2 (en) | 2014-06-10 | 2018-11-27 | Alfresco Software, Inc. | File tracking on client machines synchronized with a content management system repository |
US9565227B1 (en) | 2014-06-16 | 2017-02-07 | Teradici Corporation | Composition control method for remote application delivery |
US10210171B2 (en) | 2014-06-18 | 2019-02-19 | Microsoft Technology Licensing, Llc | Scalable eventual consistency system using logical document journaling |
CN106662981B (zh) | 2014-06-27 | 2021-01-26 | 日本电气株式会社 | 存储设备、程序和信息处理方法 |
US9767106B1 (en) | 2014-06-30 | 2017-09-19 | EMC IP Holding Company LLC | Snapshot based file verification |
US10380076B2 (en) | 2014-07-21 | 2019-08-13 | Egnyte, Inc. | System and method for policy based synchronization of remote and local file systems |
US9430669B2 (en) | 2014-07-23 | 2016-08-30 | Dropbox, Inc. | Collection folders in a content management system |
EP2980726B1 (en) | 2014-07-29 | 2019-09-04 | Samsung Electronics Co., Ltd | Method and apparatus for sharing data |
US9271141B1 (en) * | 2014-07-29 | 2016-02-23 | Cellco Partnership | Method and apparatus for controlling home appliances over LTE |
US9720926B2 (en) | 2014-08-04 | 2017-08-01 | Cohesity, Inc. | Read operations in a tree-based distributed file system |
US9792309B2 (en) * | 2014-08-04 | 2017-10-17 | Cohesity, Inc. | Write operations in a tree-based distributed file system |
US9720947B2 (en) | 2014-08-04 | 2017-08-01 | Cohesity, Inc. | Backup operations in a tree-based distributed file system |
US9503402B2 (en) | 2014-08-18 | 2016-11-22 | Dropbox, Inc. | Managing drafts of electronic documents across client devices |
US9619268B2 (en) | 2014-08-23 | 2017-04-11 | Vmware, Inc. | Rapid suspend/resume for virtual machines via resource sharing |
WO2016033056A1 (en) | 2014-08-26 | 2016-03-03 | Ctera Networks, Ltd. | A method and computing device for allowing synchronized access to cloud |
US9892000B2 (en) | 2014-08-29 | 2018-02-13 | Dropbox, Inc. | Undo changes on a client device |
US9990372B2 (en) | 2014-09-10 | 2018-06-05 | Panzura, Inc. | Managing the level of consistency for a file in a distributed filesystem |
US10073902B2 (en) | 2014-09-24 | 2018-09-11 | Microsoft Technology Licensing, Llc | Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency |
US10671595B2 (en) * | 2014-09-29 | 2020-06-02 | Oracle International Corporation | Concurrent multiple hierarchical data structures with consistent data |
US9053124B1 (en) | 2014-09-30 | 2015-06-09 | Code 42 Software, Inc. | System for a distributed file system element collection |
US20160103750A1 (en) | 2014-10-10 | 2016-04-14 | Adp, Llc | Application programming interface monitoring tool notification and escalation method and system |
US20160112508A1 (en) | 2014-10-16 | 2016-04-21 | Centrallo LLC | System and method for creating, managing, sharing, and publishing a hierarchical list structure |
US10169341B2 (en) | 2014-10-17 | 2019-01-01 | Alfresco Software, Inc. | Integration of content and records management systems |
US9697227B2 (en) | 2014-10-27 | 2017-07-04 | Cohesity, Inc. | Concurrent access and transactions in a distributed file system |
US10268695B2 (en) | 2014-10-28 | 2019-04-23 | Hewlett Packard Enterprise Development Lp | Snapshot creation |
US10013440B1 (en) | 2014-10-31 | 2018-07-03 | Amazon Technologies, Inc. | Incremental out-of-place updates for index structures |
WO2016073030A1 (en) | 2014-11-03 | 2016-05-12 | Hewlett Packard Enterprise Development Lp | Policy and configuration data for a user directory |
US9471807B1 (en) | 2014-11-05 | 2016-10-18 | Emc Corporation | System and method for creating a security slices with storage system resources and related operations relevant in software defined/as-a-service models, on a purpose built backup appliance (PBBA)/protection storage appliance natively |
US10558375B2 (en) | 2014-11-13 | 2020-02-11 | Netapp, Inc. | Storage level access control for data grouping structures |
US9569515B2 (en) * | 2014-11-13 | 2017-02-14 | Dropbox, Inc. | Facilitating distributed deletes in a replicated storage system |
US20160140197A1 (en) | 2014-11-14 | 2016-05-19 | Tim Gast | Cross-system synchronization of hierarchical applications |
US20160140139A1 (en) | 2014-11-17 | 2016-05-19 | Microsoft Technology Licensing, Llc | Local representation of shared files in disparate locations |
WO2016100920A1 (en) | 2014-12-18 | 2016-06-23 | Bittorrent, Inc. | Distributed device management and directory resolution |
US9892037B2 (en) | 2014-12-29 | 2018-02-13 | International Business Machines Corporation | Efficient and secure direct storage device sharing in virtualized environments |
US9747164B1 (en) | 2015-01-01 | 2017-08-29 | EMC IP Holding Company LLC | Guide word paged hash table |
US20170308602A1 (en) | 2015-01-09 | 2017-10-26 | Landmark Graphics Corporation | Apparatus And Methods Of Data Synchronization |
US11132336B2 (en) | 2015-01-12 | 2021-09-28 | Qumulo, Inc. | Filesystem hierarchical capacity quantity and aggregate metrics |
EP3998526A1 (en) | 2015-01-20 | 2022-05-18 | Ultrata LLC | Distributed index for fault tolerant object memory fabric |
EP3584716B1 (en) | 2015-01-30 | 2021-12-01 | Dropbox, Inc. | Storage constrained synchronization of shared content items |
US9563638B2 (en) | 2015-01-30 | 2017-02-07 | Dropbox, Inc. | Selective downloading of shared content items in a constrained synchronization system |
US9183303B1 (en) | 2015-01-30 | 2015-11-10 | Dropbox, Inc. | Personal content item searching system and method |
US10831715B2 (en) | 2015-01-30 | 2020-11-10 | Dropbox, Inc. | Selective downloading of shared content items in a constrained synchronization system |
WO2016123431A1 (en) | 2015-01-30 | 2016-08-04 | Bittorrent, Inc. | Distributed license authentication and management |
CN104573127B (zh) | 2015-02-10 | 2019-05-14 | 北京嘀嘀无限科技发展有限公司 | 评估数据差异性的方法和系统 |
US10558677B2 (en) | 2015-03-23 | 2020-02-11 | Dropbox, Inc. | Viewing and editing content items in shared folder backed integrated workspaces |
US9922201B2 (en) * | 2015-04-01 | 2018-03-20 | Dropbox, Inc. | Nested namespaces for selective content sharing |
US10001913B2 (en) | 2015-04-01 | 2018-06-19 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
US9852147B2 (en) * | 2015-04-01 | 2017-12-26 | Dropbox, Inc. | Selective synchronization and distributed content item block caching for multi-premises hosting of digital content items |
US9866508B2 (en) | 2015-04-02 | 2018-01-09 | Dropbox, Inc. | Aggregating and presenting recent activities for synchronized online content management systems |
US9860322B2 (en) | 2015-04-08 | 2018-01-02 | Apple Inc. | Stateless technique for distributing data uploads |
US9824090B2 (en) | 2015-04-09 | 2017-11-21 | Sophos Limited | Emulating transparent file processing |
US10437789B2 (en) | 2015-04-10 | 2019-10-08 | Egnyte, Inc. | System and method for delete fencing during synchronization of remote and local file systems |
US10091296B2 (en) | 2015-04-17 | 2018-10-02 | Dropbox, Inc. | Collection folder for collecting file submissions |
US9727394B2 (en) | 2015-04-27 | 2017-08-08 | Microsoft Technology Licensing, Llc | Establishing causality order of computer trace records |
US20160323351A1 (en) | 2015-04-29 | 2016-11-03 | Box, Inc. | Low latency and low defect media file transcoding using optimized storage, retrieval, partitioning, and delivery techniques |
US10325014B2 (en) | 2015-04-30 | 2019-06-18 | Workiva Inc. | System and method for convergent document collaboration |
US10216744B2 (en) | 2015-05-01 | 2019-02-26 | Microsoft Technology Licensing, Llc | Data migration to a cloud computing system |
WO2016179436A1 (en) * | 2015-05-05 | 2016-11-10 | Colorado Code Craft Patent Holdco Llc | Ultra-low latency remote application access |
US20160337356A1 (en) | 2015-05-14 | 2016-11-17 | RightScale Inc. | Deployment templates with embedded permissions |
US10104065B2 (en) | 2015-05-26 | 2018-10-16 | Futurewei Technologies, Inc. | Token-based authentication and authorization information signaling and exchange for adaptive streaming |
US9922044B2 (en) | 2015-05-28 | 2018-03-20 | International Business Machines Corporation | File path modification based management |
US10075450B2 (en) | 2015-05-29 | 2018-09-11 | Rockwell Automation Technologies, Inc. | One time use password for temporary privilege escalation in a role-based access control (RBAC) system |
US9818899B2 (en) | 2015-05-29 | 2017-11-14 | Rainforest Connection | System and method for transmitting data using alternative energy sources |
US10318154B2 (en) | 2015-05-31 | 2019-06-11 | Apple Inc. | Dynamic group membership for devices |
US9886230B2 (en) | 2015-06-07 | 2018-02-06 | Apple Inc. | Device, method, and graphical user interface for collaborative editing in documents |
US11144510B2 (en) | 2015-06-11 | 2021-10-12 | Egnyte, Inc. | System and method for synchronizing file systems with large namespaces |
US10095764B2 (en) | 2015-06-19 | 2018-10-09 | Sap Se | Multi-replica asynchronous table replication |
US10009337B1 (en) | 2015-06-30 | 2018-06-26 | EMC IP Holding Company LLC | Child tenant revocation in a multiple tenant environment |
US10542008B2 (en) | 2015-07-24 | 2020-01-21 | Dropbox, Inc. | Proxy authorization of a network device |
US10152489B2 (en) | 2015-07-24 | 2018-12-11 | Salesforce.Com, Inc. | Synchronize collaboration entity files |
CN105138478B (zh) | 2015-07-28 | 2018-10-26 | 哈尔滨工程大学 | 一种非平衡哈希树的存储器完整性保护方法 |
US9881040B2 (en) | 2015-08-20 | 2018-01-30 | Vmware, Inc. | Tracking data of virtual disk snapshots using tree data structures |
US20170052007A1 (en) | 2015-08-21 | 2017-02-23 | Feradyne Outdoors Llc | Arrow or Crossbow Bolt Shafts Having a Profiled Inner Diameter |
US9448893B1 (en) | 2015-08-26 | 2016-09-20 | Zetta, Inc. | Asynchronous replication correctness validation |
US20170075920A1 (en) | 2015-09-10 | 2017-03-16 | Gary Howard Mckay | System and methods for detecting precise file system events from a large number and assortment of automatically-generated file system events during user operations |
US10198447B2 (en) | 2015-09-14 | 2019-02-05 | Komprise Inc. | Electronic file migration system and various methods of transparent data migration management |
US10019460B2 (en) | 2015-09-14 | 2018-07-10 | Microsoft Technology Licensing, Llc | Hosted file sync with direct access to hosted files |
US10440106B2 (en) * | 2015-09-14 | 2019-10-08 | Microsoft Technology Licensing, Llc | Hosted file sync with stateless sync nodes |
US10425477B2 (en) | 2015-09-15 | 2019-09-24 | Microsoft Technology Licensing, Llc | Synchronizing file data between computer systems |
US9978366B2 (en) | 2015-10-09 | 2018-05-22 | Xappmedia, Inc. | Event-based speech interactive media player |
US10102231B2 (en) | 2015-10-20 | 2018-10-16 | International Business Machines Corporation | Ordering heterogeneous operations in bulk processing of tree-based data structures |
US9571573B1 (en) | 2015-10-29 | 2017-02-14 | Dropbox, Inc. | Peer-to-peer synchronization protocol for multi-premises hosting of digital content items |
US10691718B2 (en) | 2015-10-29 | 2020-06-23 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
US11003621B2 (en) | 2015-11-11 | 2021-05-11 | International Business Machines Corporation | Scalable enterprise content management |
US10397319B2 (en) | 2015-11-24 | 2019-08-27 | Dropbox, Inc. | Server-side selective synchronization |
US20170168670A1 (en) | 2015-12-15 | 2017-06-15 | Samsung Electronics Co., Ltd. | Method and system for creating content shortcut |
US9401959B1 (en) | 2015-12-18 | 2016-07-26 | Dropbox, Inc. | Network folder resynchronization |
US20170177613A1 (en) | 2015-12-22 | 2017-06-22 | Egnyte, Inc. | Event-Based User State Synchronization in a Cloud Storage System |
US9971822B1 (en) | 2015-12-29 | 2018-05-15 | Amazon Technologies, Inc. | Replicated state management using journal-based registers |
US10248933B2 (en) | 2015-12-29 | 2019-04-02 | Dropbox, Inc. | Content item activity feed for presenting events associated with content items |
US10289693B2 (en) | 2015-12-30 | 2019-05-14 | Dropbox, Inc. | Techniques for providing user interface enhancements for online content management system version histories |
US11468053B2 (en) | 2015-12-30 | 2022-10-11 | Dropbox, Inc. | Servicing queries of a hybrid event index |
US10075557B2 (en) | 2015-12-30 | 2018-09-11 | Amazon Technologies, Inc. | Service authorization handshake |
US10620811B2 (en) | 2015-12-30 | 2020-04-14 | Dropbox, Inc. | Native application collaboration |
US9479578B1 (en) | 2015-12-31 | 2016-10-25 | Dropbox, Inc. | Randomized peer-to-peer synchronization of shared content items |
US10380551B2 (en) | 2015-12-31 | 2019-08-13 | Dropbox, Inc. | Mixed collaboration teams |
US9413708B1 (en) | 2015-12-31 | 2016-08-09 | Dropbox, Inc. | User notifications for interaction information |
US9870367B2 (en) | 2016-01-04 | 2018-01-16 | Acronis International Gmbh | System and method of using data blocks to optimize file storage |
US10943036B2 (en) | 2016-03-08 | 2021-03-09 | Az, Llc | Virtualization, visualization and autonomous design and development of objects |
US10936548B2 (en) | 2016-03-15 | 2021-03-02 | Microsoft Technology Licensing, Llc | File synchronization pausing for individual files |
US10382502B2 (en) | 2016-04-04 | 2019-08-13 | Dropbox, Inc. | Change comments for synchronized content items |
US10586023B2 (en) | 2016-04-21 | 2020-03-10 | Time Warner Cable Enterprises Llc | Methods and apparatus for secondary content management and fraud prevention |
JP6570761B2 (ja) | 2016-04-25 | 2019-09-04 | ドロップボックス, インコーポレイテッド | ストレージ制約付きの同期エンジン |
US10585874B2 (en) | 2016-04-25 | 2020-03-10 | International Business Machines Corporation | Locking concurrent commands in a database management system |
US10049145B2 (en) | 2016-04-25 | 2018-08-14 | Dropbox, Inc. | Storage constrained synchronization engine |
US9934303B2 (en) | 2016-04-25 | 2018-04-03 | Dropbox, Inc. | Storage constrained synchronization engine |
US20170316222A1 (en) | 2016-04-29 | 2017-11-02 | Netapp, Inc. | Method and System for Temporarily Implementing Storage Access Policies on Behalf of External Client Agents |
US10404798B2 (en) | 2016-05-16 | 2019-09-03 | Carbonite, Inc. | Systems and methods for third-party policy-based file distribution in an aggregation of cloud storage services |
US10769116B2 (en) | 2016-06-10 | 2020-09-08 | Apple Inc. | System and method for performing operations on a hierarchy of content |
US10152255B2 (en) | 2016-06-29 | 2018-12-11 | AVAST Software s.r.o. | Accelerated loading of guest virtual machine from live snapshot |
US11314546B2 (en) | 2016-11-18 | 2022-04-26 | Data Accelerator Ltd | Method and system for executing a containerized stateful application on a stateless computing platform using machine learning |
JP2018010545A (ja) | 2016-07-15 | 2018-01-18 | 富士通株式会社 | ストレージ装置、制御装置、及び制御プログラム |
AU2017100968A4 (en) * | 2016-07-18 | 2017-09-07 | Brontech Pty Ltd | System for issuance, verification and use of digital identities on a public or private ledger. |
US12079171B2 (en) | 2016-08-02 | 2024-09-03 | Microsoft Technology Licensing, Llc | Symbolic link based placeholders |
US10200376B2 (en) | 2016-08-24 | 2019-02-05 | Intel Corporation | Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network |
US11368528B2 (en) | 2016-09-20 | 2022-06-21 | Microsoft Technology Licensing, Llc | Dynamic storage management in cloud storage synchronization |
US9830345B1 (en) | 2016-09-26 | 2017-11-28 | Semmle Limited | Content-addressable data storage |
US10235378B1 (en) | 2016-09-30 | 2019-03-19 | EMC IP Holding Company LLC | Namespace performance acceleration by selective SSD caching |
US10318437B2 (en) | 2016-10-31 | 2019-06-11 | Vinod Sitaram Mukkamala | System and method for unified secure remote configuration and management of multiple applications on embedded device platform |
US11126740B2 (en) * | 2016-11-04 | 2021-09-21 | Microsoft Technology Licensing, Llc | Storage isolation for containers |
US11003632B2 (en) | 2016-11-28 | 2021-05-11 | Open Text Sa Ulc | System and method for content synchronization |
US11316744B2 (en) | 2016-12-21 | 2022-04-26 | Juniper Networks, Inc. | Organizing execution of distributed operating systems for network devices |
US10887173B2 (en) | 2016-12-21 | 2021-01-05 | Juniper Networks, Inc. | Communicating state information in distributed operating systems |
US11316775B2 (en) | 2016-12-21 | 2022-04-26 | Juniper Networks, Inc. | Maintaining coherency in distributed operating systems for network devices |
US11960525B2 (en) | 2016-12-28 | 2024-04-16 | Dropbox, Inc | Automatically formatting content items for presentation |
CN106897352B (zh) | 2016-12-29 | 2020-09-15 | 北京瑞卓喜投科技发展有限公司 | 在拓展中进行修改的区块链的生成方法及系统 |
US11526533B2 (en) | 2016-12-30 | 2022-12-13 | Dropbox, Inc. | Version history management |
US10942708B2 (en) | 2017-01-10 | 2021-03-09 | International Business Machines Corporation | Generating web API specification from online documentation |
US10452683B2 (en) | 2017-02-24 | 2019-10-22 | Adobe Inc. | Selectively synchronizing data on computing devices based on selective sync templates |
US10503427B2 (en) | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US10129593B2 (en) | 2017-03-14 | 2018-11-13 | Charter Communications Operating, Llc | Time-based dynamic secondary content placement calls in time-shifted content |
US10671639B1 (en) | 2017-03-30 | 2020-06-02 | Amazon Technologies, Inc. | Selectively replicating changes to hierarchial data structures |
US11494765B2 (en) * | 2017-05-11 | 2022-11-08 | Visa International Service Association | Secure remote transaction system using mobile devices |
US11113307B2 (en) | 2017-05-15 | 2021-09-07 | Oracle International Corporation | Entity identifier synchronization across data centers |
CN106941504B (zh) | 2017-05-16 | 2020-05-29 | 郑州云海信息技术有限公司 | 一种云管理权限控制方法及系统 |
CN107247749B (zh) | 2017-05-25 | 2020-08-25 | 创新先进技术有限公司 | 一种数据库状态确定方法、一致性验证方法及装置 |
US11301431B2 (en) | 2017-06-02 | 2022-04-12 | Open Text Sa Ulc | System and method for selective synchronization |
US20190005139A1 (en) | 2017-06-05 | 2019-01-03 | Ford Media, Inc. | Content aggregation, presentation and related system |
US10740039B2 (en) | 2017-06-20 | 2020-08-11 | Vmware, Inc. | Supporting file system clones in any ordered key-value store |
US11263252B2 (en) | 2017-06-20 | 2022-03-01 | Vmware, Inc. | Supporting file system clones in any ordered key-value store using inode back pointers |
US11586593B2 (en) * | 2017-06-22 | 2023-02-21 | Salesforce.Com, Inc. | Mechanism for synchronization of hierarchical data between a mobile device and multi tenant database |
US10747778B2 (en) | 2017-07-31 | 2020-08-18 | Cohesity, Inc. | Replication of data using chunk identifiers |
US20190050833A1 (en) | 2017-08-08 | 2019-02-14 | Mastercard International Incorporated | Systems and Methods for Distributing Data to Node Devices for Real Time Scoring, Based on Accounts for the Data |
JP6969237B2 (ja) * | 2017-09-06 | 2021-11-24 | セイコーエプソン株式会社 | プログラム、端末装置及び通信システム |
US10331623B2 (en) | 2017-10-16 | 2019-06-25 | Dropbox, Inc. | Workflow functions of content management system enforced by client device |
US10706152B2 (en) | 2017-10-16 | 2020-07-07 | Dell Products L.P. | Systems and methods for concealed object store in a virtualized information handling system |
US10635546B2 (en) * | 2017-12-07 | 2020-04-28 | Commvault Systems, Inc. | Synthesizing a restore image from one or more secondary copies to facilitate data restore operations to a file server |
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
US11288138B1 (en) | 2018-03-15 | 2022-03-29 | Pure Storage, Inc. | Recovery from a system fault in a cloud-based storage system |
US11112948B2 (en) | 2018-04-27 | 2021-09-07 | Dropbox, Inc. | Dynamic preview in a file browser interface |
US11249950B2 (en) | 2018-04-27 | 2022-02-15 | Dropbox, Inc. | Aggregated details displayed within file browser interface |
US10970193B2 (en) | 2018-05-23 | 2021-04-06 | Dropbox, Inc. | Debugging a client synchronization service |
US11200004B2 (en) | 2019-02-01 | 2021-12-14 | EMC IP Holding Company LLC | Compression of data for a file system |
US11422751B2 (en) | 2019-07-18 | 2022-08-23 | Pure Storage, Inc. | Creating a virtual storage system |
-
2017
- 2017-12-28 US US15/857,588 patent/US10866963B2/en active Active
- 2017-12-29 US US15/857,715 patent/US10789268B2/en active Active
- 2017-12-29 US US15/858,146 patent/US10877993B2/en active Active
- 2017-12-29 US US15/857,784 patent/US10929426B2/en active Active
- 2017-12-29 US US15/858,207 patent/US11048720B2/en active Active
- 2017-12-29 US US15/857,712 patent/US10037339B1/en active Active
- 2017-12-29 US US15/857,789 patent/US11880384B2/en active Active
- 2017-12-29 US US15/857,779 patent/US11386116B2/en active Active
- 2017-12-29 US US15/857,713 patent/US11188559B2/en active Active
- 2017-12-29 US US15/858,430 patent/US11429634B2/en active Active
- 2017-12-29 US US15/857,725 patent/US11593394B2/en active Active
- 2017-12-29 US US15/857,772 patent/US11176164B2/en active Active
- 2017-12-29 US US15/858,110 patent/US10922333B2/en active Active
- 2017-12-29 US US15/857,732 patent/US11308118B2/en active Active
- 2017-12-29 US US15/857,766 patent/US10691719B2/en active Active
- 2017-12-29 US US15/857,708 patent/US10095879B1/en active Active
- 2017-12-29 US US15/858,125 patent/US10866964B2/en active Active
- 2017-12-29 US US15/858,357 patent/US10872098B2/en active Active
- 2017-12-29 US US15/858,192 patent/US11016991B2/en active Active
- 2017-12-29 US US15/857,729 patent/US11204938B2/en active Active
- 2017-12-29 US US15/858,410 patent/US10762104B2/en active Active
-
2018
- 2018-01-05 US US15/863,748 patent/US11120039B2/en active Active
- 2018-01-05 US US15/863,815 patent/US10929427B2/en active Active
- 2018-01-05 US US15/863,751 patent/US11010402B2/en active Active
- 2018-01-05 US US15/863,819 patent/US10691720B2/en active Active
- 2018-01-10 US US15/867,496 patent/US10733205B2/en active Active
- 2018-01-10 US US15/867,486 patent/US11836151B2/en active Active
- 2018-01-10 US US15/867,612 patent/US11003685B2/en active Active
- 2018-01-10 US US15/867,571 patent/US10936622B2/en active Active
- 2018-01-10 US US15/867,505 patent/US11080297B2/en active Active
- 2018-01-11 US US15/868,511 patent/US10949445B2/en active Active
- 2018-01-11 US US15/868,518 patent/US10324903B1/en active Active
- 2018-01-11 US US15/868,489 patent/US10599673B2/en active Active
- 2018-01-11 US US15/868,505 patent/US10776386B2/en active Active
- 2018-01-12 US US15/870,221 patent/US10671638B2/en active Active
- 2018-01-12 US US15/870,179 patent/US10789269B2/en active Active
- 2018-01-17 US US15/873,693 patent/US10726044B2/en active Active
- 2018-07-03 US US16/026,531 patent/US10997200B2/en active Active
- 2018-08-31 US US16/118,514 patent/US10691721B2/en active Active
- 2018-12-10 AU AU2018395856A patent/AU2018395856B2/en active Active
- 2018-12-10 CA CA3084056A patent/CA3084056A1/en active Pending
- 2018-12-10 CN CN201880078587.4A patent/CN111512301B/zh active Active
- 2018-12-10 JP JP2020529761A patent/JP7075998B2/ja active Active
- 2018-12-10 CN CN201880079908.2A patent/CN111465930B/zh active Active
- 2018-12-10 EP EP18839958.8A patent/EP3714375B1/en active Active
- 2018-12-10 KR KR1020207016022A patent/KR102444729B1/ko active IP Right Grant
- 2018-12-10 WO PCT/US2018/064670 patent/WO2019133229A1/en unknown
- 2018-12-10 AU AU2018395857A patent/AU2018395857B2/en active Active
- 2018-12-10 AU AU2018395858A patent/AU2018395858B2/en active Active
- 2018-12-10 JP JP2020536083A patent/JP7393334B2/ja active Active
- 2018-12-10 JP JP2020531974A patent/JP7158482B2/ja active Active
- 2018-12-10 EP EP18830580.9A patent/EP3707615B1/en active Active
- 2018-12-10 CN CN201880083719.2A patent/CN111527487B/zh active Active
- 2018-12-10 WO PCT/US2018/064659 patent/WO2019133228A1/en unknown
- 2018-12-10 KR KR1020207016617A patent/KR102432304B1/ko active IP Right Grant
- 2018-12-10 CA CA3084312A patent/CA3084312C/en active Active
- 2018-12-10 WO PCT/US2018/064675 patent/WO2019133230A1/en unknown
- 2018-12-10 KR KR1020207018242A patent/KR102450281B1/ko active IP Right Grant
- 2018-12-10 CA CA3085998A patent/CA3085998C/en active Active
- 2018-12-10 EP EP18829647.9A patent/EP3714373B1/en active Active
- 2018-12-12 CN CN201880073349.4A patent/CN111448558B/zh active Active
- 2018-12-12 WO PCT/US2018/065097 patent/WO2019133250A1/en unknown
- 2018-12-12 AU AU2018397571A patent/AU2018397571B2/en active Active
- 2018-12-12 CA CA3086004A patent/CA3086004C/en active Active
- 2018-12-12 KR KR1020207013685A patent/KR102432302B1/ko active IP Right Grant
- 2018-12-12 CN CN201880083720.5A patent/CN111566633B/zh active Active
- 2018-12-12 JP JP2020535976A patent/JP7053847B2/ja active Active
- 2018-12-12 JP JP2020535589A patent/JP6955108B2/ja active Active
- 2018-12-12 EP EP18836962.3A patent/EP3714374B1/en active Active
- 2018-12-12 KR KR1020207018240A patent/KR102457063B1/ko active IP Right Grant
- 2018-12-12 EP EP18839962.0A patent/EP3704599B1/en active Active
- 2018-12-12 JP JP2020526431A patent/JP7065958B2/ja active Active
- 2018-12-12 KR KR1020207018403A patent/KR102444033B1/ko active IP Right Grant
- 2018-12-12 AU AU2018397572A patent/AU2018397572B2/en active Active
- 2018-12-12 WO PCT/US2018/065091 patent/WO2019133249A1/en unknown
- 2018-12-12 WO PCT/US2018/065100 patent/WO2019133252A1/en unknown
- 2018-12-12 CA CA3081372A patent/CA3081372C/en active Active
- 2018-12-12 CA CA3087087A patent/CA3087087C/en active Active
- 2018-12-12 CN CN201880083815.7A patent/CN111512302B/zh active Active
- 2018-12-12 AU AU2018393933A patent/AU2018393933B2/en active Active
- 2018-12-13 CN CN201880077284.0A patent/CN111417938B/zh active Active
- 2018-12-13 CN CN201880075620.8A patent/CN111373388B/zh active Active
- 2018-12-13 EP EP18833555.8A patent/EP3701390A1/en active Pending
- 2018-12-13 EP EP18837007.6A patent/EP3704598B1/en active Active
- 2018-12-13 WO PCT/US2018/065347 patent/WO2019133269A1/en unknown
- 2018-12-13 CA CA3083530A patent/CA3083530C/en active Active
- 2018-12-13 JP JP2020529752A patent/JP7044879B2/ja active Active
- 2018-12-13 WO PCT/US2018/065352 patent/WO2019133270A1/en unknown
- 2018-12-13 KR KR1020207015491A patent/KR102459800B1/ko active IP Right Grant
- 2018-12-13 KR KR1020207014986A patent/KR102434243B1/ko active IP Right Grant
- 2018-12-13 AU AU2018395920A patent/AU2018395920B2/en active Active
- 2018-12-13 CA CA3082925A patent/CA3082925A1/en active Pending
- 2018-12-13 AU AU2018395919A patent/AU2018395919B2/en active Active
- 2018-12-13 JP JP2020529314A patent/JP7068454B2/ja active Active
- 2018-12-17 CN CN201880068962.7A patent/CN111263937B/zh active Active
- 2018-12-17 KR KR1020207018226A patent/KR102417689B1/ko active IP Right Grant
- 2018-12-17 CA CA3078982A patent/CA3078982C/en active Active
- 2018-12-17 WO PCT/US2018/065940 patent/WO2019133321A1/en unknown
- 2018-12-17 AU AU2018395933A patent/AU2018395933C1/en active Active
- 2018-12-17 JP JP2020521435A patent/JP7212040B2/ja active Active
- 2018-12-17 EP EP18834121.8A patent/EP3710953A1/en active Pending
- 2018-12-18 EP EP18836317.0A patent/EP3707613B1/en active Active
- 2018-12-18 AU AU2018397604A patent/AU2018397604B2/en active Active
- 2018-12-18 CN CN201880078715.5A patent/CN111448559B/zh active Active
- 2018-12-18 CA CA3084060A patent/CA3084060C/en active Active
- 2018-12-18 JP JP2020531088A patent/JP7050931B2/ja active Active
- 2018-12-18 WO PCT/US2018/066193 patent/WO2019133334A1/en unknown
- 2018-12-18 KR KR1020207016208A patent/KR102444036B1/ko active IP Right Grant
-
2020
- 2020-03-27 US US16/833,348 patent/US11500897B2/en active Active
- 2020-05-29 US US16/887,714 patent/US11461365B2/en active Active
- 2020-06-10 US US16/897,884 patent/US11314774B2/en active Active
- 2020-06-22 US US16/908,186 patent/US11475041B2/en active Active
- 2020-07-22 US US16/935,995 patent/US11782949B2/en active Active
- 2020-08-12 US US16/991,798 patent/US11514078B2/en active Active
- 2020-08-12 US US16/991,822 patent/US11669544B2/en active Active
- 2020-10-21 US US17/076,538 patent/US20210034642A1/en active Pending
- 2020-10-22 US US17/077,719 patent/US11423048B2/en active Active
- 2020-12-29 US US17/136,849 patent/US11500899B2/en active Active
-
2021
- 2021-01-27 US US17/159,941 patent/US11630841B2/en active Active
- 2021-02-19 US US17/179,946 patent/US12061623B2/en active Active
- 2021-03-01 US US17/187,942 patent/US20210182311A1/en active Pending
- 2021-03-17 US US17/204,208 patent/US11704336B2/en active Active
- 2021-04-14 US US17/230,249 patent/US11657067B2/en active Active
- 2021-04-22 US US17/237,267 patent/US11755616B2/en active Active
- 2021-06-07 AU AU2021203706A patent/AU2021203706B2/en active Active
- 2021-11-02 AU AU2021261855A patent/AU2021261855B2/en active Active
- 2021-11-10 US US17/523,409 patent/US20220067066A1/en active Pending
-
2022
- 2022-05-19 US US17/748,299 patent/US20220284036A1/en active Pending
- 2022-06-27 JP JP2022102834A patent/JP2022141669A/ja active Pending
- 2022-07-25 JP JP2022118107A patent/JP2022166013A/ja active Pending
- 2022-11-23 US US17/993,500 patent/US20230101958A1/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100106687A1 (en) * | 2007-01-08 | 2010-04-29 | Apple Inc. | N-Way Synchronization of Data |
CN104685485A (zh) * | 2012-04-23 | 2015-06-03 | 谷歌公司 | 共享和同步电子保存的文件 |
CN102693302A (zh) * | 2012-05-21 | 2012-09-26 | 浙江省公众信息产业有限公司 | 快速文件比对方法、系统及客户端 |
US20140379647A1 (en) * | 2013-06-21 | 2014-12-25 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
US20150278323A1 (en) * | 2014-03-25 | 2015-10-01 | Alfresco Software, Inc. | Synchronization of client machines with a content management system repository |
US20160085769A1 (en) * | 2014-09-23 | 2016-03-24 | Amazon Technologies, Inc. | Synchronization of Shared Folders and Files |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN105740418A (zh) * | 2016-01-29 | 2016-07-06 | 杭州亿方云网络科技有限公司 | 一种基于文件监控和消息推送的实时同步系统 |
CN106156359A (zh) * | 2016-07-28 | 2016-11-23 | 四川新环佳科技发展有限公司 | 一种云计算平台下的数据同步更新方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111417938B (zh) | 针对客户端同步服务更新本地树 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |