Probabilistic deduplication-aware workload migration
First Claim
1. A computing method, comprising:
- running, on a plurality of compute nodes, multiple workloads that access respective sets of memory pages;
calculating respective bitmaps for at least some of the workloads, wherein;
(i) a bitmap of a workload is statistically indicative of a cardinality of the set of memory pages used by the workload;
(ii) a union of two or more bitmaps is statistically indicative of the cardinality of a union of the sets of memory pages used by the two or more corresponding workloads; and
(iii) an intersection of first and second bitmaps is statistically indicative of an overlap between respective first and second sets of memory pages used by the corresponding workloads; and
deciding to migrate a selected workload from a source compute node to a destination compute node, based on one or more of the bitmaps,wherein deciding to migrate the selected workload comprises choosing one or both of the selected workload and the destination compute node, based on a selection criterion that is defined over one or more of the bitmaps and aims to maximize the overlap between the memory pages used by the selected workload and the memory pages used by existing workloads on the destination compute node.
3 Assignments
0 Petitions
Accused Products
Abstract
A computing method includes running, on a plurality of compute nodes, multiple workloads that access respective sets of memory pages. Respective bitmaps are calculated for at least some of the workloads, wherein (i) a bitmap of a workload is statistically indicative of a cardinality of the set of memory pages used by the workload, (ii) a union of two or more bitmaps is statistically indicative of the cardinality of a union of the sets of memory pages used by the two or more corresponding workloads, and (iii) an intersection of first and second bitmaps is statistically indicative of an overlap between respective first and second sets of memory pages used by the corresponding workloads. A decision is made to migrate a selected workload from a source compute node to a destination compute node, based on one or more of the bitmaps.
13 Citations
19 Claims
-
1. A computing method, comprising:
-
running, on a plurality of compute nodes, multiple workloads that access respective sets of memory pages; calculating respective bitmaps for at least some of the workloads, wherein; (i) a bitmap of a workload is statistically indicative of a cardinality of the set of memory pages used by the workload; (ii) a union of two or more bitmaps is statistically indicative of the cardinality of a union of the sets of memory pages used by the two or more corresponding workloads; and (iii) an intersection of first and second bitmaps is statistically indicative of an overlap between respective first and second sets of memory pages used by the corresponding workloads; and deciding to migrate a selected workload from a source compute node to a destination compute node, based on one or more of the bitmaps, wherein deciding to migrate the selected workload comprises choosing one or both of the selected workload and the destination compute node, based on a selection criterion that is defined over one or more of the bitmaps and aims to maximize the overlap between the memory pages used by the selected workload and the memory pages used by existing workloads on the destination compute node. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computing method, comprising:
-
running, on a plurality of compute nodes, multiple workloads that access respective sets of memory pages; calculating respective bitmaps for at least some of the workloads, wherein; (i) a bitmap of a workload is statistically indicative of a cardinality of the set of memory pages used by the workload; (ii) a union of two or more bitmaps is statistically indicative of the cardinality of a union of the sets of memory pages used by the two or more corresponding workloads; and (iii) an intersection of first and second bitmaps is statistically indicative of an overlap between respective first and second sets of memory pages used by the corresponding workloads; and deciding to migrate a selected workload from a source compute node to a destination compute node, based on one or more of the bitmaps, wherein deciding to migrate the workload comprises choosing one or both of the source compute node and the selected workload, based on a selection criterion that is defined over one or more of the bitmaps and aims to minimize the overlap between the memory pages used by the selected workload and the memory pages used by existing workloads on the source compute node. - View Dependent Claims (7, 8)
-
-
9. A computing method, comprising:
-
running, on a plurality of compute nodes, multiple workloads that access respective sets of memory pages; calculating respective bitmaps for at least some of the workloads, wherein; (i) a bitmap of a workload is statistically indicative of a cardinality of the set of memory pages used by the workload; (ii) a union of two or more bitmaps is statistically indicative of the cardinality of a union of the sets of memory pages used by the two or more corresponding workloads; and (iii) an intersection of first and second bitmaps is statistically indicative of an overlap between respective first and second sets of memory pages used by the corresponding workloads; and deciding to migrate a selected workload from a source compute node to a destination compute node, based on one or more of the bitmaps, wherein calculating a bitmap for a given workload comprises calculating respective hash values over at least some of the memory pages used by the given workload, and calculating the bitmap based on the hash values, and wherein calculating the bitmap comprises evaluating the bitmap over the hash values of only the memory pages that are modified by the given workload less frequently than a predefined modification rate.
-
-
10. A computing apparatus, comprising:
-
an interface for communicating with a plurality of compute nodes, which run multiple workloads that access respective sets of memory pages; and a processor, which is configured to receive from the compute nodes bitmaps calculated for at least some of the workloads, wherein (i) a bitmap of a workload is statistically indicative of a cardinality of the set of memory pages used by the workload, (ii) a union of two or more bitmaps is statistically indicative of the cardinality of a union of the sets of memory pages used by the two or more corresponding workloads, and (iii) an intersection of first and second bitmaps is statistically indicative of an overlap between respective first and second sets of memory pages used by the corresponding workloads, and to decide to migrate a selected workload from a source compute node to a destination compute node based on one or more of the bitmaps, wherein the processor is configured to choose one or both of the selected workload and the destination compute node, based on a selection criterion that is defined over one or more of the bitmaps and aims to maximize the overlap between the memory pages used by the selected workload and the memory pages used by existing workloads on the destination compute node. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computing apparatus, comprising:
-
an interface for communicating with a plurality of compute nodes, which run multiple workloads that access respective sets of memory pages; and a processor, which is configured to receive from the compute nodes bitmaps calculated for at least some of the workloads, wherein (i) a bitmap of a workload is statistically indicative of a cardinality of the set of memory pages used by the workload, (ii) a union of two or more bitmaps is statistically indicative of the cardinality of a union of the sets of memory pages used by the two or more corresponding workloads, and (iii) an intersection of first and second bitmaps is statistically indicative of an overlap between respective first and second sets of memory pages used by the corresponding workloads, and to decide to migrate a selected workload from a source compute node to a destination compute node based on one or more of the bitmaps, wherein the processor is configured to choose one or both of the source compute node and the selected workload, based on a selection criterion that is defined over one or more of the bitmaps and aims to minimize the overlap between the memory pages used by the selected workload and the memory pages used by existing workloads on the source compute node. - View Dependent Claims (16, 17)
-
-
18. A computing apparatus, comprising:
-
an interface for communicating with a plurality of compute nodes, which run multiple workloads that access respective sets of memory pages; and a processor, which is configured to receive from the compute nodes bitmaps calculated for at least some of the workloads, wherein (i) a bitmap of a workload is statistically indicative of a cardinality of the set of memory pages used by the workload, (ii) a union of two or more bitmaps is statistically indicative of the cardinality of a union of the sets of memory pages used by the two or more corresponding workloads, and (iii) an intersection of first and second bitmaps is statistically indicative of an overlap between respective first and second sets of memory pages used by the corresponding workloads, and to decide to migrate a selected workload from a source compute node to a destination compute node based on one or more of the bitmaps, wherein the processor is configured to calculate a bitmap for a given workload by calculating respective hash values over at least some of the memory pages used by the given workload, and calculating the bitmap based on the hash values, and wherein the processor is configured to evaluate the bitmap over the hash values of only the memory pages that are modified by the given workload less frequently than a predefined modification rate.
-
-
19. A computing system, comprising:
-
a plurality of compute nodes, which are configured to run multiple workloads that access respective sets of memory pages, and to calculate respective bitmaps for at least some of the workloads, wherein (i) a bitmap of a workload is statistically indicative of a cardinality of the set of memory pages used by the workload, (ii) a union of two or more bitmaps is statistically indicative of the cardinality of a union of the sets of memory pages used by the two or more corresponding workloads, and (iii) an intersection of first and second bitmaps is statistically indicative of an overlap between respective first and second sets of memory pages used by the corresponding workloads; and a processor, which is configured to receive the bitmaps from the compute nodes and to decide, based on one or more of the bitmaps, to migrate a selected workload from a source compute node to a destination compute node, wherein the processor is configured to choose one or both of the selected workload and the destination compute node, based on a selection criterion that is defined over one or more of the bitmaps and aims to maximize the overlap between the memory pages used by the selected workload and the memory pages used by existing workloads on the destination compute node.
-
Specification