【发布时间】:2011-02-19 18:34:26
【问题描述】:
我有 2 台计算机,它们通过串行通信相互连接。 主计算机持有一个数据库(大约 10K 字),计算机以 20Hz 的速率工作。 我需要实时同步另一台计算机的数据库 - 如果添加、删除或更新数据,我希望另一台计算机实时查看或获取更改。 如果我将周期性地传输整个数据库,则更新另一侧大约需要 5 秒 - 这是不可接受的。 Spmeone 有想法吗?
【问题讨论】:
标签: real-time
我有 2 台计算机,它们通过串行通信相互连接。 主计算机持有一个数据库(大约 10K 字),计算机以 20Hz 的速率工作。 我需要实时同步另一台计算机的数据库 - 如果添加、删除或更新数据,我希望另一台计算机实时查看或获取更改。 如果我将周期性地传输整个数据库,则更新另一侧大约需要 5 秒 - 这是不可接受的。 Spmeone 有想法吗?
【问题讨论】:
标签: real-time
正如您所说,另一台计算机必须通过串行链接获取更改(即插入、删除、更新)。 最简单的方法(但可能是不可能的,如果你不能改变某些东西)是扩展数据库更改方法(或者,如果那不可能:每次调用)以发送插入/删除/更新数据报串行链路上的所有必需数据,必须对丢包具有鲁棒性(即错误检测、重传等)。
另一方面,您必须实现一个语义上等效的数据库,在其中重放所有收到的更改。
当然,您仍然需要在启动/初始化时或定期同步数据库(例如每天一次)。
【讨论】: