存档

‘Berkeley DB’ 分类的存档

Oracle Berkeley Database 11g R2 性能概述白皮书

2011年9月7日 mingxingchen 评论已被关闭

这是一篇由我翻译的文章,现在贴过来,与大家共享。原文可以从BDB官网下载得到, 请见:http://www.oracle.com/us/dm/bdb-performance-whitepaper-cn-426008-zhs.pdf

==============================================================

概述

当选择一个数据库时,其性能的好坏往往是我们要考虑的第一关键因素。本白皮书介绍了一些性能测定的方法,旨在帮助你理解从Berkeley DB 数据库的一些常见配置预期会得到怎样的性能。你的应用程序的性能也取决于你的数据、数据访问的模式、缓存大小、其他配置参数、操作系统、以及硬件等。基准测试并不能反映某一个特定的应用程序的性能好坏,但它们可以提供一些基准,并为建立基本可行的期望提供指导和帮助。

阅读全文…

深入浅出BDB的批量操作

2011年7月12日 傅翠云 3 条评论

(一)引言

在处理大量数据时,也许你曾经面对这样的需求:

1.  查询某个时间的所有记录或者一段时间的记录;

2.  查询开通了增值业务的所有客户;

3.  查询最热门的搜索关键字;

4.  删除在某日开户的所有客户信息;

5.  更新在某网点的名称,并更新所有客户数据等等。

在上述场景中,需要对大量数据做相同的操作。如果逐条记录处理,那么频繁函数调用会消耗掉大量的计算资源,并且该方案可能不是最优的。为了有效地提高上述场景的性能,Berkeley DB 5.1(下文简称BDB)开始提供面向C,Java和C#语言的批量操作API(具体包括批量查询,更新和删除),一次即可批量返回满足需要的数据记录。 阅读全文…

Berkeley DB 5.2 ADO.NET开发包介绍

2011年7月12日 赵汝聪 评论已被关闭

Berkeley DB 5.2版本在六月份顺利发布了。在这一版本中,我负责完成了Berkeley DB SQL (以下简称DBSQL)的第一个独立的ADO.NET发布包。以下向大家介绍一下其基本用法。

ADO.NET是微软在.NET Framework中负责数据访问的类库集,它是使用在COM时代奠基的OLE DB技术以及.NET Framework的类库和编程语言来发展的,它可以让.NET上的任何编程语言能够连接并访问关系数据库与非数据库型数据源(例如XML,Excel或是文字档数据),或是独立出来作为处理应用程序数据的类对象,其在.NET Framework中的地位是举足轻重,许多人将ADO.NET视为ADO的下一个版本,但其实它是一个全新的架构、产品与概念。

DBSQL ADO.NET包是一个针对Windows ADO.NET用户发布的独立包,已包含DBSQL所需的源代码和文件。ADO.NET用户可直接用它来编译生成基于Berkeley DB引擎的ADO.NET库。

用户可在Oracle Berkeley DB的官方网站下载以下文件:

  • Berkeley DB dbsql-adodotnet-5.2.28.zip, for ADO.NET (12M)

下文将详细介绍在Windows和Windows Mobile环境下的编译使用过程:
阅读全文…

Berkeley DB 5.2 Android平台编译过程介绍

2011年7月12日 赵汝聪 评论已被关闭

在Berkeley DB 5.2版本中,Android Drop-in编译方式正式纳入官方发布文档。5.2的Android编译过程和先前我基于DBSQL 5.0写的博文稍有不同。以下介绍Oracle Berkeley DB 5.2官方文档中Android安装文档。欢迎交流。

Android默认提供的数据库功能是SQLite。Berkeley DBSQL完全兼容SQLite API,可以直接替换SQLite库而无需改动现有的应用程序或服务。依本方法编译得到的Berkeley DBSQL库将完全替换Android的SQLite库(drop-in模式)。在这种模式下,Android平台上所有的应用程序(包括我们自己编译的应用程序)都将链接到Berkeley DBSQL库以获取更高的存储和并发性能

完整原文:http://download.oracle.com/docs/cd/E17076_02/html/installation/build_android_intro.html

中文介绍:
阅读全文…

一种新的BDB访问方法–Heap AM

2011年7月4日 mingxingchen 3 条评论

在最新发布的Berkeley DB 5.2 版本中,我们引入了一种全新的数据库访问方法Heap Access Method (简称为Heap AM)。 加上之前BDB已支持的四种数据库访问方法:BTree、Hash、Queue和Recno,目前总共支持5种访问方法。本文仅对Heap AM做简单介绍, 有关其他访问方法的介绍请参照 – http://download.oracle.com/docs/cd/E17076_02/html/programmer_reference/am_conf.html

本文将从“使用Heap的目的”, “一个可能的应用场合”, “如何使用Heap AM”及它的“示例程序(ex_heap)介绍”几个方面展开阐述。

阅读全文…

Berkeley DB SQL 5.2新Vacuum功能简介

2011年7月1日 赵汝聪 评论已被关闭

Berkeley DB 5.2版本在六月份顺利发布了。在这一版本中,我负责设计实现了Berkeley DB SQL的新Vacuum功能:增量Vacuum和Fill Percent参数。以下向大家介绍一下这些Vacuum功能的用法。

1. 什么是Vacuum

一个数据库在进行多次写操作(增,删,改)后,就会攒下一些碎片,即填充率非常低的页面(page)或是空白页面。这些页面占用了不少空间,却仅存储了少量数据。Vacuum的作用好比Windows下的磁盘碎片整理,即依次扫描数据库的数据页面,将数据搬移得更加紧凑,腾出空白页并且删除之,缩减数据库大小。Berkeley DB SQL(以下简称DBSQL)支持在线Vacuum(对一个正在运行的数据库进行操作)。你可以把它想像成扫描重排页面数据的写进程,这个进程可以和其它的所有OLDP操作并行执行。

在使用Vacuum时需要清楚以下要点:
- 整理数据碎片,回收文件系统空间,提升查询性能。
- 频繁操作会影响当前主业务性能。因此在DBSQL 5.2版本中,针对这一问题实现了增量Vacuum。用户可手动控制Vacuum操作涉及的数据块大小。
- 如果数据库被压得过紧,空闲空间不足,那么插入新数据时数据库需要频繁分配新页面,影响了操作性能。因此在DBSQL 5.2版本中,针对这一问题引入了Fill Percent参数。用户可手动控制Vacuum时的页面填充率。

以下具体介绍Berkeley DB SQL (以下简称DBSQL) 5.2版本中Vacuum功能的使用方法:
阅读全文…

分类: Berkeley DB, 赵汝聪 标签: ,

Berkeley DB 5.2 正式发布

2011年6月16日 linchunsun 评论已被关闭

经过9个月的紧张开发,Berkeley DB(下文简称BDB)于2011年6月15日正式发布了最新版本,版本号为Oracle Berkeley DB 11gR2 (11.2.5.2.28)。

从上世纪80年代第一个版本诞生至今,BDB一直扮演着嵌入式数据库领域领头羊的角色。由于具备了强大的性能,极度的易用性和良好的稳定性,BDB成为这个世界上最受欢迎的嵌入式数据库,并被广泛应用于从路由器到浏览器到操作系统等等计算机系统的方方面面之中,为用户带来了巨大的价值。下面,就让我们一起来揭开Berkeley DB 5.2.28(以下简称BDB5.2)的神秘面纱,看看这个最新版本的BDB将为开发者带来了哪些激动人心的新特性。

新的访问方法 (Heap Access Method)】

在保留原有的btree,hash, recno和queue这四种访问方法的基础上,BDB5.2新增了heap 访问方法。Heap 访问方法通过复用删除数据所释放的空间,将数据库的大小控制在一个限定的范围内,有效的提高了空间利用率。它适用于存储容量受限的设备或对数据库文件大小有严格限制的环境,以及插入密集型的应用程序。比如可用来做中间服务器的静态图片缓存。

动态资源管理 (Dynamic Resource Management)】

BDB5.2中,开发者无需再显式指定每种系统资源(如lock,locker等)的上限并在程序开始时一次性分配;BDB5.2将在程序运行过程中动态分配这些资源。资源的分配将根据实际的使用情况动态增长。

扩展的高可用性 (SQL support for HA/replication) 】

BDB5.2为SQL接口也增加高可用性支持。开发者可以在多个节点上通过SQL HA来构建一个数据库集群,从而扩展了计算能力。

扩展的Sequence (SQL support for Sequence)】

BDB5.2的SQL 接口引入了Sequence的支持,允许用户使用SQL语句生成序列, 并提供事务保护。

灵活的高可用性管理 (Group Membership) 】

BDB5.2引入了新的组管理机制,允许用户动态地向组(Replication Group)里添加或者删除结点。系统将自动调整和维护组的大小。

新增的db_tuner工具 (db_tuner)】

BDB5.2新增了一个db_tuner工具,可以辅助用户选择合适的page size,提升程序的性能。

除此之外,秉承我们一贯的为用户提供最高性能,最灵活的嵌入式数据库的理念,最新的BDB5.2 还修正了上一个版本中存在的各种问题,并对原有的多项功能进行了增强。更多详情,参见这里

您可以通过 BDB下载页面下载并体验最新的BDB5.2. 如果您有任何问题,欢迎通过我们的博客或者BerkeleyDB的新浪微博留言,也欢迎通过邮件联系我们。

分类: Berkeley DB, Linchun Sun 标签:

bdb开通新浪微博

2011年5月30日 chaohuang 3 条评论

各位BDB中文博客的粉丝们,为了更好的和大家交互并分享BDB的消息,我们刚刚开通的新浪微博。微博地址为:

http://www.weibo.com/bdbchina

欢迎各位朋友添加关注并和我们分享信息。感谢大家的一直以来的支持。

备注: 由于工作比较忙(很少看博客评论),我们推荐大家使用新浪微博和我们互动,从而可以得到更及时、有效的反馈。

Oracle Berkeley DB 中国开发团队

BDB深圳新增两个职位

2011年4月8日 chaohuang 2 条评论

Oracle(深圳)招聘嵌入式数据库研发工程师

Oracle公司 Berkeley DB (简称BDB) 是业界知名的嵌入式数据库,目前拥有开源和商业两种使用许可。BDB被广泛应用于各种场合,从小型的手持设备(如手机)到大型的分布式应用(如云存储)都可以找到BDB的身影。

BDB产品研发团队在全球拥有一批资深工程师,某些工程师有超过20年的数据库开发经验。2007年,BDB在深圳成立了中国研发团队,组内工程师均毕业于国内和香港著名高校。

本次BDB产品研发团队面向社会招聘如下两个职位:
1. 数据库核心开发工程师(1人);
2. 数据同步服务器(Oracle Mobile Server) 开发工程师(1人)。

两个职位的工作地点均在深圳,薪酬优厚。感兴趣的朋友请发简历至:chao.huang[at]oracle.com

职位1:数据库核心开发工程师(1人)

工作职责:
- 负责 Berkeley 数据库的性能优化和新功能开发工作;
- 负责 Berkeley 数据库分布式和云计算架构的设计和开发工作;
- 负责 Berkeley 数据库测试和QA工作;
- 协助销售团队解决客户技术问题。
职位要求:
- 熟悉一项或多项项目开发流程:项目规划和协调,新功能设计和实现,产品测试和QA,产品发布;
- 熟练掌握一种或多种编程语言(C,C++ 或者Java),熟悉一种或多种操作系统:Linux,Windows,Android等;
- 对SQL语言和数据库内核有较深入理解者优先,包括缓存管理,索引,日志,恢复,并发控制等等。

职位2Oracle Mobile Server 开发工程师(1人)

工作职责:
- 参与Oracle Mobile Server的新功能开发、测试与性能优化;
- 协助Oracle Mobile Server软件发布。
- 为客户在使用过程中遇到的问题提供解决方案。
职位要求:
- 精通J2EE,SQL和PL/SQL的开发与测试。
- 熟练掌握一种或多种编程语言(C,C++ 或者Java),熟悉一种或多种操作系统:如Linux,Windows,Android;
- 有系统性能调优,SQL调优,Oracle数据库调优和Web/APP服务器调优经验者优先。

两个职位均要求有较好的英语读写能力,以及具有追求卓越的热情。除了参与产品本身的研发,也将有机会协助销售团队与中国的潜在 客户进行沟 通,解决客户所遇到的技术问题。目前,Berkeley数据库在中国市场(甚至是整个 亚太地区)的需求不断增大。加入我们,您可以通过 您的努力让我们的产品越来 越好,从而占领越来越多的市场。可以说,这是一份具有很大的挑战性,但是又是 充满乐趣的工作岗位!期待您的加入。
阅读全文…

分类: Berkeley DB, Chao Huang 标签:

Using Oracle Berkeley DB as a NoSQL Data Store

2011年2月24日 chaohuang 2 条评论

Using Oracle Berkeley DB as a NoSQL Data Store

By Shashank Tiwari

Learn why and how Oracle Berkeley DB can bring NoSQL benefits to your app.

Published February 2011

“NoSQL” is the new popular buzzword among developers, architects and even technology managers. However, despite the term’s newfound popularity, surprisingly there is no universally agreed-upon definition for it.

Generally, any database that isn’t RDBMS, upholds schema-less structures, is generally relaxed on ACID transactions, and promises high availability and support for large data sets in horizontally scaled environments is popularly categorized as a “NoSQL data store”. Given that these common features often seem in direct contrast to those of a good old RDBMS, some people propose non-relational, perhaps shortened as NonRel, as a more appropriate term than NoSQL.

Regardless, while the definitional conflict continues, many have begun to realize the benefits of NoSQL data stores by including them in their application stack. The rest are keeping a close watch and evaluating if NoSQL is right for them.

阅读全文…

Դ