Performing direct data manipulation on a storage device
Abstract
A method and system for performing data manipulation on a storage device is disclosed. A data manipulation command is created on a computing device, wherein the computing device is separate from the storage device. The computing device is a client or a server that requests services of a storage system to store data on a storage medium. The computing device and the storage device are connected over a network. The computing device executes a host application, and its data is stored on the medium. The computing device issues a command to the storage device to be performed on the data. The storage device executes the command and sends the result to the computing device. As a result, the data is not sent to the computing device for manipulation.
Claims
exact text as granted — not AI-modified1 - 30 . (canceled)
31 . A method, comprising:
receiving, at a storage server, a command in a network storage communication protocol from a client device, the command comprising information identifying a source file stored at the storage server and a list of file segments to include, the source file comprising the file segments identified by the list; executing, at the storage server, the command by copying the file segments identified by the list from the source file to a destination file stored at the storage server, without transferring any portion of the source file to the client; and in response to the command, sending a confirmation of execution of the command from the storage server to the client device.
32 . The method of claim 31 , wherein the receiving comprises:
receiving, at the storage server, a command in a network storage communication protocol from a client device, the command comprising information identifying a source file stored at the storage server, a list of file segments to include and an instruction to add a new data segment, the source file comprising the file segments identified by the list.
33 . The method of claim 32 , further comprising:
retrieving, at the storage server from the client device, data of the new data segment; and wherein the executing comprises: executing the command, at the storage server, by copying the file segments identified by the list from the source file to a destination file stored at the storage server, and by inserting the data of the new data segment to the source file, without transferring any portion of the source file to the client.
34 . The method of claim 31 , wherein the receiving comprises:
receiving, at the storage server, a command in a network storage communication protocol from a client device, the command comprising information identifying a source file stored at the storage server, a list of file segments to include and file offsets of the file segments identified by the list within the destination file, the source file comprising the file segments identified by the list.
35 . The method of claim 31 , wherein the executing further comprises:
retrieving from the source file the file segments identified by the list; and inserting data of the file segments identified by the list to the destination file at the file offsets indicated by the command.
36 . The method of claim 35 , wherein the executing further comprises:
in an event that the command includes an instruction to remove a file segment of the destination file, removing the file system from the destination file stored in the storage server.
37 . The method of claim 31 , wherein the receiving comprises:
receiving, at the storage server, a command in a network storage communication protocol from a client device, the command comprising information identifying a source file and a destination file stored at the storage server and a list of file segments to include in the destination file, the source file comprising the file segments identified by the list.
38 . The method of claim 37 , further comprising:
avoiding copying file segments of the source file that are not identified by the list to the destination file.
39 . The method of claim 37 , wherein the receiving comprises:
receiving, at the storage server, a command in a network storage communication protocol from a client device, the command comprising information identifying a source file and a destination file stored at the storage server, a list of file segments to include in the destination file, and a reorder instruction to specify an order how the file segments to include appear in the destination file, the source file comprising the file segments identified by the list; and wherein the executing comprises: executing the command, at the storage server, by copying the file segments to include identified by the list from the source file to a destination file stored at the storage server, without transferring any portion of the source file to the client, and by reordering the file segments to include in the destination file based on the reorder instruction.
40 . A non-transitory machine readable medium having stored thereon instructions for performing a method of manipulating data files, comprising machine executable code which when executed by at least one machine, causes the machine to:
receive at a storage server a command from a client device over a network, the command comprising information identifying a source file stored at the storage server and a destination file stored at the storage server, the command further comprising an exclusion list identifying file segments of the source file that are to be excluded from the destination file; and copy file segments of the source file that are not identified by the exclusion list from the source file to the destination file at the storage server, without transferring any portion of the source file to the client device.
41 . The non-transitory machine readable medium of claim 40 , wherein the machine executable code which when executed by at least one machine, further causes the machine to:
send a message notifying a result of executing the command from the storage server to the client device, in response to the command.
42 . The non-transitory machine readable medium of claim 40 , wherein the command further comprises new data to be inserted into the destination file;
and wherein the machine executable code which when executed by at least one machine, further causes the machine to: insert the new data into the destination file.
43 . The non-transitory machine readable medium of claim 40 , wherein the command comprises multiple file system operations in an order; and wherein the machine executable code which when executed by at least one machine, further causes the machine to:
determine a reordering of executing the file system operations of the command by the storage server to improve a performance of the instructions, prior to executing the file system operations according to the reordering.
44 . A computing device, comprising:
a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of manipulating data sets; a processor coupled to the memory, the processor configured to execute the machine executable code to:
receive from a client a repacking command identifying a source data set comprising multiple segments and a destination data set stored at the computing device, the command including information identifying at least a segment of the multiple segments of the source data set; and
manipulate the destination data set based on the repacking command by using at least the segment of the source data set identified by the command, without transferring data of the destination data set or the source data set to the client.
45 . The computing device of claim 44 , wherein the source data set is a database table, and at least one segment of the database table comprises a database record marked as deleted.
46 . The computing device of claim 45 , wherein the repacking command instructs the computing device to copy database records of the database table to the destination data set, except database records of the database table that are marked as deleted.
47 . The computing device of claim 45 , wherein the processor is further configured to execute the machine executable code to update a database index to point to the destination data set and to remove the source data set from the storage media, after the repacking command has been executed.
48 . The computing device of claim 44 , wherein the source data set is a file storing a folder of electronic mails, and at least one segment of the database table comprises electronic mails that are marked as deleted.
49 . The computing device of claim 48 , wherein the repacking command instructs the computing device to copy data of the electronic mails stored in the source data set to the destination data set, except electronic mails that are marked as deleted.
50 . The computing device of claim 48 , wherein the repacking command comprises a list of file offsets identifying locations at which the electronic mails are stored in the file.Join the waitlist — get patent alerts
Track US2014365539A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.