[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

dpkg-db



I've been doing a bit of coding on a database for the configuration
management. The thing doesn't have a name yet, but then again it
doesn't do anything currently either.. I've just revamped all major
datastructres which broke everything.

Anyway, I've though a bit about the shell interface to the database. 
What I'm going to do is make a simple utility called dpkg-db which
allows you to access the database. Here is its documentation as I
envision it:

------------------------------------------------------------------------------
Shell interface: dpkg-db

The commands:
	create <variable> <template> <package>
		Create a new variable using <template>
	remove <variable>
		Remove variable <variable>
	check
		Check database integrety
	query <subcommand> <variable>
		Retrieve information about a variable
		Subcommands:
			value        - get value
			type         - show variable type
			default      - show default value
			description  - show short description
			ldescription - show long description
			defined      - check if variable has value
			meta <flag>  - check if metaflag <flag> is set
	(un)set <subcommand> <variable>
		Set or unset information for a variable
		Subcommands:
			value        - change the value. with unset we remove the value
			               from the database.
			meta <flag>  - (un)set metaflag <flag>
------------------------------------------------------------------------------

Feel free to make suggestions, since I haven't written a single line of
dpkg-db yet.

Please note we have three seperate entities:
* templates: a description of variables, can define new variable types using
  containers.
* variables: a list of (template,name) pairs that define the variables
* the database: place were we store the actual value for variables, if they
  are defined. (ie the instantiations of the variables)

On a somewhat related note: I have a friend who is going to do research
on processing huge amounts of data. For that he needs a database which
can handle multiple database drivers, and it seems he could use the same
codebase. I made the whole metavariable-stuff optional in the library,
so we should be able to make it quite fast (he needs to process
something like 100 megabyte/sec). I thought this would make a nice
testbed for high-duty situations :)

Wichert.

-- 
==============================================================================
This combination of bytes forms a message written to you by Wichert Akkerman.
E-Mail: wakkerma@cs.leidenuniv.nl
WWW: http://www.wi.leidenuniv.nl/~wichert/


Reply to: