The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
So I ended up refactoring and adapting an old microsoft codeplex project for doing an in memory B+ tree, because it was already tested and was released under MPL which is nearly the same license as MIT.
And it's all exposed using a happy dictionary interface.
However, I'm looking to do an ISAM file backed B+ tree.
Well, the problem with that is the records have to be fixed length.
It's a limitation the in memory BPlusTree doesn't share (but honestly should, not for consistency, but for performance although with the GC it doesn't really matter)
fixed length means fixed length strings or *some* mechanism for embedding blob style pointers to fields. (Which also makes them non-searchable through the primary query mechanism - you have to use secondary queries and you can't have these as part of your keys). People familiar with RDBMS systems know these restrictions well.
Also, the trouble with that is I don't know quite how to store those fields.
Currently, the file would be laid out in blocks of fixed lengths. If I start storing blob fields in it, then i lose the fixed block layout and perf that comes with it.
I was thinking of laying out the file in fixed length blocks but having the blobs span multiple blocks. That means a bit of wasted space, but not a huge deal.
It does complicate things though because then i need an additional linked list in the file to find the blob fields quickly by reference - possibly another index.
This is the house that jack built. It has turned into a castle.
Rube Goldberg smirks in my general direction.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.