IP Library Granted Patent US 9,886,301
Granted Patent B2
US 9,886,301 · App. 15/086,123 · Granted Feb 6, 2018

Probabilistic deduplication-aware workload migration

Inventors: Benoit Guillaume Charles Hudzia (Belfast, GB); Alexander Solganik (Kfar-Saba, IL)
Assignee: STRATO SCALE LTD.
G06F9/45558G06F9/5088G06F17/30327G06F17/30371G06F17/30498G06F3/0641G06F2009/4557G06F2009/45583
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,886,301
App. No.
15/086,123
Granted
Feb 6, 2018
Kind
B2
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.

Claims (54)

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.

2. The method according to claim 1 , wherein the selection criterion aims to maximize a number of the memory pages that are used by the selected workload and can be deduplicated on the destination compute node following migration of the selected workload.

3. The method according to claim 1 , wherein calculating the bitmaps comprises calculating a node-level bitmap for the destination compute node by calculating the union of the bitmaps of the existing workloads on the destination node, and wherein deciding to migrate the workload comprises evaluating the selection criterion based on the node-level bitmap of the destination compute node.

4. The method according to claim 1 , wherein calculating the bitmaps comprises calculating HyperLogLog (HLL) bitmaps.

5. The method according to claim 1 , wherein deciding to migrate the selected workload is performed in response to detecting that the source compute node is overloaded.

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.

7. The method according to claim 6 , wherein the selection criterion aims to minimize a number of the memory pages that are used by the existing workloads on the source compute node and can no longer be deduplicated on the source compute node following migration of the selected workload.

8. The method according to claim 6 , wherein calculating the bitmaps comprises calculating a node-level bitmap for the source compute node by calculating the union of the bitmaps of the existing workloads on the source node, and wherein deciding to migrate the workload comprises evaluating the selection criterion based on the node-level bitmap of the destination compute node.

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.

11. The apparatus according to claim 10 , wherein the selection criterion aims to maximize a number of the memory pages that are used by the selected workload and can be deduplicated on the destination compute node following migration of the selected workload.

12. The apparatus according to claim 10 , wherein the processor is configured to calculate a node-level bitmap for the destination compute node by calculating the union of the bitmaps of the existing workloads on the destination node, and to evaluate the selection criterion based on the node-level bitmap of the destination compute node.

13. The apparatus according to claim 10 , wherein the bitmaps comprise HyperLogLog (HLL) bitmaps.

14. The apparatus according to claim 10 , wherein the processor is configured to decide to migrate the selected workload in response to detecting that the source compute node is overloaded.

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.

16. The apparatus according to claim 15 , wherein the selection criterion aims to minimize a number of the memory pages that are used by the existing workloads on the source compute node and can no longer be deduplicated on the source compute node following migration of the selected workload.

17. The apparatus according to claim 15 , wherein the processor is configured to calculate a node-level bitmap for the source compute node by calculating the union of the bitmaps of the existing workloads on the source node, and to evaluate the selection criterion based on the node-level bitmap of the destination compute node.

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.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2020
From: STRATO SCALE LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 053184/0620 →
SECURITY INTEREST Recorded Jan 24, 2019
From: STRATO SCALE LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 048115/0134 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: HUDZIA, BENOIT GUILLAUME CHARLES; SOLGANIK, ALEXANDER
To: STRATO SCALE LTD.
Reel/Frame 038146/0368 →
Continuity (2)
Provisional Application 62156347 · May 4, 2015
Related Publication 20160328257A1 · Nov 10, 2016