Skip to content

Commit

Permalink
Merge pull request #1954 from Agoric/mfig/optimize-trips
Browse files Browse the repository at this point in the history
Report number of significant round trips
  • Loading branch information
michaelfig committed Nov 6, 2020
2 parents cce515f + e0b5040 commit e4ea0c4
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions packages/cosmic-swingset/lib/ag-solo/outbound.js
Expand Up @@ -2,7 +2,18 @@ import anylogger from 'anylogger';

const log = anylogger('outbound');

const knownTargets = new Map(); // target => { deliverator, highestSent, highestAck }
/**
* @typedef {Object} TargetRecord
* @property {(newMessages: Array<[number, string]>, acknum: number) => void} deliverator
* @property {number} highestSent
* @property {number} highestAck
* @property {number} trips
*/

/**
* @type {Map<string, TargetRecord>}
*/
const knownTargets = new Map();

export function deliver(mbs) {
const data = mbs.exportToData();
Expand All @@ -26,8 +37,11 @@ export function deliver(mbs) {
// console.debug(` ${newMessages.length} new messages`);
const acknum = data[target].inboundAck;
if (newMessages.length || acknum !== t.highestAck) {
if (newMessages.length) {
t.trips += 1;
}
log(
`invoking deliverator; ${newMessages.length} new messages for ${target}`,
`invoking deliverator; ${newMessages.length} new messages for ${target} (trips=${t.trips})`,
);
t.deliverator(newMessages, acknum);
if (newMessages.length) {
Expand All @@ -42,5 +56,7 @@ export function addDeliveryTarget(target, deliverator) {
if (knownTargets.has(target)) {
throw new Error(`target ${target} already added`);
}
knownTargets.set(target, { deliverator, highestSent: 0, highestAck: 0 });
/** @type {TargetRecord} */
const targetRecord = { deliverator, highestSent: 0, highestAck: 0, trips: 0 };
knownTargets.set(target, targetRecord);
}

0 comments on commit e4ea0c4

Please sign in to comment.