-
公开(公告)号:US10198452B2
公开(公告)日:2019-02-05
申请号:US14502577
申请日:2014-09-30
Applicant: Apple Inc.
Inventor: Pierre Habouzit , Dominic B. Giampaolo
Abstract: Systems and methods are disclosed that track a document within a file system using document identifier (DOCID) that is preserved during safe save operations. The DOCID can be a universally unique identifier (UUID). The DOCID can be generated on a local file system or generated during a synchronization process with a remote synchronization service. Applications can opt in to document tracking. The kernel of the operating system can monitor file system operations on a per-application and per-thread basis and determine when a processing thread is about to perform a safe save. When a sequence of file system operations indicates that a safe save is to be performed, the kernel can generate and store a tombstone record that includes the DOCID and other metadata of the tracked document and pass the DOCID and metadata to the newly saved document.
-
公开(公告)号:US20150347440A1
公开(公告)日:2015-12-03
申请号:US14502577
申请日:2014-09-30
Applicant: Apple Inc.
Inventor: Pierre Habouzit , Dominic B. Giampaolo
CPC classification number: G06F17/30144 , G06F11/1448 , G06F11/1451 , G06F17/30123 , G06F17/30218 , G06F17/3023
Abstract: Systems and methods are disclosed that track a document within a file system using document identifier (DOCID) that is preserved during safe save operations. The DOCID can be a universally unique identifier (UUID). The DOCID can be generated on a local file system or generated during a synchronization process with a remote synchronization service. Applications can opt in to document tracking. The kernel of the operating system can monitor file system operations on a per-application and per-thread basis and determine when a processing thread is about to perform a safe save. When a sequence of file system operations indicates that a safe save is to be performed, the kernel can generate and store a tombstone record that includes the DOCID and other metadata of the tracked document and pass the DOCID and metadata to the newly saved document.
Abstract translation: 公开了使用在安全保存操作期间保留的文档标识符(DOCID)来跟踪文件系统内的文档的系统和方法。 DOCID可以是普遍唯一的标识符(UUID)。 DOCID可以在本地文件系统上生成,也可以在与远程同步服务的同步过程中生成。 应用程序可以选择进行文档跟踪。 操作系统的内核可以在每个应用程序和每个线程的基础上监视文件系统操作,并确定处理线程何时要执行安全保存。 当一系列文件系统操作指示要执行安全保存时,内核可以生成并存储包含跟踪文档的DOCID和其他元数据的逻辑纪录,并将DOCID和元数据传递到新保存的文档。
-
公开(公告)号:US20180349209A1
公开(公告)日:2018-12-06
申请号:US15836459
申请日:2017-12-08
Applicant: Apple Inc.
Inventor: Daniel A. Steffen , Pierre Habouzit , Daniel A. Chimene , Jeremy C. Andrus , James M. Magee , Puja Gupta
Abstract: Techniques are disclosed relating to efficiently handling execution of multiple threads to perform various actions. In some embodiments, an application instantiates a queue and a synchronization primitive. The queue maintains a set of work items to be operated on by a thread pool maintained by a kernel. The synchronization primitive controls access to the queue by a plurality of threads including threads of the thread pool. In such an embodiment, a first thread of the application enqueues a work item in the queue and issues a system call to the kernel to request that the kernel dispatch a thread of the thread pool to operate on the first work item. In various embodiments, the dispatched thread is executable to acquire the synchronization primitive, dequeue the work item, and operate on it.
-
公开(公告)号:US20150347552A1
公开(公告)日:2015-12-03
申请号:US14501799
申请日:2014-09-30
Applicant: Apple Inc.
Inventor: Pierre Habouzit , Olivier Bonnet , Jean-Gabriel Morard
IPC: G06F17/30
CPC classification number: G06F16/273 , G06F16/178
Abstract: Systems and methods are disclosed for synchronizing one or more user data sets on one or more client devices of a user, using a synchronization system. Each client device can have two independent and asynchronously-operating synchronization engines. The synchronization system can include a synchronization system manager that can resolve conflicts in data that arise from different versions of software being used generate a data set. Each client can maintain two separate databases: a first database that can contain a snapshot of the state of the user data sets across client devices, as known to the synchronization system. The second database can contain a snapshot of the local file system and information about the state of synchronization of the local file system with the synchronization system.
Abstract translation: 公开了使用同步系统来同步用户的一个或多个客户端设备上的一个或多个用户数据集的系统和方法。 每个客户端设备都可以有两个独立的和异步操作的同步引擎。 同步系统可以包括同步系统管理器,其可以解决由正在使用的软件的不同版本产生的数据中产生数据集的冲突。 每个客户端可以维护两个单独的数据库:第一个数据库,可以包含跨客户端设备的用户数据集的状态的快照,如同步系统所知。 第二个数据库可以包含本地文件系统的快照以及本地文件系统与同步系统的同步状态的信息。
-
公开(公告)号:US10901920B2
公开(公告)日:2021-01-26
申请号:US16380300
申请日:2019-04-10
Applicant: Apple Inc.
Inventor: Jainam A. Shah , Jeremy C. Andrus , Daniel A. Chimene , Kushal Dalmia , Pierre Habouzit , James M. Magee , Marina Sadini , Daniel A. Steffen
Abstract: One embodiment provides for a computer-implemented method comprising instantiating a synchronization primitive to control access to a resource, acquiring the synchronization primitive at a first thread, the first thread having a first priority, associating a turnstile with the synchronization primitive, setting an inheritor of the turnstile to the first thread, attempting to acquire the synchronization primitive at a second thread while the synchronization primitive is held by the first thread, the second thread having a second priority, adding the second thread to a wait queue of the turnstile; and in response to determining that the second priority is higher than the first priority, increasing the priority of the first thread to the second priority.
-
公开(公告)号:US10387451B2
公开(公告)日:2019-08-20
申请号:US14501799
申请日:2014-09-30
Applicant: Apple Inc.
Inventor: Pierre Habouzit , Olivier Bonnet , Jean-Gabriel Morard
IPC: G06F16/27 , G06F16/178
Abstract: Systems and methods are disclosed for synchronizing one or more user data sets on one or more client devices of a user, using a synchronization system. Each client device can have two independent and asynchronously-operating synchronization engines. The synchronization system can include a synchronization system manager that can resolve conflicts in data that arise from different versions of software being used generate a data set. Each client can maintain two separate databases: a first database that can contain a snapshot of the state of the user data sets across client devices, as known to the synchronization system. The second database can contain a snapshot of the local file system and information about the state of synchronization of the local file system with the synchronization system.
-
公开(公告)号:US11940931B2
公开(公告)日:2024-03-26
申请号:US17141914
申请日:2021-01-05
Applicant: Apple Inc.
Inventor: Jainam A. Shah , Jeremy C. Andrus , Daniel A. Chimene , Kushal Dalmia , Pierre Habouzit , James M. Magee , Marina Sadini , Daniel A. Steffen
CPC classification number: G06F12/1466 , G06F9/4881 , G06F9/5038 , G06F9/52 , G06F9/526 , G06F9/541 , G06F9/545 , G06F12/0842 , G06F2209/5011
Abstract: A turnstile OS primitive is provided that enables support for owner tracking and waiting. The turnstile primitive enables a common framework that can be adopted across multiple different types of synchronization primitives to provide a common service for priority boosting and wait queuing. A turnstile can also provide a mechanism to enable a turnstile to block on another turnstile, allowing multi-hop priority boosting within a chain of multiple blocking turnstiles.
-
公开(公告)号:US11048562B2
公开(公告)日:2021-06-29
申请号:US15836459
申请日:2017-12-08
Applicant: Apple Inc.
Inventor: Daniel A. Steffen , Pierre Habouzit , Daniel A. Chimene , Jeremy C. Andrus , James M. Magee , Puja Gupta
Abstract: Techniques are disclosed relating to efficiently handling execution of multiple threads to perform various actions. In some embodiments, an application instantiates a queue and a synchronization primitive. The queue maintains a set of work items to be operated on by a thread pool maintained by a kernel. The synchronization primitive controls access to the queue by a plurality of threads including threads of the thread pool. In such an embodiment, a first thread of the application enqueues a work item in the queue and issues a system call to the kernel to request that the kernel dispatch a thread of the thread pool to operate on the first work item. In various embodiments, the dispatched thread is executable to acquire the synchronization primitive, dequeue the work item, and operate on it.
-
公开(公告)号:US20210157748A1
公开(公告)日:2021-05-27
申请号:US17141914
申请日:2021-01-05
Applicant: Apple Inc.
Inventor: Jainam A. Shah , Jeremy C. Andrus , Daniel A. Chimene , Kushal Dalmia , Pierre Habouzit , James M. Magee , Marina Sadini , Daniel A. Steffen
Abstract: A turnstile OS primitive is provided that enables support for owner tracking and waiting. The turnstile primitive enables a common framework that can be adopted across multiple different types of synchronization primitives to provide a common service for priority boosting and wait queuing. A turnstile can also provide a mechanism to enable a turnstile to block on another turnstile, allowing multi-hop priority boosting within a chain of multiple blocking turnstiles.
-
-
-
-
-
-
-
-