IP Library Granted Patent US 8,161,255
Granted Patent B2
US 8,161,255 · App. 12/349,318 · Granted Apr 17, 2012

Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,161,255
App. No.
12/349,318
Granted
Apr 17, 2012
Kind
B2
Abstract

One aspect of the present invention includes an optimized simultaneous storage operation for data objects onto a combination of deduplicated and non-deduplicated storage pools. In one embodiment, a data object is provided for storage onto destination storage pools in a storage management system, and placed into a source buffer. The data object is first divided into data chunks if the data object has not previously been chunked within the storage management system. The data object is then simultaneously copied from the source buffer to each destination storage pool (deduplicating and non-deduplicating) with the following operation. If the destination pool utilizes deduplication, then the individual data chunks are only transferred if copies of the individual data chunks do not already exist on the destination storage pool. If the destination pool does not utilize deduplication, then all chunks of the data object are transferred to the destination storage pool.

Claims (38)

1. A method for optimizing the simultaneous storage of data into deduplicated and non-deduplicated storage pools, comprising:

placing a data object into a source buffer;

copying the data object to a temporary buffer if the data object has not been previously divided into data chunks;

dividing the data object within the temporary buffer into data chunks if the data object has not been previously divided into data chunks;

copying a data chunk into a target buffer for a deduplicated destination storage pool if a copy of the data chunk does not exist within the deduplicated destination storage pool and copying the data chunk into a target buffer for a non-deduplicated destination storage pool, wherein control data is embedded in the data chunk and the data chunk is compressed during the copy;

copying the data chunk in the target buffer for the deduplicated destination storage pool to the deduplicated destination storage pool;

copying the data chunk in the target buffer for the non-deduplicated destination storage pool to the non-deduplicated destination storage pool; and

repeating the copying for each data chunk of the data chunks.

2. The method of claim 1 , wherein the data object is divided into data chunks using a Rabin fingerprinting algorithm.

3. The method of claim 1 , wherein a Secure Hash Algorithm digest is generated for each data chunk.

4. The method of claim 1 , further comprising cataloging the data chunk in the destination storage pool as a base chunk responsive to determining the destination storage pool is a deduplicating storage pool and a copy of the data chunk does not exist in the destination storage pool.

5. The method of claim 1 , further comprising cataloging the data chunk to point to a copy of the data chunk in the destination storage pool responsive to determining the destination storage pool is a deduplicating storage pool and a copy of the data chunk exists in the destination storage pool.

6. A system, comprising:

at least one processor; and

at least one memory storing instructions operable with the at least one processor for optimizing the simultaneous storage of data into deduplicated and non-deduplicated storage pools, the instructions being executed for:

placing a data object into a source buffer;

copying the data object to a temporary buffer if the data object has not been previously divided into data chunks;

dividing the data object within the temporary buffer into data chunks if the data object has not been previously divided into data chunks;

copying a data chunk into a target buffer for a deduplicated destination storage pool if a copy of the data chunk does not exist within the deduplicated destination storage pool and copying the data chunk into a target buffer for a non-deduplicated destination storage pool, wherein control data is embedded in the data chunk and the data chunk is compressed during the copy;

copying the data chunk in the target buffer for the deduplicated destination storage pool to the deduplicated destination storage pool; and

copying the data chunk in the target buffer for the non-deduplicated destination storage pool to the non-deduplicated destination storage pool; and

repeating the copying for each data chunk of the data chunks.

7. The system of claim 6 , wherein the data object is divided into data chunks using a Rabin fingerprinting algorithm.

8. The system of claim 6 , wherein a Secure Hash Algorithm digest is generated for each data chunk.

9. The system of claim 6 , further comprising cataloging the data chunk in the destination storage pool as a base chunk responsive to determining the destination storage pool is a deduplicating storage pool and a copy of the data chunk does not exist in the destination storage pool.

10. The system of claim 6 , further comprising cataloging the data chunk to point to a copy of the data chunk in the destination storage pool responsive to determining the destination storage pool is a deduplicating storage pool and a copy of the data chunk exists in the destination storage pool.

11. A computer program product comprising a tangible computer readable storage medium storing a computer readable program for optimizing the simultaneous storage of data into deduplicated and non-deduplicated storage pools, wherein the computer readable program when executed on a computer causes the computer to:

place a data object into a source buffer;

copying the data object to a temporary buffer if the data object has not been previously divided into data chunks;

divide the data object within the temporary buffer into data chunks if the data object has not been previously divided into data chunks;

copying a data chunk into a target buffer for a deduplicated destination storage pool if a copy of the data chunk does not exist within the deduplicated destination storage pool and copying the data chunk into a target buffer for a non-deduplicated destination storage pool, wherein control data is embedded in the data chunk and the data chunk is compressed during the copy;

copying the data chunk in the target buffer for the deduplicated destination storage pool to the deduplicated destination storage pool; and

copying the data chunk in the target buffer for the non-deduplicated destination storage pool to the non-deduplicated destination storage pool; and

repeating the copying for each data chunk of the data chunks.

12. The computer program product of claim 10 , wherein the data object is divided into data chunks using a Rabin fingerprinting algorithm.

13. The computer program product of claim 11 , wherein a Secure Hash Algorithm digest is generated for each data chunk.

14. The computer program product of claim 11 , further comprising cataloging the data chunk to point to a copy of the data chunk in the destination storage pool responsive to determining the destination storage pool is a deduplicating storage pool and a copy of the data chunk exists in the destination storage pool.

15. The computer program product of claim 11 , further comprising cataloging the data chunk to point to a copy of the data chunk in the destination storage pool responsive to determining the destination storage pool is a deduplicating storage pool and a copy of the data chunk exists in the destination storage pool.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2017
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DROPBOX, INC.
Reel/Frame 043938/0489 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2009
From: ANGLIN, MATTHEW J.; CANNON, DAVID M.; MARTIN, HOWARD N.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022065/0797 →