【TBase开源版测评】分布式事务全局一致性
时间:2022-07-22
本文章向大家介绍【TBase开源版测评】分布式事务全局一致性,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
TBase作为支持分布式事务的数据库,数据是分散存储在不同节点上,分布式事务特性可以保证跨节点的数据修改的一致性,相比传统其他分布式系统,无需应用层来实现事务,减少应用层开发的复杂度。我们在已经搭建好的集群中去体验TBase的分布式事务。
一、体验流程
1、查看集群的数据节点情况,确保我们已经搭建了两个DN节点。
连接数据库,:psql -p 30004 -d postgres -U tbase
输入查看命令:select node_name,node_type,node_host,node_port from pgxc_node where node_type='D';
这里是我已经安装好的集群的数据节点的情况。
2、创建测试用的表,并插入测试数据
create table transaction_test(account varchar(12), cash int, PRIMARY KEY(account));
insert into transaction_test values('A',10); --A在DN1
insert into transaction_test values('B',10); --B在DN2
确认数据分散在不同DN上:
postgres=# select xc_node_id,* from transaction_test;
xc_node_id | account | cash
------------+---------+------
2142761564 | A | 10
-17499968 | B | 10
(2 rows)
根据文档提示操作相关语句,并查看执行结果:
可以看到在任意时刻查看数据,数据都是一致的,表中查询到的账户总额不变。
二、体验总结
分布式事务全局一致性的特性,分布式事务特性可以保证跨节点的数据修改的一致性。从一个程序员的角度来看,这个分布式事务全局一致性确实解决了写代码的时候需要考虑的一些事情 ,从程序员的角度来看,无需关注数据库中的数据在各个节点是否会出现不一致的情况,无需应用层来实现事务,这为代码编写省去了很多事情 。因为我们只是搭建了两个数据节点,而且数据量非常的小,应用场景和表结构也很简单,不知道在大数据量、高并发、表结构和表关系都比较复杂的应用场景情况下,这个全局一致性是否可以保持,这个有待我们在实际项目中应用或是后期有时间的时候去体验测试一下了。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【笔记】《C++Primer》—— 第12章:动态内存
- 【笔记】《C++Primer》—— 第13章:拷贝控制
- 【笔记】《C++Primer》—— 第16章:模板与泛型编程
- 【笔记】《C++Primer》—— 第19章:特殊工具与技术
- 【翻译】C++14的新特性简介
- Python 为什么要有 pass 语句?
- 【翻译】C++17的新特性简介
- 各类SQL日期时间处理方法
- 这可能是最全最实用的Vim操作集合
- 个人珍藏的80道多线程并发面试题(1-10答案解析)
- 理解DOM Diff算法
- 腾讯云ES集群通过COS实现跨地域备份与恢复
- Thymeleaf一篇就够了
- python scipy.stats实现各种常见的统计分布
- 操作系统基础 - 文件系统