-
Notifications
You must be signed in to change notification settings - Fork 106
Clarify hardware profile and instance configuration related docs for ECH #2039
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Clarify hardware profile and instance configuration related docs
…cs-content into kunisen-docpr-stl1586
Thanks Kuni for the updates. I wanted to suggest few changes within this page under List of Hardware profiles section. Following are the changes, can we please incoporate these changes as well?
Modification: This profile is similar to CPU optimized profile but powered by ARM instances. Currently, we offer ARM instances on AWS.
Modification: This profile is similar to General purpose profile but powered by ARM instances. Currently, we offer ARM instances on AWS.
Modification: This profile is suited for Vector search, Generative AI and Semantic search optimized workloads powered by ARM instances. Currently, we offer ARM instances on AWS. To add: Vector search optimized Ideal use case Optimized for applications that leverage Vector Search and/or Generative AI. Also the optimal choice for utilizing ELSER for semantic search applications. Broadly suitable for all semantic search, text embedding, image search, and other Vector Search use cases. Rest LGTM |
Thank you @yuvielastic I made the change accordingly: Could you please kindly confirm if it looks good and make an approval explicitly accordingly? 🙏 FWIW, the diff may be a bit tricky to understand about vector search hardware profile
From github diff perspective, it shows as "we newly added ARM section" but it's a 2-step updates as explained above. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@@ -24,6 +26,11 @@ The {{ecloud}} console indicates when a new version of a hardware profile is ava | |||
|
|||
## Change the hardware profile using the {{ecloud}} console [ec_change_the_hardware_profile_using_the_elastic_cloud_console] | |||
|
|||
::::{note} | |||
Deployment with Elastic stack version prior to 7.10 does not support hardware profile change {{ecloud}} console and API. If you want to make change on hardware profile, upgrading to version 7.10 and onwards is required. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just for my understanding: What's causing this behavior? Is this something that's fixable easily?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just for my understanding: What's causing this behavior? Is this something that's fixable easily?
@yuvielastic it's a product issue that we only support hardware profile migration based on node_roles, where previously in cloud deployment, they use node types and we only introduced node_roles from Elasticsearch 7.10.
You can review this KB (external link) for more details: https://support.elastic.co/knowledge/2040b616 (you can also view internal link and I can share it with you internally if you need more history context)
Also, @gigerdo and I had a sync recently and he suggested that we should use a more self-explanatory message - which is being handled in CP-11182 (internal ticket).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMHO it's not an easy fix - and we probably want to encourage customer more on upgrading to 7.10+ (preferably the current latest they can upgrade to) instead of fixing this and supporting customers to do HW migration on old versions. (It may cause other issues correspondingly as we didn't handle it very smoothly in earlier versions during node type to node roles migration, and it might be hard to cover all the test cases when we add an additional logic to hardware migration APIs - the most difficult part I can expect is the plan fails in the middle that having a mixed of node roles and types, then it may become technically hard to tackle.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Kuni for clarifying and agreed that we should encourage customers to upgrade to 7.10+ especially as that version is super old. Also, good to know that we will be updating the message to be more self-explanatory (separately in CP-11182).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM — Thanks for making these changes, I believe the docs are more clear and consistent now! 🙇🏻♀️
Just left a small comment about how to use the API in order to get deprecated ICs/DTs.
|
||
In addtion, you can refer to below information about how these terminologies are referenced. | ||
* _Deprecated_ is also referenced as _legacy_. | ||
* When using APIs, `hide_deprecated=true` is equivalent as `metadata=legacy:true`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is true. Using hide_deprecated=true
would be equivalent to using metadata=legacy:false
(if this was available) as it should show all of the ICs/DTs that are not deprecated/legacy 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In contrast, using metadata=legacy:true
returns the deprecated ICs/DTs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not specifying neither the metadata
or hide_deprecated
query params will return all DTs (and respective ICs). In this case, we can use the approach mentioned on the next statement — checking the presence of the metadata.legacy
field.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* When using APIs, `hide_deprecated=true` is equivalent as `metadata=legacy:true`. | |
* When using APIs, `hide_deprecated=true` is equivalent as `metadata=legacy:false`. Or in contrast, using `hide_deprecated=false` is equivalent as `metadata=legacy:true`. |
Oh I am sorry for that, I must have written a typo here. 🤦 Thank you @claudia-correia for the very valuable check! 🙏
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(I made a suggestion based on your comment and committed it)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for addressing my comment, Kuni 🙇🏻♀️ However, on a second thought, I think we should be a bit more explicit about this, as it may cause confusion to customers.
My statement above ("Using hide_deprecated=true
would be equivalent to using metadata=legacy:false
") is not entirely true, actually. Sorry about that. Let me try to make everything clearer:
- We consider a DT to be deprecated/legacy whenever it contains a
legacy: true
metadata entry. - If the DT does not contain a
legacy
metadata entry OR it contains that entry set tofalse
, then the DT is considered active/valid (i.e., not deprecated/legacy). - When using the
metadata=legacy:true
query parameter, this will return all legacy/deprecated DTs. - When using the
hide_deprecated=true
query parameter, this will return all active/valid DTs. - Using
metadata=legacy:false
won't actually return anything because usually we don't set thelegacy
field tofalse
, we simply omit that field from the metadata. This is why usinghide_deprecated=true
is not actually equivalent to usingmetadata=legacy:false
. Sorry for the confusion here.
With this being said, I think we should only mention the three possible scenarios in the docs:
- Using
metadata=legacy:true
to get legacy/deprecated DTs. - Using
hide_deprecated=true
to get active/valid DTs. - Not using any of the query parameters above to get all DTs.
- In this case, we can check the presence of
legacy: true
in the metadata entries within the API response, to verify if an IC/DT is deprecated or not.
- In this case, we can check the presence of
I also wonder if it would be worth it to add to the docs that "The above API requests return a list of DTs and the respective ICs referenced within each DT".
Thank you Claudia for the very quick and helpful review! Much appreciated! 🙇 |
@@ -8,9 +8,11 @@ products: | |||
- id: cloud-hosted | |||
--- | |||
|
|||
# Change hardware [ec-change-hardware-for-a-specific-resource] | |||
# Customize instance configuration [ec-change-instance-configuration] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changing the anchor name (the part under [
and ]
) could provoke existing links to this page (using the old anchor name) to not locate the section within the doc.
Changing the heading name is not a problem, of course.
I would only change the anchor names if I was sure it's an anchor that hasn't been used or referenced in the past.
Background
There are a bunch of hardware profile and instance configuration related ECH docs that are not clear enough and have caused some confusions to users and support so far.
After syncing with @yuvielastic @maggieghamry @stefnestor and @jakommo, we decided to make some doc updates to clarify.
Details in this internal ticket (https://github.com/elastic/support-tech-lead/issues/1586). Below is a quick recap of what we would like to change.
For reviewers
Recap of what to change
:: [1]
https://www.elastic.co/docs/deploy-manage/deploy/elastic-cloud/ec-change-hardware-profile
Manage hardware profiles
:: [2]
https://www.elastic.co/docs/deploy-manage/deploy/elastic-cloud/change-hardware
:: [3]
https://www.elastic.co/docs/deploy-manage/production-guidance/optimize-performance/search-speed
:: [4]
https://www.elastic.co/docs/deploy-manage/production-guidance/optimize-performance/indexing-speed
:: [5]
Move https://www.elastic.co/docs/deploy-manage/deploy/elastic-cloud/change-hardware - "customize IC" doc under https://www.elastic.co/docs/deploy-manage/deploy/elastic-cloud/ec-change-hardware-profile "manage hardware profile" to make it more logically clear.
🔍 Preview links for changed docs
cc @maggieghamry @stefnestor @jakommo