ARRAY-BASED COMPUTATIONS ON A STORAGE DEVICE
First Claim
1. A method performed by a network-attached storage (NAS) device comprising a processor and memory, the method executed by the processor and comprising:
- receiving, at the NAS device, an instruction from an application server that causes the NAS device to perform a computation that uses arrays of data that are stored by the NAS device as inputs, the instruction comprising a plurality of remote procedure calls that identify operations that are included in the computation, the remote procedure calls comprising a first remote procedure call operable for causing the NAS device to perform a read operation on a first file stored by the NAS device and containing an array of data to be used as an input for the computation, the remote procedure calls further comprising a second remote procedure call operable for causing the NAS device to perform an array operation using the array of data from the first file;
executing the read operation and the array operation on the NAS device to produce a result; and
storing the result in a second file in a location in a file system managed by the NAS device and accessible to the application server.
1 Assignment
0 Petitions
Accused Products
Abstract
An instruction from an application server to perform a computation is received at a network-attached storage (NAS) device. The computation uses arrays of data that are stored by the NAS device as inputs. The instruction includes remote procedure calls that identify operations that are included in the computation, including a first remote procedure call that will cause the NAS device to perform a read operation on a first file containing an array of data to be used as an input for the computation, and a second remote procedure call that will cause the NAS device to perform an array operation using the array of data. The operations are executed on the NAS device to produce a result that is stored in a second file in a location in a file system managed by the NAS device and accessible to the application server.
-
Citations
20 Claims
-
1. A method performed by a network-attached storage (NAS) device comprising a processor and memory, the method executed by the processor and comprising:
-
receiving, at the NAS device, an instruction from an application server that causes the NAS device to perform a computation that uses arrays of data that are stored by the NAS device as inputs, the instruction comprising a plurality of remote procedure calls that identify operations that are included in the computation, the remote procedure calls comprising a first remote procedure call operable for causing the NAS device to perform a read operation on a first file stored by the NAS device and containing an array of data to be used as an input for the computation, the remote procedure calls further comprising a second remote procedure call operable for causing the NAS device to perform an array operation using the array of data from the first file; executing the read operation and the array operation on the NAS device to produce a result; and storing the result in a second file in a location in a file system managed by the NAS device and accessible to the application server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A network-attached storage (NAS) device, comprising:
-
a processor, and memory coupled to the processor and having stored therein instructions that, if executed by the NAS, cause the NAS device to perform a method comprising; receiving, at the NAS device, an Instruction from an application server that causes the NAS device to perform a computation that uses arrays of data that are stored by the NAS device as inputs, the instruction comprising a sequence of remote procedure calls that identify operations that are included in the computation, the operations comprising a read operation on a first file in a file system managed by the NAS device, the first file containing an array of data, the operations further comprising an array operation that uses the array of data from the first file; in response to the remote procedure calls in the instruction, performing the operations including the read operation and the array operation using virtual machines that are executed on the NAS device, the virtual machines comprising a first virtual machine configured to perform the read operation and a second virtual machine configured to perform the array operation, wherein said performing produces a result; and storing the result in a second file in a location in the file system that is accessible to the application server. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A non-transitory computer-readable storage medium having computer-executable instructions that, when executed, cause an application server to perform a method, the method comprising:
-
identifying a computation to be performed on an array of data stored by a network-attached storage (NAS) device, the computation comprising an array operation to be performed on the array of data, the computation further comprising a read operation to be performed on a first file stored by the NAS device and containing the array of data; generating an instruction for the computation, the instruction comprising a plurality of remote procedure calls that identify operations that are included in the computation, the remote procedure calls comprising a first remote procedure call operable for causing the NAS device to perform the read operation on the first file, the remote procedure calls further comprising a second remote procedure call operable for causing the NAS device to perform the array operation on the array of data read from the first file; sending the instruction to the NAS device; and subsequent to execution of the operations by the NAS device, accessing a result of the computation. - View Dependent Claims (17, 18, 19, 20)
-
Specification