[ABC Templates] Proposal on Implementation Details #14649
Labels
enhancement
Enhancement or improvement to existing feature or request
Indexing:Performance
RFC
Issues requesting major changes
Roadmap:Search
Project-wide roadmap label
v2.16.0
Issues and PRs related to version 2.16.0
v2.17.0
Is your feature request related to a problem? Please describe
Github RFC: #12683
Overview
The proposed templates in RFC #12683 aim to provide a pre-defined set of system templates (made available as part of the distribution), which can allow users to create indices/index-templates for specific use cases without worrying about the granular tuning that are required for those use cases. This document covers certain decisions being proposed to come up with a final proposal around how these templates can be implemented.
Requirements
Proposed Implementation Details
Reusing Composable Index/Component Templates Resource
Background: Component Templates allow to declare settings and mappings which can be then used to create composable index templates. Composable Index Templates are defined using a schema which allows a template definition, along with multiple component templates which it can be composed of. These are applied to an index which matches the pattern defined the index template definition. In case of multiple composable index templates matching the index name pattern, the one with the highest priority is used. Some of the properties of index templates today are:
composed_of
mechanism, we cannot parametrize them without breaking compatibilityProposal: Use component template as the building block (storage model) and filter these templates from being used in
composed_of
declaration of composable index templates.If we go ahead with this modeling, we can reuse the existing component template storage model, but we will need to add support to parameterize setting values in case to the template definition within the application logic.
We can’t add paramterization support in compsable index templates directly as of today as they break the auto create index flow during rollovers due to which this new internal template layer is needed. Hence, any index template tied with an ABC template will need to declare concrete values for parameters provided in the ABC templates.
e.g.
Storage Model
Applying Template Upgrades
Based on the entity referencing the context for ABC template, we will allow to have the context of the entity to be updated when templates are upgraded to a new version.
Any updates to component templates are applied on the index templates referring them today as well. With ABC templates, we will extend this to be applicable for indices as well. By default, the template upgrades will apply to the entity using them in the context.
Template hosting
Overrides through other Templates/Index Settings
Handling Cluster upgrades
Initial Template Repository
Proposed Defaults
Template Repository will be focused on 2 things:
Performance Optimization Settings [In Progress]
Request Logs
Metrics
Events
Related component
Indexing:Performance
The text was updated successfully, but these errors were encountered: