# Berkeley DB 体系结构-NoSQL 很酷之前的 NoSQL > 原文: [http://highscalability.com/blog/2012/2/20/berkeley-db-architecture-nosql-before-nosql-was-cool.html](http://highscalability.com/blog/2012/2/20/berkeley-db-architecture-nosql-before-nosql-was-cool.html) ![](img/c5609977746e08c737e71118996cd87c.png) 在文件系统和简单的库包之后,例如 [dbm](http://en.wikipedia.org/wiki/Dbm) , [Berkeley DB](http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html) 是最初被应用程序广泛用作其核心数据库引擎的豪华嵌入式数据库。 NoSQL 比 NoSQL 还酷。 使复杂的应用程序唱歌的隐藏秘密。 如果您希望免除基于服务器的系统的所有网络开销,那么它仍然是一个不错的选择。 [《开源应用程序的体系结构](http://astore.amazon.com/possiboutpos-20/detail/1257638017)》一书中对 Berkeley DB 背后的体系结构进行了大量撰写。 如果您想了解有关数据库如何工作的更多信息,或者如果您正在考虑如何构建自己的数据库,那么它的详细信息,说明和课程将非常丰富。 这是本书中的 [Berkeley DB](http://www.aosabook.org/en/bdb.html) 章节。 它涵盖了以下主题:建筑概述; 访问方法:Btree,Hash,Reno,Queue; 库接口层; 缓冲区管理器:Mpool; 预写日志记录; 锁管理器:锁; 日志管理器:日志; 事务管理器:Txn。 ## 相关文章 * [伯克利 DB:Margo Seltzer 的回顾性](http://sites.computer.org/debull/a07sept/seltzer.pdf) * [在维基百科](http://en.wikipedia.org/wiki/Berkeley_DB)上 * [LevelDB-MapReduce 和 BigTable 作者的快速轻量级键/值数据库。](http://highscalability.com/blog/2011/8/10/leveldb-fast-and-lightweight-keyvalue-database-from-the-auth.html) 当然,如果您的方案是非分片的单个 Web 服务器,那么 BerkeleyDB 的速度将惊人地快。 我在 BookMooch.com 上使用 BerkeleyDB 已有 6 年了,对于单个网页来说,现实世界中每秒 200 万次查询的查询速度是很典型的。 这些不是模拟的速度:在锁定,窃听等之后,它是真实的速度。这种速度让我可以使用 BerkeleyDB 代替内存中的数组,然后获得自动持久性(就像 Perl 一样)。 -约翰 首先,让我说“ NoSQL 比 NoSQL 还酷”的名字是 MarkLogic 很久以来提出的([,我有衬衫来证明它](http://contentmangler.wordpress.com/2012/02/25/marklogic-nosql-before-nosql-was-cool/?preview=true&preview_id=35&preview_nonce=9757b1bfd1))。 话虽如此,在速度和可伸缩性方面,MarkLogic 是事实上的 XML 数据库。 MarkLogic 不需要水平分片,因为它是为群集和协调数千个节点和 PB 级数据而构建的。 MarkLogic 在一些内容/数据非常复杂的大型公司中安装了设备,并且可以对任何节点或文档执行亚秒级的查询。 我认为伯克利是一个很棒的工具,但充其量只是新颖,我会对企业中谁在使用它以及在什么规模上使用它感兴趣。 成为与 MarkLogic 紧密合作的人。 我知道它可以扩展并解决很多信息问题,无论您拥有 100 GB 还是 100 TB 的内容。 -加里·维达尔 请查看 Bangdb。 当前,嵌入式版本已在 www.iqlect.com 上发布。 BerkleyDB 和 LevelDB 有一个有趣的性能比较文档。 请在可能的情况下退房。 谢谢