# What is the ECE Capacity Validation Algorithm?

**URL:** <https://discuss.elastic.co/t/what-is-the-ece-capacity-validation-algorithm/166314>\
**Category:** Elastic Cloud Enterprise (ECE)\
**Created:** [January 30, 2019, 9:17am UTC](https://discuss.elastic.co/t/what-is-the-ece-capacity-validation-algorithm/166314 "2019-01-30T09:17:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![rockybean](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rockybean/32/11443_2.png) [@rockybean](https://discuss.elastic.co/u/rockybean)\
**Post date:** [January 30, 2019, 9:17am UTC](https://discuss.elastic.co/t/what-is-the-ece-capacity-validation-algorithm/166314/1 "2019-01-30T09:17:01Z")

</div>

Hi,  
I'm testing how ece make sure that available resource is enough for a plan and meet an interesting problem.

Let us assume that we have following available resource.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/6/1/612213ee61b298792d853445e3313a31f37302cb.jpeg)

Then I want to scale one cluster to following size with 2 16GB nodes in 2 zones.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/9/5/950350eeb86d915a50570778e7919cf2ddef39c0.jpeg)

If I chose "create new" strategy, the plan quit immediately with following error.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/d/8/d857bf4290782cb7fc7cba1b3a8027e2b7b213b8.jpeg)

But if I chose "rolling create new" strategy, the plan didn't quit until constructor found there were no valid allocator for all nodes.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/6/e/6e3960e74de3c73ade445a90e08d50139705642b.jpeg)

But it ended with two new nodes like following image.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/d/5/d57b16e8bc432b9cd3984dab4935e933f470a4e5.jpeg)

So for "rolling create new" strategy, constructor don't check the available resource for the plan like "create new" strategy. But this will bring an incomplete plan execution.

What I expect is that constructor can use the same resource capacity validation algorithm both for "create new " or "rolling create new" strategy. Because we have limited resource, so we choose "rolling create new" as the default strategy.

We hope that we can break the plan execution immediately if there is not enough capacity.

Thanks!

---

<div class="post-metadata">

**Author:** ![Alex\_Piggott](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/alex_piggott/32/11053_2.png) [@Alex\_Piggott](https://discuss.elastic.co/u/Alex_Piggott)\
**Post date:** [January 30, 2019, 3:14pm UTC](https://discuss.elastic.co/t/what-is-the-ece-capacity-validation-algorithm/166314/2 "2019-01-30T15:14:02Z")

</div>

Rolling grow+shrink was something of a workaround because when we released ECE, "pure" rolling plans weren't quite robust enough to present as an option (and many ECE users didn't have enough capacity to do "full" grow+shrink). As a result, it still has some known rough edges - including the one you point out here.

From 1.1.5 onwards, rolling plans have been "production ready", and as of the (just-released!) 2.1.0 the standard UI always allows the option of rollling. (We don't mark it as default yet, that will come soon though)

As a result, rolling grow+shrink should not really be used any more (the only real use cases are: maintaining availability during changes to "large" (`*`) single zone cluster, and switching "large" clusters from being `master+data` to `master-only` + `data-only`)

(`*`) "large" meaning that there is less than that cluster size's allocatable space remaining in 1+ zones

---

<div class="post-metadata">

**Author:** ![rockybean](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rockybean/32/11443_2.png) [@rockybean](https://discuss.elastic.co/u/rockybean)\
**Post date:** [January 31, 2019, 12:09am UTC](https://discuss.elastic.co/t/what-is-the-ece-capacity-validation-algorithm/166314/3 "2019-01-31T00:09:40Z")

</div>

Big thanks for your explanation.

We will try to use rolling strategy as the default one.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [February 14, 2019, 2:06am UTC](https://discuss.elastic.co/t/what-is-the-ece-capacity-validation-algorithm/166314/5 "2019-02-14T02:06:40Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
