Berkeley DB示例程序详解(3.1)

本文详细介绍了如何使用Berkeley DB的replication manager功能,包括其灵活性、基本API和replication manager API的区别,以及如何配置和启动replication group。示例程序展示了基于TCP/IP和pthread的replication manager操作,如选举、数据传播和错误处理机制。
摘要由CSDN通过智能技术生成

/*
 * 这个示例程序演示了使用Berkeley DB的replication功能的方法。
 *
 * Berkeley DB提供了一套基本API和一套replication manager API来使用
 * 它的replication功能。
 * 前者有更大的灵活性,用户可以选择各种网络协议来实现数据传输,并且使用各种
 * 线程库来进行多线程编程。同时由于使用最基本的API, 用户可以定制选举和
 * replication系统的内部消息处理方式,非常灵活。所以这也意味着用户需要更多
 * 的代码来使用Berkeley DB replication功能,开发难度相对后者较大;
 * 后者基于TCP/IP协议和pthread线程库(Windows上面使用win32线程库),并且按照通常
 * 的需求,对选举和内部消息处理进行了通用的处理,并且通过让用户配置
 * 策略(policy)和参数的方式提供一定的灵活性和可定制性。
 *
 * 本程序基于Berkeley DB的replication manager。
 *
 *
 * 名词术语:
 *
 * site:一个(数据库环境, IP地址, 端口(port))的三元组。所以,多个site可以处于
 * 不同的计算机上面,也可以在同一个计算机上面,只要配置了不同的端口并使用不同
 * 的数据库环境目录。
 *
 * replication group:由若干个site组成的集合,其中有且只有一个site 可以写入
 * 数据到数据库当中, 称为master;其余的site只可以从中读取数据,称为replica。
 *
 * master:接受读写请求。如果写入数据,那么这些写入的数据不仅会更新master
 * 自己的数据库,还会通过Berkeley DB的
 * replication功能,被传播到replication group当中的replica上面。一个
 * replication group通过选举或者显式指定的方式,得到master。
 *
 * replica:接受读请求。从master写入的数据会自动传播到每一个replica上面,从而
 * 将replica上面的数据更新。任何一个replica在选举的时候,都有可能成为新的master
 *
 * 一个replication group作为一个整体来看的话,它比一个单机有
 * 更大的数据读写能力,因为所有的site都可以提供数据,自然读数据的吞吐量更大;
 * 并且master可以被配置为只写入数据而不必理会读数据请求,由replica提供数据,
 * 这样,写入的吞吐量也更大。
 *
 * replication group比单机的另一个优势,就是高可靠性(high availability),因为,
 * 其中如果任何一个site脱离(断电,网络故障,应用程序错误等),这个组都可以
 * 继续服务:如果一个replica脱离,那么
 * 还有其他replica可以提供数据,并且这个脱离的replica可以重新加入该组,其数据
 * 被自动更新到最新;如果master脱离,那么该组的所有replica举行选举,从中选<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值