为了实现松耦合的构造,设备中间与代劳法度榜样之间的信息同步我们都是采取的异步处理,比瘸黎置设备摆设中间向代劳法度榜样分发结转义务,实际处理的时刻我们采取的昵喹的方法,而不是推的方法,我们在设备中间和代劳法度榜样之间保持了一个心跳,心跳的内容是代劳法度榜样负载的所有结转义务的校验码(该校验码在代劳法度榜样向设备中间发送心跳信息时由设备中间计算),现代劳法度榜样发来岁夜设备中间获得的校验码和本地校验码不应时,则解释用户对结转义务进行了修改(包含新增、修改、删除),此时代劳法度榜样主动向设备中间提议同步结转义务的请求。如许做的好处是,代劳法度榜样在产生宕机重启后,会主动进行义务的同步。
b) 进度可视化
结转义务的进度在我们的筹划中是及时汇总到设备中间的,我们称为进度可视化,代劳法度榜样经由过程一个自力的线程来异步处理进度可视化,一方面如许可以降低对结转义务机能的干扰,另一方面可以避免因为收集问题、设备中间临时弗采取等问题导致结转义务异常。进度可视化对于用户来说异常重要,用户在第一次定义结转义务并履行该义务的时刻,进度可视化信息是用户和体系互动的独一窗口,对用户来说是晚大年夜的心理安慰。
c) 异常可视化
代劳法度榜样在履行数据结转义务时,会碰到各类异常信息,比如数据库URL设备缺点,汗青库临盆库表构造不一致等,对于这些异常信息,除了在本地记录日记外,我们还将它们发送到了设备中间。将这些异常可视化,而不是让用户在大年夜量的日记中去检索,这种方法异常便于在线问题的┞凤断。
将临盆库数据转到汗青库本身是一个分布式的事务,在我们的筹划中,不克不及包管数据的强一致性,比如在汗青数据Insert到汗青库的刹时,用户修改了临盆库的数据,我们的筹划不会检测这种变更,会导致用户的修改并不会反竽暌钩到汗青库中,造成数据不一致。固然在临盆库中删除汗青数据时,可以增加强一致性的校验,以解决这种问题,然则如许会对临盆库造成必定的压力,同时推敲到这种情况产生的概率极低,是以并没有进行特别处理。
汗青数据Insert到汗青库后,可能因为某种异常导致临盆库履行Delete操作时掉败,此时会造成数据冗余(临盆库和汗青库存在雷同数据)。对于这种问题,我们的筹划是应用Redo Log(重做日记)机制,在结转义务从新履行时根据Redo Log恢复异常现场,改┞俘异常数据。
e) 结转数据的回滚
我们供给了一个数据回滚功能,可以将已经结转到汗青库的数据逆向回滚到临盆库,用户可以设备Where前提精确指定须要回滚的数据。有些间谍作况,营业上须要对已经结转的汗青数据进行修改,该功能重要用于处理这种情况。同时在测试阶段,我们可以经由过程该功能快速恢复测试数据,便利对数据结转平台的测试。
f) 代劳法度榜样的主动进级
【编辑推荐】
- BBC:大年夜数据带来的弊病?近因效应
- 首届中国国际大年夜数据家当博览会将于5月26日在筑揭幕
- 玩不转大年夜数据就别勉强了,或许“小数据”才是真正的终南捷径
- 启动大年夜数据项目之前须要问的5个问题
- 是豪杰照样狗熊?大年夜数据那些事之SparkSQL
推荐阅读
SparkSQL是Spark新推出来的一个模块。关于SparkSQL的八卦其实知道的不多,然则技巧上倒能说几句。SparkSQL最重要的器械有两个,一个是DataFrame周全代替了RDD。我必须为这个叫声好。作为一>>>详细阅读
本文标题:OLTP类系统数据结转最佳实践
地址:http://www.17bianji.com/lsqh/34603.html
1/2 1