Multi-level parallelism of process execution in a mutual exclusion domain of a processing system
AssigneeNetApp, Inc.
InventorsDavid Grunwald, Jeffrey S. Kimmel
Life of this patent
Estimating the term…
Abstract
A technique is described for improving throughput in a processing system, such as a network storage server. The technique provides multiple levels (e.g., a hierarchy) of parallelism of process execution within a single mutual exclusion domain, in a manner which allows certain operations on metadata to be parallelized as well as certain operations on user data. The specific parallelization scheme used in any given embodiment is based at least partly on the underlying metadata structures used by the processing system. Consequently, a high degree of parallelization possible, which improves the throughput of the processing system.
Claims36
A method comprising:
- in a network storage server, creating mutual exclusion domains for execution of processes of the network storage server, the mutual exclusion domains including a first domain;
- creating a hierarchy of subdomains within the first domain, wherein at least some of the subdomains correspond to one or more types of processes, the hierarchy having a first set of subdomains that are permitted to execute processes in parallel with each other and a second set of subdomains that are precluded from executing processes in parallel with each other;
- and
- assigning, to the first set or the second set of subdomains, processes corresponding to the first domain for execution in the network storage server.
A method comprising:
- in a network storage server, creating mutual exclusion domains for execution of processes of the network storage server, the mutual exclusion domains including a first domain corresponding to a storage area accessible to the network storage server to which storage processes operate;
- creating a hierarchy of subdomains within the first domain, the hierarchy at least partly defined by a data storage layout, the hierarchy having a first set of subdomains that are permitted to execute processes in parallel with each other and a second set of subdomains that are precluded from executing processes in parallel with each other;
- and
- assigning a process to at least one target subdomain of the first or the second set of subdomains for execution in the network storage server, wherein said assigning is based at least partly on which subdomain corresponds to data the process is targeted to operate on and wherein target subdomain indicates an execution restriction of the process relative to other processes.
A machine-readable storage medium storing instructions which, when executed in a processing device, cause the processing device to perform operations comprising:
- in a network storage server, creating mutual exclusion domains for execution of processes of the network storage server, the mutual exclusion domains including a first domain;
- creating a hierarchy of subdomains within the first domain, the hierarchy having a first set of subdomains that are permitted to execute processes in parallel with each other and a second set of subdomains that are precluded from executing processes in parallel with each other;
- and
- creating a plurality of mutual exclusion domains for execution of processes of the processing device, each said mutual exclusion domain owning one or more processes of the processing device, the plurality of mutual exclusion domains including a first domain;
- enabling a plurality of levels of parallelism for executing processes of the first domain, by defining a hierarchy of subdomains within the first domain;
- and
- assigning an operation for execution in the network storage server as corresponding to the first set of subdomains that are permitted to execute processes in parallel with each other or to the second set of subdomains that are precluded from executing processes in parallel with each other.
A network storage server comprising:
- a plurality of processors;
- a storage interface, coupled to the plurality of processors, that enables access to a persistent storage subsystem;
- a network interface coupled to the plurality of processors, through which the storage server can communicate with a storage client;
- and
- a memory coupled to the plurality of processors, the memory storing instructions for defining a plurality of mutual exclusion domains for enabling multi-processor safe execution of processes on the storage server, including instructions for
- creating a hierarchy of subdomains operable as execution queues within a first domain of the plurality of mutual exclusion domains, to control parallelism of execution of processes, wherein each said subdomain corresponds one or more types of processes;
- and
- assigning an operation, for execution by at least one of the processors, as corresponding to a first set of subdomains in the hierarchy that are permitted to execute processes in parallel with each other or to a second set of subdomains in the hierarchy that are precluded from executing processes in parallel with each other.
Dependencies are inferred from the claim text.