Hiperspace - High performance space
Hiperspace, or High Performance Space, is a type of virtual storage in z/OS designed to provide high-speed access to large amounts of data by keeping it in central storage (RAM) or quickly accessible auxiliary storage. Unlike traditional address spaces or data spaces, a Hiperspace is not directly addressable by a program but is accessed through "windows" mapped into a data space. Its primary purpose is to reduce I/O operations to disk for frequently accessed data.
Key Characteristics
-
- Virtual Storage: Hiperspaces are a form of virtual storage, backed by both central storage and auxiliary storage (paging datasets).
- Data Windowing: Data within a Hiperspace is accessed by mapping specific portions (windows) into an application's data space, allowing programs to read and write data within these windows.
- Non-Addressable: The entire Hiperspace is not directly addressable by a program; only the currently mapped windows are.
- Large Capacity: A single Hiperspace can be very large, supporting capacities up to 2 terabytes (TB) of data.
- High Performance: Provides significantly faster data access compared to traditional disk I/O, making it ideal for caching and temporary storage.
- MVS/ESA Origin: Introduced with MVS/ESA, it was a significant enhancement for managing large data in memory.
Use Cases
-
- Database Buffering: Used by database management systems like DB2 and IMS to cache frequently accessed data blocks, indexes, and control information, reducing physical I/O to disk.
- Application Caching: Storing large, read-mostly application data tables, lookup tables, or reference data in memory for rapid retrieval by multiple applications or users.
- Sort Work Areas: Providing high-speed temporary storage for sorting large datasets, improving the performance of sort utilities and applications that perform internal sorting.
- Cross-Memory Data Sharing: Facilitating efficient sharing of large data structures between different address spaces without requiring data movement or complex serialization.
- Report Generation: Storing intermediate results or large output buffers during complex report generation processes to minimize disk I/O.
Related Concepts
Hiperspaces are closely related to address spaces and data spaces within the z/OS virtual storage architecture. While an address space provides a program with its own private virtual storage for code and data, a data space offers directly addressable virtual storage for data only. Hiperspaces, in contrast, are not directly addressable; instead, data from a Hiperspace is "windowed" into a data space for access, acting as a large, high-speed buffer pool managed by the operating system. Like other virtual storage, Hiperspaces can be subject to paging if central storage becomes constrained.
- Optimal Sizing: Carefully size Hiperspaces based on application requirements and available central storage to avoid excessive paging, which can negate performance benefits.
- Minimize Paging: Design applications to access data within Hiperspace windows efficiently and sequentially where possible to minimize page faults and optimize cache utilization.
- Monitor Performance: Regularly monitor Hiperspace usage, paging rates, and response times using z/OS performance tools (e.g., RMF, SMF) to identify and address potential bottlenecks.
- Data Locality: Organize data within Hiperspaces to maximize data locality, ensuring that frequently accessed data resides together to improve windowing efficiency.
- Appropriate Use: Reserve Hiperspaces for large, frequently accessed, and relatively stable data that benefits significantly from in-memory access, rather than for highly volatile or small data sets.