Bugs and PCs - Indexing 01 vs 1
VERBatim - V77
Index Sub Revisited
Indexing on Xlates
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
Simple Security
Batch.Indexing
QTIPS - Batch.Indexing Close Down
What's New (and un(der)documented!) In 2.12
RTP Series - RTP42
RTP Series - RTP51
Reader's Clinic - AREV Runtime
@ATTACK - @PDisk.On
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
AREV Comes to Czechoslovakia Les Palenik, Cosmotron Systems
Referential Integrity
Reader's Clinic - Related Windows
SecureUser
VERBatim - V25
@ATTACK - @Files.System
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
REVMEDIA Revisted
QTIPS - DOS File Names
DOS Interfacing (Part II)
VERBatim - V116
@ATTACK - @Pri.File
@ATTACK - @Rollout.File
File Variables
How Indexes Are Updated
Index Record Layouts
QTIPS - File Variable of File In SELECT Statement
QTIPS - Amending non-Attached Files
LINEAR HASH FILE STRUCTURES - Part 1
Index Flush
QTIPS - File Handle Structure
!File Records
QTIPS - Updating Indexes
Indexing on Xlates
Rebuilding Indexes
How Indexes Are Updated
Index Record Layouts
Index Flush
REVMEDIA Revisited
QTIPS - DOSTime
VERBatim - V11
@ATTACK - @Backgrnd.Time
@ATTACK - @Index.Time
QTIPS - Time-outs in Windows
Reader's Clinic - Line Length > 256 Characters
QTIPS - String Space
QTIPS - String Space Format Errors
Reader's Forum - Numeric Precision in R/Basic - Hal Wyman
Redefining Keys
Background Processing
Reader's Clinic - Prompting for Passwords
Capture
Creating Your Own Background Processes
@ATTACK - @Edit.Keys
@ATTACK - @Index.Time
@ATTACK - @PlayBack
@ATTACK - @Priority.Int
How Indexes Are Updated
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
QTIPS - Use of Mouse
QTIPS - Interrupt Proof Error Messages
Uncommon Knowledge - WC_Soft_Keys%
A RevTI Techie Replies - Mike Pope - Revelation Technologies (UK) Ltd
Version 3 Technical Highlights - Input.Char
Version 3 Technical Highlights - @Prog.Char
Version 3 Technical Highlights - Highlight
Redefining Keys
Background Processing
Capture
Creating Your Own Background Processes
@ATTACK - @Edit.Keys
@ATTACK - @Index.Time
@ATTACK - @PlayBack
@ATTACK - @Priority.Int
@ATTACK - @Prog.Char
How Indexes Are Updated
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
QTIPS - Use of Mouse
QTIPS - Interrupt Proof Error Messages
Uncommon Knowledge - WC_Soft_Keys%
Version 3 Technical Highlights - Input.Char
Version 3 Technical Highlights - @Prog.Char
Version 3 Technical Highlights - Add_Buttons
Version 3 Technical Highlights - Highlight
Background Processing
Creating Your Own Background Processes
@ATTACK - @Index.Time
How Indexes Are Updated
How Indexes Are Updated
Index Record Layouts
Index Flush
How Indexes Are Updated
DOS Interfacing (Part II)
Reader's Clinic - Preventing Records Being Amended
How Indexes Are Updated
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
Caching in on the Frames Array - Mike Pope
How Indexes Are Updated
QTIPS - Unexpected/Unwanted Modification Of Record On Write
Creating Your Own Background Processes
@ATTACK - @Last.Select.Process
Reader's Forum
QTIPS - Menu Item Pre-Processing
Networked %SK%
RTP Series - RTP25
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
Reader's Clinic - Fixing %Windows% Using Depend.Update
QTIPS - Updating Indexes
How Indexes Are Updated
REVMEDIA Revisted
Utility Diskette # 3 - Part I
QTIPS - Moving Objects the EASY way.
Networked %SK%
Version 2
RTP Series - RTP25
RTP Series - RTP37
Networked %SK%
Network Contention
Directory Exists on Novell
QTIPS - String Space Format Errors
QTIPS - Postscript Driver Problem
@ATTACK - @Modal
Reader's Clinic - Preventing Records Being Amended
QTIPS - Finding/Replacing Spaces With The Editor
Reader's Clinic - Scribe Replace Processes in Window
Flashing Background
Background Processing
Creating Your Own Background Processes
Background Processing
Vroom - Window Processing
VROOM - Window Processing II
Vroom
RTP Series - RTP32
Utility Diskette # 3 - Part I

RevMedia FKB

DocumentV2I9A4
TitleHow Indexes Are Updated
KeywordsUPDATE
INDEX
SI.MFS
!INDEXING
BTREE
INPUT.CHAR
INDEX.CONTROL
FILE.DISTRIBUTOR
F.DISTRIBUTOR
F.INDEXER
BTREE.READ
BTREE.WRITE
TextIndexing continues to be one of the least understood areas of AREV and our
subscribers repeatedly request additional clarification on related issues
Following on FROM our issue describing index record structures (Volume 2
Issue 1) the following documents the logic FLOW of the system when updating
indexes

All i/o to an indexed file must first pass through SI MFS When this detects
that a change has been made it updates the !INDEXING file WITH transaction
records and then as time is made available (or INDEXES are flushed
manually) it updates the INDEXES and balances the BTREES This is not
achieved by one self contained AREV routine but by a whole string of
routines SI MFS INPUT CHAR INDEX CONTROL FILE DISTRIBUTOR
F DISTRIBUTOR F INDEXER BTREE READ and BTREE WRITE The process taken
could be represented by the following Pseudo Code

WRITE RECORD (CALLS SI MFS)
SI MFS
LOOP
UNTIL LOCK OBTAINED ON !INDEXING 0
REPEAT
READ RECORD 0
UPDATE RECORD 0
IF RECORD 0 TOO BIG THEN
GET LATEST TRANSACTION RECORD
MOVE RECORD 0 INTO LATEST TRANSACTION RECORD
UPDATE LATEST TRANSACTION RECORD
END
UNLOCK !INDEXING 0

Note here that if somebody else on a network is involved in a record write
involving several INDEXES your station will appear to hang when you file a
record WITH INDEXES Your station will have to wait for the !INDEXING 0
lock

When control is returned to INPUT CHAR the following occurs

INPUT CHAR
LOOP
UNTIL TIME OUT REACHED
REPEAT
CALL INDEX CONTROL

Note here that if there is a replace background process specified in the
environment (2 X only) this will be called in place of INDEX CONTROL and no
further processing will take place References to Post Index Check following
also only apply in 2 X

INDEX CONTROL
LOOP
IF NOT KEY STROKE THEN
CALL FILE DISTRIBUTOR
FILE DISTRIBUTOR
LOOP
UNTIL KEY STROKE
MOVE RECORDS FROM !INDEXING TO !FILE
REPEAT
END
IF NOT KEY STROKE THEN
CALL F DISTRIBUTOR
F DISTRIBUTOR
LOOP
UNTIL KEY STROKES
MOVE RECORDS TO FIELD CONTROL RECORDS
REPEAT
END
IF NOT KEY STROKE THEN
CALL F INDEXER
F INDEXER
LOOP
UNTIL KEY STROKES
UPDATE BTREE NODES
REPEAT
END
IF NOT KEY STROKE THEN CALL POST INDEX CHECK
END
UNTIL KEY STROKE
REPEAT
RETURN TO INPUT CHAR

Note that these stages can be interrupted at any stage by pressing a key
The process of performing the BTREE update incrementally slows the system
down but permits it to be DONE WITH minimal interference WITH normal work


(Volume 2 Issue 9 Pages 5 6)
[revmedia/copyrigh.htm]

Page last modified: 30/01/03