Balanced winner assignment for deadlock resolution

    公开(公告)号:US12131200B2

    公开(公告)日:2024-10-29

    申请号:US17364937

    申请日:2021-07-01

    IPC分类号: G06F9/52 G06F9/46

    CPC分类号: G06F9/524 G06F9/466

    摘要: Processing may be performed in accordance with a policy to assign roles of winner and loser between two nodes. The roles may be used in connection with deadlock resolution processing. A deadlock or potential deadlock may be detected between the two nodes performing processing for two transactions In response to detecting the deadlock or potential deadlock, using a current state may be used to determine whether to perform the deadlock resolution processing to resolve the deadlock or potential deadlock. The current state may indicate whether assignment of the winner and loser roles between the two nodes is in progress. Responsive to the current state indicating that processing is not in progress to assign roles of winner and loser between the two nodes, the current state may be used perform deadlock resolution processing to resolve the deadlock or potential deadlock. The current state may denote which node is the current winner.

    End-to-end quality of service mechanism for storage system using prioritized thread queues

    公开(公告)号:US11886911B2

    公开(公告)日:2024-01-30

    申请号:US16915380

    申请日:2020-06-29

    摘要: At least one processing device comprises a processor and a memory coupled to the processor. The at least one processing device is configured to associate different classes of service with respective threads of one or more applications executing on at least one of a plurality of processing cores of a storage system, to configure different sets of prioritized thread queues for respective ones of the different classes of service, to enqueue particular ones of the threads associated with particular ones of the classes of service in corresponding ones of the prioritized thread queues, and to implement different dequeuing policies for selecting particular ones of the enqueued threads from the different sets of prioritized thread queues based at least in part on the different classes of service. The at least one processing device illustratively comprises at least a subset of the plurality of processing cores of the storage system.

    Techniques for metadata updating and retrieval

    公开(公告)号:US11868256B2

    公开(公告)日:2024-01-09

    申请号:US17380610

    申请日:2021-07-20

    IPC分类号: G06F12/0804 G06F16/23

    CPC分类号: G06F12/0804 G06F16/2358

    摘要: Processing a read request to read metadata from an entry of a metadata page may include: determining whether the metadata page is cached; responsive to determining the metadata page is cached, obtaining the first metadata from the cached metadata page; responsive to determining the metadata page is not cached, determining whether the requested metadata is in a metadata log of metadata changes stored in a volatile memory; and responsive to determining the metadata is the metadata log of metadata changes stored in the volatile memory, obtaining the requested metadata from the metadata log. Processing a write request that overwrites an existing value of a metadata page with an updated value may include: recording a metadata change in the metadata log that indicates to update the metadata page with the updated value; and performing additional processing during destaging that uses the existing value prior to overwriting it with the updated value.

    System and method for lockless reading of metadata pages

    公开(公告)号:US11599460B2

    公开(公告)日:2023-03-07

    申请号:US17237398

    申请日:2021-04-22

    IPC分类号: G06F12/0802 G06F3/06

    摘要: A method, computer program product, and computing system for assigning a plurality of unique sequential identifiers to a plurality of tablets in a cache memory system. One or more metadata deltas associated with a metadata page stored in a storage array may be written to the plurality of tablets in the cache memory system. Each metadata delta stored in at least one tablet of the plurality of tablets may be written to the metadata page stored in the storage array, thus defining one or more destage tablets. A largest unique sequential identifier from the plurality of unique sequential identifiers assigned to the one or more destage tablets, may be written to the storage array, thus defining a current tablet identifier for the metadata page.

    SMOOTH FLUSHING OF CACHED WRITE DATA

    公开(公告)号:US20220334965A1

    公开(公告)日:2022-10-20

    申请号:US17231197

    申请日:2021-04-15

    IPC分类号: G06F12/0804 G06F12/10

    摘要: A method of performing write operations that have been received by a data storage apparatus is provided. The method includes (a) storing page descriptors for received write operations within temporary storage, each page descriptor indicating respective data to be written; (b) upon storing each page descriptor, organizing that page descriptor into a shared working-set structure; and (c) operating a plurality of flushers to persist the data indicated by respective page descriptors to long-term persistent storage based on organization of the page descriptors in the shared working-set structure, each flusher accessing page descriptors via the shared working-set structure. An apparatus, system, and computer program product for performing a similar method are also provided.

    Performance of a multi-core storage system

    公开(公告)号:US11449279B1

    公开(公告)日:2022-09-20

    申请号:US17242992

    申请日:2021-04-28

    IPC分类号: G06F3/06

    摘要: Techniques are used for improving performance of a storage system. The techniques may be used to provide, among other things, a set of counters for an object. Each counter corresponds to a unique processor in a multi-processor storage system. The state of a gate governing the object is determined. If the state of the gate is open, the counter corresponding to the first processor is incremented. The state of the gate for the object is re-determined. If the state of the gate remains open, the object is read and the counter corresponding to the first storage processor is decremented.

    Defragmentation of striped volume in data storage system

    公开(公告)号:US11314416B1

    公开(公告)日:2022-04-26

    申请号:US17078837

    申请日:2020-10-23

    IPC分类号: G06F3/06

    摘要: A storage control system generates a striped storage volume in an array of data storage devices. The striped storage volume includes multiple stripe sets, each associated with a different stripe type, and each having stripes that are assigned the stripe type associated with the stripe set. The stripe type represents a block size of the stripes included in the stripe set. A background stripe defragmentation process is performed to defragment stripes in a target stripe set and generate empty stripes. The empty stripes generated by the background stripe defragmentation process are added into an empty stripe set of the striped storage volume. The empty stripes in the empty stripe set have unassigned stripe types. A stripe type is assigned to an empty stripe in the empty stripe which is selected for removal and inclusion in the stripe set associated with the stripe type assigned to the empty stripe.

    DISTRIBUTED STORAGE SYSTEM WITH PER-CORE REBALANCING OF THREAD QUEUES

    公开(公告)号:US20220121501A1

    公开(公告)日:2022-04-21

    申请号:US17074151

    申请日:2020-10-19

    IPC分类号: G06F9/50 G06F9/48

    摘要: At least one processing device is configured to obtain timestamps for respective dequeue events involving respective ones of a plurality of threads of one or more applications executing on a first one of a plurality of processing cores of a storage system, to determine a waiting time measure for at least a subset of the plurality of threads in one or more thread queues of the first processing core, and to control performance of a per-core queue rebalancing process for the first processing core based at least in part on one or more of the dequeue event timestamps and the waiting time measure. In conjunction with performance of the per-core queue rebalancing process, at least one thread is moved from at least one of the thread queues of the first processing core to a thread queue of a different one of the processing cores of the storage system.