====== Spindex - A Review=====
^Published By^Date^Version^Knowledge Level^Keywords^
|Sprezzatura Ltd|01 NOV 1991|2.1+|EXPERT|SPINDEX, SELECT, RLIST|
==== Introduction ====
One of the biggest stirs caused in the AREV community in recent years has
been occasioned by the release of Spindex from Search Technologies. The
product literature promises radically improved throughput on reports and
retrievals and these claims are backed up by reports from the field. This
review sets out to cover superficially how the product works and identifies
the major benefits to be gained from the product - it does not claim to be
an exhaustive review.
==== Conclusion ====
Spindex should be seen for what it is, not what it is not. It is purely a
tool to permit the more rapid extraction of information from a database. It
does this very well but at a cost to flexibility and some speed of data
entry. It is a brilliant idea, with the base engine cleverly executed but
with a lack of attention to detail at the front end. In this respect it is
no worse or no better than most other software products. If you have speed
problems with your system we would strongly recommend that you avail
yourself of the Search Technologies evaluation license. The licensing policy
is very unusual, in that you pay for the amount of users who actually use
the software for retrieval. This can be very cost effective as everybody can
update Spindex indexes whilst only those who wish to retrieve at speed use
Spindex, the other requests being routed via standard AREV.
We are very impressed with the product and feel that it has great potential.
We look forward to the next major release. Whilst it is not our job to
matchmake, it would seem that Search Technologies and Icicle Software could
do far worse than to collaborate on this next release of Spindex!
==== What does Spindex do? ====
Spindex is essentially a suite of programs and an MFS which provide a
replacement/complement for the AREV SI.MFS indexing system. At this time it
does not replace relational indexing. It is used purely for the speeding up
of retrievals - in this release it does not support sorting, this being
handled by the normal AREV indexes or sort processor. Using Spindex some
reports can be made to run up to 2 orders of magnitude quicker than their
AREV equivalent, figures quoted by the manufacturer include one specific
select that runs 500 times quicker than the corresponding AREV statement.
==== How does Spindex do it? ====
At the simplest level, Spindex places a shell program around RTP18.ENGLISH
and examines the SELECT/LIST statement to work out where it can use its own
indexes in preference to system indexes. As these indexes are stored in a
proprietary compressed format (and as the AND and OR logic is very
efficient) retrieval times can be significantly reduced. As with AREV,
Spindex stores transaction records which are updated by background
processing or calls to a flush routine.
==== How well does Spindex do it? ====
Spindex retrieves data quickly and accurately. The tradeoff is that disk
writes are half the speed and index updates are much slower, although the
latter can be accomplished by multiple dedicated background workstations.
When building indexes however, Spindex is faster than AREV and allows
indexes to be rebuilt in parallel at multiple workstations - thus permitting
drastically reduced index rebuild times. The Spindex routines that parse the
SELECT and RLIST commands are not 100% compatible with AREV but appear to
handle "standard" instances quite well. Spindex works cleanly with
EASYWRITER, however using it in a Query window requires the insertion of
(supplied) subroutines. Unfortunately Spindex does not provide an equivalent
for the AREV Browse Cross References window, which accesses AREV Btrees
directly, but Search Technologies claims that it is on the way.
A lot of thought has obviously gone into the added functionality. One of my
favourite features is the ability to either refine or extend an active
select list. In our benchmarking we have tried to provide a realistic view
by considering the impact of Spindex on all parts of the software
development and use lifecycle. Thus whilst we provide the time given to
select a set of records, we also provide the time taken to READNEXT through
the resulting select list. We present below our results tabulated for ease
of use.
==== Benchmarks ====
Note that the results below should be read bearing in mind that on the
REBUILD and SELECT tests, non-numeric keys were used. Spindex operates more
efficiently with numeric keys and thus these results would be faster. Note
further that the more hits Spindex returns for a value, the faster
(proportionally) it becomes. However, version 2.0 of AREV was used and this
did not permit case- insensitive searching so the results for AREV include
the processing as the selected list is resolved for case. All tests
performed on a Compaq Systempro 386/33 rated at 41 by Norton SI.
==== Rebuild Indexes ====
Three indexes were added to a database containing 55,318 records.
Spindex 6 hours, 24 minutes, 22 seconds
AREV 7 hours, 37 minutes, 17 seconds
==== Adding Records ====
A database having 1 field, a date, indexed. 500 records were added/deleted
ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄ¿
³ ³ Add ³ Flush ³ Delete ³ Flush ³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Spindex ³121.17 ³ 905.23 ³ 112.21 ³ 922.69 ³
³ AREV ³ 64.64 ³ 30.87 ³ 65.69 ³ 29.11 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÙ
==== Retrieval Speeds ====
Database of 55,318 records. Two timings, first to return from "PERFORM
SELECT", second to completion of READNEXT through list.
SELECT CLIENT WITH SORT_NAME = "SMITH" (130 returned)
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³ Finish Select ³ Finish Readnext ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Spindex ³ 7.96 ³ 14.72 ³
³ AREV ³ 15.65 ³ 15.65 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
"SMITH" "BROWN" (194 returned)
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³ Finish Select ³ Finish Readnext ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Spindex ³ 9.23 ³ 17.63 ³
³ AREV ³ 21.53 ³ 21.58 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
"SMITH" "BROWN" "JONES" (263 returned)
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³ Finish Select ³ Finish Readnext ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Spindex ³ 10.38 ³ 20.21 ³
³ AREV ³ 27.74 ³ 27.74 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
"SMITH" "BROWN" "JONES" "FR]" (730 returned)
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³ Finish Select ³ Finish Readnext ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Spindex ³ 18.07 ³ 34.60 ³
³ AREV ³ 512.39 ³ 512.46 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
AS ABOVE AND WITH ADDRESS "LONDON" (130 returned)
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³ Finish Select ³ Finish Readnext ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Spindex ³ 18.95 ³ 25.54 ³
³ AREV ³ 837.61 ³ 837.67 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
SELECT CLIENT WITH ADDRESS "[TON"
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³ Finish Select ³ Finish Readnext ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Spindex ³ 34.65 ³ 50.31 ³
³ AREV ³ 495.21 ³ 495.32 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
From these results it can readily be seen that Spindex screams when
performing complex substring manipulation with ANDing and ORing, and even in
normal selects, the time taken before the first record appears on screen can
be significantly reduced.
==== Bugs /Restrictions worth mentioning ====
There is currently a restriction on the amount of records that Spindex can
handle under certain circumstances. As this is about to be lifted, contact
Search Technologies direct for further details. Sorting is not currently
supported by Spindex, though it will be in the next major release, as will
database recovery in event of network/hardware crash. Latent lists are not
supported in the test release although this has since been rectified.
Date comparisons such as TODAY, NEXT TUESDAY, LAST WEDNESDAY, TOMORROW do
not work. (Incidentally, LAST comparisons do not work in AREV 2.0 or 2.1
either). It is not possible to produce queries against other fields eg
INV_AMT < TOTAL_COST. Multiple select cursors do not function at TCL
correctly. EG
SELECT CLIENT WITH NAME = "SMITH" - press F5
SELECT CLIENT WITH NAME = "JONES" - press Esc
LIST CLIENT NAME - would list all JONES rather than all SMITHs.
Language Set support is not included for 2.1. Users having a different
language set to that of the user who established the index can still update
the index. READNEXTing through a loop to conclusion does not clear the
active cursor. LIST CLIENT resolves first rather than just starting to list
as in AREV.
Supplier Details - Search Technologies. 1916 Pike Place, Suite 1711,
Seattle, WA 98101-1013. (206) 441-3220, (509) 547-8432 (Voice) (509) 943
6655 (Fax). In the UK - ICS (Sales) Ltd, 57 Kingsclere Road, Basingstoke.
0256 469460. One licence per querying workstation required. Consult supplier
for prices.
(Volume 3, Issue 6, Pages 9-11)