Atomic component writes do not extend across multi-component schema migrations in Dyalog APL 18.2
0 reputation · 09 Apr 2021, 00:00 UTC
0 reputation · 09 Apr 2021, 00:00 UTC
Dyalog APL 18.2 component files support ⎕FPROPS 'Atomic' 1 and ⎕FPROPS 'Journaling' 1. The atomic property guarantees that a single ⎕FREPLACE or ⎕FAPPEND either fully succeeds or leaves that component unchanged. Journaling logs physical updates for crash recovery. Neither feature provides a transaction boundary across multiple components.
A schema migration — replacing several components with arrays of different rank, shape, or type — requires multiple write operations. If the process terminates mid-migration (power loss, kill signal, unhandled error), the file can contain a mix of old-schema and new-schema components. The file system reports no corruption; ⎕FCHK validates physical structure only. There is no built-in rollback marker, no multi-component atomic commit, and no snapshot isolation to let readers see a consistent view.
BEGIN TRANSACTION/COMMIT/ROLLBACK API exists for component files.⎕FHOLD exclusive locks; no MVCC.A thoughtful contribution can make all the difference. Be the first to share one.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.