[yaala] So, lets actually do something...

qmax yaala@verplant.org
Sat, 30 Nov 2002 21:09:06 +0600


Now, we have to work :)

Truely saying, my version of yaala is unconsistent:
- very nonoptimal memory usage;
- complicated selection syntax;
- untractable and unenhanceable internal agregation storage;

And i think, that we should chose your branch end as start point,
redesigning it step-by step.

The primary issues IMHO are:
- making clean interface b/wean modules to allow them to be
  modificable independantly;
- redesigning data storage to allow further enhancement;
- implementing another table description scheme;
- making yaala more configureable;

Primary modules are:
- setup: to parse config-options;
- parser;
- data: to store data;
- report;

The main module should allow to configure yaala from config file or
command line.
I thing, this should be done as --option=value parameter.

The setup module should then parse those options and create internal
data structure, other then main::config.
IMHO main::config should hold only string presentation,
and other structure required to hold parsed parameters.
This structure avoids need of alot of functions like
setup::datalabels, setup::datatypes, etc (from yaala-qmax).

The parser module should provide info about data types as well as
about printable labels of datafields.
I guess my approach with parser::datafields is enough universal.
The only interface function is parse($logline)
Extra calculations is up to yaala main module or whatever.

The data module should be able to store tree-structured data pool -
to allow specifyng aggregation for any key combination.
I suggested [ \@keysequence, \%tree, \$exprdef ] and going to
implement this soon.
Interface functions are
    init() - should get all necessary from config structure
    store(%parsed_hash)
    retrieve(something) - to retrieve data from pool.
This 'something' should represent reference to data in pool and be
enough universal to avoid data-dependency b/wean report and data
modules.
My implementation in yaala-qmax is completely untractable at this issue.

The report module should be able to generate 1D, 2D and 3D tables with
any key combination.
My implementation of combined is enough for this, but requires
interface redesign (due to data references).

Later i'll post my suggestions about new selection expr.

P.S.
I guess u should also make yaala-discuss maillist - for users to
post suggestions and bug-reports and announce it at yaala homepage.
This is out of developement scope.

-- 
qMax