UNPKG

@voicenter-team/mysql-dynamic-cluster

Version:

Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics

40 lines 1.3 kB
"use strict"; /** * Created by Bohdan on Sep, 2021 */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LoadFactor = void 0; const Logger_1 = __importDefault(require("../utils/Logger")); /** * Load factor for pools to easily sort them */ class LoadFactor { /** * @param loadFactors parameters by which values pools should sort */ constructor(loadFactors) { this._loadFactors = loadFactors; } /** * Update load factors from result of db global status if db has some changes * @param result result of db global status */ check(result) { let score = 0; this._loadFactors.forEach(loadFactor => { const value = result.find(res => res.Variable_name === loadFactor.key).Value; if (isNaN(+value) || !value) { Logger_1.default.error("Value from db isn't number. Check if you set right key. Current key: " + loadFactor.key); } else { score += +value * loadFactor.multiplier; } }); return score; } } exports.LoadFactor = LoadFactor; //# sourceMappingURL=LoadFactor.js.map