热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

交易系统数据库设计_提交交易点|数据库管理系统

交易系统数据库设计AtransactionTissaidtoreachitscommitpointonlywhenitcompletesallitsoperationthathas

交易系统数据库设计

A transaction T is said to reach its commit point only when it completes all its operation that has actually accessed the database and have been executed successfully and the effect of all transaction operation on the database have been recorded in the log.

仅当事务T完成其实际上已访问数据库并已成功执行的所有操作并且所有事务操作对数据库的影响已记录在日志中时,才说事务T到达其提交点。

The transaction is actually said to be committed when it is beyond the commit point and its effect is actually assumed to be permanently recorded or captured in the database.

实际上,当事务超出提交点时,就说该事务已提交,并且实际上已假定其影响已永久记录或捕获在数据库中。

After this transaction basically writes a commit record[commit, T] into the log.

在此事务基本上将提交记录[commit,T]写入日志之后。

If a system fails or system failure occurs, then we basically search back in the log for all transactions T have written a [start_transaction, T] record into the log but not written them [commit, T] record yet.

如果系统出现故障或发生系统故障,那么我们基本上所有事务有写的[start_transaction,T]记录到日志,但不写这些日志中找回来[承诺,T]记录呢。

During the recovery process, these transactions on the database may have to be rolled back to undo their effect.

在恢复过程中,可能必须回滚数据库上的这些事务以撤消其影响。

Transactions that have written their commit record in the log must also have recovery process. The transaction that has written their commit record in the log must also have recorded all their WRITE operation in the log, so their effect on the database can be redone from the log records.

在日志中写入了提交记录的事务也必须具有恢复过程。 在日志中写入了提交记录的事务还必须在日志中记录其所有WRITE操作,因此可以从日志记录中重做它们对数据库的影响。

We must keep the log file on the disk. Updating a disk file basically involves copying the appropriate block of the file from disk to a buffer in the main memory, updating the buffer in main memory, and copying the buffer to the disk.

我们必须将日志文件保留在磁盘上。 更新磁盘文件基本上涉及将文件的相应块从磁盘复制到主内存中的缓冲区,更新主内存中的缓冲区,以及将缓冲区复制到磁盘。

It is too common to keep one or more blocks of the log file in main memory buffers as long as they are not filled with log entries and then we write them back to disk only once, rather than writing to the disk every time a log entry is added. This basically saves the overhead of multiple disk writes of the same log file block. At the time of system crash, only the log entries that have written back to the disk are basically considered in the recovery process because the content of main memory may get lost.

只要一个或多个日志文件块不填充日志条目,就经常将它们保留在主内存缓冲区中,然后我们只将它们写回到磁盘一次,而不是每次日志条目都写到磁盘被添加。 这基本上节省了同一日志文件块的多个磁盘写入的开销。 在系统崩溃时,在恢复过程中基本上只考虑已写回磁盘的日志条目,因为主内存的内容可能会丢失。

Hence, before a transaction reaches to its commit point, we see whether any portion of the log that has not been written to the disk yet must now be written to the disk. This process is called force-writing in the log file before actually committing a transaction.

因此,在事务到达其提交点之前,我们将查看是否尚未将日志的任何部分写入磁盘。 在实际提交事务之前,此过程称为在日志文件中强制写入。

翻译自: https://www.includehelp.com/dbms/commit-point-of-transaction.aspx

交易系统数据库设计



推荐阅读
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • 如何使用Python从工程图图像中提取底部的方法?
    本文介绍了使用Python从工程图图像中提取底部的方法。首先将输入图片转换为灰度图像,并进行高斯模糊和阈值处理。然后通过填充潜在的轮廓以及使用轮廓逼近和矩形核进行过滤,去除非矩形轮廓。最后通过查找轮廓并使用轮廓近似、宽高比和轮廓区域进行过滤,隔离所需的底部轮廓,并使用Numpy切片提取底部模板部分。 ... [详细]
author-avatar
晶晶9930_195
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有