ravendb
Version:
RavenDB client for Node.js
40 lines • 1.6 kB
TypeScript
import { ServerNode } from "./ServerNode.js";
import CurrentIndexAndNode from "../Http/CurrentIndexAndNode.js";
import { Topology } from "./Topology.js";
declare class NodeSelectorState {
topology: Topology;
failures: number[];
fastestRecords: number[];
fastest: number;
speedTestMode: number;
unlikelyEveryoneFaultedChoiceIndex: number;
constructor(topology: Topology, prevState?: NodeSelectorState);
get nodes(): ServerNode[];
getNodeWhenEveryoneMarkedAsFaulted(): CurrentIndexAndNode;
}
export declare class NodeSelector {
private _updateFastestNodeTimer;
protected _state: NodeSelectorState;
constructor(topology: Topology);
getTopology(): Topology;
onFailedRequest(nodeIndex: number): void;
onUpdateTopology(topology: Topology, forceUpdate?: boolean): boolean;
getNodeBySessionId(sessionId: number): CurrentIndexAndNode;
getRequestedNode(nodeTag: string): CurrentIndexAndNode;
nodeIsAvailable(index: number): boolean;
getPreferredNode(): CurrentIndexAndNode;
static getPreferredNodeInternal(state: NodeSelectorState): CurrentIndexAndNode;
getNodeSelectorFailures(): number[];
private static _unlikelyEveryoneFaultedChoice;
getFastestNode(): CurrentIndexAndNode;
restoreNodeIndex(node: ServerNode): void;
private _switchToSpeedTestPhase;
inSpeedTestPhase(): boolean;
recordFastest(index: number, node: ServerNode): void;
private static _findMaxIndex;
private _selectFastest;
scheduleSpeedTest(): void;
dispose(): void;
}
export {};
//# sourceMappingURL=NodeSelector.d.ts.map