我们正在开发一个事件驱动的会计引擎,到目前为止,我们正在以批处理/顺序的方式做所有的事情。
问题是,每天会创建数千个事件,按顺序处理所有事件会使处理速度变慢。
有没有一种安全的方法可以实现一个多线程的事件处理记账引擎,而不用担心财务数据的完整性和一致性?
或者只是为了安全起见,并允许采用批处理/顺序方法?
发布于 2010-12-31 22:46:12
也许您可能想研究一下软件事务内存模型。在这篇paper中已经讨论了这个概念
发布于 2011-01-02 04:13:04
您已经成功地构建了一个满足财务数据完整性和一致性需求的会计引擎。这样,将处理并行化应该是可行的。
你需要
通常,聚合器组件将成为并行体系结构中的瓶颈。
由于您明确地打算构建一个多线程应用程序:根据需求和环境,构建一个多进程设计可能是可行的,即有几个独立的进程并行运行。与进程间通信的实际需求相比,您将获得一个更简单的并发模型。
实际上,所有的电信计费系统都是通过多线程或多处理来扩展的,所以这绝对是一条明智的道路。
发布于 2010-12-31 22:48:03
如果您遵循以下规则,则可以使用多个并发事务
检查
en.wikipedia.org/wiki/Atomicity_(database_systems)
en.wikipedia.org/wiki/ACID
en.wikipedia.org/wiki/Record_locking
或阅读本节中的所有相关文章。
http://en.wikipedia.org/wiki/Category:Transaction_processing
对于您正在做的事情,使用正确的锁定级别
https://stackoverflow.com/questions/4570646
复制相似问题