IMS Fast Path: DEDBs and MSDBs Explained

TT
TopicTrick

IMS Fast Path is a specialised component of IMS designed for extremely high-throughput, short-duration transactions. While standard IMS full-function databases (HDAM/HIDAM) handle most workloads well, certain applications — real-time banking balances, telecommunications billing, airline seat inventories — require even lower latency and higher throughput than full-function IMS provides. Fast Path delivers this through two specialised database types: DEDBs and MSDBs.

Why Fast Path Exists

Standard IMS full-function database access involves:

  • Logging before and after images of every change
  • Physical I/O to VSAM or OSAM datasets
  • Buffer pool management
  • Lock management across concurrent programs

For millions of short transactions per hour, this overhead accumulates. Fast Path eliminates or reduces many of these costs:

  • MSDBs keep data entirely in memory — zero I/O
  • DEDBs use a partitioned structure optimised for concurrent high-volume I/O
  • Fast Path uses a simplified locking model for better concurrency
  • Logging is deferred and batched

MSDB — Main Storage Database

An MSDB (Main Storage Database) keeps its data entirely in z/OS memory — there is no associated DASD dataset for primary data storage. Every access is from memory, making MSDBs the fastest possible IMS data access.

What MSDBs are for: Small, frequently-accessed reference data or control data where every transaction touches the same records. Classic use cases:

  • Account balance accumulators (total deposits, withdrawals per day)
  • Sequence number generators
  • System control counters
  • Real-time totals for reporting

MSDB limitations: MSDBs are not journalled — updates are not logged individually. Recovery after a system failure requires initialisation from a checkpoint. MSDBs are also limited in size (must fit in z/OS virtual storage) and only support simple non-hierarchical structures (root segments only, no children).

MSDB DBD definition:

hlasm
DBD   NAME=BALANCEDB,ACCESS=MSDB
SEGM  NAME=BALANCE,BYTES=50,FREQ=1000
FIELD NAME=(ACCT-KEY,SEQ,U),BYTES=15,START=1,TYPE=C
FIELD NAME=CURR-BAL,BYTES=12,START=16,TYPE=P
FIELD NAME=DAILY-TOT,BYTES=12,START=28,TYPE=P
DBDGEN

DEDB — Data Entry Database

A DEDB (Data Entry Database) stores data on disk but uses a completely different physical organisation from full-function databases. DEDBs partition data into areas — each area is a separate VSAM ESDS dataset with its own buffer pool.

DEDB structure:

  • Root segments are distributed across areas using a hashing algorithm
  • Each area can have its own independent buffer pool and I/O subsystem
  • Multiple areas process independently, enabling true parallel access
  • DEDB uses UOW (Unit of Work) locking — locking a group of segments atomically with less overhead than full-function locks

What DEDBs are for: High-volume transactional data where many programs concurrently insert and retrieve different records. Classic use cases:

  • Individual banking transaction records (millions per hour)
  • Telecommunications call detail records
  • Point-of-sale transaction history

DEDB DBD definition:

hlasm
DBD   NAME=TXNDB,ACCESS=DEDB
DATASET DSORG=EO,DD1=TXNDB01,DEVICE=3390,SIZE=4096
AREA  NAME=TXNAREA1,UOW=(50,5),ROOT=(200,20,5),
      FREQ=1000000
SEGM  NAME=TXNSEG,BYTES=100,PARENT=0,FREQ=1
FIELD NAME=(TXN-KEY,SEQ,U),BYTES=20,START=1,TYPE=C
FIELD NAME=TXN-AMOUNT,BYTES=12,START=21,TYPE=P
FIELD NAME=TXN-DATE,BYTES=8,START=33,TYPE=C
DBDGEN

Fast Path DL/I Calls

Fast Path programs use the same CALL 'CBLTDLI' interface as full-function programs. For DEDBs, standard calls (GU, GN, ISRT, DLET, REPL) work as expected. For MSDBs, there is a special additional call:

FLD (Field call): Atomically reads and updates a numeric field in an MSDB in a single operation, without the retrieve-modify-replace cycle of a full-function update:

cobol
* FLD call to atomically add to a balance
MOVE 'FLD ' TO DLI-FUNC.
MOVE '+' TO FLD-OPERATOR.      *> ADD operation
MOVE +500.00 TO FLD-VALUE.     *> amount to add

CALL 'CBLTDLI' USING FLD-FUNC
                     BALANCE-PCB
                     BALANCE-IO-AREA
                     BALANCE-SSA
                     FLD-FUNCTION-BLOCK.

The FLD call operators are: + (add), - (subtract), * (multiply), / (divide), = (set), R (retrieve), GE/LE/etc. (test and set conditionally).

Fast Path IFP Region

Fast Path programs run in IFP (IMS Fast Path) regions — optimised address spaces for Fast Path processing. IFP regions have lower overhead than MPP regions for short transactions.

Frequently Asked Questions

Q: Can a single IMS program access both Fast Path and full-function databases? Yes. An IMS program can have PCBs for both DEDB/MSDB (Fast Path) and HDAM/HIDAM (full-function) databases. The program accesses each through its respective PCB using the same DL/I call interface. However, synchronisation between Fast Path and full-function logging requires careful design for recovery purposes.

Q: What happens to MSDB data during a system IPL? MSDB data is stored in memory and is lost at IPL. IMS automatically reinitialises MSDBs from the most recent checkpoint during IMS startup. This is why MSDBs are used for transient accumulators and counters rather than permanent records. Critical MSDB data must be periodically saved to a recoverable medium via checkpoints.

Q: Is Fast Path still relevant in 2026? Yes — in the very highest throughput environments, Fast Path DEDBs remain the technology of choice. The banks and telecoms companies processing hundreds of millions of transactions per day continue to rely on DEDBs for their performance characteristics. New deployments are less common than maintenance of existing Fast Path installations.


Part of the IMS Mastery Course — Module 19 of 22.