This document attempts to define to what extent TANGRAM can be expected to behave reliably under stess (typically, when the data volumes are scaled up).
The TANGRAM philosophy is that if an operation works for 3 elements, it will work for 3000 or 300000. But, of course, there are limits. In general terms, TANGRAM turns out to be much more efficient than other handlers of multi-way tables.
This document applies to TANGRAM version 8, running under Dyalog version 8.1.5 and any Windows version.
First, distinguish among several kinds of limits:
A physical cube is accommodated in two files (labels and cells are stored separately). The label file (*.sf) is homogeneous with a library file (*.lib) in that it is read/written by the same programs.
Carefully designed cubes of 1 Gbyte are operational. The limiting factors are often LOADDB or BUILDDB times (See ADMIN services).
Note. Experimental cubes of 2 Gbytes have been proven quite viable. A benchmark on a PC with 500 Mbytes of RAM has produced these results:
The size of the cell file (*.hlm) is exactly 8 times the cell count, so that the remarks on max cube size apply here also.
Conclusion: design cubes with a max of 15 physical dimensions.
Note: Many TANGRAM modules work on 3 dimensions - cubes with higher rank can be collapsed to 3 dimensions to use the module and this has to be done in RAM memory.
Note: this limit is rather irrelevant, because you can have dummy dimensions that reduce to a single element.
If you are handling a single Profit and Loss report, you can stucture it as, say, 1 Company, 1 Fiscal Year, 200 Variables.
Benchmark cases with 1 million elements have been successfully handled.
Note: The total cell count is the product of the element counts on all dimensions. If one element count is huge, the others must be very modest.
Note: Design physical dimensions in the order smallest-to-largest for performance reasons.
Typical limit: with 500 Mbytes of RAM this may be 200 Mbytes or 24 million cells.
Much larger physical cubes can be processed in Data Analysis by iterating an operation on reasonably-sized subcubes.
Administration services handle these iterations themselves - in principle they work on any database size.
But estimate and measure BUILDDB times, which depend on several factors.
A gross order of magnitude can be 5000 to 50000 loaded records/second
An alternative to BUILDDB is LOADDB, that loads just values into an existing cube. Times depend mostly on the sorting order of the flat file. An order of magnitude can be 3000 to 30000 loaded records/second.
Note however that interactive field definition (in BUILDDB) is limited to 40 fields (a mixture of numeric and code fields).
LOADDB uses only four fields per record, one of which must be numeric.
This applies to all modules that accept formulas (COMPUTE, GLOBAL, CONTRIBUTE, BROWSE, QUERY, UPDFORMULAE).
Note: Estimate or measure the frequency of simultaneous accesses to the same physical cube. Conflicting requests are correctly enqueued but may cause a delay of several seconds whenever a virtual cube is read into RAM memory.
Other (inherited) limits apply to the size of data handled by TANGRAM's GUI modules and to the cubes handled by the TANGRAM-Excel interface.
Home page - Contact - Excel add-in - Mail to - Download - OLAP links - Manual