flowchart TB
%% Main flow
SessionRolloverIssueLocation{Where is the Session Rollover issue?}:::rootStyle
SessionRolloverIssueLocation --> FullNodeIssue[FullNode]:::issueStyle
SessionRolloverIssueLocation --> RelayMinerIssue[RelayMiner]:::issueStyle
%% FullNode branch
FullNodeIssue --> IsCPProcessingTooLong{C&P processing <br>too long or consuming?}:::questionStyle
IsCPProcessingTooLong -->|No| UnknownIssue[🤔]:::problemStyle
IsCPProcessingTooLong -->|Yes| CPBlocksRelayMinerCRUD([👀 <br> Prevents RelayMiner <br>CRUD ops?]):::issueStyle
%% FullNode solutions (arranged vertically)
CPBlocksRelayMinerCRUD --> UseLightNonValidatingNodes[Use Light <br>non-validating nodes]:::actionStyle
CPBlocksRelayMinerCRUD --> MakeCPMorePerformant[Make C&P<br>more performant]:::actionStyle
CPBlocksRelayMinerCRUD --> SpreadCPOverMoreBlocks[Spread C&P <br>over more blocks]:::actionStyle
CPBlocksRelayMinerCRUD --> OneSessionCache[1 session long cache TTL]:::actionStyle
CPBlocksRelayMinerCRUD --> OtherFullNodeSolutions[🤔]:::questionStyle
%% RelayMiner branch
RelayMinerIssue --> IsCPBlockingRequests{C&P processing<br>blocking request handling?}:::questionStyle
IsCPBlockingRequests -->|No| IdentifyIssueLocation([👀 <br> where is the issue?]):::issueStyle
IsCPBlockingRequests -->|Yes| PrioritizeRequestHandling{How do we prioritize request handling?}:::questionStyle
PrioritizeRequestHandling --> BackgroundCPProcessing[Make C&P processing in the background]:::actionStyle
PrioritizeRequestHandling --> VerifyChannelUsage[Ensure we use channels correctly]:::actionStyle
PrioritizeRequestHandling --> CheckLocksAndMutexes[Double check mutexes, locks and serial ops]:::actionStyle
PrioritizeRequestHandling --> P0RequestHandlerProcess[Make request handling in a P0 process]:::actionStyle
%% RelayMiner No path
IdentifyIssueLocation --> IncreaseRequestTimeouts[Increase timeouts]:::actionStyle
IdentifyIssueLocation --> InvestigateGatewayIssues[Look into the Gateway]:::actionStyle
IdentifyIssueLocation --> OtherInvestigations[🤔]:::questionStyle
%% Define CSS classes for consistent styling
classDef rootStyle fill:#4a90e2,stroke:#2c5aa0,stroke-width:3px,color:#000
classDef issueStyle fill:#e8f4f8,stroke:#4a90e2,stroke-width:2px,color:#000
classDef questionStyle fill:#fef3e8,stroke:#f39c12,stroke-width:2px,color:#000
classDef actionStyle fill:#d4edda,stroke:#28a745,stroke-width:2px,color:#000
classDef problemStyle fill:#f8d7da,stroke:#dc3545,stroke-width:2px,color:#000
Objective
Resolve session rollovers from the protocol / RelayMiner side.
Origin Document
Session rollovers have been around for a while.
This ticket is the result of a discussion that led to this:
flowchart TB %% Main flow SessionRolloverIssueLocation{Where is the Session Rollover issue?}:::rootStyle SessionRolloverIssueLocation --> FullNodeIssue[FullNode]:::issueStyle SessionRolloverIssueLocation --> RelayMinerIssue[RelayMiner]:::issueStyle %% FullNode branch FullNodeIssue --> IsCPProcessingTooLong{C&P processing <br>too long or consuming?}:::questionStyle IsCPProcessingTooLong -->|No| UnknownIssue[🤔]:::problemStyle IsCPProcessingTooLong -->|Yes| CPBlocksRelayMinerCRUD([👀 <br> Prevents RelayMiner <br>CRUD ops?]):::issueStyle %% FullNode solutions (arranged vertically) CPBlocksRelayMinerCRUD --> UseLightNonValidatingNodes[Use Light <br>non-validating nodes]:::actionStyle CPBlocksRelayMinerCRUD --> MakeCPMorePerformant[Make C&P<br>more performant]:::actionStyle CPBlocksRelayMinerCRUD --> SpreadCPOverMoreBlocks[Spread C&P <br>over more blocks]:::actionStyle CPBlocksRelayMinerCRUD --> OneSessionCache[1 session long cache TTL]:::actionStyle CPBlocksRelayMinerCRUD --> OtherFullNodeSolutions[🤔]:::questionStyle %% RelayMiner branch RelayMinerIssue --> IsCPBlockingRequests{C&P processing<br>blocking request handling?}:::questionStyle IsCPBlockingRequests -->|No| IdentifyIssueLocation([👀 <br> where is the issue?]):::issueStyle IsCPBlockingRequests -->|Yes| PrioritizeRequestHandling{How do we prioritize request handling?}:::questionStyle PrioritizeRequestHandling --> BackgroundCPProcessing[Make C&P processing in the background]:::actionStyle PrioritizeRequestHandling --> VerifyChannelUsage[Ensure we use channels correctly]:::actionStyle PrioritizeRequestHandling --> CheckLocksAndMutexes[Double check mutexes, locks and serial ops]:::actionStyle PrioritizeRequestHandling --> P0RequestHandlerProcess[Make request handling in a P0 process]:::actionStyle %% RelayMiner No path IdentifyIssueLocation --> IncreaseRequestTimeouts[Increase timeouts]:::actionStyle IdentifyIssueLocation --> InvestigateGatewayIssues[Look into the Gateway]:::actionStyle IdentifyIssueLocation --> OtherInvestigations[🤔]:::questionStyle %% Define CSS classes for consistent styling classDef rootStyle fill:#4a90e2,stroke:#2c5aa0,stroke-width:3px,color:#000 classDef issueStyle fill:#e8f4f8,stroke:#4a90e2,stroke-width:2px,color:#000 classDef questionStyle fill:#fef3e8,stroke:#f39c12,stroke-width:2px,color:#000 classDef actionStyle fill:#d4edda,stroke:#28a745,stroke-width:2px,color:#000 classDef problemStyle fill:#f8d7da,stroke:#dc3545,stroke-width:2px,color:#000Goals
Deliverables
Creator: @Olshansk
Co-Owners: @red-0ne