Sleepycat Software 正在收集来自于它的用户和潜在用户关于一个新的对象持久 java API(A New Java Persistence API for Berkeley DB)的反馈。该API和其他java领域的持久解决方案例如EJB3,hibernate和jdo有着类似的地方,但也有着重大的不同。
传统上,Berkeley DB提供了不利用计划或数据模型而创建高性能数据库应用的必要能力.
甚至它 的对象绑定和stored collections的java API都不受任何种类的数据模型的约束.
这提供了最大限度的灵活性,但对快速定义大而且复杂的模型没有内置的支持.
该API为Berkeley DB 事务引擎提供了一个内在的持久对象模型.
在不影响性能的前提下对复杂的对象模型提供支持是设计的中心.
从the com.sleepycat.persist package的总括看一下该API。
该package新增加了三个子package:model,evole和raw.
The Berkeley DB Persistence API,url:
com.sleepycat.persist
o com.sleepycat.persist.model
o com.sleepycat.persist.evolve
o com.sleepycat.persist.raw
我们在Sleepycat对你们的反应、评论、建议和其他反馈,包括正面和反面的都很有兴趣。
我们尤其想了解的是:(以下该API指的是Java Persistence API for Berkeley DB)
1.你对哪种java的持久方案更有兴趣?
以及相比该API的可用性,如何评估它的可用性?
该API的那些方面更有用或无用?
2.该API严重依赖了jdk1.5的泛型和标注(or注解)特性.
不使用这些新的语言的特性,我们认为可用性会大打折扣.
你认为使用这些语言的特性是对还是错?
为什么?
3. 该API,在增加了可用性的同时,并未提高查询的易用性.
你认为查询的易用性是对java持久方案的一个必备要求吗?
4.该API并未遵照现存的标准如JDO。
我们认为,这样做会在可用性和性能方面打折扣。
你认为遵守标准比可用性和性能更重要吗?
如果你还不熟悉已经存在的Berkeley DB产品线,请记着下面的背景信息。
*Berkeley DB是一个嵌入式的数据库library,不是一个数据库服务器。
通过一个非常快的Btree(B数)存储结构对事务和锁提供了很好的控制,
Berkeley DB的应用比使用其他方案的应用建造的更好。
*Berkeley DB查询易用性不高。查询都是通过访问索引和使用等价的join方式来执行的。
使用erkeley DB,手工优化查询比一个简单的查询语言优化器做的更好。
*传统上Berkeley DB 提供了一个key-value(键-值)API来访问Btree(B数)数据库。
在Berkeley DB中,一个"database"(数据库),和一个SQL 表等价,并被描述为一个key-value pairs(键-值对)的集合。
在Berkeley DB底层API中,使用byte arrays,而不是对象,用来做keys(键)和values(值)。
通过 Bind and Collections APIs,使用某些机制,keys(键)和values(值) 可以被映射为java对象.
* Sleepycat有三个产品线:原始的Berkeley DB,Berkeley DB java 版以及Berkeley DB XML。
该API初始目标是提供给Berkeley DB Java 版使用,但有可能在不远的将来被改写为适合在原始的Berkeley DB上使用。
它现在还不适合使用在 使用了XML以及XML Schema作为数据模型的 Berkeley DB XML,
Thank you in advance for taking a look at this and for any feedback that you are willing to provide!
The Sleepycat Java Edition team
官方地址:http://dev.sleepycat.com/