Joshua Nathaniel Pritikin > Tree-Fat > Tree::Fat

Download:
Tree-Fat-1.111.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 1.111   Source  

NAME ^

Tree::Fat - Perl Extension to Implement Fat-Node Trees

SYNOPSIS ^

This is not a plug-and-play perl extension. This module is designed for embedding (and there is no default embedding).

  1. tvgen.pl -p PREFIX

  2. Edit PREFIXtv.tmpl

  3. Compile and link into your own application!

DESCRIPTION ^

Implements object-oriented trees using algorithms adapted from b-trees and AVL trees (without resorting to yucky C++). Fat-node trees are not the best for many niche applications but they do have excellent all-terrain performance.

 TYPE       Speed       Flexibility  Scales     Memory   Keeps-Order
 ---------- ----------- ------------ ---------- -------- ------------
 Arrays     fastest     so-so        not good   MIN      yes
 Hashes     fast        good         so-so      so-so    no
 Fat-Trees  medium      silly        big        good     yes

WHAT IS A FAT-TREE? ^

It's a cross between a tree and an array. Each tree node contains a fixed length array of slots. Tree performance is enhanced by balancing array operations with tree operations. Moreover, tree operations are better optimized by taking the arrays into account.

HOW ABOUT PERSISTANCE? ^

F-Trees are designed for embedding. (If you want persistent F-Trees without the work, then check out the ObjStore extension by the same author. F-Trees are already integrated into the ObjectStore database, right now!)

CURSOR BEHAVIOR ^

The only way to access a tree is via a cursor. Cursors behavior is derived from the principle of least-surprise (rather than greatest efficiency). More documentation there isn't. Please read the source code for more information.

EMBEDDING API ^

Flexibility is paramount. The embedding API is much more flexible than would be possible with C++ templates. See tvcommon.* & tv.*.

PERFORMANCE ^

REFERENCES ^

PUBLIC SOURCE CODE ^

The source code is being released in a malleable form to encourage as much testing as possible. Bugs in fundemental collections are simply UNACCEPTABLE and it is hard to trust a single vendor to debug their code properly.

Get it via http://www.perl.com/CPAN/authors/id/JPRIT/ !

TODO ^

Optimize more!

Clean up refcnts in test scripts.

More documentation.

AUTHOR ^

Copyright © 1997-1999 Joshua Nathaniel Pritikin. All rights reserved.

This package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html)

syntax highlighting: