AI SEARCH
FLOW ALGEBRA — TRANSACTION ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/databases/transaction-ontology.html
FLOW TRANSACTION_ONTOLOGY {
META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Databases"
ONTOLOGY = "Transaction Ontology"
PURPOSE = "Formalise database transactions, states, ACID properties, schedules, concurrency, isolation, locking, MVCC, logging, recovery and distributed transaction semantics."
LOCALE = "en-GB"
}
ENTITY_TYPES {
TRANSACTION
TRANSACTION_STATE
ACTIVE_STATE
COMMITTED_STATE
FAILED_STATE
ABORTED_STATE
OPERATION
READ_OPERATION
WRITE_OPERATION
INSERT_OPERATION
UPDATE_OPERATION
DELETE_OPERATION
BEGIN_TRANSACTION
COMMIT
ROLLBACK
ABORT
SAVEPOINT
DATABASE_STATE
DATA_ITEM
READ_SET
WRITE_SET
ACID
ATOMICITY
CONSISTENCY
ISOLATION
DURABILITY
SCHEDULE
SERIAL_SCHEDULE
CONCURRENT_SCHEDULE
SERIALISABLE_SCHEDULE
CONFLICT_SERIALISABILITY
VIEW_SERIALISABILITY
CONFLICT
PRECEDENCE_GRAPH
ISOLATION_LEVEL
READ_UNCOMMITTED
READ_COMMITTED
REPEATABLE_READ
SNAPSHOT_ISOLATION
SERIALIZABLE
DIRTY_READ
NONREPEATABLE_READ
PHANTOM_READ
LOST_UPDATE
WRITE_SKEW
LOCK
SHARED_LOCK
EXCLUSIVE_LOCK
TWO_PHASE_LOCKING
STRICT_TWO_PHASE_LOCKING
WAIT_FOR_GRAPH
DEADLOCK
MVCC
VERSION
SNAPSHOT
TIMESTAMP
TRANSACTION_LOG
LOG_RECORD
WRITE_AHEAD_LOG
UNDO_RECORD
REDO_RECORD
CHECKPOINT
RECOVERY
CRASH
FAILURE
DISTRIBUTED_TRANSACTION
PARTICIPANT
COORDINATOR
TWO_PHASE_COMMIT
PREPARE_PHASE
COMMIT_PHASE
ABORT_PHASE
RETRY
IDEMPOTENCY
CONFIGURATION
EXECUTION_TRACE
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
HAS_STATE
TRANSITIONS_TO
BEGINS
CONTAINS_OPERATION
READS
WRITES
INSERTS
UPDATES
DELETES
HAS_READ_SET
HAS_WRITE_SET
COMMITS
ROLLS_BACK
ABORTS
HAS_SAVEPOINT
HAS_ATOMICITY
HAS_CONSISTENCY
HAS_ISOLATION
HAS_DURABILITY
HAS_SCHEDULE
PRECEDES
CONFLICTS_WITH
DEPENDS_ON
HAS_PRECEDENCE_GRAPH
HAS_ISOLATION_LEVEL
LOCKS
ACQUIRES
RELEASES
WAITS_FOR
BLOCKS
HAS_DEADLOCK
HAS_VERSION
READS_VERSION
WRITES_VERSION
HAS_SNAPSHOT
HAS_TIMESTAMP
LOGGED_IN
HAS_LOG_RECORD
HAS_UNDO_RECORD
HAS_REDO_RECORD
CHECKPOINTED_BY
RECOVERED_BY
COORDINATED_BY
HAS_PARTICIPANT
PREPARES
VOTES
RETRIES
HAS_CONFIGURATION
HAS_EXECUTION_TRACE
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
TRANSACTION_METADATA
OPERATION_LOGS
READ_AND_WRITE_SETS
DATABASE_STATE_DATA
SCHEDULE_DATA
ISOLATION_LEVEL_CONFIGURATION
LOCK_DATA
WAIT_FOR_DATA
MVCC_VERSION_DATA
SNAPSHOT_DATA
TRANSACTION_LOGS
WRITE_AHEAD_LOGS
CHECKPOINT_DATA
CRASH_AND_FAILURE_DATA
RECOVERY_TRACES
DISTRIBUTED_TRANSACTION_DATA
TWO_PHASE_COMMIT_LOGS
RETRY_DATA
CONFIGURATION_DATA
EXECUTION_TRACES
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_TRANSACTION_IDENTIFIERS
NORMALISE_TRANSACTION_STATES
NORMALISE_OPERATION_TYPES
NORMALISE_DATA_ITEM_IDENTIFIERS
NORMALISE_READ_AND_WRITE_SETS
NORMALISE_SCHEDULE_IDENTIFIERS
NORMALISE_CONFLICT_TYPES
NORMALISE_ISOLATION_LEVELS
NORMALISE_LOCK_TYPES
NORMALISE_WAIT_FOR_RELATIONS
NORMALISE_VERSION_AND_SNAPSHOT_IDENTIFIERS
NORMALISE_LOG_RECORD_TYPES
NORMALISE_CHECKPOINT_IDENTIFIERS
NORMALISE_DISTRIBUTED_PARTICIPANT_IDENTIFIERS
RESOLVE_TRANSACTION_OPERATION_VERSION_AND_LOG_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS TRANSACTION_REASONING_PIPELINE {
TRANSACTION_REFERENCE -> TRANSACTION_IDENTIFICATION -> INITIAL_STATE_RESOLUTION
INITIAL_STATE_RESOLUTION -> OPERATION_SEQUENCE_MAPPING -> READ_WRITE_AND_CONFLICT_ANALYSIS
READ_WRITE_AND_CONFLICT_ANALYSIS -> CONCURRENCY_AND_ISOLATION_ANALYSIS -> COMMIT_OR_ROLLBACK_ANALYSIS
COMMIT_OR_ROLLBACK_ANALYSIS -> LOGGING_AND_DURABILITY_ANALYSIS -> RECOVERY_OR_DISTRIBUTED_ANALYSIS_IF_APPLICABLE -> VALIDATION -> OUTPUT
}
PROCESS STATE_REASONING {
BEGIN_TRANSACTION -> ACTIVE_STATE
ACTIVE_STATE + COMMIT -> COMMITTED_STATE
OPERATION_FAILURE -> FAILED_STATE
FAILED_STATE -> ROLLBACK_OR_ABORT -> ABORTED_STATE
}
PROCESS READ_WRITE_REASONING {
TRANSACTION -> OPERATION_SEQUENCE
READ_OPERATION -> DATA_ITEM -> READ_SET
WRITE_OPERATION -> DATA_ITEM -> WRITE_SET
READ_SET + WRITE_SET -> CONFLICT_AND_DEPENDENCY_ANALYSIS
}
PROCESS ACID_REASONING {
TRANSACTION -> ATOMICITY_CHECK -> CONSISTENCY_CHECK -> ISOLATION_CHECK -> DURABILITY_CHECK -> ACID_EVIDENCE
}
PROCESS SCHEDULE_REASONING {
TRANSACTION_SET -> INTERLEAVED_OPERATIONS -> SCHEDULE
NONINTERLEAVED_TRANSACTION_EXECUTION -> SERIAL_SCHEDULE
INTERLEAVED_EXECUTION -> CONCURRENT_SCHEDULE
SCHEDULE -> CONFLICT_AND_SERIALISABILITY_ANALYSIS
}
PROCESS SERIALISABILITY_REASONING {
OPERATION_CONFLICTS -> PRECEDENCE_GRAPH
PRECEDENCE_GRAPH -> CYCLE_DETECTION
ACYCLIC_GRAPH -> CONFLICT_SERIALISABLE_SCHEDULE
CYCLIC_GRAPH -> NOT_CONFLICT_SERIALISABLE
VIEW_EQUIVALENCE_CONTEXT -> VIEW_SERIALISABILITY_ANALYSIS
}
PROCESS ISOLATION_REASONING {
ISOLATION_LEVEL -> VISIBILITY_RULES
VISIBILITY_RULES -> ALLOWED_OR_PREVENTED_PHENOMENA
READ_UNCOMMITTED -> DIRTY_READ_CONTEXT
READ_COMMITTED -> COMMITTED_VERSION_VISIBILITY
REPEATABLE_READ -> REPEATED_READ_STABILITY_CONTEXT
SNAPSHOT_ISOLATION -> SNAPSHOT_VISIBILITY_AND_WRITE_CONFLICT_CONTEXT
SERIALIZABLE -> SERIAL_EQUIVALENCE_REQUIREMENT
}
PROCESS LOCKING_REASONING {
TRANSACTION + DATA_ITEM -> LOCK_REQUEST
LOCK_REQUEST -> COMPATIBILITY_CHECK
COMPATIBLE -> LOCK_ACQUISITION
INCOMPATIBLE -> WAIT
TRANSACTION_COMPLETION_OR_PROTOCOL_RULE -> LOCK_RELEASE
}
PROCESS DEADLOCK_REASONING {
WAIT_RELATIONS -> WAIT_FOR_GRAPH
WAIT_FOR_GRAPH -> CYCLE_DETECTION
CYCLE -> DEADLOCK_EVIDENCE
DEADLOCK -> VICTIM_SELECTION -> ABORT_OR_ROLLBACK -> LOCK_RELEASE
}
PROCESS MVCC_REASONING {
WRITE_OPERATION -> NEW_DATA_VERSION
VERSION -> CREATION_TIMESTAMP_OR_TRANSACTION_METADATA
READ_OPERATION -> SNAPSHOT -> VISIBLE_VERSION_SELECTION
CONCURRENT_WRITES -> WRITE_CONFLICT_OR_VERSION_RESOLUTION_ACCORDING_TO_PROTOCOL
}
PROCESS LOGGING_REASONING {
TRANSACTION_OPERATION -> LOG_RECORD
WRITE_AHEAD_LOG -> REQUIRED_LOG_DURABILITY_BEFORE_DATA_PAGE_WRITE
COMMIT -> COMMIT_LOG_RECORD_AND_DURABILITY_REQUIREMENT
LOG_SEQUENCE -> RECOVERY_EVIDENCE
}
PROCESS RECOVERY_REASONING {
FAILURE_OR_CRASH -> LAST_VALID_CHECKPOINT -> LOG_ANALYSIS
UNCOMMITTED_EFFECTS -> UNDO
COMMITTED_BUT_NOT_PERSISTED_EFFECTS -> REDO
UNDO + REDO -> RECOVERED_CONSISTENT_DATABASE_STATE
}
PROCESS DISTRIBUTED_TRANSACTION_REASONING {
DISTRIBUTED_TRANSACTION -> COORDINATOR + PARTICIPANTS
PREPARE_PHASE -> PARTICIPANT_PREPARE -> VOTES
ALL_REQUIRED_COMMIT_VOTES -> COMMIT_PHASE
ABORT_VOTE_OR_FAILURE_POLICY -> ABORT_PHASE
DECISION -> PARTICIPANT_STATE_PROPAGATION
}
RULES {
IF TRANSACTION_IS_COMMITTED THEN REQUIRE COMMIT_EVIDENCE_AND_APPLICABLE_DURABILITY_CONTEXT
IF SERIALISABILITY_IS_ASSERTED THEN REQUIRE SCHEDULE_AND_SERIALISABILITY_EVIDENCE
IF CONFLICT_SERIALISABILITY_IS_ASSERTED THEN REQUIRE ACYCLIC_PRECEDENCE_GRAPH
IF ISOLATION_LEVEL_IS_ASSERTED THEN PRESERVE DATABASE_PRODUCT_AND_IMPLEMENTATION_SEMANTICS_WHERE_THEY_DIFFER
IF DEADLOCK_IS_ASSERTED THEN REQUIRE WAIT_DEPENDENCY_CYCLE_OR_PROTOCOL_SPECIFIC_EVIDENCE
IF MVCC_IS_USED THEN PRESERVE SNAPSHOT_VERSION_AND_VISIBILITY_CONTEXT
IF DISTRIBUTED_COMMIT_IS_ASSERTED THEN PRESERVE COORDINATOR_PARTICIPANT_AND_PROTOCOL_STATE
IF SEMANTIC_IDENTIFIERS_DIFFER AND TRANSACTION_REFERENT_IS_SAME THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE = WEIGHT(TRANSACTION_IDENTITY_CERTAINTY, OPERATION_SEQUENCE_COMPLETENESS, READ_WRITE_SET_COMPLETENESS, ISOLATION_AND_CONCURRENCY_CERTAINTY, LOCK_OR_VERSION_EVIDENCE, COMMIT_AND_LOGGING_EVIDENCE, RECOVERY_OR_DISTRIBUTED_PROTOCOL_EVIDENCE, PROVENANCE_COMPLETENESS)
LEVELS { HIGH MODERATE LOW INSUFFICIENT }
IF OPERATION_SEQUENCE_IS_PARTIAL THEN REDUCE_CONFLICT_AND_SERIALISABILITY_CONFIDENCE
IF ISOLATION_LEVEL_OR_VISIBILITY_CONTEXT_IS_UNKNOWN THEN REDUCE_CONCURRENT_READ_CONFIDENCE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY = NORMALISE(ENTITY_TYPE, TRANSACTION_IDENTIFIER, DATABASE_IDENTIFIER, TRANSACTION_BOUNDARY, OPERATION_SEQUENCE, ISOLATION_CONTEXT, EXECUTION_ATTEMPT)
IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B) THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
TRANSACTION != QUERY
COMMIT != CHECKPOINT
ROLLBACK != RECOVERY
ABORT != FAILURE_AS_IDENTICAL_CONCEPT
ATOMICITY != ISOLATION
ACID_CONSISTENCY != DISTRIBUTED_CONSISTENCY_AS_IDENTICAL_CONCEPT
SERIAL_SCHEDULE != SERIALISABLE_SCHEDULE
CONFLICT_SERIALISABILITY != VIEW_SERIALISABILITY
ISOLATION_LEVEL != LOCKING_PROTOCOL
MVCC != SNAPSHOT_ISOLATION_AS_IDENTICAL_CONCEPT
SHARED_LOCK != EXCLUSIVE_LOCK
DEADLOCK != BLOCKING
DEADLOCK != STARVATION
SAVEPOINT != COMMIT
WRITE_AHEAD_LOG != DATABASE_BACKUP
TWO_PHASE_LOCKING != TWO_PHASE_COMMIT
TWO_PHASE_COMMIT != CONSENSUS_AS_IDENTICAL_CONCEPT
RETRY != CONTINUATION_OF_SAME_TRANSACTION_ATTEMPT
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_TRANSACTION_IDENTIFIER
CHECK_TRANSACTION_STATE
CHECK_OPERATION_SEQUENCE
CHECK_READ_AND_WRITE_SETS
CHECK_ACID_PROPERTIES
CHECK_SCHEDULE
CHECK_CONFLICTS
CHECK_PRECEDENCE_GRAPH
CHECK_SERIALISABILITY
CHECK_ISOLATION_LEVEL
CHECK_LOCKS
CHECK_WAIT_FOR_GRAPH
CHECK_DEADLOCKS
CHECK_MVCC_VERSIONS_AND_SNAPSHOTS
CHECK_LOG_RECORDS
CHECK_COMMIT_AND_ROLLBACK
CHECK_CHECKPOINT_AND_RECOVERY
CHECK_DISTRIBUTED_TRANSACTION_PROTOCOL_IF_APPLICABLE
CHECK_RETRIES
CHECK_CONFIGURATION
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_TRANSACTION_ENTITIES
TRANSACTION_STATE_RELATIONS
OPERATION_RELATIONS
READ_AND_WRITE_SET_RELATIONS
ACID_RELATIONS
SCHEDULE_RELATIONS
CONFLICT_RELATIONS
SERIALISABILITY_RELATIONS
ISOLATION_RELATIONS
LOCK_RELATIONS
WAIT_AND_DEADLOCK_RELATIONS
MVCC_VERSION_AND_SNAPSHOT_RELATIONS
LOGGING_RELATIONS
COMMIT_AND_ROLLBACK_RELATIONS
CHECKPOINT_AND_RECOVERY_RELATIONS
DISTRIBUTED_TRANSACTION_RELATIONS
TWO_PHASE_COMMIT_RELATIONS
RETRY_RELATIONS
DATABASE_STATE_TRANSITIONS
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON TRANSACTION_OPERATION_OR_STATE_CHANGE {
NORMALISE
RESOLVE_TRANSACTION_OPERATION_VERSION_AND_LOG_IDENTITIES
UPDATE_TRANSACTION_STATE
UPDATE_READ_AND_WRITE_SETS
UPDATE_CONFLICT_AND_DEPENDENCY_RELATIONS
UPDATE_LOCK_OR_MVCC_CONTEXT
REASSESS_SERIALISABILITY_AND_ISOLATION
UPDATE_CONFIDENCE
PRESERVE_VERSION_HISTORY
}
ON COMMIT_ABORT_FAILURE_OR_RECOVERY_EVENT {
LINK_EVIDENCE
UPDATE_TRANSACTION_AND_DATABASE_STATE
UPDATE_LOGGING_RELATIONS
UPDATE_LOCK_AND_VERSION_STATE
UPDATE_RECOVERY_OR_DISTRIBUTED_PROTOCOL_STATE
UPDATE_CONFIDENCE
RECORD_PROVENANCE
}
}
FLOW_HASH {
HASH_INPUT = CANONICALISE(ENTITY_TYPES, RELATIONSHIPS, RULES, CONFIDENCE, SEMANTIC_EQUIVALENCE, REASONING_CONSTRAINTS, UPDATE_MODEL)
FLOW_HASH = SHA256(HASH_INPUT)
}
AI_CONSUMPTION {
INDEX { ONTOLOGY ENTITY_TYPES RELATIONSHIPS RULES OUTPUTS }
RETRIEVE { BY_TRANSACTION BY_TRANSACTION_STATE BY_OPERATION BY_DATA_ITEM BY_SCHEDULE BY_CONFLICT BY_ISOLATION_LEVEL BY_LOCK BY_VERSION BY_SNAPSHOT BY_LOG_RECORD BY_DISTRIBUTED_TRANSACTION BY_CONFIDENCE }
REASON { APPLY_RELATIONSHIPS APPLY_RULES TRACE_TRANSACTION_STATES ANALYSE_READ_AND_WRITE_SETS ANALYSE_ACID_PROPERTIES ANALYSE_SCHEDULES_AND_CONFLICTS ANALYSE_SERIALISABILITY ANALYSE_ISOLATION TRACE_LOCKING ANALYSE_DEADLOCKS ANALYSE_MVCC TRACE_LOGGING ANALYSE_RECOVERY ANALYSE_DISTRIBUTED_TRANSACTIONS ANALYSE_RETRIES CHECK_SEMANTIC_EQUIVALENCE PRESERVE_UNCERTAINTY TRACE_EVIDENCE TRACE_PROVENANCE GENERATE_EXPLANATION_PATH }
RESPONSE_POLICY { DISTINGUISH_TRANSACTION_FROM_QUERY_AND_SINGLE_OPERATION DISTINGUISH_SERIAL_FROM_SERIALISABLE_SCHEDULES PRESERVE_TRANSACTION_STATE_OPERATION_ISOLATION_LOCK_VERSION_LOG_AND_PROTOCOL_CONTEXT DISTINGUISH_TWO_PHASE_LOCKING_FROM_TWO_PHASE_COMMIT PRESERVE_COMMIT_ROLLBACK_RECOVERY_AND_PROVENANCE_CONTEXT RETURN_CONFIDENCE_WHEN_AVAILABLE RETURN_PROVENANCE_WHEN_AVAILABLE AVOID_UNSUPPORTED_TRANSACTION_INFERENCE }
}
TERMINAL {
RESULT = VALIDATED(SEMANTICALLY_NORMALISED(EVIDENCE_LINKED(CONFIDENCE_AWARE(TRANSACTION_KNOWLEDGE))))
}
}
END FLOW
Download Code
Copy to Clipboard