×

Method and system for cross-domain data sharing

  • US 8,037,279 B2
  • Filed: 06/12/2008
  • Issued: 10/11/2011
  • Est. Priority Date: 06/12/2008
  • Status: Active Grant
First Claim
Patent Images

1. A method for sharing data between a first domain and a second domain, comprising:

  • issuing a first request for the data from a storage pool by the first domain, wherein the first request comprises a first pseudo-physical page number, wherein the first domain comprises a first domain address map, and wherein the first domain address map comprises an entry associating the first pseudo-physical page number with a first virtual memory address;

    receiving the first request by a control domain driver in a control domain;

    identifying, in response to the first request, a first clone of a hierarchical block tree, wherein the first clone corresponds to the first domain;

    traversing the first clone to determine that the data is not in shared memory;

    obtaining, in response to determining that the data is not in the shared memory, the data from the storage pool by the control domain driver;

    storing a first copy of the data in the shared memory at a first physical address, wherein the shared memory is accessible by the control domain, the first domain, and the second domain;

    updating a hypervisor page map to include an entry associating the first pseudo-physical page number with the first physical address;

    notifying the first domain that the first request has been completed;

    issuing a second request for the data from the storage pool by the second domain, wherein the second request comprises a second pseudo-physical page number, wherein the second domain comprises a second domain address map, and wherein the second domain address map comprises an entry associating the second pseudo-physical page number with a second virtual memory address;

    receiving the second request by the control domain driver in the control domain, wherein the second request comprises a requested metaslab identifier and a requested offset of the data;

    identifying, in response to the second request, a second clone of the hierarchical block tree, wherein the second clone corresponds to the second domain;

    traversing the second clone using the requested metaslab identifier and the requested offset;

    determining, by the control domain driver while traversing the second clone, that the first copy of the data is present in the shared memory by identifying a match between the requested metaslab identifier and the requested offset and a data'"'"'s metaslab identifier and a data'"'"'s offset corresponding to the first copy of the data, wherein the first copy of the data is referenced in the second clone;

    updating the hypervisor page map to include an entry associating the second pseudo-physical page number with the first physical address; and

    notifying the second domain that the second request has been completed,wherein the first domain and the second domain communicate with the control domain using a hypervisor.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×