persistence and DataGrid
本文仅记录对“Java Persistence on the Grid: Approaches to Integration”这篇文章的观后感。原文请见http://opensource.sys-con.com/node/951117
原文作者指出的东东我也一直在考虑,所以读来于我心有戚戚焉。文章写的是JPA,放之别的persistence mechanism也是一样。
此处的grid其实就是一个distributed cache,总不由让我想起memcached,但是memcached在功能上比grid有点单薄。关键点是每个grid上都持有unique的data,彼此之间不需沟通,如此,当此grid有了update时,它只需要通知它的backup,不必理会其他的grid,这样就保证了linear scalability。
本文讨论了两种架构模式:
1)以database为主,grid为辅。每次的读操作都是先对grid进行,没有命中再进行数据库查询。但是写操作必须以数据库为准,如果DB的写操作失败,grid的也必须失败。这个transaction由application发起,application同时负责对grid和db的操作。
2)以grid为主,database为辅。application只管对grid的操作,grid负责自身的crud,同时,对update发送到DB(注意一定要是异步,不然grid慢死)。这样的好处就是bypass database,throughput应该有所增加。但是grid上要增加异步update db的逻辑。