Skip to content

Conversation

@tvernum
Copy link
Contributor

@tvernum tvernum commented Feb 25, 2025

No description provided.

thecoop and others added 30 commits December 3, 2024 16:04
Merge main into multi-project
As title says. Cluster state recover can happen when master node restart
or during an ungraceful fail-over.
Updates the force merge transport action to support multiple projects.
Instead of using an empty global routing table, this PR uses empty
project routing table to ensure the project actual has a routing table
(albeit empty) when routingTable(projectId) is called.
Merge main into multi-project
Updates the service to process data streams in all projects.
On deserialization, state is split into project and cluster based on the namespace, which is hardcoded in `Metadata.Builder.MOVED_PROJECT_RESERVED_STATE`
Explicitly fail the API call if it is in a multi-project setup. Use `ProjectResolver` to get the default (only) project.
Merge main into multi-project
Role Mappings can be stored as a `ProjectCustom` on `ProjectMetadata`
(see `RoleMappingMetadata`).
This commit ensures that the role mapper looks for the mappings on the
active project.

A new MultiProject JWT test has been added to cover some of this
behaviour
This commit fixes problems that arise from the merge commit
c57d41d
nielsbauman and others added 6 commits February 24, 2025 20:11
This changes the `multi_project.enabled` setting to
`test.multi_project.enabled`
An old node writes all tasks in the metadata custom. A new old must be
able to read it and separate the cluster-scoped and project-scoped tasks
and store them in the right place. This PR does that.

Relates: MP-1945, MP-1938
ywangd and others added 5 commits February 26, 2025 13:45
This PR is the follow-up work for MP-1945 and MP-1938 which laid the
foundation of two different scoped persistent tasks. It updates the
persistent task framework to be aware of the two task types so that it
can handle both cluster scope tasks and per-project tasks. Once these
changes are in place, we will make health-node to be the first
cluster-scope persistent task.

Relates: ES-10168
…MP-1965)

When the combined tasks diff is used, we need to remove the separate
project and cluster tasks from the original diff.

Relates: MP-1945, MP-1938
Now that the persistent task framework supports cluster-scoped
persistent tasks, we can make the health node persistent task run with
cluster scope.
If all we want to know is whether the cluster has any indices, then
this new method is more efficient than using the existing
"getTotalNumberOfIndices" method
These methods will be removed at some point in the future. By marking
them as deprecated, it'll be easier to spot that some code is using
these methods. Additionally, this will hopefully prevent people from
using these temporary methods.
When a shard recovery fails, we need to able able to handle that
properly when there are multiple projects.
We're catching MP exceptions when applying cluster state listeners to
avoid noise in the logs, but we shouldn't forget to remove this `catch`
block at some point in the future.
tvernum and others added 4 commits February 27, 2025 13:24
This commit reverts the changes to

    docs/internal/DistributedArchitectureGuide.md

These changes need to be redone in order to update the code links
so that they point to a more recent version that includes the
`Metadata.ClusterCustom` / `Metadata.ProjectCustom` split

We also need to incorporate documentation updates to reflect the
changes to PersistentTasks.
When #119968 was merged into multi-project we introduced a regression by
inserting a call to `.getProject()` within the `RoutingNodes` class that
was supposed to be multi-project-aware.

This commit replaces those calls with `.indexMetadata` lookups
There is no guarantee that a project has non-null persistent tasks [0].
Null check is already done in most places. This PR adds it in a few more
places.

[0] Since health-node is now a cluster-scoped persistent task, it has
become more likely for the project-scoped tasks to be null.

Relates: #123262
@tvernum tvernum removed the serverless-linked Added by automation, don't add manually label Feb 27, 2025
@tvernum tvernum merged commit 1d3106f into main Feb 27, 2025
18 checks passed
@tvernum tvernum deleted the feature/multi-project branch February 27, 2025 09:01
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.

9 participants