Release 20th March 2026

Change Control note Hiperspace --version 2.5.39 HiLang --version 2.5.39

Overview

This release introduces two significant enhancements to hyperspace, to support Mult-version concurrency control in Hiperspace.DB, and Mermaid Markdown documentation for #AI agents.

Multi-Version Concurrency Control (MVCC)

MVCC is rarely needed for normal Hiperspace transactions because it is possible to use CQRS to apply a change to elements in Hiperspace that are invisible to other sessions (using Horizon filters), but this is not practical for Cube aggregation, where it would be possible to have inconsistent aggregates while updates are applied in real-time.

This implementation of MVCC follows the ISO SQL standard that every database change is enrolled in a transaction and only visible to other sessions when the transaction is committed and backed-out on rollback. There are no nested transactions, since the implementation (in Hiperspace.DB) is efficient and combined with the @DeltaIndex functionality for efficient point-in-time access.

For local hiperspaces (e.g. Hiperspace.Rocks) transactions are automatic, and Rollback() will return false

public bool Commit() => Commit(Transaction);
public bool Rollback() => Rollback(Transaction);

MarkDown documentation with HiLang

The HILang schema compiler generates a Domain Specific DataBase that can be used in a client application (including web-assembly) for object persistence either to a local hiperspace (e.g. Hiperspace.Rocks) or remotely using Hiperspace.DB either with lazy loading of reference or eager loading using message. Message is analogous to stored procedures that execute on the server (using message key) and return full object value in response using a shared DSDB code.

Code is generated during compilation to produce a DSDB with a number of transformations:

  • Segments (many) are specialized for the Element that references them
  • Aspects (one) are specialized for the Element that references them
  • @CubeFact elements are transformed adding properties for aggregation
  • @CubeFact elements are transformed to provide _Cube aggregates and _Fact cube cell aggregates
  • @CubeDimension elements are transformed to include DrillDown to aggregates via lazy property

These transformations are not visible to AI Agents because the generated code is ephemeral (using the Indonesian word hilang). For agent-based development, the HiLang schema can be generated to markdown files using the %markdown directive in source.

Schema.md

For each .hilang schema file a matching .md file is generated containing formatted documentation in a AI friendly form, with a mermaid diagram of the data-model. This documentation file matches the structure of the .hilang schema

Schema-physical.md

For each .hilang schema file a matching .md file is generated containing formatted documentation in a AI friendly form, with a mermaid diagram of the data-model. This documentation file matches the generated classes, including all the transformations referenced above

Schema-cube.md

This markdown file contains only _Cube elements and the related dimensions

Schema-graph.md

This markdown file contains only graph (Node and Edge) elements and a diagram of relations

Release 20th March 2026 Release 27th February 2026 Release 14th February 2026
Copyright © Cepheis 2024