{'fraction_non_alphanumeric': 0.01939655172413793, 'fraction_numerical': 0.003078817733990148, 'mean_word_length': 5.370588235294117, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
The Low-Level Support and Logging for Flexible Transactions

In this paper the ways of various types of transaction support in the buffer system of the storage system are considered. Support of active transaction tree as the mechanism for nested transaction execution is described. It is shown that inclusion of some additional information into ATT nodes makes possible to support the wide range of flexible transaction concepts. The implementing of ARIES method for both flat and nested transaction rollback and recovery is described. The transaction processing is one of the most important components of distributed database systems. Recently the large number of flexible transaction models that do not confirm to ACID properties (atomicity, consistency, isolation and durability). The examples are split transactions, multi-level transactions, long-lived transactions, sagas, polytransactions and some others [1, 6]. The flexible transactions have complex internal structure reflecting the semantics of the application in the transaction design. The basic (and the most simple) model of such sort of transactions is conventional nested transaction model. In this model each transaction can initiate any number of nested transactions that are executed independently, but all the nested transactions should terminate (commit or abort) before the parent transaction. That causes the partial refusing from independence and durability, as the parent transaction termination depends on those of nested ones. In this paper the mechanism for nested transaction support in the buffer management sub-system is described. The presented work was performed as a part of the storage system for the SYNTHESIS project, the basic research of which is concentrated around formally interoperable heterogeneous information resource environment. The main concern of the project are methods and tools for information resources representation and management. The storage system [7] was designed to support the manipulation of hierarchical complex data objects. It provides for representation, storing, indexing and searching of low-level representation of the SYNTHESIS objects. One of the most essential components of storage system kernel is the buffer manager, that provides disk caching, latching of the buffers and locking of the logical records. It supports fine-granularity locking and supports the log, that is based on ARIES algorithm [2] for transaction rollback and recovery both for flat and nested transactions. The rest of the paper is organized as follows: in section 2 the short description of the SYNTHESIS interoperability perspectives is presented. In section 3 the most important features of the buffer manager are outlined, and the buffer header and in-memory tables structure are described, in section 4 the ways of flat and nested transaction support on the buffer system level are considered, in section 5 the tree of active transactions and its usage for nested transactions support is described. Section 6 is devoted to other flexible transaction models implementation. In section 7 the correspondence between standard ARIES tables, the ATT and other in-memory tables of the buffer manager is stated. Conclusion shortly summarize the results.