Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
briar
briar
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 697
    • Issues 697
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 10
    • Merge Requests 10
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • briar
  • briarbriar
  • Issues
  • #1188

Closed
Open
Opened Mar 14, 2018 by akwizgran@akwizgranOwner

Close redundant transport connections

It's not unusual to have multiple connections to a given contact open at the same time, especially if both users sign in or activate a transport at roughly the same time. In some cases these connections may be considered redundant. For example, a Tor connection may be considered redundant if we also have a LAN connection, and if we have incoming and outgoing connections over the same duplex transport, one of them is redundant.

Closing redundant connections would save battery and bandwidth. Performance tests also suggest that redundant connections may slow down sync by increasing the number of database queries triggered by each sync-related event. Syncing 30 forum posts from an Xperia Z3 Compact to a Moto E3 takes about 10% longer when there are four Tor and LAN connections than when there's a single Bluetooth connection, because the DB rather than the network is the bottleneck.

The tricky part is choosing which connections to close, such that the two endpoints don't choose different connections and end up closing too many.

Assignee
Assign to
Android 1.2
Milestone
Android 1.2
Assign milestone
Time tracking
None
Due date
None
Reference: briar/briar#1188