From: Jose (jmalv04_at_[hidden])
Date: 2006-10-26 10:52:40


On 10/25/06, Beman Dawes <bdawes_at_[hidden]> wrote:
>
> Because my interest is high performance B-trees with binary data formats
> portable to any system (regardless of compiler, endianness, alignment,
> or other constraints), I was not trying to handle any random C++ object.
> I was, however, designing in the ability to handle variable length key
> and data fields.

I have the same interests/requirements. As for defining the classes,
I like the approach followed by GigaBASE, where you use type descriptors
for all classes used in the database (see example below or
http://www.garret.ru/~knizhnik/gigabase/GigaBASE.htm )

class Contract {
  public:
    dbDateTime delivery;
    int4 quantity;
    int8 price;
    dbReference<Detail> detail;
    dbReference<Supplier> supplier;

    TYPE_DESCRIPTOR((KEY(delivery, INDEXED),
             KEY(quantity, INDEXED),
             KEY(price, INDEXED),
             RELATION(detail, contracts),
             RELATION(supplier, contracts)));
};

If you have experience implementing C++ B-trees and are interested in
> submitting something to Boost, I'd like to hear you ideas.
>

Although my experience is limited, I would be interested to contribute/test
any
new implementation you or others propose.

I know of one good C++ implementation that requires XFS filesystem
but I am looking for one implementation that works with any filesystem
so that it is "portable to any system".

Let me know if you plan to continue your work!

regards
jose