[
https://issues.apache.org/jira/browse/YUNIKORN-1709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Peter Bacsko updated YUNIKORN-1709:
-----------------------------------
Description:
We want to support consumers who are listening for events. Every client is
served on a separate goroutine to avoid blocking. Slow consumers (ie. channel
buffer full) are automatically removed.
Scope of this JIRA:
* integration with existing code
* consumer registration / event update logic
* configuration entries
* cleanup logic
was:
In order to send events to listeners, we need to store EventRecord types in a
different data structure.
When a client connects, it might require us that we send the last "x" amount of
events or the events that occurred in the last 30 seconds, etc.
But we cannot store events without limits. The data structure that suits our
needs is a slightly modified ring buffer:
* two pointers: head (oldest), tail
* don't block when we overwrite the oldest entry, just update tail
* entries are not removed when retrieved by a consumer
* background goroutine performs the cleanup
Requirement for storage:
* last "n" events
* events from the last "n" seconds (duration)
We want to support consumers who are listening for events. Every client is
served on a separate goroutine to avoid blocking. Slow consumers (ie. channel
buffer full) are automatically removed.
Scope of this JIRA:
* new data structure
* integration with existing code
* consumer registration / event update logic
* configuration entries
* cleanup logic
> Add event streaming logic
> -------------------------
>
> Key: YUNIKORN-1709
> URL: https://issues.apache.org/jira/browse/YUNIKORN-1709
> Project: Apache YuniKorn
> Issue Type: Sub-task
> Components: core - scheduler
> Reporter: Peter Bacsko
> Assignee: Peter Bacsko
> Priority: Major
> Labels: pull-request-available
>
> We want to support consumers who are listening for events. Every client is
> served on a separate goroutine to avoid blocking. Slow consumers (ie. channel
> buffer full) are automatically removed.
> Scope of this JIRA:
> * integration with existing code
> * consumer registration / event update logic
> * configuration entries
> * cleanup logic
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]