IP Library Granted Patent US 8,706,935
Granted Patent B1
US 8,706,935 · App. 13/441,150 · Granted Apr 22, 2014

Data consolidation using a common portion accessible by multiple devices

Inventors: Jeff Z. Slutzky (Lake Worth, FL); Roni J. Putra (Pompano Beach, FL); Ziya A. Aral (Pompano Beach, FL)
Assignee: DataCore Software Corporation
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,706,935
App. No.
13/441,150
Granted
Apr 22, 2014
Kind
B1
Abstract

Multiple devices are provided access to a common, single instance of data and may use it without consuming resources beyond what would be required if only one device were using that data in a traditional configuration. In order to retain the device-specific differences, they are kept separate, but their relationship to the common data is maintained. All of this is done in a fashion that allows a given device to perceive and use its data as though it was its own separately accessible data.

Claims (63)

1. A method for presenting virtual disks to devices using underlying shared data, the method comprising:

presenting the virtual disks to the devices;

providing an instance of a common portion of data and device-specific portions of data that are accessible in response to transactions directed to the virtual disks by the devices,

wherein the instance of the common portion of data is implemented as underlying data for each of the virtual disks, and

the device-specific portions of data are respectively implemented as underlying data for modifications to the common portion of data for respective ones of the virtual disks; and

maintaining caches for the common portion of data and, separately from the common portion of data, the device-specific portions of data, such that the instance of the common portion of data is accessible for the transactions directed to any of the virtual disks without requiring replication of the common portion of data, while respective modifications to the common portion of data are separately maintained for the device-specific portions of data,

wherein the virtual disks are presented to the devices as accessible disks, without presenting the common portion of data and the device-specific portions to the devices.

2. The method of claim 1 , further comprising:

maintaining a common portion cache for the common portion of data;

receiving read requests from the plurality of devices, directed to the plurality of virtual disks; and

directing the read requests to the common portion cache.

3. The method of claim 2 , further comprising:

maintaining device-specific caches respectively corresponding to the plurality of device-specific portions;

receiving a write request corresponding to a given virtual disk presented to a given device; and

copying original source data corresponding the write request to a device-specific portion cache for the given virtual disk.

4. The method of claim 1 , further comprising:

maintaining a common portion cache for the common portion of data;

receiving read requests from the plurality of devices, directed to the plurality of virtual disks; and

directing the read requests to the common portion cache, and updating the common portion cache to include data read in the read requests following a cache miss, such that the common portion cache is populated with data.

5. The method of claim 1 , wherein the common portion of data comprises an operating system.

6. The method of claim 1 , wherein the common portion of data comprises application data.

7. A non-transitory computer readable medium storing program code for presenting virtual disks to devices using underlying shared data, the program code being executable to perform operations comprising:

presenting the virtual disks to the devices;

providing an instance of a common portion of data and device-specific portions of data that are accessible in response to transactions directed to the virtual disks by the devices,

wherein the instance of the common portion of data is implemented as underlying data for each of the virtual disks, and

the device-specific portions of data are respectively implemented as underlying data for modifications to the common portion of data for respective ones of the virtual disks; and

maintaining caches for the common portion of data and, separately from the common portion of data, the device-specific portions of data, such that the instance of the common portion of data is accessible for the transactions directed to any of the virtual disks without requiring replication of the common portion of data, while respective modifications to the common portion of data are separately maintained for the device-specific portions of data,

wherein the virtual disks are presented to the devices as accessible disks, without presenting the common portion of data and the device-specific portions to the devices.

8. The computer readable medium of claim 7 , wherein the operations further comprise:

maintaining a common portion cache for the common portion of data;

receiving read requests from the plurality of devices, directed to the plurality of virtual disks; and

directing the read requests to the common portion cache.

9. The computer readable medium of claim 8 , wherein the operations further comprise:

maintaining device-specific caches respectively corresponding to the plurality of device-specific portions;

receiving a write request corresponding to a given virtual disk presented to a given device; and

copying original source data corresponding the write request to a device-specific portion cache for the given virtual disk.

10. The computer readable medium of claim 7 , wherein the operations further comprise:

maintaining a common portion cache for the common portion of data;

receiving read requests from the plurality of devices, directed to the plurality of virtual disks; and

directing the read requests to the common portion cache, and updating the common portion cache to include data read in the read requests following a cache miss, such that the common portion cache is populated with data.

11. An apparatus for presenting virtual disks to devices using underlying shared data, the apparatus comprising:

a processor; and

a memory, the memory storing program code executable by the processor to perform operations comprising:

presenting the virtual disks to the devices;

providing an instance of a common portion of data and device-specific portions of data that are accessible in response to transactions directed to the virtual disks by the devices,

wherein the instance of the common portion of data is implemented as underlying data for each of the virtual disks, and

the device-specific portions of data are respectively implemented as underlying data for modifications to the common portion of data for respective ones of the virtual disks; and

maintaining caches for the common portion of data and, separately from the common portion of data, the device-specific portions of data, such that the instance of the common portion of data is accessible for the transactions directed to any of the virtual disks without requiring replication of the common portion of data, while respective modifications to the common portion of data are separately maintained for the device-specific portions of data,

wherein the virtual disks are presented to the devices as accessible disks, without presenting the common portion of data and the device-specific portions to the devices.

12. The apparatus of claim 11 , wherein the operations further comprise:

maintaining a common portion cache for the common portion of data;

receiving read requests from the plurality of devices, directed to the plurality of virtual disks; and

directing the read requests to the common portion cache.

13. The apparatus of claim 12 , wherein the operations further comprise:

maintaining device-specific caches respectively corresponding to the plurality of device-specific portions;

receiving a write request corresponding to a given virtual disk presented to a given device; and

copying original source data corresponding the write request to a device-specific portion cache for the given virtual disk.

14. The apparatus of claim 11 , wherein the operations further comprise:

maintaining a common portion cache for the common portion of data;

receiving read requests from the plurality of devices, directed to the plurality of virtual disks; and

directing the read requests to the common portion cache, and updating the common portion cache to include data read in the read requests following a cache miss, such that the common portion cache is populated with data.

15. The apparatus of claim 11 , wherein the common portion of data comprises an operating system.

16. The apparatus of claim 11 , wherein the common portion of data comprises application data.

Assignments (4)
SECURITY INTEREST Recorded May 29, 2024
From: DATACORE SOFTWARE CORPORATION
To: VISTARA TECHNOLOGY GROWTH FUND V MASTER, LP
Reel/Frame 067563/0884 →
SECURITY INTEREST Recorded Oct 28, 2021
From: DATACORE SOFTWARE CORPORATION
To: STIFEL BANK
Reel/Frame 057969/0086 →
SECURITY INTEREST Recorded Dec 14, 2017
From: DATACORE SOFTWARE CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 044400/0417 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2012
From: SLUTZKY, JEFF; PUTRA, RONI; ARAL, ZIYA
To: DATACORE SOFTWARE CORPORATION
Reel/Frame 028425/0737 →