Paxos分布式共识算法 Paxos算法是由莱斯利·兰伯特(Leslie Lamport)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。它主要用于解决分布式系统中如何就某个值达成一致,并保证整个系统的一致性,即使在部分节点发生故障的情况下也能保证系统的一致性。
“脏读”、“幻读”、“不可重复读” 脏读”、“幻读”、“不可重复读”是数据库事务的概念。“脏读”是指一个事务中访问到了另外一个事务未提交的数据。“不可重复读”是指在一个事务内根据同一个条件对数据进行多次查询,但是结果却不一致,产生的原因是其他事务对该数据就行了修改。“幻读”是指在当两个完全相同的查询执行时,第二次查询所返回的结果集和第一个查询所返回的结果集不相同,发生的原因也是另外一个事务新增、删除了第一个事务结果集里面的数据。
3阶段提交协议(3pc) 三阶段提交协议是一个强一致、中心化的原子提交协议。解决了分布式事务、副本容错等分布式问题。其核心思想是将2PC的二阶段提交协议的“准备阶段”一分为二,形成了由CanCommit、PreCommit、DoCommit三个阶段组成的事务处理协议。协调者向所有的参与者发送一个包含事务内容的CanCommit请求,询问是否可以执行事务提交操作。参与者根据自身的状态判断是否可以执行事务提交,并返回响应给协调者。协调者在接收到所有参与者的CanCommit响应后,进行决策。
二阶段提交(2pc)协议 二阶段提交算法是一个分布式一致性算法,强一致、中心化的原子提交协议,主要用来解决分布式事务问题。在单体spring应用中我们往往通过一个@Transactional注解就可以保证方法的事务性,但是在分布式场景下,serviceA往往会调用serviceB和ServiceC等有自己单独数据库的服务。如果serviceb成功了,servicec失败了,这种情况的回滚就需要用到分布式事务了。2阶段提交包含两个阶段,即准备阶段和提交阶段。
分布式一致性理论 为保证事务正确可靠而必须具备的四个核心特性。这四个特性分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。下面我将对这四个特性进行详细介绍:原子性(Atomicity)含义:事务被视为一个不可分割的工作单位,事务中的所有操作要么全部完成,要么全部不完成,即“all-or-nothing”原则。实现:如果在事务执行过程中发生错误或故障,则整个事务会被回滚(Rollback)到事务开始前的状态,就像这个事务从未执行过一样。
Java设计模式——装饰者模式 装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许用户通过在一个对象上动态地添加职责或行为来增强其功能。这种类型的设计模式属于对象结构型模式,在不需要改变一个对象的内部结构的条件下,给对象动态地增加一些额外的职责。装饰者模式相比生成子类更为灵活。
nginx报错upstream sent invalid header upstream sent invalid header: "Cache\x20..." while reading response header from upstream解决方法
mysql中的各种日志文件redo log、undo log和binlog MySQLInnoDB引擎使用redo log(重做日志)保证事务的持久性,使用undo log(回滚日志)来保证事务的原子性。MySQL数据库的数据备份、主备、主主、主从都离不开binlog,需要依靠binlog来同步数据,保证数据一致性。
SpringBoot如何自定义注解 Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口.参数成员只能用public或默认(default)这两个访问权修饰参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和String、Enum、Class、annotations等数据类型,以及这一些类型的数组.
oracle数据库中job和dbms_job比较 Oralce中的任务有2种:Job和Dbms_job,两者的区别有:①、Job是通过调用dbms_scheduler.create_job包创建的,Dbms_job则是通过调用dbms_job.submit包创建的。②、两种任务的查询视图都分为dba和普通用户的,Job对应的查询视图是dba_scheduler_jobs和user_scheduler_jobs,dbms_jobs对应的查询视图为dba_jobs和user_jobs。
物联网IOT时序数据库influxdb(2.x) InfluxDB是开源时序型数据库,由Go写成,不过可惜的是开源的只有单机版,InfluxDB在集群方面闭源收费了,想大规模应用请引起注意。时序数据库经常应用于机房运维监控、物联网IoT设备采集存储、互联网广告点击分析等基于时间线且多源数据连续涌入数据平台的应用场景,InfluxDB专为时序存储而生,尤其是在工业领域的智能制造。由清华大学开源的IOTDB也是一款面向物联网的时序数据库,现在是apache旗下的顶级项目,未来潜力无限。InfluxDB在DB-Engines的时序数据库类别里排名世界第一,国内的
数据结构——树的遍历 数据结构——树的遍历1.树的基本概念树是一种非常有用的数据结构,数据库的实现很多底层实现是基于树结构的,比如mysql innodb存储引擎的索引就是基于B+树的。树是一种由节点组成的数据结构,但它比链表更加高级,在链表中,一个节点连接着另一个节点,树也是由许多的节点构成的,唯一的区别就是一个树节点可以连接多个树节点,一颗树只有一个根节点,根节点作为起源,由它展开一个树状的数据结构。在实现树之前,我们来了解一下树的基本定义:在树中,每个节点都含有自己的数值,以及与之相连的子节点,连接节点的线叫做相连
刷题记录——动态规划,最短路径问题 动态规划——最短路径问题动态规划——最短路径问题1.动态规划概念和思想2.问题描述3.代码实现作者:不如打代码KK关键词:二维矩阵,最短路径,动态规划动态规划——最短路径问题1.动态规划概念和思想 动态规划过程是:把原问题划分成多个“阶段”,依次来做“决策”,得到当前的局部解;每次决策,会依赖于当前“状态”,而且会随即引起状态的转移。 这样,一个决策序列就是在变化的状态中,“动态”产生出来的,这种多阶段的、最优化决策,解决问题的过程就称为动
刷题记录——DNA序列 刷题记录——DNA序列关键字:字符串、滑动窗口1.题目描述描述一个 DNA 序列由 A/C/G/T 四个字母的排列组合组成。 G 和 C 的比例(定义为 GC-Ratio )是序列中 G 和 C 两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的 GC-Ratio 可能是基因的起始点。给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。DN
查看Tomcat默认使用堆内存大小 查看Tomcat默认使用堆内存大小查看Tomcat默认使用堆内存大小1.Tomcat默认堆内存大小2.查看Tomcat堆内存大小查看Tomcat默认使用堆内存大小1.Tomcat默认堆内存大小如果没有配置JAVA_OPTS变量,JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。2.查看Tomcat堆内存大小通过jps找到tomcat的进程id[
mysql开启慢查询日志 mysql开启慢查询日志1、MySQL慢查询日志是什么MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中查询时间超过(大于)设置阈值(long_query_time)的语句,记录到慢查询日志中。long_query_time的默认值是10。2、如何开启MySQL慢查询日志查看slow_query_log变量,默认是关闭的。Last login: Fri Apr 15 16:21:56 2022 from 113.246.155.177[root@VM-8-