Skip to content

Commit

Permalink
chore: add comment on cancel
Browse files Browse the repository at this point in the history
  • Loading branch information
vasco-santos committed Mar 3, 2023
1 parent faeab9a commit a5d7f38
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
5 changes: 5 additions & 0 deletions src/handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,15 +184,20 @@ async function batchResponse ({ blocks, context, logger }) {

try {
let message = new Message()
logger.info({ keyList: context.canceled.keyList }, 'check keyList')
for (let i = 0; i < blocks.length; i++) {
const block = blocks[i]
const canceledItem = context.canceled.get(block.key)

logger.info({ key: block.key, type: block.type, wantType: block.wantType }, 'check')
logger.info({ canceled: canceledItem }, 'canceled')

if (canceledItem === block.wantType) {
const size = messageSize[block.type](block)
telemetry.increaseLabelCount('bitswap-block-success-cancel', [block.type])
telemetry.increaseLabelCount('bitswap-cancel-size', [block.type], size)

logger.info({ key: block.key }, 'delete')
context.canceled.delete(block.key)
} else {
const size = messageSize[block.type](block)
Expand Down
16 changes: 13 additions & 3 deletions src/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec
}
})

const cancelsPerPeer = new Map()
const handlerOptions = {
maxInboundStreams: connectionConfig.handler.maxInboundStreams,
maxOutboundStreams: connectionConfig.handler.maxOutboundStreams
Expand All @@ -109,7 +110,7 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec
service.handle(protocol, async ({ connection: dial, stream }) => {
try {
const connection = new Connection(stream)
const canceled = new LRU({ max: 200 })
const canceled = cancelsPerPeer.get(dial.remotePeer.toString())

const hrTime = process.hrtime()
const connectionId = hrTime[0] * 1000000000 + hrTime[1]
Expand Down Expand Up @@ -161,20 +162,29 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec

// TODO move to networking
service.connectionManager.addEventListener('peer:connect', connection => {
cancelsPerPeer.set(
connection.detail.remotePeer.toString(),
new LRU({ max: 200 })
)

try {
telemetry.increaseCount('bitswap-connections')
telemetry.increaseGauge('bitswap-active-connections')
} catch (err) {
logger.warn({ err, remotePeer: connection.remotePeer }, 'Error while peer connecting')
logger.warn({ err, remotePeer: connection.detail.remotePeer.toString() }, 'Error while peer connecting')
}
})

// TODO move to networking
service.connectionManager.addEventListener('peer:disconnect', connection => {
cancelsPerPeer.delete(
connection.detail.remotePeer.toString()
)

try {
telemetry.decreaseGauge('bitswap-active-connections')
} catch (err) {
logger.warn({ err, remotePeer: connection.remotePeer }, 'Error while peer disconnecting')
logger.warn({ err, remotePeer: connection.detail.remotePeer.toString() }, 'Error while peer disconnecting')
}
})

Expand Down

0 comments on commit a5d7f38

Please sign in to comment.