-
-
Notifications
You must be signed in to change notification settings - Fork 227
Open
Description
This issue tracks progress of implementing various limits.
option | default value | description | notes | |
---|---|---|---|---|
⬜ | --max-mem | 0 (no limit) | max memory used by context in total | |
⬜ | --max-sessions | 0 (no limit) | max active sessions | |
⬜ | --max-session-mem | 0 (no limit) | max memory used by one session (including packets and frames) | |
⬜ | --max-sockets | 0 (no limit) | max active sockets | |
⬜ | --max-socket-mem | 0 (no limit) | max memory used by queued and pre-buffered packets belonging to socket and not routed to session yet | |
⬜ | --max-packet-size | roc-send: deduce from --packet-len, roc-recv: 2K | max bytes per packet | rename from --packet-limit, rework default value |
⬜ | --max-frame-size | roc-send, roc-recv: deduce from --frame-len | max bytes per frame | rename from --frame-limit, rework default value |
Steps:
- refactor current options
- rename --packet-length to --packet-len, --packet-limit to --max-packet-size (roc-send)
- rename --frame-length to --frame-len, --frame-limit to --max-frame-size (roc-send, roc-recv)
- add parse_size() and used it for --max-packet-size and --max-frame-size
- --max-packet-size: deduce default from --packet-len in roc-send
- --max-frame-size: deduce default from --frame-len in roc-recv and roc-send
- factories
- PacketFactory, BufferFactory: accept IPool instead of IArena
- node::Context: instantiate pools instead of factories
- roc_pipeline: pass pools instead of factories
- roc_pipeline: SenderSession, ReceiverSession, etc: instantiate factories from pools where they're needed
- preps
- rename core::Pool to core::SlabPool
- core::MemoryLimiter
- core::LimitedArena
- core::LimitedPool
- packet::Packet::transfer_to()
- session limits (--max-sessions, --max-session-mem)
- socket limits (--max-sockets, --max-socket-mem)
- global limit (--max-mem)
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
On hold