IP Library Granted Patent US 9,836,419
Granted Patent B2
US 9,836,419 · App. 14/486,202 · Granted Dec 5, 2017

Efficient data movement within file system volumes

Inventors: William R. Tipton (Seattle, WA); Rajsekhar Das (Kirkland, WA); Surendra Verma (Bellevue, WA); Karan Mehra (Sammamish, WA); Cornel Emilian Rat (Bothell, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F13/28G06F3/068G06F3/0611G06F3/0635G06F3/0647G06F3/0649G06F13/4221
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 9,836,419
App. No.
14/486,202
Granted
Dec 5, 2017
Kind
B2
Abstract

Embodiments are directed to efficiently managing data storage and efficiently storing data. In one scenario, a computer system receives a write request addressed to one portion of data storage within a data store. The computer system redirects the received write request to another portion of data storage which includes storage containers, each of which is a logically specified portion of the data store. The computer system determines which storage container the write request is to write to, and identifies a storage container that is to be de-staged from the second portion of data storage to the first portion of data storage. The computer system then de-stages the identified storage containers to the first portion of data storage, the data of the de-staged container being stored on the first portion of data storage in the same order in which the data was stored in the identified storage container prior to de-staging.

Claims (37)

1. At a computer system including at least one processor, a computer-implemented method for efficiently managing data storage, the method comprising:

receiving a write request addressed to a first data storage device within a data store system that presents a plurality of data storage devices as a single logical data store;

redirecting the received write request to a second data storage device within the data store system, the second data storage device including one or more storage containers, each storage container comprising a logically specified portion of the data store system;

determining which storage container the received write request is to write to on the second data storage device;

identifying a storage container that is to be de-staged from the second data storage device to the first data storage device; and

de-staging the identified storage container to the first data storage device, wherein the data of the de-staged container is stored on the first data storage device in the same order in which the data was stored in the identified storage container prior to the de-staging.

2. The method of claim 1 , further comprising updating a container mapping table that indicates an identity and location for each container in the data store system.

3. The method of claim 1 , wherein the at least one storage container includes a plurality of data file portions corresponding to a plurality of different data files.

4. The method of claim 1 , wherein the second data storage device within the data store system is faster at performing random input/output (I/O) operations than the first data storage device.

5. The method of claim 4 , wherein the first data storage device comprises a hard drive and wherein the second data storage device comprises a solid state drive.

6. The method of claim 4 , wherein the data store system further comprises a third data storage device, the third data storage device being faster at I/O operations than the first data storage device, but slower at I/O operations than the second data storage device.

7. The method of claim 6 , wherein the identified storage container is de-staged from the first data storage device to the third data storage device, and subsequently de-staged from the third data storage device to the second data storage device.

8. The method of claim 1 , wherein a first resiliency implementation is implemented in the first data storage device and a second, different resiliency implementation is implemented in the second data storage device within the data store system.

9. The method of claim 1 , wherein identifying the storage container that is to be de-staged from the second data storage device to the first data storage device comprises determining which container was least recently written to.

10. The method of claim 1 , wherein identifying the storage container that is to be de-staged from the second data storage device to the first data storage device comprises determining which container is full of data, such that the full container is de-staged from the second data storage device and moved to the first data storage device.

11. At a computer system including at least one processor, a computer-implemented method for efficiently storing data, the method comprising:

accessing one or more portions of use information for a storage container stored on a first data storage device within a data store system that presents a plurality of data storage devices as a single logical data store, the storage container comprising a logical portion of the data store system that stores a plurality of data file portions corresponding to a plurality of data files;

determining that the plurality of data file portions stored in the storage container includes data that has access characteristics that meet one or more criteria;

based on the one or more criteria, determining that the storage container is to be moved from the first data storage device to a second, different, data storage device within the data store system;

moving the storage container from the first data storage device to the second data storage device; and

updating metadata for the storage container identifying its new location on the second data storage device, without updating metadata for the plurality of data files.

12. The method of claim 11 , wherein at least one of the one or more criteria comprises an indication that the data has not been accessed for at least a threshold amount of time.

13. The method of claim 11 , wherein the first data storage device comprises a solid-state drive (SSD), and wherein the second data storage device comprises a hard disk drive (HDD).

14. The method of claim 11 , wherein the data store system includes one or more storage containers that are unmovable.

15. The method of claim 11 , wherein one or more hidden storage containers are reserved on the second data storage device for repositioning containers.

16. The method of claim 11 , wherein moving the storage container from the first data storage device to the second data storage device comprises compressing the data into a smaller-sized storage container.

17. A computer system comprising the following:

one or more hardware processors; and

one or more hardware storage devices having stored thereon computer-executable instructions that, when executed by the one or more processors, cause the computer system to perform at least the following:

receiving a write request addressed to a first data storage device within a data store system that presents a plurality of data storage devices as a single logical data store;

redirecting the received write request to a second storage device within the data store system, the second data storage device including one or more storage containers, each storage container comprising a logically specified portion of the data store system;

determining which storage container the received write request is to write to on the second data storage device;

identifying at least one storage container that is to be de-staged from the second data storage device to the first data storage device; and

de-staging the identified storage containers to the first data storage device, wherein the data of the de-staged container is stored sequentially on the first data storage device.

18. The computer system of claim 17 , wherein identifying at least one storage container that is to be de-staged from the second data storage device to the first data storage device comprises accessing a hint indicating which storage containers will not be used for a specified amount of time.

19. The computer system of claim 17 , wherein the at least one identified storage container is de-staged to a sequentially-constrained media.

20. The computer system of claim 17 , wherein the at least one storage container includes a plurality of data file portions corresponding to a plurality of different data files.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2014
From: TIPTON, WILLIAM R.; DAS, RAJSEKHAR; VERMA, SURENDRA; MEHRA, KARAN; RAT, CORNEL EMILIAN
To: MICROSOFT CORPORATION
Reel/Frame 034207/0320 →
Continuity (1)
Related Publication 20160077988A1 · Mar 17, 2016