@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
JavaScript
;
/**
* 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