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
