hamok
Version:
Lightweight Distributed Object Storage on RAFT consensus algorithm
31 lines • 1.55 kB
TypeScript
import { HamokMessage } from '../messages/HamokMessage';
import { LogEntry } from './LogEntry';
export declare const logger: import("pino").default.Logger<never>;
export type RaftLogsEventMap = {
committed: [commitIndex: number, message: HamokMessage];
removed: [commitIndex: number, message: HamokMessage];
};
export type MemoryStoredRaftLogsConfig = {
expirationTimeInMs: number;
memorySizeHighWaterMark: number;
};
export interface RaftLogs {
readonly commitIndex: number;
readonly nextIndex: number;
readonly firstIndex: number;
readonly size: number;
readonly bytesInMemory: number;
commitUntil(newCommitIndex: number): Readonly<LogEntry[]>;
submit(term: number, entry: HamokMessage): number;
compareAndOverride(index: number, expectedTerm: number, entry: HamokMessage): LogEntry | undefined;
compareAndAdd(expectedNextIndex: number, term: number, entry: HamokMessage): boolean;
removeUntil(index: number): void;
get(index: number): LogEntry | undefined;
collectEntries(startIndex: number, endIndex?: number): LogEntry[];
[Symbol.iterator](): IterableIterator<LogEntry>;
reset(newCommitIndex: number): void;
on<U extends keyof RaftLogsEventMap>(event: U, listener: (...args: RaftLogsEventMap[U]) => void): this;
once<U extends keyof RaftLogsEventMap>(event: U, listener: (...args: RaftLogsEventMap[U]) => void): this;
off<U extends keyof RaftLogsEventMap>(event: U, listener: (...args: RaftLogsEventMap[U]) => void): this;
}
//# sourceMappingURL=RaftLogs.d.ts.map