×

Multi-core storage processor assigning other cores to process requests of core-affined streams

  • US 9,485,310 B1
  • Filed: 12/23/2014
  • Issued: 11/01/2016
  • Est. Priority Date: 12/23/2014
  • Status: Active Grant
First Claim
Patent Images

1. A network attached storage system for providing a distributed file system service to host computers via a network, comprising:

  • network interface circuitry to be coupled to the network;

    one or more data storage devices to store file system data; and

    a storage processor coupled to the network interface circuitry and the data storage devices to perform file system operations of the distributed file system service using the data storage devices for underlying data storage, the file system operations including file read and file write operations,the storage processor including a multi-core processing unit and memory, the multi-core processing unit having a set of cores for respective independent instruction execution of instructions stored in the memory, the instructions including;

    (1) first instructions of a distributed file system application including respective sets of execution threads for the cores, each execution thread used to perform file system operations based on corresponding requests from the host computers,(2) second instructions of sets of network stream modules forming respective stream network stacks, sets of two or more of the stream network stacks being executed by respective cores, each stream network stack including a stream head to and from which the execution threads read and write stream data corresponding to the requests from and responses to the host computers via respective distinct host-specific connection-layer connections, and(3) third instructions of collector modules executed by the respective cores, a collector module of each core being operative on a per-request basis to (a) dynamically and preferentially assign execution threads of the core to the stream heads of the core to process first file system requests and responses in stream data of the respective stream network stacks, and (b) co-operate with collector modules of the other cores to dynamically and non-preferentially assign execution threads of the other cores to the stream heads of the core to process second file system requests and responses in stream data of the respective stream network stacks to promote efficient use of the cores in providing the distributed file system service.

View all claims
  • 9 Assignments
Timeline View
Assignment View
    ×
    ×