1-24 (cancelled):
25. A microsurgical instrument comprising:
first and second operative microsurgical surfaces;
means for manually moving the first and second operative microsurgical surfaces toward and away from each other; and
at least one of the operative microsurgical surfaces having a series of serrations and each serration having a width dimension smaller than 0.007 of an inch.
26. The microsurgical instrument of claim 25, further comprising:
each serration having a width dimension of at most 0.0039 of an inch.
27. The microsurgical instrument of claim 25, further comprising:
each serration having a width dimension in the range of 0.0015 of an inch to 0.0039 of an inch.
28. The microsurgical surgical instrument of claim 25, further comprising:
the series of serrations being a wire electric discharge machined surface.
29. The microsurgical instrument of claim 25, further comprising:
the first and second operative microsurgical surfaces being on a pair of opposed forcep jaws.
30. The microsurgical instrument of claim 29, further comprising:
the pair of forcep jaws being connected to an elongate rod with the pair of forcep jaws projecting from a distal end of the rod.
31. The microsurgical instrument of claim 30, further comprising:
the pair of forcep jaws and the rod being formed from a single piece of material.
32. The microsurgical instrument of claim 30, further comprising:
a slot formed into the rod at the rod distal end, the slot separating the pair of forcep jaws.
33. The microsurgical instrument of claim 30, further comprising:
the pair of forcep jaws having been formed by wire electric discharge machining.
34. The microsurgical instrument of claim 30, further comprising:
the pair of forcep jaws having been formed solely by electric discharge machining.
35. The microsurgical instrument of claim 30, further comprising:
a slot formed in the rod at the rod distal end, the slot forming a pair of resilient spring arms at the rod distal end that connect the pair of forcep jaws to the rod.
36. The microsurgical instrument of claim 25, further comprising:
the first and second operative microsurgical surfaces being on a pair of opposed scissor blades.
37. The microsurgical instrument of claim 36, further comprising:
the pair of scissor blades being connected to an elongate rod with the pair of scissor blades projecting from a distal end of the rod.
38. The microsurgical instrument of claim 37, further comprising:
the pair of scissor blades and the rod being formed from a single piece of material.
39. The microsurgical instrument of claim 37, further comprising:
a slot formed in the rod at the rod distal end, the slot separating the pair of scissor blades.
40. The microsurgical instrument of claim 37, further comprising:
the pair of scissor blades having been formed by wire electric discharge machining.
41. The microsurgical instrument of claim 37, further comprising:
the pair of scissor blades having been formed solely by electric discharge machining.
42. The microsurgical instrument of claim 37, further comprising:
a slot formed in the rod at the rod distal end, the slot forming a pair of resilient spring arms at the rod distal end that connect the pair of scissor blades to the rod.
43. A microsurgical instrument comprising:
an elongate rod having opposite proximal and distal ends;
a slot in the rod distal end forming a pair of resilient spring arms projecting from the rod;
a pair of opposed, operative microsurgical surfaces on the pair of spring arms; and,
the slot, the pair of spring arms, and the pair of operative microsurgical surfaces having been formed by electric discharge machining.
44. The microsurgical instrument of claim 43, further comprising:
the slot, the pair of spring arms, and the pair of operative microsurgical surfaces having been formed by electric discharge machining in a single piece of material.
45. The microsurgical instrument of claim 44, further comprising:
the pair of operative microsurgical surfaces being a pair of forcep jaws.
46. The microsurgical instrument of claim 45, further comprising:
the pair of forcep jaws having opposed serrated surfaces.
47. The microsurgical instrument of claim 46, further comprising:
the serrated surfaces having serrations with width dimensions smaller than 0.007 of an inch.
48. The microsurgical instrument of claim 46, further comprising:
the pair of forcep jaws opposed serrated surfaces having been formed solely by electric discharge machining.
49. The microsurgical instrument of claim 44, further comprising:
the pair of operative microsurgical surfaces being a pair of scissor blades.
50. The microsurgical instrument of claim 49, further comprising:
the pair of scissor blades having opposed serrated edges.
51. The microsurgical instrument of claim 50, further comprising:
the serrated edges having serrations with width dimensions smaller than 0.007 of an inch.
52. The microsurgical instrument of claim 50, further comprising:
the pair of scissor blades opposed serrated edges having been formed solely by electric discharge machining.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method, comprising:
creating a virtual machine (VM) image of an operating system (OS);
loading the VM image into a caching application using a mount utility;
enumerating file contents of the OS and program file directories on a root file system;
storing the enumeration as a directory enumeration result;
reading in sequence, from beginning to end, each file in the directory enumeration result in a predetermined segment size;
hashing each segment read using a hashing function to generate a hash entry for each segment, the hash entry including an assigned value that is an integer associated with hash entry based on the file contents; and
storing each hash entry and its associated assigned valued in a hash table data structure.
2. The method of claim 1, wherein the predetermined segment size comprises a NTFS cluster size;
3. The method of claim 2, wherein the NTFS cluster size is 4 kilobytes.
4. The method of claim 1, wherein the OS comprises a Windows OS.
5. A method, comprising:
reading into memory a catalog file including a hash table having a plurality of entries for NTFS objects and a plurality of associated values, each associated value comprises an integer, and each entry is assigned only one of the plurality of associated values;
waiting to service block read requests and block write requests;
initializing an intelligent content aware caching application running on a VM hypervisor only after a block read request has been received;
populating a slot in a cache with a payload and metadata from each block read request or from each block write request that is received after the caching application has been initialized;
updating the metadata in each slot with one of the plurality of assigned values from the catalog according to a read IO protocol for block read requests or according to a write IO protocol for block write requests,
the caching application operative to perform the updating of each slot using the plurality of entries for NTFS objects and the plurality of associated values read into memory from the catalog.
6. The method of claim 5, wherein the read IO protocol comprises
hashing contents of a read IO block using a hashing function to generate a hash value;
storing the hash value in memory;
comparing the hash value against the plurality of entries for NTFS objects in the catalog;
determining if the hash value exists as one of plurality of one of the plurality of assigned values in the catalog;
updating metadata in the slot for the read IO block with an assigned value of zero from the catalog if the hash value does not exist as one of the plurality of assigned values;
foregoing an update of metadata in the slot for the read IO block with an assigned value from the catalog if the hash value exists as one of the plurality of assigned values and the assigned value is a one; and
updating metadata in the slot for the read IO block with an assigned value from the catalog if the hash value exists as one of the plurality of assigned values but the assigned value is not a one.
7. The method of claim 5, wherein the write IO protocol comprises
hashing contents of a write IO block using a hashing function to generate a hash value;
storing the hash value in memory;
comparing the hash value against the plurality of entries for NTFS objects in the catalog;
determining if the hash value exists as one of plurality of one of the plurality of assigned values in the catalog;
updating metadata in the slot for the write IO block with an assigned value of zero from the catalog if the hash value does not exist as one of the plurality of assigned values;
foregoing an update of metadata in the slot for the write IO block with an assigned value from the catalog if the hash value exists as one of the plurality of assigned values and the assigned value is a one; and
updating metadata in the slot for the write IO block with an assigned value from the catalog if the hash value exists as one of the plurality of assigned values but the assigned value is not a one.
8. A method, comprising:
using an assigned value from a catalog to determine which slot to evict from a set in a cache, the assigned value is an integer;
evaluate a slot from a given set in the cache using an intelligent content aware caching application running on a VM hypervisor and configured to read contents of the catalog to determine whether or not to evict the slot being evaluated;
determining if metadata for the slot being evaluated has assigned value of three and foregoing eviction of the slot if its metadata has the assigned value of three;
(a) evaluating all slots in the set having an assigned value of zero and evicting the slot having the oldest time stamp and having the assigned value of zero in its metadata;
(b) evaluating all slots in the set having an assigned value of two and evicting the slot having the oldest time stamp and having the assigned value of two in its metadata;
(c) evaluating all slots in the set having an assigned value of one and evicting the slot having the oldest time stamp and having the assigned value of one in its metadata; and
going to another set in the cache and evaluating slots in the another set if slots in the set are found that have assigned values of zero or two in their metadata or if no slots in the set are found that have assigned values of one in their metadata.
9. The method of claim 8, wherein the evaluating of all slots occurs in a order and the order is (a) followed by (b), and (b) followed by (c).
10. The method of claim 8 and further comprising:
evaluating the next slot in the set.
11. The method of claim 8 and further comprising:
going to another set in the cache and evaluating slots in the another set.
12. A system, comprising:
a plurality of virtual machines running an image of an operating system (OS);
a VM hypervisor in network communication with the plurality of virtual machines and with a storage network;
a plurality of storage devices in network communication with the VM hypervisor through the storage network;
an intelligent content aware caching application running on the VM hypervisor and in network communication with the plurality of storage devices through the storage network; and
a cache including a plurality of sets and a plurality of slots in each set, and content in the cache controlled by intelligent content aware caching application based on NTFS object types and assigned integer values stored in a catalog accessed by the intelligent content aware caching application.
13. The system of claim 12 and further comprising:
at least one processor configured to execute the VM hypervisor and the intelligent content aware caching application.
14. The system of claim 13, wherein the at least one processor is a component of a computer system.
15. The system of claim 12, wherein the plurality of storage devices comprise a storage media selected from the group consisting of hard disk drive (HDD), a solid state disk drive (SSD), a RAID storage system, a SAN storage system, and a NAS storage system.
16. A computer program product embodied in a non-transitory computer readable medium configured for execution on a computer system and comprising computer instructions for:
creating a virtual machine (VM) image of an operating system (OS);
loading the VM image into a caching application using a mount utility;
enumerating file contents of the OS and program file directories on a root file system;
storing the enumeration as a directory enumeration result;
reading in sequence, from beginning to end, each file in the directory enumeration result in a predetermined segment size;
hashing each segment read using a hashing function to generate a hash entry for each segment, the hash entry including an assigned value that is an integer associated with hash entry based on the file contents; and
storing each hash entry and its associated assigned valued in a hash table data structure.
17. A computer program product embodied in a non-transitory computer readable medium configured for execution on a computer system and comprising computer instructions for:
reading into memory a catalog file including a hash table having a plurality of entries for NTFS objects and a plurality of associated values, each associated value comprises an integer, and each entry is assigned only one of the plurality of associated values;
waiting to service block read requests and block write requests;
initializing an intelligent content aware caching application running on a VM hypervisor only after a block read request has been received;
populating a slot in a cache with a payload and metadata from each block read request or from each block write request that is received after the caching application has been initialized;
updating the metadata in each slot with one of the plurality of assigned values from the catalog according to a read IO protocol for block read requests or according to a write IO protocol for block write requests,
the caching application operative to perform the updating of each slot using the plurality of entries for NTFS objects and the plurality of associated values read into memory from the catalog.
18. The computer program product of claim 17 and further comprising read IO protocol instructions for:
hashing contents of a read IO block using a hashing function to generate a hash value;
storing the hash value in memory;
comparing the hash value against the plurality of entries for NTFS objects in the catalog;
determining if the hash value exists as one of plurality of one of the plurality of assigned values in the catalog;
updating metadata in the slot for the read IO block with an assigned value of zero from the catalog if the hash value does not exist as one of the plurality of assigned values;
foregoing an update of metadata in the slot for the read IO block with an assigned value from the catalog if the hash value exists as one of the plurality of assigned values and the assigned value is a one; and
updating metadata in the slot for the read IO block with an assigned value from the catalog if the hash value exists as one of the plurality of assigned values but the assigned value is not a one.
19. The computer program product of claim 17 and further comprising write IO protocol instructions for:
hashing contents of a write IO block using a hashing function to generate a hash value;
storing the hash value in memory;
comparing the hash value against the plurality of entries for NTFS objects in the catalog;
determining if the hash value exists as one of plurality of one of the plurality of assigned values in the catalog;
updating metadata in the slot for the write IO block with an assigned value of zero from the catalog if the hash value does not exist as one of the plurality of assigned values;
foregoing an update of metadata in the slot for the write IO block with an assigned value from the catalog if the hash value exists as one of the plurality of assigned values and the assigned value is a one; and
updating metadata in the slot for the write IO block with an assigned value from the catalog if the hash value exists as one of the plurality of assigned values but the assigned value is not a one.
20. A computer program product embodied in a non-transitory computer readable medium configured for execution on a computer system and comprising computer instructions for:
using an assigned value from a catalog to determine which slot to evict from a set in a cache, the assigned value is an integer;
evaluate a slot from a given set in the cache using an intelligent content aware caching application running on a VM hypervisor and configured to read contents of the catalog to determine whether or not to evict the slot being evaluated;
determining if metadata for the slot being evaluated has assigned value of three and foregoing eviction of the slot if its metadata has the assigned value of three;
(a) evaluating all slots in the set having an assigned value of zero and evicting the slot having the oldest time stamp and having the assigned value of zero in its metadata;
(b) evaluating all slots in the set having an assigned value of two and evicting the slot having the oldest time stamp and having the assigned value of two in its metadata;
(c) evaluating all slots in the set having an assigned value of one and evicting the slot having the oldest time stamp and having the assigned value of one in its metadata; and
going to another set in the cache and evaluating slots in the another set if slots in the set are found that have assigned values of zero or two in their metadata or if no slots in the set are found that have assigned values of one in their metadata.
21. The computer program product of claim 20, wherein computer instructions for evaluating of all slots are executed in a order and the order is (a) followed by (b), and (b) followed by (c).