Berkeley DB license - Mailing list pgsql-hackers
From | Michael A. Olson |
---|---|
Subject | Berkeley DB license |
Date | |
Msg-id | 200005161359.GAA74742@triplerock.olsons.net Whole thread Raw |
In response to | Re: WAL versus Postgres (or: what goes around, comes ar ound) (Daniel Kalchev <daniel@digsys.bg>) |
Responses |
Re: Berkeley DB license
Re: Berkeley DB license Re: Berkeley DB license |
List | pgsql-hackers |
Yesterday I sent out a message explaining Sleepycat's standard licensing policy with respect to binary redistribution. That policy generally imposes GPL-like restrictions on the embedding application, unless the distributor purchases a separate license. We've talked it over at Sleepycat, and we're willing to write a special agreement for PostgreSQL's use of Berkeley DB. That agreement would permit redistribution of Berkeley DB with PostgreSQL at no charge, in binary or source code form, by any party, with or without modifications to the engine. In short, we can adopt the PostgreSQL license terms for PostgreSQL's use of Berkeley DB. The remaining issues are technical ones. Rather than replacing just the storage manager, you'd be replacing the access methods, buffer manager, transaction manager, and some of the shared memory plumbing with our stuff. I wasn't sufficiently clear in my earlier message, and talked about "no-overwrite" as if it were the only component. Clearly, that's a lot of work. On the other hand, you'd have the benefit of an extremely well-tested and widely deployed library to provide those services. Lots of different groups have used the software, so the abstractions that the API presents are well-thought out and work well in most cases. The group is interested in multi-version concurrency control, so that readers never block on writers. If that's genuinely critical, we'd be willing to see some work done to add it to Berkeley DB, so that it can do either conventional 2PL without versioning, or MV. Naturally, we'd participate in any kind of design discussions you wanted, but we'd like to see the PostgreSQL implementors build it, since you understand the feature you want. Finally, there's the question of whether a tree-based heap store with an artificial key will be as fast as the heap structure you're using now. Benchmarking is the only way to know for sure. I don't believe that this will be a major problem. The internal nodes of any btree generally wind up in the cache very quickly, and stay there because they're hot. So you're not doing a lot of disk I/O to get a record off disk, you're chasing pointers in memory. We don't lose technical evaluations on performance, as a general thing; I think that you will be satisfied with the speed. mike
pgsql-hackers by date: