Hi

I am now at the point where I have to make a decision on which data  
structures and algorithms to use for the storage of dynamic  
configuration parameters such as the module load entry table for  
example. The module load entry table will hold the data currently  
located in modules.conf and extconfig.conf.

There are two choices: hashtable storage or tries (most likely  
patricia tries).

Hashtable storage is the most efficient and optimal storage  
architecture for the operation of the server, but it is less optimal  
for the CLI when show commands are expected to produce a predictable  
order (ie load order or alphabetical order) of objects.

Tries, and in particular patricia tries are the most efficient and  
optimal storage architecture for the CLI, but it is less optimal for  
the operation of the server (even though still more efficient than  
the single linked list storage we have right now).

At present, the show command of the CLI will show objects in load  
order (not alphabetical). I could replicate this behaviour in a  
hashtable without any performance hit by augmenting the hashtable  
with a doubly linked list structure for iteration.

If we wanted the show command of the CLI to produce alphabetic order  
while the CLI remains part of the server, then the server will take a  
serious performance hit whenever the output has to be sorted.

My thinking is that a hashtable augmented with a doubly linked list  
structure for iteration (always returning the load order) is the way  
to go. When the CLI is separated from the server, the CLI utility can  
then be implemented so that it sorts the output alphabetically if  
desired. This way, there will be no performance hit on the server.

I was wondering if this is an agreeable approach.

rgds
benjk
_______________________________________________
Callweaver-dev mailing list
[email protected]
http://lists.callweaver.org/mailman/listinfo/callweaver-dev

Reply via email to