?水Prevayler

by

is the free-software Prevalence layer for Java.

最早关注到prevayler是一年??的事了。当时在网上?便乱转的时候,?然?现有个?prevayler的东东获得了jolt 14届的大奖。好奇之余便跑到了主页上去看个究竟。乖乖,一看?是?了一跳,人家?称比oracle快9000?,比mysql还快3000??牛皮?破天了??细细看?,原?人家独辟蹊径,把数?全部放在内存里,而且是以对象的形?。在内存里速度当然应该更快,而以对象的方?则使用起?更自然。

将数?全部?存在内存里,?起?有点???议,prevayler的价值观很简?,现在内存的价格越?越便宜,增加内存的代价原比增加oracle的license?便宜许多。在prevayler独特的高??性和高扩展性??下,原?越?引我的眼??当年最疯狂的技术??便是:你还在使用数?库???

公?希望能够有快速原形的开?能力,prevayler便?一次进入我的候选???。?新下载prevayer的?代?,此时的版本已?是2.0.006了,让它自带的例?跑起?还是比较的容易,我就?在此唠?。?过,?过几个例?的?试,我?现了一些容易让大家误解的概念?

首先:prevayler在通过?个Transaction把对象?久化的时候都是采用深度拷?的方?,也就说?使是多对一的关系,例如book -> author这样的关系,?个book中都会?存author完整的信?,而?是引用?如果我们应用一下?作getBookById(3).getAuthor().setAge(36)的到的结果居然是:
book[id:0, title:book1, author[id:0,name:foo,age:35]];
book[id:1, title:book1, author[id:0,name:foo,age:35]];
book[id:2, title:book1, author[id:0,name:foo,age:35]];
book[id:3, title:book1, author[id:0,name:foo,age:36]];
这个让我刚开始的时候?实疑惑了一会。这样的结果就是我们?能在对象中?留?一个对象的引用,而?能?留?一个对象的id之类的引用。然?通过查询这个id获得需?的对象。?则,整个系统的行为?对出乎你的?料?

其次,所有对?久化对象的?作必须是在Transaction内完?,?则无效。这个和hibernate的概念比较接近。
prevayler系统并?是一个OODB,所以大家没有必?设计一个object的cantainer,然?把所有的数?都?久化在这个cantainer内。

Prevayler确实是一个大胆而?有创造性的开?项目,虽然还?能说是尽善尽美,但是确实为我们??供了?一个?久化的选择。?说google所有的数?都在内存中查询,那我们利用Prevayler和它的cluster机制??能?些什么呢?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: