CN111512302A - 再同步内容管理系统中的元数据 - Google Patents

再同步内容管理系统中的元数据 Download PDF

Info

Publication number
CN111512302A
CN111512302A CN201880083815.7A CN201880083815A CN111512302A CN 111512302 A CN111512302 A CN 111512302A CN 201880083815 A CN201880083815 A CN 201880083815A CN 111512302 A CN111512302 A CN 111512302A
Authority
CN
China
Prior art keywords
client device
local
data structure
content
tree data
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
Application number
CN201880083815.7A
Other languages
English (en)
Other versions
CN111512302B (zh
Inventor
J·莱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dropbox Inc
Original Assignee
Dropbox Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dropbox Inc filed Critical Dropbox Inc
Publication of CN111512302A publication Critical patent/CN111512302A/zh
Application granted granted Critical
Publication of CN111512302B publication Critical patent/CN111512302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • G06F16/125File system administration, e.g. details of archiving or snapshots using management policies characterised by the use of retention policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/156Query results presentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2322Optimistic concurrency control using timestamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/321Cryptographic 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/3213Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (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)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Finger-Pressure Massage (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Circuits Of Receivers In General (AREA)
  • Communication Control (AREA)

Abstract

一种客户端可以使表示账户中内容项的服务器状态、本地状态和同步状态的树数据结构再同步。在一些方面,所述客户端标识所述账户上的一组本地内容项,并且生成表示文件系统状态并包括所述本地组中每个项的本地节点的本地树。所述客户端确定所述账户上的一组远程内容项的服务器状态。基于所述服务器状态,所述客户端生成表示所述远程组并包括所述远程组中每个项的相应节点的远程树。基于所述本地树和所述远程树,所述客户端生成包括所述本地树与所述远程树之间的匹配节点的同步树,所述同步树表示所述文件系统状态与所述服务器状态之间的同步状态。然后,所述客户端存储所述本地树、所述远程树和所述同步树。

Description

再同步内容管理系统中的元数据
相关申请的交叉引用
本申请要求2018年1月5日提交的美国非临时申请号15/863,819;2018年1月12日提交的美国非临时申请号15/870,179;和2017年12月28日提交的美国临时申请号62/611,473的优先权,其中的每一个的内容通过引用明确地整体并入本文。
技术领域
本技术涉及分布式存储、协同和同步系统。
背景技术
云存储系统允许用户在云上存储和访问数据。一些云存储系统允许用户与其他用户共享数据并且以协同方式访问数据。在一些情况下,用户还可在其客户端设备上存储和访问数据的本地副本。数据的本地副本可向用户提供对数据的更快访问。另外,本地副本可允许用户在用户离线时访问数据。云存储系统还可允许用户使其数据的本地副本与云上的数据同步以确保一致。云存储系统可尝试使数据的副本跨多个客户端设备和服务器同步,因此数据的每个副本都是相同的。然而,使数据跨多个设备同步可能是一项极其困难的任务,通常导致不期望的数据丢失和不一致。
附图说明
通过参考在附图中示出的特定实现方式,本技术的上述和其他优点和特征将变得显而易见。本领域普通技术人员将理解,这些附图仅示出了本技术的一些实例,并且本技术的范围将不限于这些实例。此外,技术人员将通过使用附图如以另外的特征和细节所描述和解释的来理解本技术的原理,在附图中:
图1A示出内容管理系统和客户端设备的实例;
图1B示出根据一些方面的客户端同步服务的实例;
图2A示出用于使内容在图1A所示的内容管理系统与客户端设备之间同步的示例性架构的示意图;
图2B示出用于在图2A所示的用于使内容在内容管理系统与客户端设备之间同步的示例性架构中存储和跟踪内容项的块的示例性配置;
图3A示出由文件日志接口处理客户端设备与内容管理系统上的服务器文件日志之间的示例性通信的图;
图3B示出用于转换客户端设备与内容管理系统上的服务器文件日志之间的通信的示例性过程的图;
图4A示出用于将服务器文件日志数据转换成线性化操作的示例性转换和线性化过程的图;
图4B示出用于将来自客户端设备的操作转换成对服务器文件日志的修订的示例性转换和线性化过程的图;
图5A示出跨名称空间操作的示例性线性化;
图5B示出跨名称空间根据针对事件计算的兰波特时钟排序的事件的图;
图6A示出根据各个方面的树数据结构的实例;
图6B示出对图6A所示的树数据结构的更新的实例;
图7A示出用于使用树数据结构来使服务器状态和文件系统状态同步的示例性方法;
图7B示出用于在使用树数据结构来使服务器状态和文件系统状态同步时解决冲突的示例性方法;
图8示出对图6A所示的树数据结构的示例性更新,反映了基于内容项操作来修改内容项的意图;
图9A示出用于向服务器文件日志提交内容项操作的示例性方法;
图9B示出用于处理来自客户端设备的提交内容项操作的请求的示例性方法;
图10示出用于在客户端设备上重构树数据结构的示例性再同步过程;
图11示出用于在客户端设备上重构树数据结构的再同步过程的图;并且
图12示出用于实现本技术的各个方面的系统的实例。
具体实施方式
本技术的各种实例在下文中详细讨论。虽然讨论了具体的实现方式,但应理解这仅出于说明目的而进行。相关领域的技术人员应认识到,可在不背离本技术的精神和范围的情况下使用其他组件和配置。
云存储系统允许用户跨多个设备存储和访问内容项。内容项可包括但不限于文件、文档、消息(例如,电子邮件消息或文本消息)、媒体文件(例如,照片、视频和音频文件)、文件夹或任何其他内容单元。内容项可与多个用户共享、被编辑、删除、添加、重命名或移动。然而,使跨若干个设备和用户账户共享或存储的内容项同步仍然存在缺陷并且充满技术障碍。
为了示出,第一机器(例如,客户端设备或服务器)可向第二机器发送通信,所述第二机器提供关于用户如何修改云存储系统上的内容项的信息。这些通信可由第二机器使用以使第二机器上的内容项同步,使得对第一机器上的内容项执行的动作反映在第二机器上的内容项中,并且第一机器上的内容项与第二机器上的内容项基本上相同。
然而,在许多情况下,可在各种机器之间发送若干种通信,这可能难以管理。此外,由于各种问题(诸如客户端或网络问题),通信中的一些可被无序地接收。这通常导致在各种机器处的内容项之间发生冲突和错误。用户的活动还可生成大量修订,所述大量修订可进一步使同步工作复杂化并且加剧了不一致。例如,用户可对各种内容项执行大量修改,在短时间内撤消修改,或者对先前修改的内容项快速地执行另外的修改。这增加了无序地接收来自用户的改变和修订的可能性,从而致使过时的修改和内容项冲突。因此,一些操作可能与内容项的当前状态不兼容。此外,检测操作是否存在冲突可能极其困难。
同步动作也存在固有的等待时间。例如,第一机器首先检测在第一机器上采取的动作,然后通信被生成并且通过网络传输。通信由第二机器接收,所述第二机器仍然可处理先前的通信并且可在第二机器处采取通信中详述的动作。在这种说明性场景中,存在若干个可能的等待时间点,包括第一机器、第二机器和网络。当等待时间增加时,内容项之间发生冲突的可能性也增加。处理此类冲突通信并且解决冲突极其困难并且是计算上昂贵的任务。
当第二机器或访问内容项的其他机器上的相同或不同用户对内容项进行修改时,引入另外的复杂性。当在大型协同环境中本地和远程地修改内容项时,出现另外的技术问题。如在此所示,这些问题可快速地倍增并且复杂性增加,从而在内容项中造成各种各样的问题和不一致。
内容管理系统
在一些实施方案中,所公开的技术部署在具有内容项同步能力和协同特征等的内容管理系统的上下文中。在图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可包括比图1A中所示的更多或更少的存储装置和/或数据库。
在一些实施方案中,内容存储装置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的体系结构配置仅仅是一种可能的配置并且具有更多或更少组件的其他配置是可能的。
客户端同步服务
图1B示出根据一些实施方案的客户端同步服务156的实例。根据一些实施方案,客户端同步服务156可在图1A所示的客户端设备150中实现。然而,在其他实施方案中,客户端同步服务156可在另一个计算设备上实现。客户端同步服务156被配置来使对内容项的改变在内容管理系统与在其上运行客户端同步服务156的客户端设备之间同步。
客户端同步服务156可包括文件系统接口170、服务器接口172、树存储装置174、计划器176和调度器178。还可包括另外的或替代性组件。在下文关于图1B论述客户端同步服务156及其组件的高级描述。然而,贯穿全文论述客户端同步服务156及其组件的另外的细节和实施方案。
文件系统接口170被配置来处理对客户端设备的本地文件系统上的内容项的改变并且更新本地树。例如,文件系统接口170可与客户端同步服务156通信以检测对客户端设备的本地文件系统上的内容项的改变。也可通过图1A的客户端应用程序152来进行并检测改变。文件系统接口170可基于对客户端设备上的内容项的改变(新的、删除的、修改的、复制的、重命名的或移动的内容项)来进行对本地树的更新。
服务器接口172被配置来帮助处理在内容管理系统的远程存储装置处对内容项的远程改变并且更新远程树。例如,服务器接口172可与图1A的服务器同步服务112通信,以使对内容项的改变在客户端设备150与内容管理系统110之间同步。可检测对内容管理系统110处的内容项的改变(新的、删除的、修改的、复制的、重命名的或移动的内容项),并且可对远程树进行更新以反映内容管理系统110处的改变。
树存储装置174被配置来存储并维持由客户端同步服务156使用的树数据结构。例如,树存储装置174可存储本地树、同步树和远程树。根据一些实施方案,树存储装置200可将树数据结构存储在持久性存储器(例如,硬盘或其他辅助存储设备)中以及主存储器(例如,RAM或其他主存储设备)中,以便减少等待时间和响应时间。例如,在客户端设备或客户端同步服务156启动时,树数据结构可从持久性存储器中检索并且加载到主存储器中。树存储装置174可访问和更新主存储器上的树数据结构,并且在关闭客户端设备或客户端同步服务156之前,树存储装置174可将更新的树数据结构存储在持久性存储器上。因为主存储器的成本昂贵并且在大多数客户端设备上通常受大小限制,所以实现另外的技术改进以减少树数据结构在主存储器上的占用空间。这些技术解决方案在下文中进一步描述。
计划器176被配置来基于树数据结构的状态检测与内容管理系统相关联的服务器状态和与客户端设备相关联的文件系统状态之间的差异。例如,计划器176可确定在远程树与同步树之间是否存在差异。远程树与同步树之间的差异指示对存储在内容管理系统处的一个或多个内容项远程地执行的动作已经致使服务器状态和文件系统状态不同步。类似地,计划器176也可确定在本地树与同步树之间是否存在差异。本地树与同步树之间的差异指示对存储在客户端设备上的一个或多个内容项本地执行的动作已经致使服务器状态和文件系统状态不同步。如果检测到差异,则计划器176生成使树数据结构同步的一系列操作。
在一些场景中,基于远程树与同步树之间的差异生成的一系列操作和基于本地树与同步树之间的差异生成的一系列操作可发生冲突。计划器176也可被配置来将两个系列的操作合并成单一合并的操作计划。
调度器178被配置来采取生成的所述一系列操作并且管理那些操作的执行。根据一些实施方案,调度器178将所述一系列操作中的每个操作转变成需要执行以便执行所述操作的一系列一个或多个任务。在一些场景中,一些任务可能变得过时或不再相关。调度器178被配置来标识那些任务并且取消它们。
文件日志和存储系统
图2A示出用于使内容在系统配置100中的内容管理系统110与客户端设备150之间同步的示例性架构的示意图。在这个实例中,客户端设备150通过内容存储接口206和文件日志接口202分别与内容存储装置142和服务器文件日志148交互。内容存储接口206可由内容存储服务116提供或管理,并且文件日志接口202可由服务器同步服务112提供或管理。例如,内容存储接口206可以是内容存储服务116的子组件或子服务,而文件日志接口202可以是服务器同步服务112的子组件或子服务。
内容存储接口206可管理客户端设备150与内容存储装置142之间的通信,诸如内容请求或交互。内容存储接口206可处理来自客户端设备150的请求,以将内容上传到内容存储装置142和从内容存储装置142下载。内容存储接口206可从客户端设备150接收内容请求(例如,下载、上传等),验证访问控制列表145的许可权,与授权服务132通信以确定客户端设备150(和/或来自客户端设备150的请求)是否被授权将内容上传到内容存储装置142或从内容存储装置142下载,并且与内容存储装置142交互以下载内容存储装置142中的内容或将所述内容上传到客户端设备150。如果来自客户端设备150的请求是下载内容项的请求,则内容存储接口206可从内容存储装置142检索内容项并且将内容项提供给客户端设备150。如果来自客户端设备150的请求是上传内容项的请求,则内容存储接口206可从客户端设备150获得内容项并且将内容项上传到内容存储装置142以供存储。
当处理来自客户端设备150的内容请求时,内容存储接口206可与存储索引210通信以检查所请求的内容在内容存储装置142中的可用性和/或存储位置,并且跟踪内容存储装置142中的内容项。存储索引210可维持内容存储装置142上内容项的索引,所述索引标识内容存储装置142上的内容项,并且还可标识内容项在内容存储装置142内的相应位置。因此,存储索引210可跟踪内容存储装置142上的内容项以及内容项的存储位置。存储索引210可跟踪整个内容项(诸如文件)和/或内容项的部分(诸如块或小块)。在一些情况下,内容项可被分成可存储在内容存储装置142处并且以存储索引210进行跟踪的块或小块。例如,内容存储装置142可将内容项存储为数据的包括内容项的相应数据部分的块或小块。存储索引210可跟踪存储在内容存储装置142中的内容项的块或小块。下文描述的图2B示出用于存储和跟踪内容项的块的示例性配置。
文件日志接口202可管理客户端设备150与服务器文件日志148之间的通信,诸如元数据请求以及内容同步和操作。例如,文件日志接口202可在客户端设备150与服务器文件日志148之间转换、检验、认证和/或处理操作、配置和状态信息。文件日志接口202可根据光标中的FSAuth令牌或通过授权服务132验证许可权,以授权客户端设备150发送到服务器文件日志148的请求或验证对所述请求的授权。当处理来自客户端设备150的请求或操作时,文件日志接口202可访问名称空间成员资格存储区208以确定或验证针对与来自客户端设备150的请求或操作相关联的任何名称空间的名称空间所有权信息,并且从访问控制列表145检索许可权信息以验证与来自客户端设备150的请求或操作相关联的内容的许可权。
文件日志接口202中的转换服务204可执行线性化和转换操作以用于在客户端设备150与服务器文件日志148之间进行通信。例如,转换服务204可将来自客户端设备150的通信转换成与服务器文件日志148中数据的结构和格式一致的不同格式,并且反之亦然。为了示出,在一些情况下,客户端设备150可将客户端设备150处的内容项信息(例如,状态、改变、版本等)处理为操作,而服务器文件日志148可处理与由数据结构(诸如数据库表)中的行反映的内容项修订相同的信息。为了使内容项信息能够在客户端设备150与服务器文件日志148之间同步,转换服务204可将来自客户端设备150的操作转换成适于服务器文件日志148的修订,并且可将反映在服务器文件日志148上的数据行中的修订转换成适于客户端设备150的操作。
在一些情况下,授权服务132可生成令牌,所述令牌验证或指示客户端设备150被授权访问、更新、下载或上传所请求的内容项。令牌可包括与客户端设备150相关联的设备标识符、与在客户端设备150处认证或授权的用户账户相关联的账户标识符、与在客户端设备150处授权的会话相关联的会话标识符、视图上下文以及对标识的集合的访问许可权。令牌可包括在将在下文详细描述的称为光标的加密签名的数据对象中。内容管理系统110和/或授权服务132可将一个或多个令牌发送到客户端设备150,并且客户端设备150可在向服务器文件日志148请求内容项修订和/或更新时向内容管理系统110提供令牌,如下文进一步描述。客户端设备150还可将令牌提供给内容存储接口206以检验任何内容请求(例如,下载、上传等)。内容存储接口206可使用令牌来授权对存储索引210的查询,并且将内容项上传到内容存储装置142或从内容存储装置142下载。
例如,客户端设备150可向内容存储接口206发送将内容项上传到内容存储装置142的请求。所述请求可包括令牌和要上传的内容项。内容存储接口206可使用令牌来授权对存储索引210的查询以检查内容项是否已存在于内容存储装置142上,并且授权将内容项上传到内容存储装置142。客户端设备150还可将令牌提供给文件日志接口202以授权将元数据存储在服务器文件日志148上的请求以便跟踪内容项的上传和修订。
图2B示出示例性块存储和同步配置。在这个实例中,内容存储装置142可存储数据块,所述数据块可以是多至特定大小(例如,4MB)的内容项(例如,文件)的不透明小块。内容项可被分成块,并且这些块可存储在内容存储装置142处以供访问。存储索引210可跟踪存储在内容存储装置142处的块以及存储在内容存储装置142处的块的相应位置。文件日志接口202可与服务器文件日志148交互以跟踪对存储在内容存储装置142处的内容项和/或块的修订。
例如,内容项220(例如,MyFile.abc)可被分成块220A、220B、220C、220N。内容存储接口206可接收块220A、220B、220C、220N,并且将块数据222B发送到内容存储装置142以便存储在内容存储装置142处。块数据222B可包括与内容项220相关联的块220A、220B、220C、220N。
块220A、220B、220C、220N可存储在内容存储装置142处的一个或多个存储设备或卷上和/或聚合在一个或多个逻辑存储容器(例如,桶)或数据集群内。在一些情况下,块220A、220B、220C、220N可一起存储在相同位置(例如,存储设备、卷、容器和/或集群)上。在其他情况下,块220A、220B、220C、220N中的一些或全部可存储在两个或更多个不同位置(例如,两个或更多个不同的存储设备、卷、容器和/或集群)上。
内容存储接口206还可将块元数据222A存储在存储索引210处。块元数据222A可标识块220A、220B、220C、220N,并且允许存储索引210在内容存储装置142处跟踪块220A、220B、220C、220N。块元数据222A可包括用于每个块220A、220B、220C、220N的标识符。块的标识符可以是标识块的名称或密钥,诸如块的哈希。
块元数据222A还可包括针对块220A、220B、220C、220N的位置信息,所述位置信息指示块220A、220B、220C、220N的相应存储位置。块的位置信息可标识存储块的存储设备或卷和/或包含块的逻辑存储容器或数据集群。位置信息可用于访问或检索相关联的块。
内容存储接口206可在将块220A、220B、220C、220N存储在内容存储装置142处之前或之后,将块元数据222A存储在存储索引210处。例如,内容存储接口206可将块220A、220B、220C、220N存储在内容存储装置142处并且随后将块元数据222A存储在存储索引210处,以指示块220A、220B、220C、220N已经存储在内容存储装置142处。
在一些情况下,内容存储接口206可在将块220A、220B、220C、220N存储在内容存储装置142处之前查询存储索引210,以确定是否将块220A、220B、220C、220N存储在内容存储装置142处(或存储在何处)。例如,内容存储接口206可基于块元数据222A来查询存储索引210,以检查是否将块220A、220B、220C、220N存储在内容存储装置142处。存储索引210可将块元数据222A中的块标识符与存储索引210处的块标识符进行比较以检查任何匹配。块标识符之间的匹配指示相关联的块存储在内容存储装置142处。
如先前所提及的,服务器文件日志148跟踪内容项修订,包括内容项添加、编辑、移动或重命名、删除等。因此,文件日志接口202可将修订222C存储在服务器文件日志148处以指示内容项220和/或块220A、220B、220C、220N被添加到内容存储装置142。修订222C可表示对服务器文件日志148处的内容项修订的日志内的内容项220的修订。
修订222C可标识内容项220和与内容项220相关联的操作,诸如添加操作(例如,上传)、编辑操作、移动或重命名操作、删除操作等。修订222C还可标识内容管理系统110中的存储内容项220的名称空间和在服务器文件日志148处的内容项修订的日志中的用于存储修订222C的行。内容项修订的日志内的行可表示与对内容项220的修订222C相关联的修订号。
文件日志接口
图3A示出由文件日志接口202处理客户端设备150与服务器文件日志148之间的通信的图。服务器文件日志148跟踪内容项状态和改变(例如,修订)作为服务器文件日志148中的行和字段的值。例如,服务器文件日志148可维持对内容存储装置142中内容项的修订的一个或多个日志。一个或多个日志可跟踪对每个名称空间上每个内容项的修订。服务器文件日志148上的日志中的一行值可标识名称空间中的内容项并且反映名称空间中内容项的状态。日志中的对应于名称空间中相同内容项的后续行可反映对名称空间中内容项的后续修订。因此,服务器文件日志148中的与内容项相关联的行可标识内容项的当前状态以及对内容项从创建到当前状态的任何修订。
为了使内容项信息(例如,状态、改变或修订等)与客户端设备150同步,服务器文件日志148可向文件日志接口202发送修订数据304或从文件日志接口202接收修订数据304,所述修订数据304表示对一个或多个内容项的在服务器文件日志148中跟踪或存储的修订。修订数据304可包括例如对应于服务器文件日志148中的行的内容项修订的日志记录(log)。服务器文件日志148可将修订数据304发送到文件日志接口204,所述文件日志接口204可将修订数据304转换成客户端设备150的操作数据302,如下文进一步描述的。
客户端设备150可执行内容操作以在客户端设备150处更新或修改内容项。为了使内容项信息与服务器文件日志148同步,客户端设备150可向文件日志接口202发送操作数据302或从文件日志接口202接收操作数据302。客户端设备150可将操作数据302发送到文件日志接口202以将客户端设备150处的改变报告给内容项,并且从文件日志接口202接收操作数据302以从服务器文件日志148获得内容项的最新状态(例如,修订数据304)。
例如,客户端设备150可在客户端设备150处编辑内容项A并且向文件日志接口202报告指示对内容项A的编辑的编辑操作。编辑操作可包括在与文件日志接口202通信的操作数据302中以指示对内容项A的修订。文件日志接口202可接收包括编辑操作的操作数据302并且生成修订以用于存储在服务器文件日志148处,从而跟踪对内容项A的编辑。文件日志接口202可包括与修订数据304中的编辑操作相关联的对服务器文件日志148的修订以便更新服务器文件日志148以存储表示内容项A的编辑状态的修订。
如下文进一步描述,操作数据302可包括光标,所述光标标识由客户端设备150针对与客户端设备150相关联的每个名称空间获得的最新状态或修订。例如,光标可标识由客户端设备150针对与客户端设备150相关联的每个名称空间获得的服务器文件日志148中的最新修订。光标中的信息允许文件日志接口202确定来自客户端设备150的操作数据302中的操作是否反映了与操作相关联的一个或多个名称空间的服务器文件日志148中的最新状态或修订。这可帮助文件日志接口202确保来自客户端设备150的操作数据302中的对应于服务器文件日志148中的较旧修订的操作未写入服务器文件日志148中,这可在服务器文件日志148中的现有修订与从操作数据302转换的修订之间造成冲突。
为了使内容项信息能够在客户端设备150与服务器文件日志148之间同步,文件日志接口202可将操作数据302(例如,通过转换服务204)转换成修订数据304,并且反之亦然。当从客户端设备150接收操作数据302时,文件日志接口202可将操作数据302转变成修订数据304,所述修订数据304包括从操作数据302中的操作解译的内容项修订。当从服务器文件日志148接收修订数据304时,文件日志接口202可将修订数据304转变成操作数据302,所述操作数据302包括用于在客户端设备150处实现修订数据304中的修订的操作。修订数据304包括服务器文件日志148中的描述一个或多个内容项所发生的事(即,对一个或多个内容项的修订)的数据,并且操作数据302包括在客户端设备150处已经执行或应当执行以修改一个或多个内容项的操作。因此,文件日志接口202可将来自服务器文件日志148的描述对一个或多个内容项的修订的数据(例如,操作数据304)转换成在客户端设备150处已经执行或应当执行以修改客户端设备150处的一个或多个内容项的操作。
如前所述,除了将来自客户端设备150的操作数据302转换成针对服务器文件日志148的修订数据304之外,文件日志接口202还可将来自服务器文件日志148的修订数据304转变成针对客户端设备150的操作数据302。文件日志接口202可从服务器文件日志148获得修订数据304,并且将修订数据304中的修订转换成要在客户端设备150处执行的操作,以根据此类修订来修订客户端设备150处的一个或多个内容项。根据修订数据304中的修订生成的操作包括在由文件日志接口202提供给客户端设备150的操作数据302中。操作数据302与修订数据304之间的这种转换允许客户端设备150和服务器文件日志148根据需要使内容项信息彼此同步。
在向服务器文件日志148写入根据由客户端设备150提供的操作数据302生成的任何修订数据304之前,文件日志接口202可检查操作数据302中的光标和/或查询服务器文件日志148以确保修订数据304中的任何修订不会在服务器文件日志148中造成冲突。例如,文件日志接口202可查询服务器文件日志148以检查与修订数据304中的修订相关联的内容项的版本是否与服务器文件日志148处的内容项的版本相同,或者服务器文件日志148处的内容项的版本是否是作为与同修订数据304中的修订有关的内容项的更新或不同版本。如果服务器文件日志148示出内容项的最新版本是与同修订数据304有关的版本不同的版本,则这两个版本冲突。
文件日志接口202可更新服务器文件日志148,以存储包括在从操作数据302导出的修订数据304中的新修订。当查询和/或更新服务器文件日志148中的修订时,文件日志接口202可查询名称空间成员资格存储区208以检索与受修订数据304中的修订影响的任何名称空间相关联的名称空间所有权信息。名称空间所有权信息可指示哪些用户账户拥有特定名称空间或属于特定名称空间的成员,并且因此能够访问特定名称空间。因此,文件日志接口202可分析名称空间所有权信息,以确保服务器文件日志148不被更新成包括对来自不是名称空间成员的用户账户的名称空间的修订。
参考图3B,服务器文件日志148可存储日志310、312以跟踪和标识内容项修订和状态。在这个实例中,日志310包括包含名称空间标识符(NS_ID)、服务器日志标识符(SJ_ID)、路径、块、先前修订(Prev_Rev)和目标名称空间(Target_NS)的记录。NS_ID可包括用于唯一地标识服务器文件日志148中的名称空间的一个或多个值。SJ_ID包括映射到给定名称空间中的行的单调地增加的值并且提供操作或修订在该名称空间内的排序。路径可以是标识相关联的内容项的名称空间相对路径。Prev_Rev标识对应于与路径相关联的内容项的先前状态的行的SJ_ID。Target_NS标识已安装名称空间的安装点的目标名称空间的NS_ID。对于与安装点不对应的行(例如,修订),不设置Target_NS字段。
日志312包括包含NS_ID、SJ_ID、时钟(例如,时间戳)、文件标识符(File_ID)、一个或多个扩展属性(xattr)等的记录。xattr可存储与内容项或操作相关联的元数据。
在一些情况下,日志310可包括其他字段,诸如表示相关联内容项的大小的大小字段、可设置成指示内容项何时是目录的目录字段(例如,Is_Dir)、唯一地标识相关联文件的文件标识符、时钟或时间戳字段等。
如先前所提及的,文件日志接口202可基于操作数据302和修订数据304来执行转换320。当执行转换320时,转换服务204可将操作数据302变换成修订322以用于存储在服务器文件日志148中,所述修订322包括线性化修订。转换服务204还可将修订数据304变换成包括在发送给客户端设备150的操作数据302中的线性化操作324A,所述线性化操作324A可由客户端设备150应用以更新客户端设备150处的内容项信息(例如状态、改变等)。转换服务204还可生成或更新光标324B并且将操作数据302中的光标324B提供给客户端设备150。光标324B标识服务器文件日志148中对应于与线性化操作324B相关联的每个名称空间和/或内容项的相应修订或行。
例如,光标324B可标识名称空间(例如NS_ID)和服务器文件日志148中针对该名称空间的行(例如SJ_ID),它们指示服务器文件日志148中针对该名称空间的最新修订。光标324B中的名称空间和行可与线性化操作324A中的操作相关联。光标324B可在服务器文件日志148中针对特定名称空间的修订的日志记录上标识特定位置,从而指示在客户端设备150处应用线性化操作324A之后和/或之前服务器文件日志148中名称空间的修订或状态。因此,光标324B可指示在线性化操作324A之前或之后服务器文件日志148中的名称空间和/或内容项的状态,这可帮助避免修订冲突并且跟踪在应用线性化操作324A之前和之后的修订次序。
图4A示出用于将服务器文件日志数据转换成线性化操作的示例性转换和线性化过程的图。服务器文件日志148存储日志310,所述日志310包括行402,所述行402包括修订322。在这个实例中,日志310跟踪针对多个名称空间(即,名称空间100和101(即,NS_ID 100和NS_ID 101))的修订(322)。然而,在一些情况下,服务器文件日志148可存储名称空间特定的日志,所述名称空间特定的日志跟踪特定于相应名称空间的修订。名称空间特定的日志中的行(例如,行402)包括特定于该名称空间的数据,并且每行反映特定于该名称空间的修订。
日志310中的每行(402)包括名称空间标识符字段(NS_ID),其用于唯一地标识与该行相关联的名称空间;服务器日志标识符字段(SJ_ID),其包括映射到给定名称空间中的行的单调地增加的值并且提供操作或修订在该名称空间内的排序。日志310还包括用于标识内容项的名称空间相对路径的路径字段(路径)、用于标识与内容项相关联的块或块列表的块字段(块)、用于标识日志310中的表示内容项的先前状态或修订的行(即,SJ_ID)的先前修订字段(Prev_Rev)以及用于标识已安装名称空间的安装点的目标名称空间(如果行对应于安装的话)的目标名称空间字段(Target_NS)。对于与安装点不对应的行(例如,修订),不存在针对Target_NS字段的数据。
日志310中的第一行402标识名称空间“100”(NS_ID 100)中“File1”(路径字段值File1)的第一修订(SJ_ID 1),所述第一修订(SJ_ID 1)对应于块“h1”并且没有先前修订(Prev_Rev)或目标名称空间(Target_NS)。由于所述行不包括先前修订或目标名称空间,因此由所述行表示的修订对应于在名称空间“100”处添加与块“h1”相关联的“File1”。日志310中的包含SJ_ID“4”的行表示日志310中的对名称空间“100”上的“File1”的最后修订,因为该行是日志310中的对应于名称空间“100”上的“File1”的最后的行或SJ_ID。包含SJ_ID“4”的该行指示名称空间“100”上的“File1”在被添加到SJ_ID“1”中之后被编辑,并且所述编辑对应于块“h4”。
修改404描绘了表示修订322的修改的实例。在这个实例中,修改404中的每一个示出来自日志310中的对应行(402)的内容修订。每个修改对应于日志310中的SJID和NSID,以及与日志310中对应的SJID和NSID相关联的文件。在这个实例中,与修改404相关联的内容表示日志310中的块(例如,“h1”、“h2”、“h3”、“h4”)的示例性内容值。出于说明目的提供修改404中的内容值,以描绘对与每个修订相关联的内容的示例性修改。
例如,修改404中的第一修改表示日志310中的SJID“1”和NSID“100”,并且描绘了在名称空间“100”中添加“File1”。内容“aaa”表示在NSID“100”的SJID“1”处“File1”的“h1”值。修改404还描绘了对表示日志310中的SJID“4”和NSID“100”的名称空间“100”中的“File1”的编辑,其示出将与名称空间“100”中的“File1”相关联的内容“aaa”(例如,“h1”)修改成“aa2”(例如,“h4”)。
在转换320中,将来自日志310中的行402的修订322转变成线性化操作324A。线性化操作324A是根据日志310中的修订322生成并且表示线性化之后的修改404。如线性化操作324A所示,线性化操作324A中的操作可基于多个修订(322)和/或修改(404),或单一修订(322)和/或修改(404)。
例如,修改404描绘了将“File1”添加到对应于日志310中的SJID“1”和NSID“100”的名称空间“100”的修订和编辑对应于日志310中的SJID“4”和NSID“100”的名称空间“100”中的“File1”的修订。可从与“File1”和NSID“100”相关联的内容值“aaa”(例如,“h1”)以及缺少“File1”和NSID“100”的任何先前修订来推断添加修订。换句话讲,内容“aaa”指示内容(例如,“h1”)已被添加或编辑,并且缺少对“File1”和NSID“100”的先前修订表明内容“aaa”表示内容(例如,“h1”)被添加而不是被编辑。可从与“File1”和NSID“100”相关联的内容值“aa2”(例如,“h4”)和与“File1”和NSID“100”相关联的先前修订(SJID“1”和NSID“100”)来推断编辑修订。换句话讲,从与“File1”和NSID“100”相关联的内容“aaa”改变到“aa2”表明内容“aa2”表示编辑。
在线性化操作324A中,可将对应于针对NSID“100”的SJID“1”和SJID“4”的添加和编辑修改(404)转变成单一线性化操作(编辑操作),所述单一线性化操作将与“File1”相关联的内容值从“aaa”(例如,“h1”)编辑到“aa2”(例如,“h4”)。将“File1”的内容(例如,“h1”)编辑成“aa2”(例如,“h4”)的单一线性化操作反映了将与内容“aaa”(例如,“h1”)相关联的“File1”添加到名称空间“100”的修改以及将与名称空间“100”中的“File1”相关联的内容“aaa”(例如,“h1”)编辑成“aa2”(例如,“h4”)的修改。因此,该线性化操作是基于两个修改404和修订322中的两个对应的修订。
修改404中的对应于日志310中的SJID“2”和NSID“100”的修改表示将与内容“bbb”(例如,“h2”)相关联的“File2”添加到名称空间“100”的修订。该修改表示对应于名称空间“100”上的“File2”的来自日志310的唯一修订322。因此,线性化操作324A包括针对名称空间“100”上的“File2”的单一操作,所述单一操作将与内容“bbb”(例如,“h2”)相关联的“File2”添加到名称空间“100”并且是基于单一修改404(在名称空间“100”上添加“File2”)和修订322。
在这个实例中,修改404还包括用于将与内容“ccc”(例如,“h3”)相关联的“File3”添加到对应于日志310中的SJID“3”和NSID“100”的名称空间“100”,以及从对应于日志310中的SJID“5”和NSID“100”的名称空间“100”删除“File3”(表示为“-1”)的修改。因此,修订322包括与名称空间“100”上的“File3”相关联的两个修改404。由于日志310中的与“File3”和命名空间“100”相关联的最后修订对应于表示日志310中的SJID“5”和NSID“100”的删除修改,因此与“File3”和命名空间“100”相关联的从修订322的添加和删除修改404可被线性化成从名称空间“100”删除“File3”的单一操作。因此,线性化操作324A包括针对“File3”和名称空间“100”的单一操作,所述单一操作是从名称空间“100”删除“File3”的单一操作。
日志310中的针对NSID“100”的SJID“6”和“7”以及针对NSID“101”的SJID“1”表示将“Dir”添加到名称空间“100”,并且之后从名称空间“100”移动到名称空间“101”。例如,SJID“6”和NSID“100”标识“Dir”和名称空间“100”并且不包括先前的修订,这指示“Dir”在SJID“6”处已被添加到名称空间“100”。SJID“7”标识“Dir”从名称空间“100”移动到名称空间“101”,如由块字段(“-“)、先前的修订字段(SJID“6”)和目标名称空间字段(“101”)所反映的。然后,针对NSID“101”的SJID“1”标识将“Dir”添加到名称空间“101”,如由缺少针对“Dir”和名称空间“101”的先前行或修订所指示的。NSID“100”中的SJID“6”和“7”以及NSID“8”中的SJID“1”的添加和移动修订通过三个修改404进行描绘:向对应于SJID“6”和NSID“100”的名称空间“100”添加“Dir”、从对应于SJID“7”和NSID“100”的名称空间“100”删除“Dir”以及向对应于SJID“1”和NSID“101”的名称空间“101”添加“Dir”。
将分别对应于日志310中的NSID“100”的SJID“6”和“7”的“Dir”和名称空间“100”的添加和删除修改404线性化成从名称空间“100删除“Dir”的单一操作,因为日志310中的对应于“Dir”和名称空间“100”的最后修订是在SJID“7”和NSID“100”处从名称空间“100”删除“Dir”。向对应于日志310中的SJID“1”和NSID“101”的名称空间“101”添加“Dir”是对应于“Dir”和名称空间“101”的唯一修改404和修订322。因此,在线性化操作324A中将添加提供为针对“Dir”和名称空间“101”的单一安装操作。因此,将来自修订322的对应于NSID“100”中的SJID“6”和“7”以及NSID“101”中的SJID“1”的三个修改404(即,“Dir”在名称空间“100”上的添加和删除以及“Dir”在名称空间“101”上的添加)在线性化操作324A中线性化成如下两个操作:针对“Dir”在名称空间“100”中的删除操作和“Dir”在名称空间“101”中的安装操作。
如上所述,线性化操作324A包括针对“File1”和名称空间“100”的编辑操作、针对“File2”和名称空间“100”的添加操作、“File3”在名称空间“100”中的删除操作、“Dir”在名称空间“100”中的删除操作以及用于将“Dir”添加到名称空间“101”的安装操作。线性化操作324A中的这些操作是根据修订322生成并且反映了日志310中每个内容项的最新状态。文件日志接口202可生成线性化操作324A并且将线性化操作324A发送到客户端设备150,以确保客户端设备150包含来自日志310中的修订322的最新状态。
当向客户端设备150提供线性化操作324A时,文件日志接口202可包括光标324B以及对客户端设备150的线性化操作324A。光标324B可标识对日志310中的每个名称空间(NSID)的最后修订(SJID)。在一些实施方案中,光标324B还可包括FSAuth令牌,所述FSAuth令牌包括用户ID以及对在光标中提供的NS_ID的最后观察到的访问许可权。对每个名称空间的最后修订可指示日志310中对应于发送给客户端设备150的对每个名称空间的最新修订。
在一些情况下,光标324B还可将线性化操作324A中的每个操作映射到日志310中的名称空间(NSID)和行(SJID)。与操作相关联的名称空间和行可指示日志310中对应于操作的位置。换句话讲,与操作相关联的名称空间和行可指示由该操作表示的日志310中的修订号。光标324B中的名称空间和行对应于与线性化操作324A相关联的每个名称空间和内容项的日志310中的最新状态。光标324B可作为客户端设备150的工具提供给客户端设备150,以在尝试从客户端设备150向一个或多个名称空间和/或内容项应用改变(例如,通过操作数据302)时向文件日志接口202标识由客户端设备150获得的针对一个或多个名称空间和/或内容项的最新状态或修订。当文件日志接口202从客户端设备150接收到光标324B时,它可使用光标324B来标识客户端设备150在日志310处的位置(例如,由客户端设备150获得的来自日志310的最新修订),并且检测或避免由来自客户端设备150的操作引起的冲突。
例如,如果文件日志接口202从客户端设备150接收到修改命名空间“100”中的“File1”的操作,则文件日志接口202可使用从客户端设备150接收的光标324B以及操作来检查与来自客户端设备150的光标324B中标识的修订相比,日志310对名称空间“100”中的“File1”是否具有更新的修订。如果光标324B中的修订是日记310中的最新修订,则文件日记接口202可将编辑操作提交为日志310中的对名称空间“100”中的“File1”的新修订(例如,NSID“100”中的SJID“8”)。
可替代地,如果光标324B中的修订不是日志310中的对名称空间“100”中“File1”的最新修订,则文件日志接口202可确定来自客户端设备150的编辑操作不是基于日志310中的对名称空间“100”中“File1”的最新版本。例如,如果光标324B在日志310中标识SJID“4”和NSID“100”,并且文件日志接口202确定日志310在SJID“12”和NSID“100”处包括对名称空间“100”中“File1”的修订,则文件日志接口202可确定来自客户端设备150的编辑操作与名称空间“100”上“File1”的较旧版本(例如,SJID“4”和NSID“100”)有关,并且编辑操作可造成冲突,因为它编辑的文件已被修改。文件日志接口202可检测到由编辑操作造成的该冲突并且拒绝编辑操作,尝试协调冲突,或者向客户端设备150提供最新修订并且允许客户端设备150协调冲突。
每当文件日志接口202向客户端设备150发送线性化操作时,它可包括如本文所述的光标,所述光标针对每个名称空间和/或内容项在日志310中标识相应位置。类似地,每当客户端设备150向文件日志接口202发送操作时,它可包括其最新光标,文件日志接口202可使用所述最新光标来使客户端设备150处的状态与日志310处的状态映射。
在这个实例中,日志310描绘具有多个名称空间的日志。如前所述,在一些实例中,服务器文件日志148可维持名称空间特定的日志。光标324B可包括用于每个名称空间的SJID和NSID,以指示对每个名称空间的最新修订。如本文进一步所解释,基于光标324B,在维持多个日志的实施方案中,文件日志接口200可查询多个日志,和/或从多个日志检索修订。
图4B示出用于线性化410以将来自从客户端设备150的操作数据302转变成对服务器文件日志148处日志310的修订322的示例性过程的图。客户端设备150可将操作数据302提供给文件日志接口202。在这个实例中,操作数据302包括客户端设备150处的操作412,诸如内容项编辑操作、添加操作、重命名操作、移动操作、安装操作或删除操作。在一些情况下,操作412可包括对相同内容项的多个操作。例如,操作412可包括编辑名称空间“100”上的“File4”的操作和从名称空间“100”删除“File4”的操作。
操作数据302还包括先前由客户端设备150从文件日志接口202接收的光标324B。光标324B可标识日志310中针对一个或多个名称空间和/或内容项的状态(例如,NSID和SJID)或最新修订。客户端设备150可将光标324B提供给文件日志接口202作为操作412的参考点。在这个实例中,光标324B提供名称空间“100”的最新状态,其由SJID“9”表示。
在一些情况下,光标由内容管理系统110加密签名,这允许文件日志接口202确定光标未被篡改。此外,由于客户端设备150在其已从服务器文件日志148接收到对名称空间的最新修订时向服务器文件日志148提交修订,因此文件日志接口202可接受最后观察到的对NS_ID的访问许可权仍然有效,并且因此,客户端设备150有权访问名称空间。
文件日志接口202可接收操作412和光标324B并且执行线性化410,以将操作412从客户端设备150线性化和变换到对日志310的修订322。基于操作412,文件日志接口202可生成操作的日志记录414。日志记录414可包括来自映射到日志310中的相应名称空间的操作412的操作列表。在一些情况下,日志记录414可包括根据操作412生成的如前所述的线性化操作(324A)。
文件日志接口202可使用光标324B来在更新日志310以反映日志记录414中的操作之前,验证操作412反映日志310中的最新状态或修订。如果文件日志接口202确认光标324B反映日志310中针对与日志记录414相关联的名称空间和/或内容项的最新状态或修订,则文件日志接口202可基于日志记录414向日志310添加修订322。修订322可包括与日志记录414中的操作相关联的每个内容项和/或名称空间的最新状态或修订。
日志记录414中的操作包括针对”File5”的添加和编辑操作。因此,修订322包括对”File5”的编辑,文件日志接口202可将所述对”File5”的编辑作为”File5”的最新状态(即,将添加和编辑操作以线性化方式应用到”File5”之后的状态)写入日志310。日志记录414中的操作还包括针对“Dir2”的添加操作以及针对名称空间“100”上的“File4”的编辑和删除操作。因此,修订322可包括将“Dir2”添加到名称空间“100”的操作以及从名称空间“100”删除“File4”的操作分别作为“Dir2”和“File4”的最新状态。
在图4B中,日志310中描绘的修订(322)反映与操作412相关联的每个内容项(“File4”、“File5”、“Dir2”)的最新状态。然而,应当注意,在一些情况下,文件日志接口202可将由日志记录414表示的每个修订写入日志310,以便不但反映由日志记录414导致的每个名称空间和/或内容项的最新状态修订,而且反映导致最新状态或修订的任何先前状态或修订。例如,文件日志接口202可在日志310中写入针对“File4”的编辑的修订和针对“File4”的删除的后续修订,而不是仅写入反映来自操作412的最新状态的“File4”的编辑,以在日志310中指示来自操作412的“File4”修订的完整序列。
文件日志接口202可将日志记录414中的操作变换成修订322,并且将日志310更新成包括修订322。文件日志接口202可将对日志310的修订322写入日志310中的相应行处。文件日志接口202可将修订322添加到日志310中的下一个可用行(例如,SJID)。在一些情况下,文件日志接口202可基于相对顺序来添加修订322,所述相对顺序可基于线性化410和/或相应的时间戳或时钟来确定。
如图4B所示,名称空间“100”中的“File4”的删除操作包括在行“11”或名称空间“100”的SJID“11”中。日志310的SJID“11”中的修订指示名称空间“100”中的“File4”已被删除,如由块字段中的减符号所反映,并且将SJID“9”标识为日志310中的对名称空间“100”中的“File4”的先前修订。“Dir2”的添加和“File5”的编辑分别包括在行或SJID 12和14中。
图4B中的日志310已被更新为包括基于日志记录414和光标324B的修订322,以反映在日志记录414中修改的每个内容项的状态。日志310中的每行的路径字段标识相关联的名称空间(例如,名称空间“100”)内的内容项。行的路径字段是基于来自日志记录414中对应操作的文件和名称空间。日志310中的块字段表示内容项。在一些情况下,块字段可包括相应内容项或数据块的哈希。如果内容项已被删除和/或是目录、文件夹、安装项等,则块字段可为空。
当基于日志记录414和光标324B将日志310更新成包括修订322时,转换服务204可将每个内容项的路径标识成包括在日志310的路径字段中。在一些情况下,转换服务204可将内容项的标识符(例如,文件ID)转换成内容项的路径(例如,/目录/文件名)。例如,客户端设备150可使用标识符来标识内容项(例如,操作数据302中的内容项目),而无需跟踪或计算内容项的相应路径。日志310可作为替代使用内容项的路径来标识内容项。转换服务204可使用来自客户端设备150的内容项的标识符来计算日志310的内容项的路径,并且使用针对内容项计算的路径来更新日志310。转换服务204还可执行反向转换,以基于内容项的路径获得内容项的标识符,并且在与客户端设备150通信中引用内容项时使用内容项的标识符。
例如,转换服务204可使用日志310中的路径、日志310中的NSID和/或日志310中的目录字段(或服务器文件日志148中的其他地方)来标识内容项并且获得该内容项的标识符(例如,文件ID)。如果文件日志接口202向客户端设备150发送与该内容项有关的更新或信息,则文件日志接口202可将内容项的标识符提供给客户端设备150,客户端设备150可使用所述标识符来在具有或不具有内容项路径的情况下标识内容项。
如先前所提及的,在将修订322从操作412写入日志310之前,文件日志接口202可检查光标324B是否反映日志310中针对与操作412相关联的每个名称空间和/或内容项的最新状态或修订。在一些情况下,在确认光标324B反映日志310中的最新状态或修订之后,文件日志接口202也可执行第二次检查以确保根据操作412生成的修订将不会与日志310中的现有修订冲突。例如,如果日志310处的名称空间“100”中的SJID“5”表示“File5”的删除操作,则SJID“14”中描绘的从文件日志接口202从客户端设备150接收的操作412发出的“File5”的编辑修订322将通过尝试编辑”File5”而造成冲突,即使”File5”在SJID“5”处被删除。因此,在这个实例中,文件日志接口202可拒绝编辑操作和修订,并且向客户端设备150传达编辑操作无效。文件日志接口202可更新光标324B并且将更新的光标提供给客户端设备150,以根据需要通知客户端设备150日志310中针对”File5”(以及任何其他内容项)的最新状态或修订。
图5A示出跨名称空间操作的示例性线性化的图。跨名称空间线性化和跨分片或跨名称空间列表可通过时钟排序来执行。表502A、502B(统称为“502”)示出针对线性化的一批跨名称空间操作。表502A、502B分别包括列506A、508A,所述列506A、508A是用于标识表502A、502B中的记录的名称空间的名称空间(NSID)字段;列506B、508B,所述列506B、508B是用于标识表502A、502B中的针对列506A、508A中相应名称空间的行或SJID的SJID字段;列506C,508C,所述列506C,508C是用于标识与每个SJID相关联的操作的操作字段;以及列506D,508D,所述列506D,508D是用于标识与列506C、508C中的操作相关的时间戳的时钟字段。
在这个实例中,表502A描绘NSID“1”的SJID“100”和“101”。SJID“100”与在时间戳“1000”处向名称空间“1”添加“foo.txt”的操作相关联,并且SJID“101”与在时间戳“1001”处安装名称空间“2”的操作相关联。表502B描绘NSID“2”的SJID“1”和“2”。SJID“1”与在时间戳“500”处向名称空间“2”添加“bar.txt”的操作相关联,并且SJID“2”与在时间戳“1002”处编辑“bar.txt”的操作相关联。
线性化程序(例如,转换服务204)可获得表502中的这批操作,并且利用光标(514)发出单一操作流(512)。线性化程序可标识在表502中具有至少一个操作的所有名称空间,并且基于相应的时间戳、NSID、SJID来使针对所有名称空间的操作线性化。在这个实例中,表502中的这批操作被线性化为表504中所示的操作流。
表504包括:NSID列510,所述NSID列510包括用于标识每个操作的名称空间的NSID字段;操作列512,所述操作列512包括用于标识表504中的操作的操作字段;以及光标列514,所述光标列514包括用于标识每个操作的光标状态的光标字段。表504中的行504A包括来自表502A中的名称空间“1”的SJID“100”的添加操作。行504A的光标列514中的光标状态是名称空间“1”和SJID“100”,这指示添加操作对应于表502A中所示的名称空间“1”中的SJID“100”。表504中的行504B不包括NSID列510或操作列512中的值,但是将光标列514中的光标状态更新成包括跨名称空间光标状态,在这个实例中,所述跨名称空间光标状态针对名称空间“2”添加SJID“0”。
表504中的行504C包括来自表502A中所示的名称空间“2”中的SJID“1”的添加操作。针对行504C的光标列514中的光标状态包括与行504C中的添加操作相关联的名称空间“1”和“2”的相应的SJID“100”和“1”。如图所示,光标状态指示光标在名称空间“1”中的SJID“100”和名称空间“2”中的SJID“1”处。换句话讲,名称空间“1”中的行或SJID并未增加,因为添加操作不会影响名称空间“1”的状态,但是名称空间“2”中的行或SJID增加了一,因为添加操作表示名称空间“2”中的修订并且影响了名称空间“2”的状态。因此,行504C中的光标状态在名称空间“2”中的SJID“1”处进行添加操作之后,跟踪名称空间“1”和名称空间“2”的相应的SJID。
表504中的行504D包括在表502A的SJID“101”和名称空间“1”处的安装操作。安装操作将名称空间“2”安装在名称空间“1”处。安装操作将名称空间“1”中的SJID从“100”增加到“101”,但不会增加名称空间“2”中的SJID。因此,行504D的光标列514中的光标状态包括用于名称空间“1”的SJID“101”,并且保持用于名称空间“2”的SJID“1”。该光标状态反映名称空间“1”和“2”处的状态和/或顺序。
表504中的行504E包括在表502A中的SJID“2”和名称空间“2”处的编辑操作,根据安装操作和编辑操作的相应时间戳,所述编辑操作在名称空间“1”中的SJID“101”处的安装操作之后进行。行504E的光标列514中的光标状态将针对名称空间“1”的光标状态维持在SJID“101”处,但将针对名称空间“2”的光标状态增加到SJID“2”。
如表504所示,操作512被列出为基于跨名称空间“1”和“2”的因果关系和时间戳线性化的操作流。一旦在表504中使操作512线性化以反映跨名称空间的因果关系和定序,就可将操作512转变成服务器文件日志148中的修订(例如,日志310中的修订322)并且写入服务器文件日志148。
例如,可将服务器文件日志148中的名称空间“1”的日志更新成包括SJID“100”处的修订和SJID“101”处的修订,所述SJID“100”处的修订表示将“foo.txt”添加到名称空间“1”的添加操作,所述SJID“101”处的修订表示在名称空间“1”上安装名称空间“2”的安装操作。此外,可将服务器文件日志148中的名称空间“2”的日志更新成包括SJID“1”处的修订和SJID“2”处的修订,所述SJID“1”处的修订表示将“bar.txt”添加到名称空间“2”的添加操作,所述SJID“2”处的修订表示编辑名称空间“2”上的“bar.txt”的编辑操作。
兰波特时钟
图5B示出基于兰波特时钟事件跨名称空间的排序的图。在这个实例中,跨名称空间NSID 1、NSID 2和NSID 3已经执行各种操作。每个名称空间维持该名称空间处的每个操作的SJID,以便确定操作在名称空间内的排序。然而,名称空间的SJID不会标识操作跨名称空间的排序和因果关系。因此,针对名称空间NSID 1、NSID 2、NSID 3中的操作计算兰波特时钟,以确定因果关系并且获得操作的跨命名空间排序。
在NSID 1处,操作510具有SJID 1和时钟1。在NSID 2处,操作516具有SJID 1和时钟1。在NSID处,操作520具有SJID 1和时钟1。操作510、516、520跨越多个名称空间并且不具有因果关系。因此,操作510、516、520不会影响彼此的时钟。
可基于名称空间处的SJID来确定操作在名称空间内的顺序。相同名称空间内的操作的时钟可仅仅递增1。因此,在NSID 1中的SJID 2处,操作512的时钟递增至2。
NSID 1中的操作512是File1移动到NSID 2。因此,操作512在NSID 2处触发操作518,所述操作518是在NSID 2处添加File1。由于NSID 2处的操作518有因果地取决于来自不同名称空间的另一个操作,即,来自NSID 1的操作512,因此基于NSID 1处的时钟和NSID2处的时钟来计算操作518的时钟。算法可表述为:TargetNS_clockt1=max(Source_NSclock,TargetNS_clockt0)+1。因此,在这个实例中,用于NSID 2处的操作518的时钟为3(例如,max(2,1)+1)。因此,NSID 2处的操作518具有SJID 2和时钟3。
类似地,在NSID处的操作516是将File2从NSID 2移动到NSID 1。因此,操作516在NSID 1处触发操作522,所述操作522是在NSID 1处添加File2。基于时钟算法计算操作522的时钟,所述时钟等于3。因此,操作522在NSID 1处具有SJID 3和时钟3。
NSID 3处的操作524有因果地取决于相同名称空间中的操作,即,NSID 3处的操作520。因此,可通过使NSID 3处的操作520的时钟递增来计算操作524的时钟。在这个实例中,操作524的时钟因此为2。NSID 3处的操作524具有SJID 2和时钟2。由于操作524是用于将Dir移至NSID 1的移动操作,因此操作524触发NSID 1处的操作526,从而将Dir添加到NSID1。
由于操作526由不同名称空间(NSID 3)中的操作524触发,因此基于NSID 1处的时钟和操作524的时钟来计算操作526的时钟。因此,操作526的时钟被设置为4(例如,max(2,3)+1)。因此,操作526在NSID 1处具有SJID 4和时钟4。
NSID 1处的操作528将File3添加到NSID 1,并且不是跨名称空间操作。因此,通过使NSID 1处的时钟递增来计算操作528的时钟。因此,操作528的时钟被设置为5。
操作530有因果地也取决于NSID 1内的操作528。因此,通过使NSID 1处的操作528的时钟递增来将操作530的时钟设置为6。操作530在NSID 1处具有SJID 6和时钟6。
操作530是将File3移动至NSID 3的移动操作。因此,操作530触发NSID 3处的操作532。由于操作532是基于来自不同名称空间的操作,因此其时钟使用时钟算法基于NSID 3处的时钟和操作530的时钟来计算。在这种情况下,操作532的时钟被设置为7。因此,操作532在NSID 3处具有SJID 3和时钟7。
操作534、536不是跨名称空间操作,并且有因果地与NSID 3处的操作532相关。因此,可通过使操作530的时钟递增来计算操作534、536的时钟。在这个实例中,操作534、536的时钟分别被设置为8和9。
树数据结构
图6A示出根据各种实施方案的树数据结构的实例。树数据结构可存储在客户端设备处并且由客户端同步服务(诸如客户端同步服务156)管理。在图6A中,示出了树数据结构,所述树数据结构包括远程树610、同步树620和本地树630。
远程树610表示服务器状态或从客户端设备(例如,在内容管理系统的服务器上)远程地存储的内容项的状态。本地树630表示文件系统状态或本地存储在客户端设备上的对应的内容项的状态。同步树620表示本地树和远程树的合并基础。合并基础可被认为是本地树和远程树的共同祖先,或者本地树与远程树之间最后已知的同步状态。
每个树数据结构(例如,远程树610、同步树620或本地树630)可包括一个或多个节点。每个节点可具有一个或多个子节点,并且父级-子级关系由边表示。例如,远程树610包括节点602和604。节点602是节点604的父级,而节点604是节点602的子级。这种父级-子级关系由边606表示。根节点(诸如根节点602)不具有父节点。叶节点(诸如节点604)不具有子节点。
树数据结构中的每个节点可表示内容项(例如,文件、文档、文件夹等)。例如,根节点602可表示与内容管理系统相关联的根文件夹,并且节点604可表示位于该根文件夹中的文件(例如,名为“Foo.txt”的文本文件)。树数据结构中的每个节点可包含数据,例如像指定内容项的父节点的文件标识符的目录文件标识符(“DirFileID”)、用于内容项的文件名、用于内容项的文件标识符以及用于内容项的元数据。
如上所述,当所有3个树(例如,远程树610、同步树620和本地树630)相同时,客户端同步服务可确定客户端设备的服务器状态和文件系统状态同步。换句话讲,当树的树结构和它们表达的关系相同并且它们的节点中包含的数据也相同时,树同步。相反,如果3个树不相同,则这些树不同步。在图3所示的示例性场景中,远程树610、同步树620和本地树630被示出为相同并且同步,并且因此,服务器状态和文件系统状态同步。
使用树数据结构来跟踪改变
图6B示出根据各种实施方案的树数据结构的实例。该实例示出在先前同步状态(诸如图6A所示的场景)之后的场景,对树中表示的内容项执行另外的动作以修改内容项,使得树不再同步。同步树620维持先前已知的同步状态的表示并且可由客户端同步服务使用以标识服务器状态与文件系统状态之间的差异以及生成供内容管理系统和/或客户端设备执行以收敛,使得服务器状态和文件系统状态同步的操作。
例如,用户(访问内容项的与同客户端设备相关联的用户相同的用户或不同用户)可对由内容管理系统存储的“foo.txt”内容项进行修改。该内容项由远程树610中的节点604表示。远程树610中所示的修改是移除(例如,将内容项从由内容管理系统管理的空间中移除)或删除foo.txt内容项。这些修改可例如在另一个客户端设备上执行,并且这些修改通过web浏览器同步到由内容管理系统存储的内容项或由内容管理系统存储的内容项。
当在内容管理系统上进行改变时,内容管理系统生成指定所进行的改变的修改数据,并且将修改数据传输到客户端设备上的客户端同步服务。客户端同步服务基于修改数据来更新表示由内容管理系统存储的内容项的服务器状态的远程树。例如,在远程树610中,表示foo.txt内容项的节点604被示出为已删除。
客户端同步服务可标识远程树610与同步树620之间的差异,并且因此确定对在内容管理系统处的内容项的修改已经致使服务器状态和文件系统状态不再同步。客户端同步服务可进一步针对存储在客户端设备上的内容项生成并执行一系列操作,所述一系列操作被配置来使服务器状态和文件系统状态收敛以使得它们将同步。
另外地或替代地,用户(访问内容项的与同内容管理系统处的修改相关联的用户相同的用户或不同用户)可对本地存储在客户端设备上的与内容管理系统相关联的内容项进行修改。例如,用户可向“/root”文件夹添加文件夹“/bar”并且向“/bar”文件夹添加“Hi.doc”文档。
当在客户端设备上进行改变时,客户端设备(例如,客户端同步服务156或客户端应用程序152)生成指定所进行的改变的修改数据,并且将修改数据传递到客户端设备上的客户端同步服务。客户端同步服务基于修改数据来更新表示存储在客户端设备上的内容项的文件系统状态的本地树。例如,在本地树630中,节点612和节点614被示出为已添加。节点612和节点614分别表示“/bar”文件夹和“Hi.doc”文档。
客户端同步服务可标识本地树630与同步树620之间的差异,并且因此确定对在客户端设备处的内容项的修改已经致使服务器状态和文件系统状态不再同步。客户端同步服务可进一步针对由内容管理系统存储的内容项生成一系列操作,所述一系列操作被配置来使服务器状态和文件系统状态收敛以使得它们将同步。该系列的操作可被传输到内容管理系统以供执行。
如图6B所示,对存储在客户端设备上的内容项和由内容管理系统存储的内容项的修改可基本上同时或在特定时间段内发生。这些修改可反映在树数据结构中并且由客户端同步服务使用以并行生成用于客户端设备和用于内容管理系统的这些系列的操作。然而,在其他场景中,修改可不必在同一时间段内发生,并且可以按需的方式生成这些系列的操作。此外,尽管图6B示出用于添加内容项和删除内容项的场景,但是还支持其他类型的修改,诸如编辑、重命名、复制或移动内容项。
根据各种实施方案,标识两个树数据结构之间的差异并且生成操作可涉及检查两个树数据结构中的每个节点并且确定是否已经对节点执行动作。动作可包括例如添加节点、删除节点、编辑节点或移动节点。这些动作然后可用于生成被配置来使服务器状态和文件系统状态收敛的所述一系列操作。
例如,如果两个树数据结构是同步树和远程树,则客户端同步服务可通过例如请求同步树中所有节点的文件标识符来标识同步树中的每个节点。对于同步树中的每个节点或所述节点的文件标识符,客户端同步服务可确定所述节点或所述文件标识符是否也在远程树中。在远程树中没有发现同步树中的节点或文件标识符可指示已经将节点从由远程树表示的服务器状态中删除。因此,客户端同步服务可确定删除动作在远程树上已发生。如果在远程树中发现节点或所述节点的文件标识符,则客户端同步服务可检查远程树中的节点是否已被编辑或移动。
为了确定远程树中的节点是否已相对于同步树中的节点进行编辑,客户端同步服务可将同步树中节点的元数据与远程树中对应的节点(例如,具有相同文件标识符的节点)的元数据进行比较。元数据可包括可用于确定由节点表示的内容项是否已经被编辑的信息。例如,元数据可包括基于内容项或其一部分中的数据生成的一个或多个哈希值。另外地或替代地,元数据可包括内容项的大小值、最后修改的值或其他值。可将客户端同步服务中的节点的元数据与远程树中的节点的元数据进行比较。如果元数据不匹配,则对内容项的编辑在由远程树表示的服务器状态下可能已编辑。因此,客户端同步服务可确定对于远程树上的节点已发生编辑动作。如果元数据匹配,则编辑可能没有发生。
为了确定远程树中的节点是否已移动,客户端同步服务可将同步树中节点的位置与远程树中对应的节点(例如,具有相同文件标识符的节点)的位置进行比较。位置可包括例如节点所位于的路径、文件名和/或指定节点的父级的文件标识符的目录文件标识符(“DirFileID”)。如果位置匹配,则移动可能没有发生。另一方面,如果位置不匹配,则内容项的移动在由远程树表示的服务器状态下可能已发生。因此,客户端同步服务可确定对于远程树上的节点已发生移动动作。
为了确定是否已将节点添加到远程树,客户端同步服务可标识在同步树中未发现的远程树中的任何节点或文件标识符。如果节点或文件标识符在远程树中发现而在同步树中没有发现,则客户端同步服务可确定该节点的添加动作在表示服务器状态的远程树上已发生。
尽管关于同步树和远程树对上述实例进行了描述,但是在其他实施方案中,同步树和本地树可发生类似的过程,以便标识同步树与本地树之间的差异并且确定哪些动作在表示文件系统状态的本地树上已发生。
使用树数据结构的同步
图7A示出根据本主题技术的各种实施方案的用于使用树数据结构来使服务器状态和文件系统状态同步的示例性方法。尽管本文描述的方法和过程可以特定次序与某些步骤和操作一起示出,但是除非另有说明,否则以类似或替代性次序或并行执行的另外的、更少或替代性步骤和操作在各种实施方案的范围内。法可由系统(例如像客户端设备150上的客户端同步服务156)来实现。
系统被配置来标识表示由内容管理系统存储的内容项的服务器状态的远程树、表示存储在客户端设备上的对应的内容项的文件系统状态的本地树与表示服务器状态与文件系统状态之间已知的同步状态的同步树之间的差异。基于这些差异,可生成一系列操作,所述一系列操作如果被执行,则被配置来将服务器状态和文件系统状态朝向三个树数据结构将相同的同步状态收敛。
例如,在操作702处,系统可接收针对由内容管理系统存储或存储在客户端设备上的内容项的修改数据。操作704处,修改数据可用于更新远程树或本地树。
修改数据指定与内容管理服务相关联的一个或多个内容项进行了何种改变。因此,可从内容管理系统或从客户端设备(例如,从客户端应用程序152)接收修改数据。从内容管理系统接收的修改数据可被称为服务器修改数据。服务器修改数据指定内容管理系统对一个或多个内容项进行了何种改变,并且在操作704处可用于更新远程树。从客户端设备接收的修改数据可被称为客户端修改数据。客户端修改数据指定对客户端设备上的一个或多个内容项进行了何种改变,并且在操作704处可用于更新本地树。
在操作706处,系统可确定由内容管理系统存储的内容项的服务器状态和存储在客户端设备上的内容项的文件系统状态是否同步。因为本地树和远程树表示文件系统状态和服务器状态并且不断更新以跟踪发生在内容管理系统和客户端设备处的改变,所以确定服务器状态和文件系统状态是否同步可通过将本地树和/或远程树与同步树进行比较以发现树之间的差异来完成。发现树之间的差异的这个过程有时被称为使树“差异化”。
根据一些实施方案和场景,确定服务器状态和文件系统状态是否同步可包括标识远程树与同步树之间的差异和/或标识本地树与同步树之间的差异中的一者或多者。远程树与同步树之间的差异可指示对由内容管理系统存储的内容项的改变发生,所述改变可能不会反映在客户端设备处。类似地,本地树与同步树之间的差异可指示对在客户端设备处存储的内容项的改变发生,所述改变可能不会反映在内容管理系统处。
如果树之间不存在差异,则服务器状态和文件系统状态同步,并且不需要同步动作。因此,方法可返回至操作702并且等待新修改数据。另一方面,如果检测到差异,则在操作708处,系统可生成被配置来使服务器状态和文件系统状态收敛的一系列操作。
生成的所述一系列操作取决于检测到的一个或多个差异。例如,如果两个树之间的差异是添加的内容项,则生成的所述一系列操作可包括检索所述添加的内容项并且添加它。如果两个树之间的差异是内容项的删除,则生成的所述一系列操作可包括删除内容项。所述一系列操作还可包括多次检查以确保维持树约束。如将在下文进一步描述,所述一系列操作可能与服务器状态、文件系统状态或未决执行的其他操作的当前状态冲突。因此,系统还可在前进之前解决这些冲突。
如上所述,如果远程树与同步树之间存在差异,则对由内容管理系统存储的内容项的改变可发生,所述改变可能不会反映在客户端设备处。因此,在这种场景中,系统可生成一系列客户端操作,所述一系列客户端操作被配置来对存储在客户端设备上的内容项进行操作以使服务器状态和文件系统状态收敛,并且在操作710处可将该系列客户端操作提供给客户端设备以供执行。
另一方面,如果本地树与同步树之间存在差异,则对在客户端设备处存储的内容项的改变可发生,所述改变可能不会反映在内容管理系统处。因此,在这种场景中,系统可生成一系列服务器操作,所述一系列服务器操作被配置来对由内容管理系统存储的内容项进行操作以使服务器状态和文件系统状态收敛,并且在操作710处可将该系列服务器操作提供给内容管理系统以供执行。在一些情况下,两种情况都可能是正确的,并且一系列客户端操作和一系列服务器操作可被生成并且在操作710处提供给它们预期的接收者。
一旦将所述一系列或多系列操作提供给一个或多个预期的接收者,方法就可返回至操作702并且等待新修改数据。所述一系列或多系列操作可提供朝向服务器状态和文件系统状态的收敛的一个或多个步骤,或者提供使服务器状态和文件系统状态同步所需的所有步骤。例如,内容管理系统可接收所述一系列服务器操作并且对由内容管理系统存储的内容项执行所述一系列服务器操作。所述一系列服务器操作的这种执行引起对由内容管理系统存储的内容项的改变,所述改变在服务器修改数据中被检测和指定,所述服务器修改数据被传输回至系统。然后,系统可更新远程树并且确定服务器状态和文件系统状态是否同步。
客户端设备可接收所述一系列客户端操作并且对存储在客户端设备上的内容项执行所述一系列客户端操作。所述一系列客户端操作的这种执行引起对存储在客户端设备上的内容项的改变,所述改变在客户端修改数据中被检测和指定,所述客户端修改数据被传递至系统。然后,系统可更新本地树并且确定服务器状态和文件系统状态是否同步。方法700的这些操作可继续直到服务器状态和文件系统状态同步。
方法700的操作关于客户端侧和服务器侧(例如,本地树和远程树、文件系统状态和服务器状态、一系列客户端操作和一系列服务器操作、客户端修改数据和服务器修改数据)进行了描述。在各种实施方案中,与两侧相关联的操作可并行地、顺序地、与另一侧隔离地或组合地发生。
冲突处置
如上文关于图7A所描述,同步树与远程树之间的差异被标识并且用于生成被配置来使服务器状态和文件系统状态收敛的一系列客户端操作。然而,在一些情况下,所述一系列客户端操作可与本地树的当前状态冲突。类似地,同步树与本地树之间的差异被标识并且用于生成被配置来使服务器状态和文件系统状态收敛的一系列服务器操作。然而,所述一系列服务器操作可与远程树的当前状态冲突。另外地或替代地,所述一系列客户端操作和所述一系列服务器操作可彼此冲突。因此,本主题技术的各种实施方案通过解决这些冲突来提供另外的技术改进。
例如,客户端同步服务(例如,156)可标识一系列操作(例如,所述一系列客户端操作或所述一系列服务器操作)中与规则冲突的操作。用于标识冲突的每个规则也可与冲突的解决方案相关联。客户端同步服务可基于冲突的解决方案来更新所述一系列操作,或者通过执行与冲突的解决方案相关联的操作,之后提供所述一系列操作以供执行来解决冲突。
图7B示出根据本主题技术的各种实施方案的用于在使用树数据结构来使服务器状态和文件系统状态同步时解决冲突的示例性方法。尽管本文描述的方法和过程可以特定次序与某些步骤和操作一起示出,但是除非另有说明,否则以类似或替代性次序或并行执行的另外的、更少或替代性步骤和操作在各种实施方案的范围内。方法可由在客户端设备上运行的系统(例如像客户端同步服务156)来实现。
在操作720处,系统可接收被配置来使服务器状态和文件系统状态收敛的一系列操作。所述一系列操作可例如是关于图7A的方法700生成和描述的所述一系列客户端操作或所述一系列服务器操作。
在操作720处,系统基于一组规则来标识所述一所述操作中的一个或多个违规。所述一组规则可由客户端同步服务156存储并且指定需要被解决的许多约束、不变量或冲突。所述一组规则可应用于树数据结构并且帮助控制同步行为。所述一组规则中的每个规则也可与违反该规则的解决方案相关联或以其他方式链接到所述解决方案。例如,解决方案可包括更改所述一系列操作中的一个或多个操作、移除一个或多个操作、添加一个或多个操作、对服务器状态或文件状态进行一个或多个另外的动作或动作的组合。
对于一系列操作中的每个操作,系统可确定是否违反所述一组规则中的任何规则。如果违反规则,则系统标识违反的解决方案,并且在操作722处执行所述解决方案。解决方案可包括诸如如下的动作:修改所述一系列操作中的一个或多个操作、移除或添加一个或多个操作或对服务器状态或文件状态进行另外的动作。
一旦执行了解决方案动作,系统就可在操作724处基于解决方案和所述一系列操作来生成一系列解决或重建基础操作,并且在操作728处将所述一系列解决操作提供给适当的实体以供执行。例如,如果所述一系列操作是一系列客户端操作,则可将所述一系列解决操作提供给客户端设备。如果所述一系列操作是一系列服务器操作,则可将所述一系列解决操作提供给内容管理服务。另外,方法可顺序地、并行地或以各种不同的次序基于一系列客户端操作和一系列服务器操作执行。
根据一些实施方案,每种类型的操作可与相同规则或一组不同规则相关联。例如,操作类型可包括例如添加内容项、删除内容项、编辑内容项、移动内容项、重命名内容项等。所述一系列操作可由各自属于上述操作类型中的一个的操作组成。每个操作类型可与特定的一组规则相关联。
出于说明目的,针对“添加”操作类型的一组规则可包括诸如如下的规则内容项的文件标识符在树中必须是唯一的(例如,树中的两个节点都不能具有相同的文件标识符),指定内容项的父节点的文件标识符的目录文件标识符(“DirFileID”)必须存在于相对的树数据结构中,并且用于内容项的DirFileID和文件名组合未在相对树中使用。
如在此使用的相对树是指表示相对实体的状态的树数据结构。例如,被配置来在客户端设备上操作的一系列客户端操作以及对客户端设备上的文件系统所产生的改变将反映在本地树中。因此,针对所述一系列客户端操作的相对树是远程树。类似地,一系列服务器操作被配置成传输至内容管理系统以供执行并且对服务器状态所产生的改变将反映在远程树中。因此,针对所述一系列服务器操作的相对树是本地树。
提交协议
图8示出反映客户端设备150处的操作的树数据结构610、620、630的示例性状态。意图806表示操作在客户端设备150处的预期结果。在这个实例中,意图806示出用于在客户端设备150处添加“Foo.txt”的添加操作。本地树630已被修改以基于意图806添加节点804。节点804修改本地树630以描绘在根节点802内添加“Foo.txt”。如前所述,当意图806与内容管理系统110同步时,客户端设备150可将远程树610和同步树620更新成包括节点804,并且因此在客户端设备150处使树数据结构610、620、630同步。当同步时,树数据结构610、620、630反映客户端设备150处的同步状态。
为了使意图806与内容管理系统110同步,客户端设备150可将意图806提交给内容管理系统110。在这个实例中,客户端设备150向内容管理系统110提交添加“Foo.txt”,以便使意图806与内容管理系统110同步。
图9A示出用于向内容管理系统110提交意图806的示例性方法。在步骤902处,客户端设备150上的客户端同步服务156在客户端设备150处记录提交操作(例如,来自意图806的操作)的意图。客户端同步服务156可将提交操作的意图持久地记录在客户端设备150处的磁盘或存储器上以跟踪待决提交。客户端设备150可存储脏提交记录并且跟踪修改,直到事件触发移除一个或多个待决提交(诸如,失败或成功)。
在步骤904处,客户端同步服务156向内容管理系统110(例如,文件日志接口202)提交操作。客户端同步服务156可向内容管理系统110发送请求提交操作的消息。如前所述,消息可包括光标,内容管理系统110可使用所述光标来确定内容项在客户端设备150处的状态以及客户端设备150在服务器文件日志148处的位置。光标可包括例如与客户端设备150相关联的每个名称空间的服务器日志ID(SJID)。SJID指示客户端设备150在每个名称空间的服务器文件日志148处的位置,并且因此提供每个名称空间在客户端设备150处的状态。
在步骤906处,客户端同步服务156确定来自步骤904的向内容管理系统110的提交是否成功。在一些情况下,内容管理系统110可响应于提交而自动地向客户端同步服务156发送错误或确认,从而指示提交成功或失败。在一些情况下,客户端同步服务156可联系内容管理系统110以请求确认或错误通知。例如,客户端同步服务156可向内容管理系统110发送请求确认提交成功的消息。
如果提交成功,则内容管理系统110可对客户端同步服务156作出响应,并且通知客户端设备150提交成功。如果提交不成功,则内容管理系统110可响应失败响应或可对来自客户端同步服务156的请求不作出响应。如果客户端同步服务156确定提交失败,则在步骤910处,客户端同步服务156从客户端设备150清除提交操作的意图。如果客户端设备150处的状态相对于服务器文件日志148处的状态已经过时,则客户端同步服务156可接收或请求任何必要的更新,以使客户端设备150处的状态与服务器文件日志148处的状态同步。
如果客户端同步服务156确定提交成功,则在步骤908处,客户端同步服务156将远程树610和同步树620更新成包括节点804,如图8所示。在步骤910处,客户端同步服务156然后从客户端设备150清除提交操作的意图。
通过在步骤906处确定向内容管理系统110的提交是否成功,客户端同步服务156可防止由客户端同步服务156提交操作并且更新其内容和树数据结构(610、620、630),但是提交在内容管理系统110处不成功的场景导致的冲突。这将在客户端设备150与内容管理系统110之间造成状态冲突。
例如,在客户端同步服务156在步骤904处提交操作之后,各种场景可实际上防止在内容管理系统110处成功地处理和应用提交,诸如在客户端设备150或内容管理系统110发生崩溃、网络条件(例如,出现等待时间或拥堵、网络故障等),处理条件(例如,内容管理系统110处出现长队列、内容管理系统110处发生存储器错误等)等等。在步骤906处,客户端同步服务156因此可在决定是否应用操作或清除在客户端设备150处提交的存储或高速缓存意图之前,验证提交是成功还是失败。
检查提交是否成功以及如果提交失败,则清除提交意图还允许客户端设备150将自编写的操作区分开并且避免通过自编写的操作与自身产生冲突。例如,客户端设备150可记录针对客户端设备150编写的任何操作的提交意图以及所述操作是自编写的指示。然后,客户端设备150与内容管理系统110进行检查以在应用操作(例如,更新树数据结构)之前验证提交是否成功。如下面关于图9B进一步描述,内容管理系统110可保证如果它向客户端设备150报告提交意图已经失败或没有被接收,则此类提交意图如果随后被内容管理系统110接收,则随后将不会成功。因此,客户端设备150可类似地保证在客户端设备150指示提交意图失败之后提交不会成功,并且在从内容管理系统110接收到失败或成功确认之后清除所述提交意图。
这可防止例如客户端设备150认为提交操作的尝试失败并且基于内容管理系统110随后批准所述操作来稍后从内容管理系统110接收更新或修订指示的场景。例如,客户端设备150可向内容管理系统110发送提交。如果提交暂时丢失或延迟,则内容管理系统110和客户端设备150可认为所述提交失败。如果提交稍后重新出现并且内容管理系统110在客户端设备150已经清除提交意图或以其他方式将提交意图标示为失败之后处理并批准提交,则即使与失败的提交相关联的操作从未被批准,所述操作也可不经意地传播到客户端设备150。客户端设备150可从先前的失败提交接收所述操作并且不会意识到所述操作是其自身的操作并且应用所述操作,从而认为所述操作是从另一个设备生成和同步的。无法将所述操作区分为与先前失败的提交相关联的自编写操作,客户端设备150可应用所述操作并且在相关联的一个或多个内容项或一个或多个名称空间的状态中造成冲突。因此,客户端设备自身的操作可在客户端设备处造成冲突,所述冲突是由客户端设备使其自身操作失败并且随后在认为所述操作是另一个设备生成并且传播到客户端设备的新修订的情况下应用相同操作导致的。
图9B示出用于在内容管理系统110处处理提交的示例性方法。在步骤920处,文件日志接口202监控来自客户端设备(例如,客户端设备150)的提交请求。在步骤922处,文件日志接口202从客户端设备150(例如,客户端设备156)接收提交操作的请求。所述请求可标识与提交相关联的操作和与客户端设备150相关联的光标。例如,所述请求可以是来自客户端同步服务156的提交意图806的请求,如图9A所示。因此,所述请求可标识对应于图8所示的意图806的添加操作(例如,添加“Foo.txt”)和客户端设备150处的光标。客户端设备150处的光标可以是由客户端设备150从文件日志接口202接收的最后或最新光标。
如前所述,光标可标识客户端设备150在服务器文件日志148处的位置,所述位置反映了相对于每个名称空间中的每一个在服务器文件日志148处的修订或状态,每个名称空间在客户端设备150处的最新修订或状态。例如,光标可标识每个名称空间在客户端设备150处的服务器文件日志标识符(SJID)。名称空间的SJID指示由客户端设备150获得的该名称空间的最新SJID(例如,行、修订或状态)。光标因此可指示客户端设备150是否已经接收到服务器文件日志148中对客户端设备150处的每个名称空间的最新修订。
响应于提交操作的请求,在步骤924处,文件日志接口202检查与来自客户端设备150的提交相关联的光标。在步骤926处,文件日志接口202确定光标是否在头部。在此,文件日志接口202确定由光标标识的对光标中的每个名称空间的修订(SJID)是否是服务器文件日志148上对该名称空间的最新修订。
例如,如果光标标识名称空间2的SJID 50,则文件日志接口202确定SJID 50是否是服务器文件日志148(例如,日志310)中名称空间2的最新SJID(例如,最新行或修订)。如果这样,则来自客户端设备150的光标在头部,这意味着对于客户端设备150处的每个名称空间,它在服务器文件日志148的端部,这指示客户端设备150已获得服务器文件日志148中对客户端设备150处的每个名称空间的最新修订或状态。如果不是,则来自客户端设备150的光标不在头部,这意味着对于客户端设备150处的每个名称空间,它不在服务器文件日志148的端部,这指示客户端设备150尚未获得服务器文件日志148中对客户端设备150处的每个名称空间的最新修订或状态。换句话讲,客户端设备150处的与一个或多个名称空间相关联的内容项已经过时。
如果光标不在头部,则在步骤928处,文件日志接口202拒绝来自客户端设备150的提交。例如,基于光标不在头部,文件日志接口202可确定与来自客户端设备150的提交相关联的操作修改了过时(例如,不能反映服务器文件日志148处的最新修订)的一个或多个内容项和/或一个或多个名称空间,并且可与服务器文件日志148处对该一个或多个内容项和/或一个或多个名称空间的修订造成冲突。因此,文件日志接口202可拒绝提交,以防止与提交相关联的操作造成冲突。文件日志接口202可向客户端设备150发送指示提交已经被拒绝的响应。文件日志接口202还可向客户端设备150发送服务器文件日志148中的最新修订或状态,或提示客户端设备150执行更新。
如果光标在头部,则在步骤930处,文件日志接口202可接受提交。在一些情况下,文件日志接口202可执行另一项检查,以验证操作在接受提交之前将不会造成冲突。例如,除确定光标在头部之外,文件日志接口202还可将由与提交(例如,意图806)相关联的操作反映的修订与服务器文件日志148处的修订进行比较,以验证即使光标在头部,所述操作也将不会造成冲突。为了示出,假设操作是针对文件的删除操作,并且文件日志接口202确定光标在头部。在接受提交之前,文件日志接口202可验证服务器文件日志148包括将文件添加到特定名称空间的先前修订。如果文件日志接口202确定服务器文件日志148不包括用于将文件添加到名称空间的修订,则文件日志接口202可标识删除操作与缺少添加修订之间的冲突。然后,文件日志接口202可拒绝提交,协调冲突,和/或要求客户端设备150协调冲突。
在接受提交之后,在步骤932处,文件日志接口202基于提交来更新服务器文件日志148。例如,文件日志接口202可将反映与提交相关联的操作的修订写入服务器文件日志148。文件日志接口202可将操作转换成修订,如前所述,并且写入对与所述操作相关联的名称空间的修订。
在步骤934处,文件日志接口202可确定它是否从客户端设备150接收到确认请求。例如,客户端设备150可向文件日志接口202发送针对确认提交的请求,以便确定提交是成功还是失败。在步骤936处,文件日志接口202可对来自客户端设备150的确认请求作出响应。文件日志接口202可通知客户端设备150提交的状态,包括提交是成功还是失败。
在步骤938处,文件日志接口202可撞击与客户端设备150相关联的光标。例如,假设来自客户端设备150的光标在客户端设备150处将名称空间1的SJID 6标识为名称空间1的最新修订并且与提交相关联的操作对应于名称空间1。文件日志接口202可使与名称空间1相关联的光标从SJID 6撞击到SJID 7。文件日志接口202可将更新的光标提供给客户端设备150,并且客户端设备150可将更新的光标用于将来的提交。
文件日志接口202可在更新服务器文件日志148之后或在从客户端设备150接收到确认请求之后撞击光标。在一些情况下,即使文件日志接口202不接受与确认请求相关联的提交,文件日志接口202也可在从客户端设备150接收到确认请求之后撞击光标。例如,如果文件日志接口202从客户端设备150接收到确认请求,则即使文件日志接口202从未接收或批准相关联的提交请求,它也可基于所述确认请求来撞击光标。通过撞击光标,文件日志接口202可保证一旦它向客户端设备150指示尚未接受或记录提交,所述提交就将不会随后被接受或记录。
例如,当客户端设备150向文件日志接口202发送提交的请求时,在一些情况下,请求可能由于各种原因(诸如网络或计算问题(例如,等待时间,拥堵,崩溃、客户端任务取消等))而暂时丢失或延迟。因此,文件日志接口202可能在晚于预期之前不会接收到提交请求。例如,文件日志接口202可从客户端设备150接收确认请求,对确认请求作出响应,以仅稍后从客户端设备150接收提交的原始请求。在这个实例中,如果文件日志接口202在具有未记录、接收或批准提交的指示的情况下对客户端设备150作出响应并且随后接收并批准/记录所述提交,则此类提交可在内容管理系统110与客户端设备150处的状态之间造成冲突。
因此,为了保证当文件日志接口202告诉客户端设备150并未记录或批准提交时,此类提交即使随后由文件日志接口202接收,也将不会在稍后提交,文件日志接口202可撞击光标以在丢失或延迟提交重新出现的情形下确保它将被拒绝。例如,当文件日志接口202在响应于客户端设备150并未记录或批准提交之后接收到提交请求时,文件日志接口202检查光标是否在头部,如步骤926中所述。由于自从客户端设备150初始地发送提交请求以来,文件日志接口202已经撞击光标,因此文件日志接口202将确定与提交请求相关联的光标不在头部,并且之后拒绝提交请求,如步骤928中所述。因此,文件日志接口202可防止由在处理或传输期间延迟或丢失的提交导致的冲突或错误。换句话讲,如果当光标被撞击时并未批准或接收到提交,则撞击光标将确保此类提交从未被批准或记录。
如前所述,这也防止在客户端设备150处来自自编写操作的冲突发生。例如,如果客户端设备150使在客户端设备150处的提交意图失败,则撞击光标将确保失败的提交随后不会被文件日志接口202记录并且传播到客户端设备150。
撞击光标还可防止可用其他方法(诸如,客户端设备150和/或文件日志接口202可重试失败的提交的“再次提交”方法)潜在地造成各种修改或提交竞赛。以下是通过撞击光标防止的这种竞赛或条件的非限制性实例。
客户端设备150记录向块列表A添加“Foo.txt”的意图806。来自客户端设备150的提交请求被分派到文件日志接口202,但是在网络处被延迟。此外,客户端设备150在发送提交之后崩溃。客户端设备150然后返回在线,并且在恢复模式下尝试重新提交添加。文件日志接口202拒绝提交,因为“Foo.txt”在其他地方已经是最新。客户端设备150将拒绝的提交解释为其自己正在运行的提交已经失败的证据,并且因此清除在客户端设备150处提交高速缓存/日志记录的意图。然后,客户端设备150将客户端设备150上的“Foo.txt”编辑到块列表B。“Foo.txt”被另一个用户或设备远程删除。然后,来自客户端设备150的针对意图806的原始提交请求到达文件日志接口202并且被文件日志接口202接受。客户端设备150然后以与向块列表B编辑“Foo.txt”相同的路径从文件日志接口202撤回(pull)向块列表A添加“Foo.txt”。客户端设备150现在向块列表B编辑“Foo.txt”与其自己先前向块列表A添加“Foo.txt”之间具有冲突。因此,客户端设备150自身无意地发生了冲突。
通过撞击光标将防止出现这种示例性场景。例如,当文件日志接口202稍后接收到向块列表A添加“Foo.txt”的提交时,文件日志接口202检查光标并且确定光标不在头部(例如,步骤926),因为自从客户端设备150发送提交以来光标已经被撞击。然后,文件日志接口202将拒绝提交,并且防止客户端设备150从文件日志接口202撤回向块列表A添加“Foo.txt”。因此,一旦客户端设备150确定提交已经失败并且清除了提交高速缓存/日志记录的意图,就保证所述提交永远不会成功。因此,文件日志接口202和客户端设备150可保证客户端设备150在先前实例中编辑“Foo.txt”之后,将不会撤回向块列表A添加“Foo.txt”,并且在相同路径处在向块列表A添加“Foo.txt”与向块列表B编辑“Foo.txt”之间造成冲突。
树数据结构的再同步
图10示出用于在客户端设备150处重构树数据结构(例如,610、620、630)的示例性再同步过程。如前所述,树数据结构(610、620、630)在客户端设备150处用于持久化关于在客户端设备150与内容管理系统110之间同步的内容项的元数据和状态信息。如果需要,再同步过程在此可在客户端设备150处重构树数据结构。例如,如果客户端设备150处的树数据结构和持久化的元数据被损坏或损毁,则再同步过程可在客户端设备150上重建树和元数据,并且使客户端设备150处的本地状态与内容管理系统110处的远程状态再同步。
在一些情况下,如果客户端设备150遇到严重的同步问题或错误,则它可通过在客户端设备150处清除和重构树和元数据而不是尝试修复当前树和元数据的任何问题而更容易或更好地恢复。再同步过程允许清除和重构树和元数据以解决此类问题。
在步骤1002处,触发再同步过程以用于根据与内容管理系统110处的用户账户相关联的内容项的当前状态在客户端设备150处构造树数据结构(610、620、630)。如果客户端设备150处的树和元数据丢失或被损坏,或者同步服务遇到可通过在客户端设备150处重建树和元数据而解决的问题,则可触发再同步过程。
一旦再同步过程被触发,客户端设备150就可进入再同步过程的阶段1。阶段1可被称为用于重构本地树(例如,630)和远程树(例如,610)的“再同步哈希和列表”阶段。在步骤1004处,客户端设备150(例如,客户端同步服务156)基于客户端设备150处的内容项来构造本地树(例如,630)。再同步过程不同于新安装场景,因为它涉及客户端设备150具有来自先前安装的现有内容项,但是遇到重构内容项的树和元数据的需要的情况。因此,内容项可在客户端设备150处提供本地文件系统状态的快照,再同步过程可使用所述快照来重构本地树。可稍后使在内容项与远程状态之间的任何改变同步,如下所述。
具体地,客户端设备150可爬取客户端设备150处的内容项并且对所述内容项进行索引以生成本地树。本地树反映客户端设备150处的本地文件系统状态。在一些情况下,客户端设备150执行重新索引操作并且哈希在客户端设备150处找到的内容项。然后,客户端设备150基于其在客户端设备150处找到的内容项来生成本地树。本地树可包括表示在客户端设备150处找到的每个内容项以及内容项元数据(例如,文件名、文件ID、目录ID等)的节点,如前所述。每个节点可存储其相关联的内容项或阻止列表的哈希和/或内容项元数据。
在步骤1006处,客户端设备150可基于内容管理系统110处的状态在客户端设备150处构造远程树。客户端设备150可从内容管理系统110接收远程快照,所述远程快照提供内容项的远程状态。客户端设备150可处理远程更新,直到其达到当前或最新状态为止。客户端设备150可向内容管理系统110发送列表请求,以确定内容管理系统110处的状态和修订。内容管理系统110可将如前所述指示内容管理系统110上服务器文件日志148处的状态或修订的光标返回至客户端设备150。当客户端设备150的后续列表请求返回相同的光标时,客户端设备150可确定已经接收到来自内容管理系统110的所有更新并且客户端设备150处的远程状态是最新的。
基于来自内容管理系统110的远程更新,客户端设备150构造远程树以反映来自内容管理系统110的远程快照。一旦本地树和远程树已被构造,客户端设备150就可移动至再同步过程的阶段2。客户端设备150可在阶段2期间“冻结”本地树和远程树,以防止在客户端设备150处理阶段2时改变。在一些情况下,客户端设备150可防止在阶段1和阶段2期间将任何改变提交给内容管理系统110或尝试重构远程改变。
阶段2可被称为用于生成同步树(例如,620)的“重新关联”阶段。在步骤1008处,客户端设备150比较本地树和远程树以标识在本地树与远程树之间的任何匹配。在步骤1010处,基于所述比较,客户端设备150构造同步树。同步树可以是本地树的与远程树匹配的前缀。同步树可包括本地树与远程树之间共同的任何节点或信息。因此,同步树可表示本地树与远程树之间一致的任何状态或元数据。因此,同步树可提供基线状态或真实情况,并且标识本地状态和远程状态的不同部分。
在一些情况下,可在远程树中搜索本地树中的每个节点。如果匹配项被标识,则将所述节点添加至同步树。例如,可基于内容项的唯一标识符(例如,文件ID)和/或其他元数据(诸如文件名、目录标识符等)在远程树中搜索本地树中的每个内容项。当在远程树中找到本地树中的内容项时,将所述内容项添加至同步树。
在一些实例中,客户端设备150针对本地树中的每个文件标识符检查在远程树中是否找到文件标识符和/或其目录标识符、文件名、元数据等。如果本地树中的节点(例如,文件标识符、目录标识符、文件名、元数据等)与远程树中的另一个节点匹配,则可将匹配的节点添加至同步树。通过使本地树与远程树之间的节点匹配,客户端设备150可迭代地构造同步树。
如果在远程树中找不到针对本地树中的节点或文件标识符的匹配,则客户端设备150可从同步树中排除所述节点。在一些情况下,如果在远程树中找不到针对本地树中的节点或文件标识符的匹配,则客户端设备150可查询内容管理系统110以确定内容管理系统110是否具有含有对应于节点属性(例如,文件标识符、目录标识符、文件名和/或元数据)的内容项的任何记录。例如,客户端设备150可基于与本地树中的节点相关联的文件标识符、目录标识符、文件名和/或元数据来查询内容管理系统110,以确定内容管理系统110是否具有曾经具有此类属性(例如,文件标识符、目录标识符、文件名、元数据等)的内容项的记录。内容管理系统110可接收查询并且在服务器文件日志148中执行搜索以确定服务器文件日志148是否具有含有特定文件标识符、目录标识符、文件名和/或元数据的内容项的任何记录。如果内容管理系统110标识用于内容项的匹配记录,则客户端设备150可将来自本地树的对应的节点添加至同步树。
为了示出,客户端设备150可询问内容管理系统110服务器文件日志148上是否曾经存在给定的元组(例如,文件标识符、目录标识符、文件名和/或元数据)。文件日志接口202可检查服务器文件日志148上的日志(例如310)中的任何行是否对应于给定元组中的文件标识符。服务器文件日志148上日志中的行可提供相应的文件标识符、文件名、目录标识符和/或元数据。文件日志接口202可过滤行中与给定元组中的文件标识符、目录标识符、文件名和/或元数据匹配的条目。如果文件日志接口202标识日志中包含文件标识符和/或文件名的行,则文件日志接口202可验证该行的目录标识符字段中的值是否与给定元组中的目录标识符匹配。目录标识符字段允许文件日志接口202确定匹配行中的文件名或文件标识符的路径是否与给定元组中的路径匹配。如果文件日志接口202标识用于文件标识符和/或文件名的匹配行并且确定给定元组中的文件标识符或文件名的路径与匹配行中的路径匹配,则文件日志接口202可通知客户端设备150服务器文件日志148具有驻留在相同路径处的相同内容项的先前记录。然后,客户端设备150可将与该内容项和路径相关联的节点添加至同步树。
一旦在将本地树中的每个节点与远程树中的节点和/或内容管理系统110上的记录进行比较之后,同步树已经被构造,客户端设备150就可移动至再同步过程的阶段3。
在阶段3中,在步骤1012处,客户端设备150基于本地树、远程树和同步树执行递增同步。如果本地树在阶段1处被构造时反映了完全同步的状态,则本地树、远程树和同步树应相同并且完全同步。在这种情况下,递增同步可能是不必要的。
如果在步骤1010处构造的同步树指示远程状态与本地文件系统状态之间的冲突,则客户端设备150标识远程状态和本地文件系统状态中的任何差异并且执行递增同步以使远程状态和本地文件系统状态收敛并且解决冲突,如先前关于图7A和图7B所描述。在递增同步之后,本地树、远程树和同步树应相同并且完全同步。
图11示出如先前在图10中描述的再同步过程的图。在客户端设备150处已触发再同步过程之后,图从阶段1(例如,步骤1004、1006)开始。在这个实例中,在阶段1处,客户端设备150基于客户端设备150处的内容项来构造本地树630,并且基于与客户端设备150相关联的内容项在内容管理系统110上的远程状态来构造远程树610。因此,当再同步过程被触发时,本地树630反映本地文件系统状态,并且远程树610反映在内容管理系统110上服务器文件日志148中对应的状态。
本地树630包括根节点1102和节点1104,所述根节点1102对应于客户端设备150处的根目录,所述节点1104对应于根目录内的子目录或文件夹“/Bar”。根节点1102和节点1104可存储相应的内容或阻止列表哈希,所述相应的内容或阻止列表哈希可唯一地标识与每个节点以及相应的元数据(诸如文件标识符、目录标识符、文件名、修订编号、内容属性、时间戳等)相关联的内容(或改变)。
远程树610包括根节点1102、节点1104和节点1106,所述节点1106对应于存储在内容管理系统110处“/Bar/”内的“Foo.txt”。远程树610上的节点1102、1104、1106可类似地包括如先前关于本地树630所解释的相应的哈希和相应的元数据。此外,可基于从内容管理系统110(例如,文件日志接口202)接收的修订或操作来将节点1102、1104、1106添加至远程树610,所述修订或操作反映与客户端设备150和/或客户端设备150处的用户账户相关联的内容项在服务器文件日志148处的远程状态。
在阶段2处,基于本地树630和远程树610来构造同步树620。为了构造同步树620,客户端设备150将本地树630中的每个节点与远程树610中的每个节点进行比较以确定哪些(如果有的话)节点匹配。例如,客户端设备150可搜索远程树610以确定本地树630中的节点1102和1104是否包含在远程树610中。客户端设备150然后用任何匹配的节点填充同步树620。
例如,客户端设备150可使用来自本地树630中的根节点1102的文件标识符和/或元数据(例如,文件名、目录标识符等)来搜索远程树610。如果客户端设备150在远程树610中标识匹配,则客户端设备150可确定根节点1102也包含在远程树610中。客户端设备150然后可将根节点1102添加至同步树620。然后,客户端设备150使用来自本地树630中的节点1104的文件标识符和/或元数据(例如,文件名、目录标识符等)来搜索远程树610。如果客户端设备150在远程树610中标识匹配,则客户端设备150可确定节点1104也包含在远程树610中。客户端设备150然后可将节点1104添加至同步树620。
在一些情况下,如果客户端设备150确定在远程树610中找不到本地树630中的节点,则客户端设备150可查询内容管理系统110以检查与该节点相关联的内容项先前是否存在于内容管理系统110中。例如,客户端设备150可要求内容管理系统110搜索服务器文件日志148中包含与内容项相关联的文件标识符和/或与内容项相关联的元数据(例如,文件名,路径、目录标识符等)的任何记录。这样,客户端设备150可确定该内容项是添加在客户端设备150处的从未与内容管理系统110同步的新内容项,还是先前在内容管理系统110处的内容项。如果客户端设备150确定内容项确实是先前在内容管理系统110处的,则客户端设备150可在同步树620中添加对应的节点。当在远程树610中找不到所述节点时,客户端设备150可将所述节点包括在同步树620中以稍后验证所述节点是否本来应该或不应该从远程树610移除。由于所述节点位于本地树630中(这指示相关联的内容项存储在客户端设备150处)并且所述内容项是先前在内容管理系统110处的,因此客户端设备150可在它执行递增同步时决定在阶段3解决不一致问题。
在这个实例中,在阶段2之后,同步树620包括根节点1102和节点1104。然而,同步树620不包括远程树610中的节点1106。这反映在本地树630与远程树610之间的不一致。不一致可能是由于与内容管理系统110或客户端设备150不同步的更新或操作(例如,添加或删除)引起的。
在阶段3处,客户端设备150可执行递增同步以解决本地树630与远程树610之间的冲突。客户端设备150可确定是应将节点1106从远程树610移除还是应添加至同步树620和本地树630。在这个实例中,客户端设备150确定节点1106是基于与客户端设备150不同步的“Foo.txt”在内容管理系统110处的添加。因此,客户端设备150将节点1106添加至同步树620和本地树630。
可替代地,如果客户端设备150确定在最新修订中已删除“Foo.txt”并且节点1106应从远程树610移除,则客户端设备150可从远程树610删除节点1106,而不是将节点1106添加至同步树620和本地树630。例如,在本地树630中缺少节点1106可指示“Foo.txt”在客户端设备150处被删除并且删除事件从未与内容管理系统110成功同步。通过递增同步,客户端设备150可因此确定本地树630和同步树610应保持没有节点1106并且删除操作应与内容管理系统110同步。客户端设备150可同步删除操作并且更新远程树610以移除节点1106。
图12示出计算系统1200的实例,所述计算系统1200可以是例如构成客户端设备150、内容管理系统110或其任何组件的任何计算设备,其中系统的组件使用连接1205彼此通信。连接1205可以是通过总线的物理连接或诸如在芯片组架构中与处理器1210的直接连接。连接1205也可以是虚拟连接、网络连接或逻辑连接。
在一些实施方案中,计算系统1200是分布式系统,其中本公开中所描述的功能可分布在一个数据中心、多个数据中心、对等网络等内。在一些实施方案中,所描述的系统组件中的一个或多个表示许多此类组件,每个此类组件执行描述组件的功能中的一些或全部。在一些实施方案中,组件可以是物理设备或虚拟设备。
示例性系统1200包括至少一个处理单元(CPU或处理器)1210和连接1205,所述连接1205将各种系统组件(包括系统存储器1215,诸如只读存储器(ROM)1220和随机存取存储器(RAM)1225)耦合到处理器1210。计算系统1200可包括与处理器1210直接连接、紧密接近处理器1210或者作为处理器1210的一部分集成的高速存储器1212的高速缓存。
处理器1210可包括任何通用处理器和硬件服务或软件服务,诸如存储在存储设备1230中的服务1232、1234和1236,其被配置来控制处理器1210;以及专用处理器,其中软件指令被并入到实际的处理器设计中。处理器1210实质上可以是完全独立成套的计算系统,其包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或不对称的。
为了实现用户交互,计算系统1200包括输入设备1245,所述输入设备1245可表示任何数目的输入机制,诸如用于语音的传声器、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。计算系统1200还可包括输出设备1235,所述输出设备1235可以是本领域技术人员已知的多个输出机制中的一个或多个。在一些情况下,多模态系统可使用户能够提供多种类型的输入/输出以与计算系统1200通信。计算系统1200可包括通信接口1240,所述通信接口1240总体上可支配并管理用户输入和系统输出。在任何特定硬件布置上没有操作限制,并且因此本文的基本特征可以很容易地替代随着开发而改进的硬件或固件布置。
存储设备1230可以是非易失性存储设备并且可以是硬盘或可存储可由计算机访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储器设备、数字多用光盘、盒式磁盘(cartridge)、随机存取存储器(RAM)、只读存储器(ROM)和/或这些设备的一些组合。
存储设备1230可包括软件服务、服务器、服务等,当定义此类软件的代码由处理器1210执行时其致使系统执行功能。在一些实施方案中,执行特定功能的硬件服务可包括存储在计算机可读介质中并与必要的硬件组件(诸如处理器1210、连接1205、输出设备1235等)一起实现功能的软件组件。
为了解释清楚,在一些情况下,本技术可以被呈现为包括单独的功能块,所述单独的功能块包括包括有设备、设备组件、软件中体现的方法中的步骤或例程或者硬件和软件的组合的功能块。
本文所述的任何步骤、操作、功能或过程可单独地或与其他设备组合地用硬件和软件服务来执行或实现。在一些实施方案中,服务可以是驻留在客户端设备的存储器和/或内容管理系统的一个或多个服务器中的软件并且当处理器执行与服务相关联的软件时执行一个或多个功能。在一些实施方案中,服务是执行特定功能的程序或程序集合。在一些实施方案中,服务可被认为是服务器。存储器可以是非暂时性计算机可读介质。
在一些实施方案中,计算机可读存储设备、介质和存储器可以包括包含比特流等的有线或无线信号。然而,当提及时,非暂时性计算机可读存储介质本身明确地排除了诸如能量、载波信号、电磁波和信号的介质。
根据上述实例的方法可以使用计算机可读介质存储或以其他方式获得的计算机可执行指令来实现。此类指令可以包括例如使得或以其他方式配置通用计算机、专用计算机或专用处理设备来执行某一功能或一组功能的指令和数据。所使用的计算机资源的部分可以通过网络访问。计算机可执行指令可以是例如二进制文件、中间格式指令(诸如汇编语言)、固件或源代码。可用于存储指令、所使用的信息和/或在根据所述实例的方法期间创建的信息的计算机可读介质的实例包括磁盘或光盘、固态存储器设备、闪存、提供有非易失性存储器的USB设备、网络存储设备等。
实现根据这些公开的方法的设备可以包括硬件、固件和/或软件,并且可以采取多种形态因素中的任一种。此类形态因素的典型实例包括服务器、膝上型计算机、智能电话、小型个人计算机、个人数字助理等。本文描述的功能性也可以在外围设备或插入卡中体现。作为另外的实例,此种功能性还可以在不同芯片中的电路板上或者在单个设备中执行的不同进程中实现。
指令、用于传送此类指令的介质、用于执行所述指令的计算资源以及用于支持此类计算资源的其他结构是用于提供这些公开中所述的功能的手段。
尽管使用多种实例和其他信息来解释处于所附权利要求书的范围内的方面,但是基于此类实例中的特定特征或布置不应暗示权利要求书的限制,因为普通技术人员将能够使用这些实例推导出多种多样的实现方式。此外,尽管一些主题可能已用特定于结构特征和/或方法步骤的实例的语言进行描述,但是应理解,所附权利要求书中限定的主题不必限于这些描述的特征或动作。例如,此种功能性可以不同地分布或者在除了本文鉴别的组件之外的组件中执行。相反,所述特征和步骤被公开为处于所附权利要求书的范围内的系统和方法的组件的实例。

Claims (20)

1.一种方法,其包括:
通过客户端设备标识存储在所述客户端设备处并且与内容管理系统处的用户账户相关联的一组本地内容项;
基于所述一组本地内容项,通过所述客户端设备生成表示所述客户端设备处的文件系统状态的本地树数据结构,所述本地树数据结构包括对应于所述一组本地内容项中的每一个的相应的本地节点;
从所述内容管理系统接收服务器状态,所述服务器状态标识存储在所述内容管理系统处并且与所述用户帐户相关联的一组远程内容项;
基于所述服务器状态,通过所述客户端设备生成表示所述一组远程内容项的远程树数据结构,所述远程树数据结构包括对应于所述一组远程内容项中的每一个的相应远程节点;
基于所述本地树数据结构和所述远程树数据结构,通过所述客户端设备生成同步树数据结构,所述同步树数据结构包括在所述本地树数据结构和所述远程树数据结构中的一组匹配节点,所述同步树数据结构表示所述文件系统状态与所述服务器状态之间的同步状态;以及
将所述本地树数据结构、所述远程树数据结构和所述同步树数据结构存储在所述客户端设备处。
2.如权利要求1所述的方法,其中标识存储在所述客户端设备处的所述一组本地内容项包括:
爬取所述客户端设备处的存储装置以标识所述客户端设备处的所述一组本地内容项;
对所述一组本地内容项进行索引;以及
针对所述一组本地内容项中的每一个计算相应哈希值。
3.如权利要求2所述的方法,其中所述本地树数据结构中的每个相应的本地节点包括针对所述一组本地内容项中对应的本地内容项计算的所述相应哈希值以及与所述对应的本地内容项相关联的相应的元数据。
4.如权利要求3所述的方法,其中所述相应的元数据包括相应的文件标识符、相应的目录标识符或相应的内容项名称中的至少一者。
5.如权利要求4所述的方法,其中所述远程树数据结构中的每个相应的远程节点包括针对所述一组远程内容项中对应的远程内容项计算的第二相应哈希值以及与所述对应的远程内容项相关联的相应的元数据。
6.如权利要求1所述的方法,其中生成所述同步树数据结构包括:
对于所述本地树数据结构中的每个相应的本地节点:
确定所述相应的本地节点是否与所述远程树数据结构中的多个远程节点中的一个匹配;以及
当所述相应的本地节点与所述远程树数据结构中的所述多个远程节点中的一个匹配时,向所述同步树数据结构添加所述相应的本地节点。
7.如权利要求6所述的方法,其还包括当所述相应的本地节点与所述远程树数据结构中的所述多个远程节点中的一个不匹配时,从所述同步树数据结构中排除所述相应的本地节点。
8.如权利要求7所述的方法,其中确定所述相应的本地节点是否与所述远程树数据结构中的所述多个远程节点中的一个匹配包括:针对与所述相应的本地节点相关联的相应的文件标识符、与所述相应的本地节点相关联的相应的目录标识符或与所述相应的本地节点相关联的相应的内容项名称中的至少一者搜索所述远程树数据结构。
9.如权利要求8所述的方法,其还包括:
在当所述相应的本地节点与所述远程树数据结构中的所述多个远程节点中的一个不匹配时从所述同步树数据结构中排除所述相应的本地节点之前,针对包括与所述相应的本地节点相关联的所述相应的文件标识符、与所述相应的本地节点相关联的所述相应的目录标识符或与所述相应的本地节点相关联的所述相应的内容项名称中的至少一者的记录查询所述内容管理系统处的修订日志;以及
仅当所述内容管理系统指示所述修订日志不包含包括所述相应的文件标识符、所述相应的目录标识符或所述相应的内容项名称中的至少一者的所述记录时,才从所述同步树数据结构中排除所述相应的本地节点。
10.如权利要求1所述的方法,其还包括:
标识所述同步树数据结构与所述远程树数据结构之间的差异,所述差异表示所述服务器状态与所述文件系统状态之间的一个或多个冲突;
使所述服务器状态和所述文件系统状态收敛以产生再同步状态;以及
基于所述再同步状态来使所述本地树数据结构、所述同步数据结构和所述远程树数据结构同步。
11.一种包括指令的非暂时性计算机可读介质,所述指令在由计算设备执行时致使所述计算设备:
爬取客户端设备处的存储装置以标识所述客户端设备处的内容项;
基于所述爬取来标识所述客户端设备处的所述存储装置上的一组本地内容项;
标识与所述客户端设备处的所述存储装置上所标识的所述一组本地内容项相关联的元数据;
基于所述元数据来构造表示在所述客户端设备处的所述存储装置上的所述一组本地内容项的本地树数据结构,所述本地树数据结构包括表示所述一组本地内容项中的每一个的相应的本地节点;并且
将所述本地树数据结构存储在所述客户端设备上。
12.如权利要求11所述的非暂时性计算机可读介质,其中用于标识所述一组本地内容项的所述指令包括致使所述计算设备进行以下各项的指令:
基于所述爬取来对所述一组本地内容项进行索引;并且
针对所述一组本地内容项中的每一个计算相应哈希值。
13.如权利要求12所述的非暂时性计算机可读介质,其中所述本地树数据结构中的每个相应的本地节点包括针对所述一组本地内容项中的每一个计算的所述相应哈希值以及相应的元数据。
14.如权利要求13所述的非暂时性计算机可读介质,其中所述相应的元数据包括相应的唯一标识符、相应的路径或相应的内容项名称中的至少一者。
15.如权利要求11所述的非暂时性计算机可读介质,其中所述一组本地内容项与内容管理系统处的用户账户相关联,所述指令进一步致使所述计算设备:
构造表示与所述内容管理系统处的所述用户账户相关联的内容项的远程状态的远程树数据结构;并且
基于所述本地树数据结构和所述远程树数据结构来构造同步树数据结构。
16.如权利要求11所述的非暂时性计算机可读介质,其中用于构造所述同步树数据结构的指令包括致使所述计算设备进行以下各项的指令:
对于所述本地树数据结构中的每个本地节点:
确定所述本地节点是否与所述远程树数据结构上的远程节点匹配;并且
当所述本地节点与所述远程树数据结构中的所述远程节点匹配时,向所述同步树数据结构添加所述本地节点的副本。
17.如权利要求16所述的非暂时性计算机可读介质,其还包括当所述本地节点与所述远程树数据结构中的所述远程节点不匹配时,从所述同步树数据结构中排除所述本地节点的所述副本。
18.如权利要求17所述的非暂时性计算机可读介质,其中所述确定所述本地节点是否与所述远程树数据结构中的所述远程节点匹配包括:针对与所述本地节点相关联的相应的唯一标识符、与所述本地节点相关联的相应的路径或与所述本地节点相关联的相应的内容项名称中的至少一者搜索所述远程树数据结构。
19.如权利要求18所述的非暂时性计算机可读介质,其还包括致使所述计算设备进行以下各项的指令:
在当所述本地节点与所述远程树数据结构中的所述多个远程节点中的一个不匹配时从所述同步树数据结构中排除所述本地节点之前,针对包括与所述本地节点相关联的所述相应的唯一标识符、与所述本地节点相关联的所述相应的路径或与所述本地节点相关联的所述相应的内容项名称中的至少一者的记录查询所述内容管理系统处的修订日志;并且
仅当所述内容管理系统指示所述修订日志不包含所述记录时才从所述同步树数据结构中排除所述本地节点。
20.如权利要求11所述的非暂时性计算机可读介质,其还包括致使所述计算设备进行以下各项的指令:
检测到所述本地树数据结构从所述客户端设备中缺失;
响应于所述检测到所述本地树数据结构缺失,触发在所述客户端设备处重构所述本地树数据结构,所述重构包括:所述爬取所述存储装置,标识所述元数据,构造所述本地树数据结构,以及存储所述本地树数据结构。
CN201880083815.7A 2017-12-28 2018-12-12 再同步内容管理系统中的元数据 Active CN111512302B (zh)

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/863,819 US10691720B2 (en) 2017-12-28 2018-01-05 Resynchronizing metadata in a content management system
US15/863,819 2018-01-05
US15/870,179 US10789269B2 (en) 2017-12-28 2018-01-12 Resynchronizing metadata in a content management system
US15/870,179 2018-01-12
PCT/US2018/065091 WO2019133249A1 (en) 2017-12-28 2018-12-12 Resynchronizing metadata in a content management system

Publications (2)

Publication Number Publication Date
CN111512302A true CN111512302A (zh) 2020-08-07
CN111512302B CN111512302B (zh) 2024-04-12

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 Pending CN111527487A (zh) 2017-12-28 2018-12-10 用于内容项同步的唯一标识符的指配和再分配
CN201880083815.7A Active CN111512302B (zh) 2017-12-28 2018-12-12 再同步内容管理系统中的元数据
CN201880073349.4A Active CN111448558B (zh) 2017-12-28 2018-12-12 增量客户端同步
CN201880083720.5A Active CN111566633B (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 (3)

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 Pending CN111527487A (zh) 2017-12-28 2018-12-10 用于内容项同步的唯一标识符的指配和再分配

Family Applications After (6)

Application Number Title Priority Date Filing Date
CN201880073349.4A Active CN111448558B (zh) 2017-12-28 2018-12-12 增量客户端同步
CN201880083720.5A Active CN111566633B (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 客户端同步更新的有效管理

Country Status (8)

Country Link
US (58) US10866963B2 (zh)
EP (10) EP3714373B1 (zh)
JP (12) JP7075998B2 (zh)
KR (10) KR102432304B1 (zh)
CN (10) CN111512301B (zh)
AU (12) AU2018395857B2 (zh)
CA (10) CA3085998C (zh)
WO (10) WO2019133228A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115086757A (zh) * 2021-03-12 2022-09-20 北京字跳网络技术有限公司 一种历史剪辑操作的回撤方法、装置、设备及存储介质

Families Citing this family (152)

* Cited by examiner, † Cited by third party
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
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US10218817B2 (en) * 2015-04-28 2019-02-26 Microsoft Technology Licensing, Llc Digital rights list for device groups
US9697269B2 (en) 2015-10-29 2017-07-04 Dropbox, Inc. Content item block replication protocol for multi-premises hosting of digital content items
CN106657254B (zh) * 2016-10-25 2019-10-25 Oppo广东移动通信有限公司 一种联系人信息的同步方法、装置及系统
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11269888B1 (en) * 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
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
WO2019139595A1 (en) * 2018-01-11 2019-07-18 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
TWI678618B (zh) * 2018-06-22 2019-12-01 慧榮科技股份有限公司 快閃記憶裝置的命名空間操作方法及裝置
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
EP3647887B1 (de) * 2018-10-29 2022-01-05 VEGA Grieshaber KG Verfahren und vorrichtung zur weitergabe einer zugriffsinformation für einen zugriff auf ein feldgerät der prozessindustrie
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
WO2020111197A1 (ja) * 2018-11-30 2020-06-04 了宣 山本 文書整理支援システム
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
US11113249B2 (en) 2019-04-05 2021-09-07 Sap Se Multitenant application server using a union file system
US10956140B2 (en) 2019-04-05 2021-03-23 Sap Se Software installation through an overlay file system
US11232078B2 (en) * 2019-04-05 2022-01-25 Sap Se Multitenancy using an overlay 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 杭州电子科技大学 一种基于知悉范围加密的电子文件访问控制方法和系统
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
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
US11301489B2 (en) * 2019-08-06 2022-04-12 Microsoft Technology Licensing, Llc Synchronizing online and offline transfer of data to cloud storage system
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
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 株式会社日立製作所 情報処理システム及び情報処理方法
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
US20220083679A1 (en) * 2020-09-14 2022-03-17 Box, Inc. Broker-assisted workflows
US11537670B2 (en) * 2020-09-14 2022-12-27 Open Text Holdings, Inc. System and method for event driven generation of content
CN112163043A (zh) * 2020-09-27 2021-01-01 万汇互联(深圳)科技有限公司 一种CopyTrade信号复制系统
US11463446B2 (en) 2020-09-28 2022-10-04 Dropbox, Inc. Team member transfer tool
US11604769B2 (en) * 2020-10-19 2023-03-14 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
US11537786B2 (en) * 2020-11-16 2022-12-27 Dropbox, Inc. Generating fillable documents and fillable templates in a collaborative environment
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 湖南麒麟信安科技股份有限公司 一种面向网络存储系统的通用权限与配额管理系统与方法
US20220188273A1 (en) * 2020-12-14 2022-06-16 Dropbox, Inc. Per-node metadata for custom node behaviors across platforms
US11789976B2 (en) * 2020-12-21 2023-10-17 Dropbox, Inc. Data model and data service for content management system
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
US11803652B2 (en) 2020-12-21 2023-10-31 Dropbox, Inc. Determining access changes
CN112597159A (zh) * 2020-12-22 2021-04-02 深圳集智数字科技有限公司 用户唯一标识信息的维护方法及装置
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
US20220247590A1 (en) * 2021-01-29 2022-08-04 Apple Inc. Electronic conferencing
US11715950B2 (en) 2021-01-29 2023-08-01 ClearTrace Technologies, Inc. Sustainable energy physical delivery tracking and verification of actual environmental impact
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 广州中国科学院计算机网络信息中心 一种标识资源存储和标记管理的方法
US11537634B2 (en) * 2021-03-30 2022-12-27 Netapp, Inc. Methods for hierarchical propagation in tree structures and devices thereof
US11134119B1 (en) 2021-03-30 2021-09-28 Dropbox, Inc. Intent tracking for asynchronous operations
CN113132216B (zh) * 2021-04-20 2023-06-27 北京京东振世信息技术有限公司 即时通信方法、装置及可读存储介质和电子设备
CN113126928B (zh) * 2021-04-22 2024-01-23 北京百度网讯科技有限公司 文件移动方法及装置、电子设备和介质
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
CN112882920B (zh) * 2021-04-29 2021-06-29 云账户技术(天津)有限公司 告警策略验证方法、装置、电子设备和可读存储介质
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
US20230094648A1 (en) * 2021-09-30 2023-03-30 Dropbox, Inc. Backup feature provided by bidirectional synchronized content management system
US11546358B1 (en) * 2021-10-01 2023-01-03 Netskope, Inc. Authorization token confidence system
CN114063925A (zh) * 2021-11-19 2022-02-18 研祥智能科技股份有限公司 存储设备排序方法
WO2023096134A1 (ko) * 2021-11-25 2023-06-01 삼성전자주식회사 전자 장치 내에서 제스처 인식 성능 개선을 위한 러닝 방법
WO2023102143A1 (en) 2021-12-01 2023-06-08 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 成都鲁易科技有限公司 云备份中路径冲突的处理方法、装置及电子设备
CN114172744A (zh) * 2022-01-12 2022-03-11 深圳市安田数据服务有限公司 一种用于多个服务器间的数据传输系统及数据传输方法
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
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
CN115470207A (zh) * 2022-11-02 2022-12-13 深圳联友科技有限公司 一种基于消息队列和计算框架的数据接入系统及方法
CN116561089B (zh) * 2023-07-10 2023-09-19 成都泛联智存科技有限公司 数据同步方法、装置、客户端和计算机可读存储介质
CN117041244A (zh) * 2023-08-25 2023-11-10 广东保伦电子股份有限公司 一种批量上传音频文件的实现方法及处理终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060155776A1 (en) * 2005-01-10 2006-07-13 Microsoft Corporation Method and system for synchronizing cached files
US20070245353A1 (en) * 2006-03-14 2007-10-18 Amir Ben-Dor Secure integration of a local and a remote application
US20140372376A1 (en) * 2013-06-13 2014-12-18 Box, Inc. Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
CN106576078A (zh) * 2014-08-26 2017-04-19 Ctera网络有限责任公司 用于在云存储系统中路由数据流的方法和系统

Family Cites Families (556)

* Cited by examiner, † Cited by third party
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
JPH087709B2 (ja) 1989-05-15 1996-01-29 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン アクセス特権制御方法及びシステム
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
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
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
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
US6618735B1 (en) 1999-06-30 2003-09-09 Microsoft Corporation System and method for protecting shared system files
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 엘지전자 주식회사 웹 기반 전송장비의 관리 데이터 동기 방법
US7269735B2 (en) 2000-08-28 2007-09-11 Contentgaurd Holdings, Inc. Instance specific digital watermarks
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
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
EP1563389A4 (en) 2001-08-01 2008-06-25 Actona Technologies Ltd VIRTUAL DATA DISTRIBUTION 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
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
US7051039B1 (en) 2001-09-28 2006-05-23 Oracle International Corporation Mechanism for uniform access control in a database system
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 富士通株式会社 電子ドキュメント印刷プログラムおよび電子ドキュメント印刷システム
ATE363695T1 (de) 2002-11-14 2007-06-15 Alcatel Lucent Verfahren und anbieter zur systemsynchronisation
US8676843B2 (en) 2002-11-14 2014-03-18 LexiNexis Risk Data Management Inc. Failure recovery in a parallel-processing database system
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 情報処理装置、およびコンテンツ管理方法、コンテンツ情報管理方法、並びにコンピュータ・プログラム
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7890543B2 (en) * 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7275177B2 (en) 2003-06-25 2007-09-25 Emc Corporation Data recovery with internet protocol replication with or without full resync
US7567991B2 (en) 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential
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
JP4580389B2 (ja) 2003-08-21 2010-11-10 マイクロソフト コーポレーション 仲介ファイルシステム共有または仲介デバイスを介してコンピュータシステムを同期させるためのシステムおよび方法
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
CA2563283A1 (en) 2004-03-18 2005-09-29 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
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
CA2635499A1 (en) 2005-02-12 2006-08-24 Teresis Media Management, Inc. Methods and apparatuses 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
ATE512412T1 (de) 2005-04-25 2011-06-15 Network Appliance Inc System und verfahren zum zwischenspeichern von netzwerkdateisystemen
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サーバ、及びスナップショット方法
US7636743B2 (en) 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US8661216B2 (en) 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
US9275157B2 (en) 2005-12-21 2016-03-01 Digimarc Corporation Content metadata directory services
US20070150595A1 (en) 2005-12-23 2007-06-28 Microsoft Corporation Identifying information services and schedule times to implement load management
US8244745B2 (en) 2005-12-29 2012-08-14 Nextlabs, Inc. Analyzing usage information of an information management system
US8972449B2 (en) 2005-12-29 2015-03-03 Nextlabs, Inc. Preventing conflicts of interests between two or more groups
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
US20070208763A1 (en) 2006-03-02 2007-09-06 Thomas Muehlbauer Computer Database Record Architecture Based on a Unique Internet Media Identifier
US20070208715A1 (en) 2006-03-02 2007-09-06 Thomas Muehlbauer Assigning Unique Content Identifiers to Digital Media Content
US9754119B1 (en) 2006-03-07 2017-09-05 Emc Corporation Containerized security for managed content
CN101449582B (zh) 2006-03-17 2012-05-30 索尼株式会社 用于组织群组内容呈现和此期间的群组通信的系统和方法
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
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
US7657769B2 (en) 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
CN101035016A (zh) * 2007-02-08 2007-09-12 中兴通讯股份有限公司 终端设备配置系统及方法
US7962610B2 (en) 2007-03-07 2011-06-14 International Business Machines Corporation Statistical data inspector
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
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
US8438612B2 (en) * 2007-11-06 2013-05-07 Varonis Systems Inc. Visualization of access permission status
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
WO2009126941A1 (en) 2008-04-10 2009-10-15 Content Directions, Inc. Apparatuses, methods and systems for portable universal profile (hereinafter "pup")
KR101574339B1 (ko) 2008-04-28 2015-12-03 엘지전자 주식회사 이동통신 단말기와 tv간 데이터 동기화 방법 및 장치
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
US8346824B1 (en) 2008-05-21 2013-01-01 Translattice, Inc. Data distribution system
US9724611B2 (en) 2008-05-21 2017-08-08 Disney Enterprises, Inc. Method and system for synchronizing an online application and a portable device
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
US20100306175A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. File policy enforcement
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
WO2010106991A1 (ja) 2009-03-19 2010-09-23 株式会社ココリンク データの複製管理方法及びシステム
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
WO2011023134A1 (en) 2009-08-28 2011-03-03 Beijing Innovation Works Technology Company Limited Method and system for managing distributed storage system through virtual file system
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 전석한 원격 사용자 인증 방법 및 시스템
SG184437A1 (en) 2010-04-06 2012-11-29 Heliae Dev Llc Methods of and systems for isolating carotenoids and omega- 3 rich oils from algae
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 インターナショナル・ビジネス・マシーンズ・コーポレーション グラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステム
TW201209043A (en) * 2010-05-17 2012-03-01 Glaxo Group Ltd Novel processes
US9405845B2 (en) * 2010-05-17 2016-08-02 Microsoft Technology Licensing, Llc Adaptable layouts for social feeds
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
WO2013009337A2 (en) 2011-07-08 2013-01-17 Arnold Goldberg 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
US20170123931A1 (en) 2011-08-12 2017-05-04 Nexenta Systems, Inc. Object Storage System with a Distributed Namespace and Snapshot and Cloning Features
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
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 한양대학교 산학협력단 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
WO2013048986A1 (en) 2011-09-26 2013-04-04 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
US20130080603A1 (en) 2011-09-27 2013-03-28 Microsoft Corporation Fault Tolerant External Application Server
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
WO2013078269A1 (en) 2011-11-22 2013-05-30 Solano Labs, Inc. System of distributed software quality improvement
WO2013082320A1 (en) 2011-11-29 2013-06-06 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
US10091239B2 (en) 2012-01-24 2018-10-02 Ssh Communications Security Oyj Auditing and policy control at SSH endpoints
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
US9244934B2 (en) 2012-04-23 2016-01-26 Google Inc. Sharing and synchronizing electronically stored files
EP2842050A4 (en) 2012-04-23 2016-01-13 Google Inc SHARING AND SYNCHRONIZING ELECTRONICALLY STORED FILES
US9239846B2 (en) 2012-04-23 2016-01-19 Google Inc. Sharing and synchronizing electronically stored files
US8949179B2 (en) 2012-04-23 2015-02-03 Google, Inc. Sharing and synchronizing electronically stored files
US9529818B2 (en) 2012-04-23 2016-12-27 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
GB2514947B (en) 2012-05-04 2015-06-17 Box Inc Repository redundancy implementation of a system which incrementally updates clients with events that occured via a cloud-enabled platform
US20130321306A1 (en) 2012-05-21 2013-12-05 Door Number 3 Common drawing model
CN102693302B (zh) 2012-05-21 2015-04-22 浙江省公众信息产业有限公司 快速文件比对方法、系统及客户端
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
BR112014029774A2 (pt) * 2012-05-30 2017-06-27 Clariant Finance Bvi Ltd uso de n-metil-n-acilglucaminas como agentes espessantes em soluções de tensoativos
US8504519B1 (en) 2012-06-27 2013-08-06 Dropbox, Inc. Determining a preferred modified version from among multiple modified versions for synchronized files
CN104737197B (zh) 2012-06-29 2019-12-06 高通股份有限公司 经由共享空间共享用户接口对象
WO2014008495A2 (en) 2012-07-06 2014-01-09 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
US9558202B2 (en) 2012-08-27 2017-01-31 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
US8769105B2 (en) 2012-09-14 2014-07-01 Peaxy, Inc. Software-defined network attachable storage system and method
US9361473B2 (en) 2012-09-14 2016-06-07 Google Inc. Correcting access rights of files in electronic communications
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
US9794337B2 (en) 2012-10-30 2017-10-17 International Business Machines Corporation Balancing storage node utilization of 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
TWI482031B (zh) 2012-11-14 2015-04-21 Inst Information Industry 在雲端儲存服務下提供以檔案為關聯之社群互動方法、系統以及儲存有此方法之電腦可讀取記錄媒體
CN103812912B (zh) 2012-11-14 2018-01-19 北京慧点科技股份有限公司 一种维护组织结构信息的方法及装置
US9209973B2 (en) 2012-11-20 2015-12-08 Google Inc. Delegate authorization in cloud-based storage system
US9654426B2 (en) * 2012-11-20 2017-05-16 Dropbox, Inc. System and method for organizing messages
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
US20140181033A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to track deleted files
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
US9128932B2 (en) 2012-12-21 2015-09-08 Dropbox, Inc. Condensing event markers
US8977596B2 (en) 2012-12-21 2015-03-10 Zetta Inc. Back up using locally distributed change detection
US9071654B2 (en) 2012-12-27 2015-06-30 Dropbox, Inc. Maintaining concurrency and consistency of globally unique identifiers
US8930698B2 (en) 2012-12-27 2015-01-06 Dropbox, Inc. Encrypting globally unique identifiers at communication boundaries
US9083766B2 (en) 2012-12-27 2015-07-14 Dropbox, Inc. Maintaining consistent globally unique identifiers via an asynchronous interface
US9069879B2 (en) 2012-12-27 2015-06-30 Dropbox, Inc. Globally unique identifiers in an online content management system
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
US9507795B2 (en) 2013-01-11 2016-11-29 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
US10599671B2 (en) 2013-01-17 2020-03-24 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
US9613047B2 (en) * 2013-02-13 2017-04-04 Dropbox, Inc. Automatic content item upload
US9310981B2 (en) 2013-02-13 2016-04-12 Dropbox, Inc. Seamless editing and saving of online content items using applications
US10191915B2 (en) 2013-02-19 2019-01-29 Hitachi, Ltd. Information processing system and data synchronization control scheme thereof
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
US20140259005A1 (en) 2013-03-08 2014-09-11 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
WO2014165078A1 (en) 2013-03-13 2014-10-09 Synacor, Inc. Content and service aggregation, management and presentation system
US9251241B2 (en) 2013-03-15 2016-02-02 International Business Machines Corporation Self provisioning and applying role-based security to teamspaces in content repositories
US10628578B2 (en) * 2013-03-15 2020-04-21 Imagine Communications Corp. Systems and methods for determining trust levels for computing components using blockchain
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
EP2847678B1 (en) 2013-06-19 2016-06-08 Hitachi Data Systems Engineering UK Limited Decentralized distributed computing system
US9430808B2 (en) 2013-06-19 2016-08-30 Microsoft Technology Licensing, Llc Synchronization points for state information
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
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
US20150012616A1 (en) 2013-07-08 2015-01-08 Dropbox, Inc. Saving Third Party Content to a Content Management System
US9053165B2 (en) * 2013-07-08 2015-06-09 Dropbox, Inc. Structured content item synchronization
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
US9239841B2 (en) 2013-07-16 2016-01-19 Vmware, Inc. Hash-based snapshots
US10198449B2 (en) 2013-07-16 2019-02-05 Dropbox, Inc. Creating unique content item identifiers
US20150025960A1 (en) 2013-07-17 2015-01-22 Salesforce.Com, Inc. Enhanced 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
CN103412897B (zh) 2013-07-25 2017-03-01 中国科学院软件研究所 一种基于分布式结构的并行数据处理方法
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
US9454541B2 (en) 2013-09-24 2016-09-27 Cyberlink Corp. Systems and methods for storing compressed data in cloud storage
US9477673B2 (en) 2013-09-24 2016-10-25 Dropbox, Inc. Heuristics for selecting and saving content to a synced online content management system
US9154308B2 (en) 2013-09-27 2015-10-06 Google Inc. Revocable platform identifiers
US9672261B2 (en) 2013-10-04 2017-06-06 Alfresco Software, Inc. Hybrid workflow synchronization between cloud and on-premise systems in a content management system
US9336227B2 (en) 2013-10-07 2016-05-10 Sap Se Selective synchronization in a hierarchical folder structure
US20150100482A1 (en) * 2013-10-09 2015-04-09 Ebay Inc. Payment tree
US9819570B2 (en) 2013-10-09 2017-11-14 International Business Machines Corporation Dynamic symbolic links for referencing in a file system
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
CA2931852A1 (en) 2013-12-09 2015-06-18 Business Mobile Solutions Inc. System and method for creating and transferring media files
US20150163206A1 (en) 2013-12-11 2015-06-11 Intralinks, Inc. Customizable secure data exchange environment
FR3015168A1 (fr) 2013-12-12 2015-06-19 Orange Procede d'authentification par jeton
JP6196389B2 (ja) 2013-12-17 2017-09-13 ヒタチ データ システムズ コーポレーションHitachi Data Systems Corporation 分散型ディザスタリカバリファイル同期サーバシステム
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
US9659024B2 (en) 2014-01-06 2017-05-23 Tuxera Corporation 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
US10212226B2 (en) 2014-01-16 2019-02-19 Hewlett Packard Enterprise Development Lp Node cluster synchronization
US9509747B2 (en) 2014-01-23 2016-11-29 Dropbox, Inc. Content item synchronization by block
WO2015112094A2 (en) 2014-01-24 2015-07-30 Agency For Science, Technology And Research Method of file system design and failure recovery with non-volatile memory
US10691636B2 (en) 2014-01-24 2020-06-23 Hitachi Vantara Llc 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
US9461949B2 (en) 2014-01-31 2016-10-04 Dropbox, Inc. Managing links and invitations to shared content
US10212143B2 (en) 2014-01-31 2019-02-19 Dropbox, Inc. Authorizing an untrusted client device for access on a content management system
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
US9940311B2 (en) * 2014-03-03 2018-04-10 International Business Machines Corporation Optimized read/write access to a document object model
US9336219B2 (en) 2014-03-03 2016-05-10 Netapp, Inc. Distributed file system snapshot
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
US9703801B2 (en) 2014-03-25 2017-07-11 Alfresco Software, Inc. Synchronization of client machines with a content management system repository
US9495478B2 (en) 2014-03-31 2016-11-15 Amazon Technologies, Inc. Namespace 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
US9772787B2 (en) 2014-03-31 2017-09-26 Amazon Technologies, Inc. File storage using variable stripe sizes
RU2643429C2 (ru) 2014-03-31 2018-02-01 Общество С Ограниченной Ответственностью "Яндекс" Способ управления синхронизацией файлов (варианты), электронное устройство (варианты) и машиночитаемый носитель
US9519510B2 (en) 2014-03-31 2016-12-13 Amazon Technologies, Inc. Atomic writes for multiple-extent operations
US10264071B2 (en) 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US20150278024A1 (en) 2014-04-01 2015-10-01 Commvault Systems, Inc. Bandwidth-conscious systems and methods for providing information management system services
US9390283B2 (en) 2014-04-02 2016-07-12 International Business Machines Corporation Controlling access 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
JP6304406B2 (ja) 2014-06-27 2018-04-04 日本電気株式会社 ストレージ装置、プログラム、情報処理方法
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
US9271141B1 (en) * 2014-07-29 2016-02-23 Cellco Partnership Method and apparatus for controlling home appliances over LTE
AU2015207842B2 (en) 2014-07-29 2020-07-02 Samsung Electronics Co., Ltd. Method and apparatus for sharing data
US9720947B2 (en) 2014-08-04 2017-08-01 Cohesity, Inc. Backup 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
US9720926B2 (en) 2014-08-04 2017-08-01 Cohesity, Inc. Read 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
US9513949B2 (en) 2014-08-23 2016-12-06 Vmware, Inc. Machine identity persistence for users of non-persistent virtual desktops
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
US9747297B2 (en) 2014-09-23 2017-08-29 Amazon Technologies, Inc. Synchronization of shared folders and files
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
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
US20160110370A1 (en) 2014-10-17 2016-04-21 Alfresco Software, Inc. Dynamic Records Declaration for Integrated Content and Records Management
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
US10521405B2 (en) 2014-11-03 2019-12-31 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
US9569515B2 (en) 2014-11-13 2017-02-14 Dropbox, Inc. Facilitating distributed deletes in a replicated storage system
US10558375B2 (en) 2014-11-13 2020-02-11 Netapp, Inc. Storage level access control for data grouping structures
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
WO2016111697A1 (en) 2015-01-09 2016-07-14 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
CA2974394C (en) 2015-01-20 2023-09-05 Ultrata, Llc Distributed index for fault tolerant object memory fabric
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
CN107409142A (zh) 2015-01-30 2017-11-28 卓普网盘股份有限公司 存储受约束的共享内容项同步
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
WO2016123431A1 (en) 2015-01-30 2016-08-04 Bittorrent, Inc. Distributed license authentication and management
CN104573127B (zh) 2015-02-10 2019-05-14 北京嘀嘀无限科技发展有限公司 评估数据差异性的方法和系统
US9298355B1 (en) 2015-03-23 2016-03-29 Dropbox, Inc. Content item templates
US10001913B2 (en) 2015-04-01 2018-06-19 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
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
US10929353B2 (en) 2015-04-29 2021-02-23 Box, Inc. File tree streaming in a virtual file system for cloud-based shared content
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
US11750674B2 (en) * 2015-05-05 2023-09-05 Penguin Computing, Inc. 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
US9818899B2 (en) 2015-05-29 2017-11-14 Rainforest Connection System and method for transmitting data using alternative energy sources
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
US10198182B2 (en) 2015-05-31 2019-02-05 Apple Inc. Synchronization and verification groups among related devices
US10089056B2 (en) 2015-06-07 2018-10-02 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
US10296632B2 (en) 2015-06-19 2019-05-21 Sap Se Synchronization on reactivation of asynchronous table replication
US10009337B1 (en) 2015-06-30 2018-06-26 EMC IP Holding Company LLC Child tenant revocation in a multiple tenant environment
US10152489B2 (en) 2015-07-24 2018-12-11 Salesforce.Com, Inc. Synchronize collaboration entity files
US10542008B2 (en) 2015-07-24 2020-01-21 Dropbox, Inc. Proxy authorization of a network device
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
CN106657170B (zh) 2015-10-28 2021-03-30 斑马智行网络(香港)有限公司 一种数据同步方法及装置
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9697269B2 (en) 2015-10-29 2017-07-04 Dropbox, Inc. Content item block replication 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
US10248933B2 (en) 2015-12-29 2019-04-02 Dropbox, Inc. Content item activity feed for presenting events associated with content items
US9971822B1 (en) 2015-12-29 2018-05-15 Amazon Technologies, Inc. Replicated state management using journal-based registers
US11468053B2 (en) 2015-12-30 2022-10-11 Dropbox, Inc. Servicing queries of a hybrid event index
US10620811B2 (en) 2015-12-30 2020-04-14 Dropbox, Inc. Native application collaboration
US10075557B2 (en) 2015-12-30 2018-09-11 Amazon Technologies, Inc. Service authorization handshake
US10289693B2 (en) 2015-12-30 2019-05-14 Dropbox, Inc. Techniques for providing user interface enhancements for online content management system version histories
US9413708B1 (en) 2015-12-31 2016-08-09 Dropbox, Inc. User notifications for interaction information
US10380551B2 (en) 2015-12-31 2019-08-13 Dropbox, Inc. Mixed collaboration teams
US9479578B1 (en) 2015-12-31 2016-10-25 Dropbox, Inc. Randomized peer-to-peer synchronization of shared content items
US9870367B2 (en) * 2016-01-04 2018-01-16 Acronis International Gmbh System and method of using data blocks to optimize file storage
CN105740418B (zh) 2016-01-29 2019-09-24 杭州亿方云网络科技有限公司 一种基于文件监控和消息推送的实时同步系统
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
US9934303B2 (en) 2016-04-25 2018-04-03 Dropbox, Inc. Storage constrained synchronization engine
US10049145B2 (en) 2016-04-25 2018-08-14 Dropbox, Inc. Storage constrained synchronization engine
WO2017187311A1 (en) 2016-04-25 2017-11-02 Dropbox, Inc. Storage constrained synchronization engine
US10585874B2 (en) 2016-04-25 2020-03-10 International Business Machines Corporation Locking concurrent commands in a database management system
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.
CN106156359B (zh) 2016-07-28 2019-05-21 广东奥飞数据科技股份有限公司 一种云计算平台下的数据同步更新方法
US20180039652A1 (en) 2016-08-02 2018-02-08 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
US11316775B2 (en) 2016-12-21 2022-04-26 Juniper Networks, Inc. Maintaining coherency in distributed operating systems for network devices
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
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
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 セイコーエプソン株式会社 プログラム、端末装置及び通信システム
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
US10331623B2 (en) 2017-10-16 2019-06-25 Dropbox, Inc. Workflow functions of content management system enforced by client device
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060155776A1 (en) * 2005-01-10 2006-07-13 Microsoft Corporation Method and system for synchronizing cached files
US20070245353A1 (en) * 2006-03-14 2007-10-18 Amir Ben-Dor Secure integration of a local and a remote application
US20140372376A1 (en) * 2013-06-13 2014-12-18 Box, Inc. Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
CN106576078A (zh) * 2014-08-26 2017-04-19 Ctera网络有限责任公司 用于在云存储系统中路由数据流的方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115086757A (zh) * 2021-03-12 2022-09-20 北京字跳网络技术有限公司 一种历史剪辑操作的回撤方法、装置、设备及存储介质
CN115086757B (zh) * 2021-03-12 2023-12-19 北京字跳网络技术有限公司 一种历史剪辑操作的回撤方法、装置、设备及存储介质

Also Published As

Publication number Publication date
AU2018397571B2 (en) 2021-07-01
WO2019133334A1 (en) 2019-07-04
US10671638B2 (en) 2020-06-02
US20200233880A1 (en) 2020-07-23
US11188559B2 (en) 2021-11-30
US11880384B2 (en) 2024-01-23
CA3082925A1 (en) 2019-07-04
CN111566633B (zh) 2024-02-13
WO2019133250A1 (en) 2019-07-04
CN111448558B (zh) 2023-12-12
US20200293547A1 (en) 2020-09-17
KR20200093561A (ko) 2020-08-05
US20190207940A1 (en) 2019-07-04
JP2021507341A (ja) 2021-02-22
US10922333B2 (en) 2021-02-16
CN111417938B (zh) 2023-11-28
CA3087087C (en) 2023-01-10
JP7050931B2 (ja) 2022-04-08
US20190205425A1 (en) 2019-07-04
CN111566633A (zh) 2020-08-21
AU2018397572A1 (en) 2020-05-21
AU2018393933A1 (en) 2020-07-02
US20190266342A1 (en) 2019-08-29
US20210117442A1 (en) 2021-04-22
US10691719B2 (en) 2020-06-23
KR20200093548A (ko) 2020-08-05
JP2021509494A (ja) 2021-03-25
US20190205457A1 (en) 2019-07-04
US11782949B2 (en) 2023-10-10
AU2018395858A1 (en) 2020-06-18
JP7053847B2 (ja) 2022-04-12
CN111512302B (zh) 2024-04-12
US20190205422A1 (en) 2019-07-04
US20190207929A1 (en) 2019-07-04
US11423048B2 (en) 2022-08-23
CA3086004A1 (en) 2019-07-04
US20210232597A1 (en) 2021-07-29
KR20200093595A (ko) 2020-08-05
US11080297B2 (en) 2021-08-03
US20200372044A1 (en) 2020-11-26
JP6955108B2 (ja) 2021-10-27
KR20200093538A (ko) 2020-08-05
US20210149913A1 (en) 2021-05-20
CA3083530A1 (en) 2019-07-04
US10872098B2 (en) 2020-12-22
US10691720B2 (en) 2020-06-23
EP3714373A1 (en) 2020-09-30
AU2018397571A1 (en) 2020-07-02
US10726044B2 (en) 2020-07-28
AU2021203706B2 (en) 2022-06-30
AU2018395933C1 (en) 2021-09-16
US20190208012A1 (en) 2019-07-04
KR102444036B1 (ko) 2022-09-15
WO2019133252A1 (en) 2019-07-04
US11461365B2 (en) 2022-10-04
US20190205424A1 (en) 2019-07-04
KR20200093569A (ko) 2020-08-05
US10776386B2 (en) 2020-09-15
US11308118B2 (en) 2022-04-19
EP3704599B1 (en) 2023-08-02
JP2021509191A (ja) 2021-03-18
US20220067066A1 (en) 2022-03-03
US20190205556A1 (en) 2019-07-04
CA3078982A1 (en) 2019-07-04
US11120039B2 (en) 2021-09-14
US10789268B2 (en) 2020-09-29
US10936622B2 (en) 2021-03-02
CA3087087A1 (en) 2019-07-04
KR20200093596A (ko) 2020-08-05
AU2018395856B2 (en) 2021-09-09
CN111465930A (zh) 2020-07-28
KR20200093597A (ko) 2020-08-05
US11429634B2 (en) 2022-08-30
US20190205404A1 (en) 2019-07-04
KR102434243B1 (ko) 2022-08-18
KR102450281B1 (ko) 2022-09-30
US20190205191A1 (en) 2019-07-04
AU2018395920A1 (en) 2020-06-11
EP3704598A1 (en) 2020-09-09
US11010402B2 (en) 2021-05-18
WO2019133229A1 (en) 2019-07-04
US11755616B2 (en) 2023-09-12
EP3714374A1 (en) 2020-09-30
CN111373388B (zh) 2024-03-15
CA3081372C (en) 2023-03-28
AU2018395857A1 (en) 2020-06-25
EP3710953A1 (en) 2020-09-23
AU2021261855A1 (en) 2021-11-25
AU2018395856A1 (en) 2020-07-02
WO2019133249A1 (en) 2019-07-04
US11003685B2 (en) 2021-05-11
EP3707615A1 (en) 2020-09-16
US20190205414A1 (en) 2019-07-04
US10691721B2 (en) 2020-06-23
US20220284036A1 (en) 2022-09-08
KR102444729B1 (ko) 2022-09-16
JP7044879B2 (ja) 2022-03-30
JP2021509508A (ja) 2021-03-25
KR102432302B1 (ko) 2022-08-11
AU2018395933A1 (en) 2020-05-14
AU2018395857B2 (en) 2021-07-29
US20190205440A1 (en) 2019-07-04
US10949445B2 (en) 2021-03-16
KR20200093556A (ko) 2020-08-05
US20190205411A1 (en) 2019-07-04
US11500899B2 (en) 2022-11-15
JP2022166013A (ja) 2022-11-01
US10997200B2 (en) 2021-05-04
JP2021505984A (ja) 2021-02-18
JP2021509511A (ja) 2021-03-25
US20210182311A1 (en) 2021-06-17
US20190208013A1 (en) 2019-07-04
AU2018395933B2 (en) 2021-04-01
EP3714375A1 (en) 2020-09-30
CN111465930B (zh) 2023-12-12
JP7068454B2 (ja) 2022-05-16
WO2019133230A1 (en) 2019-07-04
CN111448559A (zh) 2020-07-24
US10789269B2 (en) 2020-09-29
AU2018395919A1 (en) 2020-06-11
US20190208014A1 (en) 2019-07-04
CA3078982C (en) 2023-11-07
CA3084312C (en) 2023-04-04
WO2019133321A1 (en) 2019-07-04
JP2021509188A (ja) 2021-03-18
KR102444033B1 (ko) 2022-09-15
CN111448558A (zh) 2020-07-24
CN111448559B (zh) 2023-09-12
CN111527487A (zh) 2020-08-11
CN111512301B (zh) 2023-10-20
EP3714373B1 (en) 2023-02-15
US20200301946A1 (en) 2020-09-24
EP3707613A1 (en) 2020-09-16
US20190205428A1 (en) 2019-07-04
US20200349171A1 (en) 2020-11-05
CA3084056A1 (en) 2019-07-04
US20200372045A1 (en) 2020-11-26
US20190205416A1 (en) 2019-07-04
US20190205418A1 (en) 2019-07-04
US11704336B2 (en) 2023-07-18
CA3084312A1 (en) 2019-07-04
CA3081372A1 (en) 2019-07-04
US20190205410A1 (en) 2019-07-04
AU2021261855B2 (en) 2023-04-27
AU2018395920B2 (en) 2021-05-06
US11176164B2 (en) 2021-11-16
US11657067B2 (en) 2023-05-23
US20190205548A1 (en) 2019-07-04
US10866963B2 (en) 2020-12-15
CA3084060C (en) 2022-12-13
JP7393334B2 (ja) 2023-12-06
US20190205554A1 (en) 2019-07-04
US10733205B2 (en) 2020-08-04
US10095879B1 (en) 2018-10-09
JP7075998B2 (ja) 2022-05-26
US11836151B2 (en) 2023-12-05
US20190205427A1 (en) 2019-07-04
JP7212040B2 (ja) 2023-01-24
US20210042325A1 (en) 2021-02-11
WO2019133269A1 (en) 2019-07-04
KR20200093567A (ko) 2020-08-05
US20190205050A1 (en) 2019-07-04
US20190205415A1 (en) 2019-07-04
US20190205419A1 (en) 2019-07-04
US20190205456A1 (en) 2019-07-04
AU2018397604A1 (en) 2020-06-18
US20190205289A1 (en) 2019-07-04
US10037339B1 (en) 2018-07-31
US10877993B2 (en) 2020-12-29
JP7158482B2 (ja) 2022-10-21
US20190205458A1 (en) 2019-07-04
US10599673B2 (en) 2020-03-24
US20190205426A1 (en) 2019-07-04
US11016991B2 (en) 2021-05-25
CA3085998A1 (en) 2019-07-04
US11669544B2 (en) 2023-06-06
JP2021509205A (ja) 2021-03-18
US11314774B2 (en) 2022-04-26
KR20200093606A (ko) 2020-08-05
AU2018397604B2 (en) 2021-04-29
JP2022141669A (ja) 2022-09-29
CN111512301A (zh) 2020-08-07
KR102432304B1 (ko) 2022-08-11
US11593394B2 (en) 2023-02-28
US11204938B2 (en) 2021-12-21
US20210200786A1 (en) 2021-07-01
US11630841B2 (en) 2023-04-18
US20210173853A1 (en) 2021-06-10
CN111263937B (zh) 2023-11-28
US11386116B2 (en) 2022-07-12
CA3086004C (en) 2023-03-21
AU2018395858B2 (en) 2021-07-22
AU2018395919B2 (en) 2021-08-05
US20190205401A1 (en) 2019-07-04
EP3707615B1 (en) 2023-06-07
CN111417938A (zh) 2020-07-14
US11475041B2 (en) 2022-10-18
CN111373388A (zh) 2020-07-03
US10929426B2 (en) 2021-02-23
CA3085998C (en) 2023-08-29
US10324903B1 (en) 2019-06-18
US20190205423A1 (en) 2019-07-04
KR102417689B1 (ko) 2022-07-05
JP7065958B2 (ja) 2022-05-12
US10929427B2 (en) 2021-02-23
EP3714376A1 (en) 2020-09-30
KR102459800B1 (ko) 2022-10-28
US20210034642A1 (en) 2021-02-04
EP3714375B1 (en) 2023-09-06
EP3704599A1 (en) 2020-09-09
US20190205443A1 (en) 2019-07-04
WO2019133228A1 (en) 2019-07-04
US20190205409A1 (en) 2019-07-04
US20190205417A1 (en) 2019-07-04
JP2021508103A (ja) 2021-02-25
WO2019133270A1 (en) 2019-07-04
US20210240732A1 (en) 2021-08-05
EP3707613B1 (en) 2023-09-06
AU2021203706A1 (en) 2021-07-01
EP3701390A1 (en) 2020-09-02
US10866964B2 (en) 2020-12-15
US20190205406A1 (en) 2019-07-04
US11048720B2 (en) 2021-06-29
CA3084060A1 (en) 2019-07-04
US11514078B2 (en) 2022-11-29
CN111263937A (zh) 2020-06-09
US20230101958A1 (en) 2023-03-30
US11500897B2 (en) 2022-11-15
US20190205407A1 (en) 2019-07-04
KR102457063B1 (ko) 2022-10-19
US10762104B2 (en) 2020-09-01
JP2021507342A (ja) 2021-02-22
AU2018393933B2 (en) 2021-10-07
US20200327142A1 (en) 2020-10-15
AU2018397572B2 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
CN111512302B (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