iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >checkpoint中用于控制刷盘频率的函数是什么
  • 125
分享到

checkpoint中用于控制刷盘频率的函数是什么

2024-04-02 19:04:59 125人浏览 八月长安
摘要

这篇文章主要介绍“checkpoint中用于控制刷盘频率的函数是什么”,在日常操作中,相信很多人在checkpoint中用于控制刷盘频率的函数是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方

这篇文章主要介绍“checkpoint中用于控制刷盘频率的函数是什么”,在日常操作中,相信很多人在checkpoint中用于控制刷盘频率的函数是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”checkpoint中用于控制刷盘频率的函数是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、数据结构

宏定义
checkpoints request flag bits
checkpoints request flag bits,检查点请求标记位定义.



#define CHECKPOINT_IS_SHUTDOWN  0x0001  
#define CHECKPOINT_END_OF_RECOVERY  0x0002  
#define CHECKPOINT_IMMEDIATE  0x0004  
#define CHECKPOINT_FORCE    0x0008  
#define CHECKPOINT_FLUSH_ALL  0x0010  

#define CHECKPOINT_WaiT     0x0020  
#define CHECKPOINT_REQUESTED  0x0040  

#define CHECKPOINT_CAUSE_XLOG 0x0080  
#define CHECKPOINT_CAUSE_TIME 0x0100  

WRITES_PER_ABSORB


//调用AbsorbSyncRequests的间隔,默认值为1000
#define WRITES_PER_ABSORB   1000

二、源码解读

CheckpointWriteDelay
CheckpointWriteDelay,控制checkpoint的频率,逻辑不复杂,判断checkpoint flags非CHECKPOINT_IMMEDIATE/非shutdown_requested/非CHECKPOINT_IMMEDIATE并且checkpoint处于调度中,如满足上述条件,则调用AbsorbSyncRequests处理sync,休眠100ms;不如满足上述条件,则absorb_counter计数器减一,如计数器≤0,则调用AbsorbSyncRequests处理sync.


void
CheckpointWriteDelay(int flags, double progress)
{
  static int  absorb_counter = WRITES_PER_ABSORB;
  
  if (!AmCheckpointerProcess())
    return;
  
  if (!(flags & CHECKPOINT_IMMEDIATE) &&//非CHECKPOINT_IMMEDIATE
    !shutdown_requested &&//非关闭请求
    !ImmediateCheckpointRequested() &&//非CHECKPOINT_IMMEDIATE
    IsCheckpointOnSchedule(progress))//处于checkpoint调度中
  {
    if (Got_SIGHUP)
    {
      got_SIGHUP = false;
      ProcessConfigFile(PGC_SIGHUP);
      
      UpdateSharedMemoryConfig();
    }
    //Absorb吸收(处理)同步请求
    AbsorbSyncRequests();
    //重置为WRITES_PER_ABSORB(1000)
    absorb_counter = WRITES_PER_ABSORB;
    //检查归档是否超时
    CheckArcHiveTimeout();
    
    //统计信息
    pgstat_send_bgwriter();
    
    //休眠100ms
    pg_usleep(100000L);
  }
  else if (--absorb_counter <= 0)//Absorb计数器减一
  {
    //如计数器小于等于0
    
    //Absorb同步请求
    AbsorbSyncRequests();
    //重置计数器
    absorb_counter = WRITES_PER_ABSORB;
  }
}

到此,关于“checkpoint中用于控制刷盘频率的函数是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: checkpoint中用于控制刷盘频率的函数是什么

本文链接: https://www.lsjlt.com/news/63776.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • checkpoint中用于控制刷盘频率的函数是什么
    这篇文章主要介绍“checkpoint中用于控制刷盘频率的函数是什么”,在日常操作中,相信很多人在checkpoint中用于控制刷盘频率的函数是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2022-10-18
  • PostgreSQL checkpoint中用于刷一个脏page的函数是什么
    这篇文章主要讲解了“PostgreSQL checkpoint中用于刷一个脏page的函数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Postgre...
    99+
    2022-10-18
  • python用于绘制弧形的函数是什么
    在python中使用turtle函数绘制弧形,具体方法如下:turtle函数语法:turtle.circle(radius,extent,step)参数:radius:表示半径,正值时逆时针旋转;extent:表示度数;step:表示边数;...
    99+
    2022-10-04
  • JavaScript中的程序控制流和函数方法是什么
    本篇内容主要讲解“JavaScript中的程序控制流和函数方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中的程序控制流和函数方法是什么”吧!程序控制流程序的运行可以...
    99+
    2023-07-04
  • Java函数数据类型在Apache中的使用限制是什么?
    Java是一种广泛应用于企业级应用的编程语言,它提供了丰富的函数数据类型,并且在各种应用程序中都得到了广泛的应用。Apache是一个著名的开源软件基金会,提供了许多优秀的Java开源项目,如Tomcat、Struts、Hadoop等。在使用...
    99+
    2023-08-16
    函数 数据类型 apache
  • 什么是Go中对象和函数的最佳实践,以及如何将它们应用于框架开发?
    Go语言是一种高效、简洁、可靠的编程语言,被广泛应用于云计算、网络编程、分布式系统等领域。在Go语言中,对象和函数是编写高质量代码的重要组成部分。本文将介绍Go中对象和函数的最佳实践,并讨论如何将它们应用于框架开发。 一、对象的最佳实践 在...
    99+
    2023-11-03
    对象 函数 框架
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作