在连锁版的应用中,因为每个店都有自己的数据库,它们之间的数据的一致性是由数据传输来完成的,如我们在总店输入商品资料,通过数据传输,我们在各个分店也得到了这些资料,又如分店的前台零售单上传到总店等等。

虽然理想状况,在动态平衡情况下,各个店的数据应该是一致的,如从总店看到的分店零售单和从分店看到的应该是一样的,但由于种种意外,数据不一致的情况可能会出现。导致数据不一致的最大的原因是门店系统的从新安装。例如,我们有五家连锁店,分别是A,B,C,D,E,其中A店是总店,其它的店是分店。假设总店A因为病毒导致系统从新安装,数据库被替换成了前一天的备份,而其它店数据是当天的,显然数据是不一致的,因为总店不会有当天的各个门店的库存信息和销售单据,有的最近的也只是昨天的。您可能会问,难道系统不会再次传输吗?因为我们的传输技术的设计原因,系统不会再次传输的。因为系统在数据传输完毕以后,会标定这些数据已经传输过了,只有当新数据加入或数据被修改了,系统又会自动从新传输这些变化的数据,如果没有数据变化,就没有传输发生,这样的设计就大大地节省的网络带宽,提高了传输的效率,但同时也带来了这个小小的问题。又例如,分店B发生了同样的重装问题,数据被恢复到了前一天的数据,这样B店就没有了当天的销售单,而总店却有B店当天的销售单,这样数据发生了不一致。

为了解决正常传输模块不能解决的问题,我们研发了这个数据同步模块,它可以帮助我们在灾难恢复中从新保证数据的一致性。