Skip to content

[RelayMiner] Session Rollover Investigation #1702

@Olshansk

Description

@Olshansk

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:#000
Loading

Goals

  • Exhaust all options to fix Session Rolloers from the RelayMiner / FullNode side
  • Avoid significant refactoring

Deliverables

  • Look into and/or experiment with every green box in the image above

Creator: @Olshansk
Co-Owners: @red-0ne

Metadata

Metadata

Assignees

Labels

protocolGeneral core protocol related changesrelayminerChanges related to the Relayminer

Type

Projects

Status

🏗 In progress

Relationships

None yet

Development

No branches or pull requests

Issue actions