上上签什么意思| 什么原因会怀上葡萄胎| 面瘫挂什么科室| 水弹是什么材料| loho眼镜属于什么档次| 中国属于什么气候| 脖子出汗是什么原因| 柿子和什么不能一起吃| 间歇性是什么意思| 什么蔬菜含钾量最高| 外阴痒是什么原因| 肾窦分离是什么意思| 月寸读什么| 滑档是什么意思| 什么叫品牌| 球蛋白偏高是什么原因| 类固醇是什么药| 月经总推迟是什么原因| 大夫古代指什么| 独家记忆是什么意思| 梦见买床是什么意思| 跪乳的动物是什么生肖| 什么的向日葵| 榆钱是什么| negative什么意思| 艾滋病皮肤有什么症状| 无创低风险是什么意思| 11月份是什么星座| 治疗晕病有什么好方法| 甲状腺结节吃什么水果好| 结节性红斑是什么原因引起的| 右边脑袋疼是什么原因| 海参是补什么的| 做高铁不能带什么| 睡眠不好什么原因| 手淫过度有什么症状| 壬申日是什么意思| 一个土一个阜念什么| 什么口红好| 艺字五行属什么| 如五行属什么| 月经太多是什么原因| 1952年属什么生肖| 吃什么代谢快| 老年痴呆症挂什么科| 参军意愿选什么比较好| 吃什么能提升免疫力| 野合什么意思| 静脉曲张用什么药好| 什么是巧克力囊肿| 水色是什么颜色| 老人越来越瘦是什么原因| 桌游是什么| 大生化挂什么科| 狗生小狗前有什么征兆| 一般细菌涂片检查是查什么| 丑人多作怪什么意思| 胸围85是什么罩杯| 嗓子疼咳嗽挂什么科| 伟哥有什么副作用| ab和a型血生的孩子是什么血型| 大便一粒粒的是什么原因| 尿酸高是什么原因| 积福是什么意思| 普罗帕酮又叫什么| 右肺下叶纤维灶是什么意思| 大象的耳朵有什么作用| 牙齿黄用什么牙膏| 什么食物属于发物| 树欲静而风不止是什么意思| 人体的三道防线是什么| 离婚需要什么资料| 快餐是什么意思| 腿部青筋明显是什么原因| 屁股眼痒是什么原因| 倒挂对身体有什么好处| 4.7号是什么星座| 蒹葭是什么| 什么肠什么肚| 猫代表什么数字| 年轻人能为世界做什么| 威慑力是什么意思| 吃什么容易拉肚子| 内痔疮吃什么药最好| 手麻挂什么科| 儿童肺炎吃什么药| 忙什么呢幽默的回答| 土豆什么时候收获| 早早孕是什么意思| 可字属于五行属什么| 代孕是什么意思| 大人发烧吃什么退烧药| 潴留囊肿是什么意思| 怀孕了吃什么药能打掉| dunk是什么意思| 1979年出生属什么生肖| 势利眼的人有什么特征| 胃痉挛吃什么药| 柳州有什么大学| 什么是不动产权证| ariel是什么意思| 7月5号是什么星座| 末法时期是什么意思| 胆气不足吃什么中成药| 黄瓜吃多了有什么坏处| 什么的关系| 增致牛仔属于什么档次| 鞭长莫及是什么意思| 七月十一是什么星座| 心脏回流是什么意思| 四点半是什么时辰| 眩晕症是什么原因造成的| 阁楼是什么意思| 双身什么意思| 眼睛出现飞蚊症什么原因怎么办| 红曲米是什么东西| 鹿参膏有什么作用和功效| 头发发黄是什么原因| 上将是什么级别| 吃苋菜有什么好处| 双马尾是什么意思| 左眉上方有痣代表什么| 青蒜是什么| pv什么意思| 吃什么食物补钙| 白带多用什么药效果好| 血糖高忌吃什么| 谨言慎行下一句是什么| 眼睛疼吃什么药效果最好| prc是什么意思| 建档是什么意思| 大眼角痒是什么原因| 什么是半月板损伤| 疱疹是什么症状| 袖珍人是什么| 过敏性紫癜看什么科| maby什么意思| 口腔溃疡吃什么消炎药| iq什么意思| 2017 年是什么年| 女性吃什么降低雄激素| 低脂高钙牛奶适合什么人群| 阴道发炎用什么药| 晚上喝什么茶有助于睡眠| 塑料是用什么做的| 湖北九头鸟是什么意思| 桃胶有什么功效与作用| 辐射对人体有什么伤害| 凤梨和菠萝有什么区别| 月经喝酒有什么影响| 左肾窦分离是什么意思| 偷梁换柱是什么意思| 自由基是什么东西| r商标是什么意思| 身体发凉是什么原因| 属龙的和什么属相最配| 士多啤梨是什么水果| 香雪酒属于什么酒| 属马的是什么星座| 口腔医学和口腔医学技术有什么区别| 缺心眼是什么意思| 肾寒吃什么中成药| 什么泡茶好喝| 好高什么远| 胸部中间痛什么原因引起的| 贫血吃什么补得快| 木丑念什么| 鬼剃头是因为什么原因引起的| 增强免疫力吃什么| 鼻子肿了又硬又疼是什么原因| 嫐什么意思| 七个星期五什么档次| 什么是红眼病| 五月二十九是什么日子| 母亲是o型血孩子是什么血型| 壬申日是什么意思| 什么是oa| 晚上剪指甲有什么说法| 三手烟是什么| 阴道里面瘙痒是什么原因| 为什么长火疖子| 具体是什么意思| 焦虑症吃什么药好得快| 辣椒炒肉用什么肉| 脸肿脚肿是什么原因引起的| 转移酶偏高是什么原因| 读军校需要什么条件| 孕吐是什么时候开始| 吃什么长指甲最快| 胆怯是什么意思| 什么叫心悸| 口腔溃疡是什么| 三文鱼和什么不能一起吃| 什么茶最好喝| 顺手牵羊是什么生肖| 得了性疾病有什么症状| 八月是什么月| 媱字五行属什么| 秋葵不适宜什么人吃| 什么是环境影响评价| 李逵代表什么生肖| 什么牙什么嘴| 塔罗牌是什么意思| 为什么不建议割鼻息肉| 儿童吃什么长个子最快| 晚上睡觉咬牙齿是什么原因| 快车和专车有什么区别| ckd医学上是什么意思| 做梦梦见很多蛇是什么意思| 三尖瓣轻度反流是什么意思| 梦见哭是什么意思| 2015属什么| 750是什么材质| 肽是什么| 孕妇吃什么利尿排羊水| 意念灰是什么意思| 冬至是什么时候| 寒颤是什么意思| 胆囊壁固醇沉积是什么意思| 吃什么排宿便清肠彻底| 上海有什么特色美食| 农历闰月有什么规律| 脉搏90左右意味着什么| 什么鱼做酸菜鱼最好吃| 破执是什么意思| 梦见下雪是什么征兆| 什么地眨眼| 为什么说婴儿摔床没事| 什么叫牙冠| 沄字五行属什么| 梦见自己生了个女儿是什么预兆| 精神洁癖是什么意思| 大舅哥是什么意思| 车间管理人员工资计入什么科目| 生殖器是什么| 轻度脑萎缩是什么意思| 天麻能治什么病| xgrq是什么烟| 不来姨妈挂什么科| 孕期能吃什么| py是什么意思| 鼻子大说明什么| 罢黜百家独尊儒术是什么意思| 甚嚣尘上什么意思| 吃红枣有什么好处| 登基是什么意思| 冠心病需要做什么检查| 婆什么起舞| 什么叫闭合性跌打损伤| 澳门使用什么货币| 梦见女儿结婚是什么意思| 隐翅虫咬了用什么药| 异地办理临时身份证需要什么材料| 三月24号是什么星座的| 苦不堪言是什么意思| 2月7号是什么星座| 眼角痒用什么药| 生日可以送什么礼物| 大人发烧吃什么药| 03属什么| 鱼的偏旁部首是什么| 听雨是什么意思| 五月有什么节日| 山楂有什么作用| 百度Jump to content

党员干部注意 婚丧嫁娶这些纪律“红线”要当心礼金婚丧嫁娶党员干部

From Wikipedia, the free encyclopedia
百度 报道称,但并非所有情侣配对都进展顺利。

In computing, a DBM is a library and file format providing fast, single-keyed access to data. A key-value database from the original Unix, dbm is an early example of a NoSQL system.[1][2][3]

History

[edit]

The original dbm library and file format was a simple database engine, originally written by Ken Thompson and released by AT&T in 1979. The name is a three-letter acronym for DataBase Manager, and can also refer to the family of database engines with APIs and features derived from the original dbm.

The dbm library stores arbitrary data by use of a single key (a primary key) in fixed-size buckets and uses hashing techniques to enable fast retrieval of the data by key.

The hashing scheme used is a form of extendible hashing, so that the hashing scheme expands as new buckets are added to the database, meaning that, when nearly empty, the database starts with one bucket, which is then split when it becomes full. The two resulting child buckets will themselves split when they become full, so the database grows as keys are added.

The dbm library and its derivatives are pre-relational databases – they manage associative arrays, implemented as on-disk hash tables. In practice, they can offer a more practical solution for high-speed storage accessed by key, as they do not require the overhead of connecting and preparing queries. This is balanced by the fact that they can generally only be opened for writing by a single process at a time. An agent daemon can handle requests from multiple processes, but introduces IPC overhead.

Implementations

[edit]

The original AT&T dbm library has been replaced by its many successor implementations. Notable examples include:[3]

  • ndbm ("new dbm"), based on the original dbm with some new features.
  • GDBM ("GNU dbm"), GNU rewrite of the library implementing ndbm features and its own interface. Also provides new features like crash tolerance for guaranteeing data consistency.[4][5]
  • sdbm ("small dbm"), a public domain rewrite of dbm. It is a part of the standard distribution for Perl and is available as an external library for Ruby.[6][7]
  • qdbm ("Quick Database Manager"), a higher-performance dbm employing many of the same techniques as Tokyo/Kyoto Cabinet. Written by the same author before they moved on to the cabinets.[8]
  • tdb ("Trivial Database"), a simple database used by Samba that supports multiple writers. Has a gdbm-based API.[9]
  • Berkeley DB, 1991 replacement of ndbm by Sleepycat Software (now Oracle) created to get around the AT&T Unix copyright on BSD. It features many extensions like parallelism, transactional control, hashing, and B-tree storage.
  • LMDB: copy-on-write memory-mapped B+ tree implementation in C with a Berkeley-style API.

The following databases are dbm-inspired, but they do not directly provide a dbm interface, even though it would be trivial to wrap one:

  • cdb ("constant database"), database by Daniel J. Bernstein, database files can only be created and read, but never be modified
  • Tkrzw, an Apache 2.0 licensed successor to Kyoto Cabinet and Tokyo Cabinet
  • WiredTiger: database with traditional row-oriented and column-oriented storage.

Availability

[edit]

As of 2001, the ndbm implementation of DBM was standard on Solaris and IRIX, whereas gdbm is ubiquitous on Linux. The Berkeley DB implementations were standard on some free operating systems.[2][10] After a change of licensing of the Berkeley DB to GNU AGPL in 2013, projects like Debian have moved to LMDB.[11]

Reliability

[edit]

A 2018 AFL fuzzing test against many DBM-family databases exposed many problems in implementations when it comes to corrupt or invalid database files. Only freecdb by Daniel J. Bernstein showed no crashes. The authors of gdbm, tdb, and lmdb were prompt to respond. Berkeley DB fell behind due to the sheer amount of other issues;[10] the fixes would be irrelevant to open-source software users due to the licensing change locking them back on an old version.[11]

See also

[edit]

References

[edit]
  1. ^ Kew 2007, p. 80: "DBMs have been with us since the early days of computing, when the need for fast keyed lookups was recognized. The original DBM is a UNIX-based library and file format for fast, highly-scalable keyed access to data. It was followed (in order) by NDBM ('new DBM'), GDBM ('GNU DBM'), and the Berkeley DB. This last is by far the most advanced, and the only DBM under active development today. Nevertheless, all of the DBMs from NDBM onward provide the same core functionality used by most programs, including Apache. A minimal-implementation SDBM is also bundled with APR, and is available to applications along with the other DBMs.
    Although NDBM is now old - like the city named New Town ('Neapolis') by the Greeks in about 600BC and still called Naples today - it remains the baseline DBM. NDBM was used by early Apache modules such as the Apache 1.x versions of mod_auth_dbm and mod_rewrite. Both GDBM and Berkeley DB provide NDBM emulations, and Linux distributions ship with one or other of these emulations in place of the 'real' NDBM, which is excluded for licensing reasons. Unfortunately, the various file formats are totally incompatible, and there are subtle differences in behaviour concerning database locking. These issues led a steady stream of Linux users to report problems with DBMs in Apache 1.x."
  2. ^ a b Hazel 2001, p. 500: "The most common [single-key] format is called DBM. Most modern versions of Unix have a DBM library installed as standard, though this is not true of some older systems. The two most common DBM libraries are ndbm (standard on Solaris and IRIX) and Berkeley DB Version 2 or 3 (standard on several free operating systems). Exim supports both of these, as well as the older Berkeley DB Version 1, gdbm, and tdb."
  3. ^ a b Ladd & O'Donnell 2001, pp. 823–824: "Most UNIX systems have some kind of DBM database. DBM is a set of library routines that manages data files consisting of key and value pairs. The DBM routines control how users enter and retrieve information from the database. Although it isn't the most powerful mechanism for storing information, using DBM is a faster method of retrieving information than using a flat file. Because most UNIX sites use one of the DBM libraries, the tools you need to store your information in a DBM database are readily available.
    Almost as many flavors of the DBM libraries exist as there are UNIX systems. Although most of these libraries are compatible with each other, they all basically work the same way...
    A list follows of some of the most popular DBM libraries available:
    • DBM - DBM stores the database in two files. The first has the extension .Pag and contains the bitmap. The second, which has the extension .Dir, contains the data.
    • NDBM - NDBM is much like DBM but with a few additional features; it was written to provide better storage and retrieval methods. Also, NDBM enables you to open many databases, unlike DBM, in which you are allowed to have only one database open within your script. Like DBM, NDBM stores its information in two files using the extensions .Pag and .Dir.
    • SDBM - SDBM comes with the Perl archive, which has been ported to many platforms. Therefore, you can use DBM databases as long as a version of Perl exists for your computer. SDBM was written to match the functions provided with NDBM, so portability of code shouldn't be a problem. Perl is available on just about all popular platforms.
    • GDBM - GDBM is the GNU version of the DBM family of database routines. GDBM also enables you to cache data, reducing the time that it takes to write to the database. The database has no size limit; its size depends completely on your system's resources. GDBM database files have the extension .Db. Unlike DBM and NDBM, both of which use two files, GDBM only uses one file.
    • Berkeley db - The Berkeley db expands on the original DBM routines significantly. The Berkeley db uses hashed tables the same as the other DBM databases, but the library also can create databases based on a sorted balanced binary tree (BTREE) and store information with a record line number (RECNO). The method that you use depends completely on how you want to store and retrieve the information from a database. Berkeley db creates only one file, which has no extension."
  4. ^ "Crash Tolerance". GDBM manual. Retrieved 3 October 2021.
  5. ^ "Crashproofing the Original NoSQL Key-Value Store". Retrieved 3 October 2021.
  6. ^ yigit, ozan. "sdbm.bun". cse.yorku.ca. Retrieved 8 May 2019.
  7. ^ "Ruby SDBM library". SDBM on Github. Note that Ruby used to ship SDBM in the standard distribution up until version 2.7, after which it was made available only as an external library, similarly to the DBM and GDBM libraries, removed from the standard library in Ruby 3.1.
  8. ^ "QDBM: Quick Database Manager". fallabs.com. 2006. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  9. ^ "tdb: Main Page". tdb.samba.org.
  10. ^ a b Debroux, Lionel (16 Jun 2018). "oss-security - Fun with DBM-type databases..." openwall.com.
  11. ^ a b Sury, Ond?ej (19 June 2014). "New project goal: Get rid of Berkeley DB (post jessie)". debian-devel (Mailing list). Debian.

Bibliography

[edit]
什么血型可以生出o型血 山竹什么样的好 尿白细胞十一是什么意思 人流挂什么科 胃湿热吃什么中成药
身上老出汗是什么原因引起的 梅花三弄的三弄指什么 头部ct挂什么科 司令是什么级别 豆腐不能和什么一起吃
湿气重用什么药 标准的青色是什么颜色 金银花不能和什么一起吃 戴玉手镯有什么好处 风热感冒用什么药
五月二十日是什么日子 庙是什么意思 紧锣密鼓是什么意思 碳13是检查什么的 羊胡子疮用什么药膏
高血压用什么药最好hcv9jop4ns0r.cn badus是什么牌子的手表hcv9jop1ns8r.cn 孕晚期缺铁对胎儿有什么影响hcv8jop0ns3r.cn 点痣后要注意什么hcv7jop7ns0r.cn 心率过快有什么危害hcv9jop0ns5r.cn
肿瘤病人不能吃什么hcv9jop2ns6r.cn 肾功能挂什么科chuanglingweilai.com 性激素六项什么时候检查zsyouku.com 咳嗽有痰吃什么药好得最快最有效hcv7jop5ns0r.cn 今年17岁属什么hcv9jop0ns6r.cn
和谐是什么意思hcv8jop7ns4r.cn 石见读什么hcv8jop2ns4r.cn 下午7点是什么时辰hcv9jop2ns0r.cn 番外是什么意思hcv9jop4ns6r.cn 2009是什么年hcv7jop6ns8r.cn
ur是什么牌子hcv8jop5ns7r.cn 手莫名其妙的肿了因为什么chuanglingweilai.com 刀模是什么hcv8jop7ns7r.cn 什么一清二白xscnpatent.com 配伍是什么意思hcv9jop2ns1r.cn
百度