Deduplication can be performed in 4 ways:
1. Immediately when the write is processed (inline) and before the write is ackowledged back to the originator of the write (pre-ack).
2. Immediately when the write is processed (inline) and in parallel to the write being acknowledged back to the originator of the write (on-ack).
3. A short time after the write is processed (inline) so after the write is acknowleged back to the originator of the write - eg. when flushing the write buffer to persistent storage (post-ack)
4. After the write has been committed to the persistent storage layer (post-process).
The first and second methods, when properly integrated into the solution, are most likely to offer both performance and capacity benefits. The third and fourth methods are primarily used for capacity benefits only.
In the case of Pivot3 the inline on-ack method has both performance and capacity benefits by reducing write amplification by coalescing written data before destaging and by accelerating reads.
Pivot3 uses IO pattern matching as its method of deduplication and compression. This process is inline and happens on IO block acknowledgment; it is performed entirely in memory. As soon as the data is ingested into memory and determined to be a duplicate or compressible, the system adds a metadata pointer to the reference in memory and acknowledges to the host immediately, so processes can continue.
Pivot3 deduplication ans compression is a feature present in both All-flash and Hybrid systems.