Safe Haskell | None |
---|

Implementation of global N+1 redundancy

## Synopsis

- evac :: Gdx -> [Ndx] -> (List, List) -> Idx -> Result (List, List)
- recreate :: [Ndx] -> (List, List) -> Instance -> Result (List, List)
- canEvacuateNode :: (List, List) -> Node -> Bool
- redundant :: AlgorithmOptions -> List -> List -> Bool
- redundantGrp :: AlgorithmOptions -> List -> List -> Gdx -> Bool
- allocGlobalN1 :: AlgorithmOptions -> List -> List -> GenericAllocElement a -> Bool

# Documentation

evac :: Gdx -> [Ndx] -> (List, List) -> Idx -> Result (List, List) Source #

Foldable function describing how a non-DRBD instance is to be evacuated.

recreate :: [Ndx] -> (List, List) -> Instance -> Result (List, List) Source #

Foldable function describing how a non-movable instance is to be recreated on one of the given nodes.

canEvacuateNode :: (List, List) -> Node -> Bool Source #

Decide if a node can be evacuated, i.e., all DRBD instances failed over and all shared/external storage instances moved off to other nodes.

redundant :: AlgorithmOptions -> List -> List -> Bool Source #

Predicate on wheter a given situation is globally N+1 redundant.

redundantGrp :: AlgorithmOptions -> List -> List -> Gdx -> Bool Source #

Predicate on wheter a given group is globally N+1 redundant.

:: AlgorithmOptions | |

-> List | the original list of nodes |

-> List | the original list of instances |

-> GenericAllocElement a | |

-> Bool |

Predicate on wheter an allocation element leads to a globally N+1 redundant state.