containerd / containerd/nri

[Proposal] Support single RPC operations per Pod

Open
#165 0 comments 0 reactions 1 assignee Claimed by @klihub View on GitHub
Dominant language
Go
Stars
406
Forks
102
Avg merge
1d 10h
Merged PRs (30d)
8

Description

Currently, the NRI plugin relies on ttrpc for communication for containerd <-> plugin(s) which imposes a single RPC at a time via multiple `sync.Mutex` locks in `containerd` and `pkd/adaptation`. A [naive attempt was made](https://github.com/containerd/containerd/pull/11671) to remove the `sync.Mutex` in containerd thinking it was only to protect access to the `map` structure but it was highlighted it also was there for guaranteeing 1 RPC at a time with NRI.

What we're observing after onboarding more and more workloads to our new NRI based dataplane is the NRI Lock is causing higher than desired contention with Pod operations.

NRI Lock P99
Image

From the above, it's clear the current limitation is going to be an issue for the team trying to manage Pod start SLIs. I can imagine it's not a straightforward change but we'd love to start the conversation.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.