CONTENT-BASED WRITE REDUCTION
Apparatus, systems, and methods may operate to detect a write request to write new data to a storage medium, to generate a coded version of the new data, to compare the coded version of the new data to a coded version of old data stored in the storage medium, and to refrain from writing the new data to the storage medium when the coded version of the new data is equal to the coded version of the old data. Additional apparatus, systems, and methods are disclosed.
1 . An apparatus, comprising:
a node including a detection module to detect a write request to write new data to an area of a storage medium; and
a processor to generate a coded version of the new data, to compare the coded version of the new data to a coded version of old data stored in the area, and to prevent writing the new data to the area when the coded version of the new data is equal to the coded version of the old data.
2 . The apparatus of claim 1 , further comprising:
the storage medium.
3 . The apparatus of claim 1 , further comprising:
a memory to store the coded version of the old data as meta data associated with a file containing the old data.
4 . A system, comprising:
a first node to issue a write request associated with new data comprising at least a portion of a data file; and
a second node including a detection module to detect the write request to write the new data, and a processor to generate a coded version of the new data, to compare the coded version of the new data to a coded version of old data stored in an area of a storage medium, and to prevent writing the new data to the area when the coded version of the new data is equal to the coded version of the old data.
5 . The system of claim 4 , wherein the storage medium comprises:
an array of disks.
6 . The system of claim 4 , further comprising:
a display coupled to the first node to display a visible representation of the portion.
7 . A processor-implemented method to execute on one or more processors that perform the method, comprising:
detecting a write request to write new data to an area of a storage medium;
generating a coded version of the new data;
comparing the coded version of the new data to a coded version of old data stored in the area; and
refraining from writing the new data to the area when the coded version of the new data is equal to the coded version of the old data.
8 . The method of claim 7 , further comprising:
storing the coded version of the old data as meta data prior to the detecting.
9 . The method of claim 8 , wherein the meta data comprises a portion of file meta data.
10 . The method of claim 7 , further comprising:
writing the new data to the area when the coded version of the new data differs from the coded version of the old data.
11 . The method of claim 7 , wherein the storage medium comprises:
a disk.
12 . The method of claim 7 , wherein the area comprises at least one block of memory.
13 . The method of claim 7 , wherein the coded version of the new data comprises a hash of the new data.
14 . The method of claim 7 , wherein the write request is associated with detecting selection of a save command used in one of a word processing application program, a spreadsheet application program, a presentation application program, or a calendar processing application program.
15 . The method of claim 7 , further comprising:
repeating the refraining for a plurality of blocks in a single file until a hash of the data to be written to one of the plurality of blocks is not equal to a hash of the data already written to the one of the plurality of blocks.
16 . A processor-implemented method to execute on one or more processors that perform the method, comprising:
receiving, at a server, a write request to write new data to an area of a multi-disk storage medium coupled to the server;
generating a coded version of the new data;
comparing the coded version of the new data to a coded version of old data stored in the area of the multi-disk storage medium; and
refraining from writing the new data to the area of the multi-disk storage medium when the coded version of the new data is equal to the coded version of the old data.
17 . The method of claim 16 , wherein the receiving further comprises:
receiving the write request from one of a plurality of clients coupled to the server by a network.
18 . The method of claim 16 , wherein the coded version of the new data comprises a hash coded version of the new data or a cyclic redundancy check coded version of the new data.
19 . The method of claim 16 , further comprising:
storing the new data in a data cache prior to the generating.
20 . The method of claim 16 , further comprising:
storing the coded version of the new data in a meta data storage area.
21 . The method of claim 16 , further comprising:
reading the coded version of the old data into memory responsive to booting the server.
22 . The method of claim 16 , wherein the area of the multi-disk storage medium comprises a plurality of blocks.
23 . The method of claim 16 , further comprising:
writing the new data to the area of the multi-disk storage medium when the coded version of the old data does not exist.