Berkeley DB Configure

原创 2007年10月09日 14:53:00
DB Configure
1.Setting page size
512-64KBytes
Db::set_pagesize()
 
(1)Overflow Pages
Overflow Pages在Single Page不满足记录存储需要时出现,代价非常昂贵,所以应该权衡。
对于BTree,每个Page应该容纳4个实体。
 
(2)Locking
对于多线程或者多进程来说,同步是影响效率的关键。所以Page大小应该合适,太大了会因为page中实体过多而影响效率(Page级Locking),太小的话为因为层次太深。
 
(3)IO Efficiency
如果Page的Size等于OS IO block Size,则更加有利于IO的效率。
 
选择Page Size的原则
(1)最重要的是Page Size应该等于OS IO Block size。
(2)每个Page可以容纳4个实体为最佳,如果超过OS IO Block size,那就扩大Page的Size。
(3)如果存在大量并发,Page和data size接近比较好。
 
Selecting Cache Size
Db::set_cachesize() or DbEnv::set_cachesize()
 
2.BTree Configuration
(1) Allowing Duplicate Records
默认不支持重复。
重复的记录中,也存在序列化的和非序列化的存储顺序。基于效率来说的话,还是Sort的效率更高。
使用Db::put(),则在Sort队列的队尾;Dbc::put(),DB_AFTER,DB_BEFORE放在游标的前后,DB_KEYFIRST,DB_KEYLAST,放在重复数据集的前后。

(2)Configuring a Database to Support Duplicates

DB_DUP

The database supports non-sorted duplicate records.

DB_DUPSORT

The database supports sorted duplicate records.

 
3.Setting Comparison Functions
Db::set_bt_compare()
对于BTree使用Db::set_dup_compare()设置重复数据的排序
 

openldap学习笔记

1.       LDAP LDAP(Lightweight Directory Access Protocol)代表轻型目录访问协议,是用来访问目录服务(如基于X.500的目录服务)的轻型协议,它...
  • lqc1002000
  • lqc1002000
  • 2013年04月14日 23:24
  • 6387

Berkeley db使用方法简介(c接口)

1. 打开数据库 首先必须调用db_create()函数初始化DB句柄,然后就可以使用open()方法打开数据库了。默认情况下,如果数据库不存在,DB不会创建。为了覆盖缺省行为,可以在open()调...
  • bg205
  • bg205
  • 2013年09月19日 22:42
  • 1058

Berkeley DB基础教程

一、Berkeley DB的介绍 (1)Berkeley DB是一个嵌入式数据库,它适合于管理海量的、简单的数据。如Google使用其来保存账户信息,Heritrix用其来保存froniter. (...
  • jediael_lu
  • jediael_lu
  • 2014年05月29日 15:21
  • 14125

URL队列(爬虫队列)-Berkeley DB的使用示例(Java)

网络爬虫中URL队列即爬虫队列是较为关键的数据结构,对于数据量要求不大的爬虫,我们可以简单的使用Java类库中的内存数据结构,例如链表或者队列来实现URL队列,但是当我们面对数以亿计的链接时,内存数据...
  • woaigaolaoshi
  • woaigaolaoshi
  • 2016年04月18日 17:19
  • 1821

比Redis更快:Berkeley DB面面观

本问摘自:http://www.cnblogs.com/me115/p/3395396.html?ADUIN=173746627&ADSESSION=1383179408&ADTAG=CLIENT.Q...
  • wupangzi
  • wupangzi
  • 2015年03月27日 11:32
  • 516

比Redis更快:Berkeley DB面面观

比Redis更快:Berkeley DB面面观 Redis很火,最近大家用的多。从两年前开始,Memcached转向Redis逐渐成为潮流; 而Berkeley DB可能很多朋友还很陌生,首先,我...
  • w_j_w2010
  • w_j_w2010
  • 2015年05月18日 11:10
  • 310

Berkeley DB -- 主从复制(HA)中部

转至:http://blog.sina.com.cn/s/blog_466c6640010002h4.html Synchronizing with a master   当一个...
  • whycold
  • whycold
  • 2013年12月29日 20:23
  • 1179

Berkeley DB 由浅入深【转自架构师杨建】

转自: http://leeon.me/a/Berkeley-DB-note   在网上看到不少介绍Berkeley DB的文章,几乎所有的中文文章都是介绍完入门就再也没了。大都是个概括。最近做这...
  • duanbeibei
  • duanbeibei
  • 2014年05月21日 11:18
  • 1621

Berkeley DB并发数据存储编程

在完全没有必要用上恢复机制和事件的相关语义时,通常我们会用上可并发存储的数据库.对于这类的程序,BDB提供了释放死锁(deadlock- free),数读/单写(multiple-reader/sin...
  • huangyongwang
  • huangyongwang
  • 2013年03月25日 10:41
  • 959

0065 Berkeley DB的基本用法【基础】

001 package demos.bdb; 002   003 import java.io.File;...
  • junlinbo
  • junlinbo
  • 2014年05月06日 15:29
  • 366
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Berkeley DB Configure
举报原因:
原因补充:

(最多只允许输入30个字)