오픈 소스 애플리케이션 아키텍처 (1권) Berkeley DB

The Architecture of Open Source Applications (Volume 1) Berkeley DB

77 pointsby grep_it2026. 2. 2.10 comments
원문 보기 (aosabook.org)

요약

이 글은 오픈 소스 데이터 관리 라이브러리인 Berkeley DB의 아키텍처를 자세히 설명합니다. 설계 원칙, 20년에 걸친 발전 과정, 제작자의 철학을 논의하며, C로 작성되었음에도 불구하고 모듈화, 잘 정의된 API의 장점, 객체 지향적 접근 방식을 강조합니다. 또한 초기 설계와 이후 버전을 비교하며 복제 및 SQL 지원과 같은 기능이 핵심 원칙을 유지하면서 어떻게 통합되었는지 보여줍니다.

댓글 (10)

procaryote10시간 전
I wanted to love berkeley db; it was available everywhere, seemed simple, was fast when tested. In practice it never worked well though, with pretty frequent corruption under load, and license confusion from oracle. It has a lot of features you're never going to use, and if you try, you'll be disappointed

There's no shortage of embeddable key-value stores with C bindings like leveldb, rocksdb, or even gdbm, and all of them have worked better for me.

teoruiz10시간 전
Many years ago I was obsessed with Berkeley DB and its performance.

But when I discovered Tokyo Cabinet and Tokyo Tyrant I almost literally fell in love. We used it for things that would have been impossible without it at the time.

Still worth checking it out: https://github.com/hthetiot/Tokyo-Cabinet

fix4fun8시간 전
I got similar experience. Using Berkeley DB until I found SQLite ;) Of course it is not directly key/value, but small size, simplicity and IO performance was amazing for me.
bborud9시간 전
Berkeley DB is one of those things everyone respected, for some reason, but that didn't actually work if you threw a bit of data at it. And not just for us. I remember talking to companies that paid them lots of money to work on reliability, and it never got better.

But I do remember reading much of the source (trying to figure out why it didn't work) and thinking "this is pretty nice code".

atombender8시간 전
Well, it worked for Amazon — Berkeley DB was used extensively there as the makn database, right from the beginning. I remember talking to an ex-Amazon engineer in 2006 who said BDB was still the main database used for inventory, and complained that everything was a mess, with different teams using different tech for everything. Around that time Amazon made DynamoDB to solve some of that mess — and it sat on top of BDB.

An old thread about this: https://news.ycombinator.com/item?id=29290095.

mistrial92시간 전
yeah - scars still visible here from a year 2000 project using BerkeleyDB. Unbelievable complexity to write adapters to ordinary desktop software.
tebeka7시간 전
Loved this chapter, great design, well written.
tkiolp46시간 전
I love the aosa book. I learned a lot about systems design from it. Ironically, I usually fail the Systems Design interviews at fancy companies because they only ask about LBs, sharding, obscure data structures like CRDTs, and what not.