[B-tree] Continuing development

There was enough positive response to the "Interest in B-tree library for Boost?" thread that I plan to continue development. * The immediate action items for the next few weeks are to get the library working with more compilers, to move the timer and endian stuff to detail, and to begin testing on Linux and other Unix-like platforms. Also try to extend the test cases to uncover more bugs. * Variable length keys and data, particularly strings, are a very high priority. * Development will be hosted at http://github.com/Beman/Boost-Btree - I'm liking Git quite a lot and using it is the best way for me to learn more. For those who want to follow along, the git equivalent to an svn checkout is: mkdir btree cd btree git clone git://github.com/Beman/Boost-Btree.git . and the git equivalent to svn update is: cd btree git pull * Please give the library a try. I need feedback based on actual use. Thanks, --Beman

On 20/09/10 17:01, Beman Dawes wrote:
For those who want to follow along, the git equivalent to an svn checkout is:
mkdir btree cd btree git clone git://github.com/Beman/Boost-Btree.git .
FYI, This works too git clone git://github.com/Beman/Boost-Btree.git btree John Bytheway

On Mon, Sep 20, 2010 at 9:01 AM, Beman Dawes <bdawes@acm.org> wrote:
There was enough positive response to the "Interest in B-tree library for Boost?" thread that I plan to continue development.
* The immediate action items for the next few weeks are to get the library working with more compilers, to move the timer and endian stuff to detail, and to begin testing on Linux and other Unix-like platforms. Also try to extend the test cases to uncover more bugs.
* Variable length keys and data, particularly strings, are a very high priority.
* Development will be hosted at http://github.com/Beman/Boost-Btree - I'm liking Git quite a lot and using it is the best way for me to learn more. For those who want to follow along, the git equivalent to an svn checkout is:
mkdir btree cd btree git clone git://github.com/Beman/Boost-Btree.git .
and the git equivalent to svn update is:
cd btree git pull
* Please give the library a try. I need feedback based on actual use.
Thanks Beman, I'll give it a try. I don't know how much real-world use I can actually give it without variable-length keys/data—looking forward to that. -- Cory Nelson http://int64.org

On Tue, Sep 21, 2010 at 1:17 AM, Cory Nelson <phrosty@gmail.com> wrote:
On Mon, Sep 20, 2010 at 9:01 AM, Beman Dawes <bdawes@acm.org> wrote:
* Please give the library a try. I need feedback based on actual use.
Thanks Beman, I'll give it a try. I don't know how much real-world use I can actually give it without variable-length keys/data—looking forward to that.
I'm going to attack variable-length keys/data in several steps. 1) Via a very simple string class that has a fixed maximum length, and has a sizeof() that maximum length + 1. Although this wouldn't be suitable for really demanding applications, it should be fine for a lot of every day programming. It is totally non-invasive, so is available right now. See http://github.com/Beman/Boost-Btree/blob/master/boost/btree/detail/fixstr.hp..., or use your own if you've already got such an animal. Steps two and three are invasive to the btree, so require the btree class have some form of trait, mix-in, or policy mechanism. 2) Variable length keys and data using the current disk page layout. That's fairly easy to program, but isn't as fast as the step 3 approach. I've used this technique in the past with excellent results. 3) Variable length keys and data using variable length key/data friendly disk page layout. More difficult to program, but will offer better space, speed, or both depending on the exact app. I've never used this technique, so it may be a bit of a learning experience. --Beman
participants (3)
-
Beman Dawes
-
Cory Nelson
-
John Bytheway