1. 程式人生 > >c++開源機器學習庫

c++開源機器學習庫

4. Berkeley DB
http://www.sleepycat.com/
Berkeley DB不是一個關係資料庫,它被稱做是一個嵌入式資料庫:對於c/s模型來說,它的client和server共用一個地址空間。由於資料庫最初是從檔案系統中發展起來的,它更像是一個key-value pair的字典型資料庫。而且資料庫檔案能夠序列化到硬碟中,所以不受記憶體大小限制。BDB有個子版本Berkeley DB XML,它是一個xml資料庫:以xml檔案形式儲存資料?BDB已被包括microsoft、google、HP、ford、motorola等公司嵌入到自己的產品中去了
Berkeley DB (libdb) is a programmatic toolkit that provides embedded database support for both traditional and client/server applications. It includes b+tree, queue, extended linear hashing, fixed, and variable-length record access methods, transactions, locking, logging, shared memory caching, database recovery, and replication for highly available systems. DB supports C, C++, Java, PHP, and Perl APIs.
It turns out that at a basic level Berkeley DB is just a very high performance, reliable way of persisting dictionary style data structures - anything where a piece of data can be stored and looked up using a unique key. The key and the value can each be up to 4 gigabytes in length and can consist of anything that can be crammed in to a string of bytes, so what you do with it is completely up to you. The only operations available are "store this value under this key", "check if this key exists" and "retrieve the value for this key" so conceptually it's pretty simple - the complicated stuff all happens under the hood.
case study:
Ask Jeeves uses Berkeley DB to provide an easy-to-use tool for searching the Internet.
Microsoft uses Berkeley DB for the Groove collaboration software
AOL uses Berkeley DB for search tool meta-data and other services.
Hitachi uses Berkeley DB in its directory services server product.
Ford uses Berkeley DB to authenticate partners who access Ford's Web applications.
Hewlett Packard uses Berkeley DB in serveral products, including storage, security and wireless software.
Google uses Berkeley DB High Availability for Google Accounts.
Motorola uses Berkeley DB to track mobile units in its wireless radio network products.