金融、電子商取引、などの高可用性環境の下で、データの損失が許されない場合、redo logは良い低コストで高可用性方案であり、その役割はmysql binlogに似ている.以下、生産環境の中でイベントと最適化のマルチスレッド安全、自分で回復したc++redo log類は、実際の生産過程で相応の問題に直面し、多くの場所で最適化設計を行う.高性能と信頼性を最大限に保つ.
/******************************************************
function: redo log is use for service restart, sys crash
and Exception to recover the data.
author: liuyi
date:2016.08.26
version:1.0
******************************************************/
#ifndef REDO_LOG_H
#define REDO_LOG_H
#include
#include
#include
#include
#include
#include
#include
#include
#include
//testプログラム
#include
#include
#include
#include "redo_log.h"
using namespace std;
int main(int argc, char *argv[])
{
redo_log a;
if(a.init("/home/admin/learn/redo_log", 20000))
cout< unfinish_records;
a.reload_unfinish_records(unfinish_records);
for(size_t i = 0; i < unfinish_records.size(); i++)
{
cout<
テストは2ステップ、g++test_redo_log.cpp -lpthread ;
最初のステップ./a.out 0 ; redo logの生成と削除状況を表示します.
第2部./a.out 1; redo logリカバリの状況を確認