当前位置: 首页 > news >正文

中国移动网站建设网页模板源代码

中国移动网站建设,网页模板源代码,安徽省建设监理协会,恢复原来的百度PostgreSQL后续简称PG。PG只读事务不会分配事务ID。为了在共享锁等情况下对事务进行标识#xff0c;需要一种非持久化的事务ID#xff0c;即虚拟事务ID#xff0c;vxid。虚拟事务ID不需要把事务ID持久化到磁盘。因为事务ID是很宝贵的资源#xff0c;简单的select语句不会申…PostgreSQL后续简称PG。PG只读事务不会分配事务ID。为了在共享锁等情况下对事务进行标识需要一种非持久化的事务ID即虚拟事务IDvxid。虚拟事务ID不需要把事务ID持久化到磁盘。因为事务ID是很宝贵的资源简单的select语句不会申请事务ID。vxid由两部分组成backendId 和backend本地计数器。查看如下 BEGIN; SELECT locktype,virtualxid,virtualtransaction,mode FROM pg_locks; -- 查看vxid SAVEPOINT p1; SELECT locktype,virtualxid,virtualtransaction,mode FROM pg_locks; -- 子事务的vxid不变 ROLLBACK; SELECT locktype,virtualxid,virtualtransaction,mode FROM pg_locks;vxid的backendId不是真正的进程号PID也只是一个简单的递增的编号。vxid的backendId和命令编号都是递增的。子事务没有自己的vxid他们用父事务的vxid。vxid也有回卷不过问题不严重因为没有持久化实例重启后vxid从头开始计数。 永久事务是指当发生数据变化的事务开始时事务管理器会分配一个唯一事务号标识。后续事务指永久事务。事务号Transaction IDtxid又叫xid是32位无符号整型总共可以存储 232429496729642亿多个事务范围为0~232-1。同一个数据库中存在的最旧和最新事务之间的年龄允许最大为2的31次方约为20亿。其中xid 0InvalidXid无效事务ID。1BootstrapXid表示系统表初始化时的事务ID。最旧。2FrozenXid冻结的事务ID比任何普通的事务ID都旧。 正常事务号从3开始。在PostgreSQL 7.2之前当32位事务ID用完时必须dump然后恢复数据库。之后使用64位I的FullTransactionId获取epoch和xid如下 #define EpochFromFullTransactionId(x) ((uint32) ((x).value 32)) #define XidFromFullTransactionId(x) ((uint32) (x).value)epoch是FullTransactionId右移32位xidTransactionId是FullTransactionId对232取模。这相当于把32位的TransactionId看成“环”循环重复使用64位的FullTransactionId是一直递增的“线”几乎取不完。事务启动后会执行内置txid_current函数该函数会在上次事务加1后返回事务号。 -- PG12及以前用txid_current()。返回的为扩展xiduint64。 SELECT pg_current_xact_id(); SELECT pg_current_xact_id_if_assigned(); -- 返回当前事务id-- 查看系统初始化时的事务ID SELECT xmin,count(*) FROM pg_class WHERE xmin1 GROUP BY xmin;SHOW TRANSACTION_ISOLATION; -- 查看事务隔离级别默认read committed读已提交-- begin不会立即分配事务idbegin后的第一个非查询语句分配事务id -- 当一个事务插入了一tuple后会将事务的txid写入这个tuple的xmin BEGIN; -- 开启事务 INSERT INTO t_test VALUES(1),(2); SAVEPOINT my_save; -- 设定事务保存点 INSERT INTO t_test VALUES(3); ROLLBACK TO my_save; -- 回滚到保存点状态即不要3这个数字 COMMIT; -- 提交后只有1,2事务ID对比的函数结构如下 bool TransactionIdPrecedes(TransactionId id1, TransactionId id2) {/** If either ID is a permanent XID then we can just do unsigned* comparison. If both are normal, do a modulo-2^32 comparison.*/int32 diff;if (!TransactionIdIsNormal(id1) || !TransactionIdIsNormal(id2))return (id1 id2);diff (int32) (id1 - id2);return (diff 0); }函数的基本逻辑为 TransactionIdIsNormal是判断id是否3(FirstNormalTransactionId)。id1-id2结果溢出即超过数据存储范围为使在范围内对数值加减模长232比如231减模长为-231。非正常事务比较当id12id2100时return(2100)结果为真正常事务较新当id1100id22时return (1002)结果为假正常事务较新。正常事务比较当id123199id2100id1-id2231-1。int32可以存放大txid较新当id1231100id2100id1-id2231。超出int32范围值为231-232-231小txid较新相当于看不到id2当id1100id2231100id1-id2-231。这没问题int32刚好可以存放大txid较新当id1100id2231101id1-id2-231-1。超出int32范围此时的值为-231-1232231-10小txid较新此时进入第1次回卷即100大于231101了。为了防止出现两者相差231或231-1将两者差值限制在20亿。这样可以保证提前处理冻结防止出现4的错误情况。 上面比较看出当发生数值溢出时txid大的事务看不见更小的txid事务。为了解决这个问题pg将40亿事务id分成两半一半事务是可见的另一半事务是不可见的。 事务回卷的理解包括两个方面 事务ID回卷是为了让事务ID有一个环的概念这一圈用完了继续向前转继续循环使用。每到达最大值232之后事务ID从下一个3开始只是事务ID的扩展epoch加1。因为事务ID将环分成2半一般可见一般不可见。事务ID跨越超过一半说明事务ID就是回卷了此时超过一半的那部分事务数据虽然存在但无法查到等效于丢失了。为了解决这个问题需要处理冻结事务ID的操作。保证事务ID不超过21亿具体是231-1。冻结的事务ID都是可见的。 为了解决上面2的回卷问题PG采用冻结的方式处理事务ID相关配置参数 vacuum_freeze_min_age元组xmin比当前txid-该参数值的差更旧时会进行freeze也就是有元组年龄或表年龄超过该值后进行freeze。该参数最大值为20亿最小值为2亿。vacuum_freeze_table_age表的年龄超过该值会进行aggressive vacuum。该参数最大值为20亿最小值为1.5亿。如果为0则每次扫描表都进行aggressive vacuum。autovacuum_freeze_max_age表的年龄超过该值强制执行autovacuum。该参数最小值为2亿最大值为20亿。即经过autovacuum_freeze_max_age-vacuum_freeze_min_age的txid增长之后表肯定会被强制进行一次freeze。因为autovacuum_freeze_max_age最大值为20亿所以在两次freeze之间txid的增长肯定不会超过20亿这就保证了上文中所说的20亿原则。 每次表被freeze之后会更新pg_class.relfrozenxid列为本次freeze的最大txid。该列保存对应表最近冻结的txid意味着小于此值的txid均已被冻结。表的年龄为当前最新txid与relfrozenxid的差值。元组年龄其t_xmin与对应表relfrozenxid的差值。
http://www.ho-use.cn/article/10815330.html

相关文章:

  • 网站登陆怎么做wordpress设置ssl证书
  • 网站历史权重查询设计师学校有哪些
  • 张家界公司网站建设重庆seo推广公司
  • 简洁大气网站设计你会怎么做外国的网站
  • 电脑用虚拟机做网站安丘做网站
  • 做网站得花多钱西安网站建设资讯
  • 网站找建站公司ui界面素材
  • 厦门营销网站建设公司网站开发类优惠及服务承诺
  • 做网站最新技术商业网站图片
  • 新乡做网站的公司有那些个人如何建立免费手机网站
  • 做神秘顾客哪个网站好后台网站如何建设
  • 网站开发提问大连旅顺口旅游攻略
  • 整站seo排名公司wordpress两个侧边栏
  • 彩妆网站模板做视频找素材的网站
  • 网站里+动效是用什么做的网站app推广怎么做
  • 网站优化标题亚马逊网站开发
  • 模板网站区别企业建设网站需注意哪些内容
  • o2o网站开发框架中卫网站设计
  • 网站建立需要什么条件大连网站建设谁家好
  • 电影里的做视频在线观看网站软件开发工资一般多少
  • 进行seo网站建设网站编程入门
  • 达州+网站建设宁波seo快速优化
  • 甘肃省城乡住房建设厅网站首页盘州住房和城乡建设局网站
  • 营销型网站怎么收费标准网页设计基础的期末试卷和答案
  • 网站管理助手ftp连接不上外国人做网站
  • 夏邑做网站网站建设冫首先金手指十五
  • 医疗网站 seo怎么做wordpress升级php异常
  • 运河建设集团网站wordpress前端页面存放
  • 做网站用哪个服务器不用备案网络技术学什么
  • 湘西网站建设吧网站建设步骤大全