Skip to content

Implementation of ZoneawareEnsemblePlacementPolicy#2113

Merged
reddycharan merged 1 commit intoapache:masterfrom
reddycharan:zoneawareplacementpolicycommunitybranch
Jun 25, 2019
Merged

Implementation of ZoneawareEnsemblePlacementPolicy#2113
reddycharan merged 1 commit intoapache:masterfrom
reddycharan:zoneawareplacementpolicycommunitybranch

Conversation

@reddycharan
Copy link
Contributor

Descriptions of the changes in this PR:

Implementation of ZoneawareEnsemblePlacementPolicy

  • This is meant to be used in public cloud infrastructure in which
    Availability zones (AZs) are isolated locations within data center
    regions from which public cloud services originate and operate.
  • ZoneawareEnsemblePlacementPolicy is a placement policy implementation
    which uses zone information for placing ensembles.
  • In this PlacementPolicy, it is assumed the networktopology/networklocation
    is going to be two level tree, where first part indicates zoneid
    and the second part indicates upgradedomainid.
  • Here upgrade domain is a set of bookies in an AZ that can be brought
    down together for short term maintenance with no impact to the service.
    This would help in enabling parallel patching.
  • Upgrade domain is a logic concept/division and it may be mapped to
    cloud provider native cluster/grouping like Placement Groups in AWS.

Introduce soft PlacementPolicyAdherence

  • for ZoneawarePlacementPolicy if in a writeset the number
    of zones are in between minnumofzones and desirednumofzones
    then it is considered MEETS_SOFT.
  • if all of the writesets have zones >= desirednumofzones
    then it is considered MEETS_STRICT
  • if a writeset contains < minnumofzones then it is considered
    FAIL
  • add corresponding metric for PlacementPolicyAdherence.MEETS_SOFT

- This is meant to be used in public cloud infrastructure in which
Availability zones (AZs) are isolated locations within data center
regions from which public cloud services originate and operate.
- ZoneawareEnsemblePlacementPolicy is a placement policy implementation
which uses zone information for placing ensembles.
- In this PlacementPolicy, it is assumed the networktopology/networklocation
 is going to be two level tree, where first part indicates zoneid
and the second part indicates upgradedomainid.
- Here upgrade domain is a set of bookies in an AZ that can be brought
down together for short term maintenance with no impact to the service.
This would help in enabling parallel patching.
- Upgrade domain is a logic concept/division and it may be mapped to
cloud provider native cluster/grouping like Placement Groups in AWS.

Introduce soft PlacementPolicyAdherence

- for ZoneawarePlacementPolicy if in a writeset the number
of zones are in between minnumofzones and desirednumofzones
then it is considered MEETS_SOFT.
- if all of the writesets have zones >= desirednumofzones
then it is considered MEETS_STRICT
- if a writeset contains < minnumofzones then it is considered
FAIL
- add corresponding metric for PlacementPolicyAdherence.MEETS_SOFT
@reddycharan reddycharan requested review from ivankelly, jvrao and sijie June 20, 2019 21:16
@reddycharan
Copy link
Contributor Author

@jvrao @sijie @eolivelli

requesting review.

@reddycharan reddycharan requested review from eolivelli and removed request for ivankelly June 21, 2019 20:59
@eolivelli
Copy link
Contributor

Sorry.
I started to review but I did not finish.
I will do today

Copy link
Contributor

@jvrao jvrao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@eolivelli eolivelli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a great work.
The diff is huge, I did not find issues.

+1

@reddycharan
Copy link
Contributor Author

Thanks @sijie @eolivelli @jvrao for the review. Since all checks have passed, I'm merging this PR.

@hangc0276
Copy link
Contributor

@reddycharan hi, i am researching for how to use ZoneawareEnsemblePlacementPolicy, does it has any guides for new users of how to use the policy?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants