VSAM KSDS Structure and Processing Department of Computer






































- Slides: 38
VSAM KSDS Structure and Processing Department of Computer Science Northern Illinois University August 2005 Some of the illustrations are from VSAM: Access Method Services and Programming Techniques by James Martin
KSDS Structure • Index component – maintains a list of the key values with pointers into the data component • Data component – records • have a unique key field • may be fixed or variable length 2
KSDS Structure • Index component – maintains a list of the key values with pointers into the data component • Data component – records • have a unique key field • may be fixed or variable length 3
KSDS Structure • VSAM uses the index component to locate records stored in the data component • Records can be accessed – sequentially in order on key value – OR directly by supplying the key value of the desired record 4
KSDS Structure KSDS Index Component Data Component Rec 1 Rec 2 Rec 3 …………. Rec n 5
Control Interval • Control Interval – the unit of data that is transferred in I/O – contains • records • control information • free space (possibly) Record Free Control A B C Space Info 6
KSDS Control Interval • VSAM loaded – control intervals created – records written into CIs 7
KSDS Control Interval • KSDS Free Space – on load free space left in each CI – when creating the percentage of free space in each CI is determined based upon volatility – too much free space wastes direct access space – too little free space result in maintenance inefficiencies 8
KSDS Control Interval KSDS Index Component Data Component Rec Rec Free Cont A B C Space Info Rec Rec Free Cont D E F Space Info Rec Free Cont G H Space Info 9
KSDS Control Interval • KSDS Control Information – One or more Record Descriptor Fields (RDFs) • Fixed Length Records has 2 RDFs – 1 st RDF contains length of record – 2 nd RDF contains number of records currently stored in the CI 10
KSDS Control Interval • KSDS Control Information – Control Interval Descriptor Field (CIDF) • information about the CI as a whole – free space - yes/no – number of RDFs (variable length records) 11
KSDS Control Area • CIs are grouped into Control Areas (CA) • As VSAM data set is loaded – control areas created – control intervals written into them • KSDS – some CAs contain only free space 12
KSDS Control Area Rec Rec Free A B C Space Rec Rec Free D E F Space Rec Free G H Space Free Space R R R C I D D D D F F F F R R C I D D D F F F C I D F 13
KSDS Indexes • Sequence Set – lowest level of the index – one sequence set record for each control area in data component – one entry in each sequence set record for each control interval within the corresponding control area 14
KSDS Sequence Set Record Format Header Free Space Free Index Entries Space Entries 15
KSDS Sequence Set • Header – contains • control information for the sequence set record • pointer to the next sequence set record • Free Space Entry – points to each control interval in the control area that contains free space 16
KSDS Sequence Set • Unused Space – used to expand either the free space portion or the index entries portion of the sequence set record • Index Entry – point to each control interval in the control area that contains records – contains highest key value in CI – pointer to beginning of that CI in CA 17
KSDS Index 18
KSDS Index Entries 19
KSDS Processing • Records can be accessed – sequentially in ascending or descending order on key value – directly by supplying a key value 20
KSDS Loading • Loading via – AMS utility program – User-written application program • Loaded sequentially on key value 21
KDSD Loading Space Allocation • VSAM handles space upon load – 1 st dynamically obtaining a CA from the space allocated to the data set – 2 nd loads records into CIs in that CA – additional space is allocated as required until data set is completely loaded 22
KDSD Loading Index Processing • VSAM – automatically creates all required index entries – sequence set entry contains • highest key value • direct RBA pointer to beginning of that CI 23
Completed KSDS Cluster 24
KSDS Retrieval • Sequentially – via a series of READs or GETs – records presented in order on key value – can be ascending or descending – starting point specified in program – VSAM uses sequence set to get records in key sequence 25
KSDS Retrieval • Directly – a READ or GET is executed passing a key value – VSAM • reads the entire CI into memory • extracts requested record • passes to application program 26
KSDS Retrieval 27
KSDS Retrieval • VSAM – begins at top of index set – locates first index record whose key is greater than the requested key – follows pointer in index entry down to the sequence set record for the CA – searches sequence set records for the first index entry whose key value is greater than requested one 28
KSDS Retrieval • VSAM – reads the found CI that was pointed to by the index entry point into virtual storage – uses the information in the CI’s RDFs to search sequentially through the records in the CI to locate the logical record that has the requested key value – record is then moved to work area 29
KSDS Updating Sequentially • Updating can be sequential or direct • Sequentially Modify – retrieve a record – issue a REWRITE or PUT – key field cannot be changed • Sequentially Delete – retrieve a record – issue an ERASE 30
KSDS Updating Sequentially • Updating can be sequential or direct • Sequentially Insert – build a record in work area – issue a WRITE or PUT – VSAM inserts the new record between two existing records – uses key value and sequence set to locate CI 31
KSDS Updating Direct • Direct Modify and/or Delete – in Assembler Language a record must be retrieved first – in COBOL or PL/1 a record can be updated or deleted without being previously retrieved – VSAM automatically updated the index as needed 32
KSDS Direct Insertion • Use a WRITE or PUT • VSAM – searches index to determine CI where new record is to go – inserts record in proper place in CI – updates index 33
KSDS Control Interval Split Control Area Before 34
KSDS Control Interval Split 35
KSDS Control Interval Split Control Interval After Insertion of New Record 36
KSDS Control Area Split 37
KSDS Control Area Split 38