HTDB : Docs : Developer's Guide
About
Overview
Philosophy
Features
News
Download
Help Us!

Docs
Overview
Designers
Developers
Functions
Database
CGIs
Applications
Roadmap
Architecture

Community
Powered By

[home]
Developer's Guide

Introduction

HTDB objects are simply key/value pairs stored in-memory. The (C language) libhtdb library contains a full suite of functions for accessing and manipulating the various storage methods of HTDB objects.

Currently, the storage method is a hash table, but we are toying with moving to ternary trees for greater flexibility of walking through stored values.

One of the aims of the HTDB library is to have a very straight-forward API so that common programming gaffes - such as memory leaks, or bad NULL pointer checks - are minimized. Properly used, there should never be such things as a NULL pointer when dealing with HTDB objects.

So what's the big deal here, you might ask - why all this fuss about moving things into in-memory storage..?

The whole concept of the HTDB system is one of "pulling" values at will from that in-memory store to "build-up" what will eventually become an HTML document (in the case of a web CGI).

Everything gets stored in the same place: web server variables, GET/POST values, CGI program calculations, database query results, resource file HTML fragments and scripted values. Eventually, they are all pulled-together in a top-down fashion when the "parent" object is called upon. Order of evaluation does not matter - objects not-yet created remain until the final object evaluation. More on all that later.

The take-away is that everything gets tossed into one big bucket, and eventually a web page emerges from the mess. And the approach is suprisingly efficient.

And now for some details...


-del
Tue Mar 6 22:41:44 PST 2001
   
17,406 impressions