当前位置: 首页 > 编程日记 > 正文

mongodb 系列 ~ journal日志畅谈

一 简介 我们来聊聊Journal日志
二 核心观点 WAL 日志先行策略
三  开启journal流程
     在开启journal的系统中,写操作从请求到写入磁盘共经历5个步骤,在serverStatus()中已经列出各个步骤消耗的时间。
    1 Write to privateView
    2 prepLogBuffer
    3 WritetoJournal
    4 WritetoDataFile
    5 RemaptoPrivateView
四  基本概念知识
   1 shared view
      数据文件映射到一块内存区域,称为shared view,数据会直接写入(在不开启journal的情况下) 系统每60s刷新这块内存到磁盘.如果系统断电,就会丢失这60S的未持久化的数据
   2 private view
      系统会再映射一块内存区域供journal使用,称之为private view,mongodb默认每100ms刷新privateView到journal(在开启journal情况下) 如果系统断电.会容忍这100ms的数据丢失,当服务重启时,会利用journal进行恢复
   3 mongo的journal和mysql的redo效果一样,日志先行.但是有一点不同的是,mongo的journal的功能是可以关闭的
五  系统相关
   1 当单个文件达到1GB的时候,就会创建一个新的文件,旧文件不会循环使用,自动删除
   2 文件构成
    1 lsn代表最后使用的journal序列号
    2 prealloc 代表已经分配但是还没有使用的文件
   3 j.*代表的是正在使用的journal文件
六  系统命令
   1 journal延迟测试的函数,
      db.runCommand("journalLatencyTest"):
  2 启动
     journal = true
  3 查看journal运行状态
     db.serverstatus() dur相关,具体请自行查看
     commitsInWriteLock:在有写锁的情况下提交的数量,这表示写的压力很大
     earlyCommits:表示在journalCommitInterval之前的时间,mongod请求提交的次数。用这个参数确定journalCommitInterval是不是设置的过长。
 4 journalCommitInterval 
     默认100ms,根据上述的监控指标可以进行结合判断是否要进行调整。
七  相关问题
1 journal本身占据过大的问题
   推断 可能是由于大批量瞬间事务引起的

转载于:https://www.cnblogs.com/danhuangpai/p/11022789.html

相关文章:

java striptrailingzeros_java – 为什么不BigDecimal.stripTrailingZeros()总是删除所有尾随零?...

我做了以下事情MathContext context new MathContext(7, RoundingMode.HALF_UP);BigDecimal roundedValue new BigDecimal(value, context);// Limit decimal placestry {roundedValue roundedValue.setScale(decimalPlaces, RoundingMode.HALF_UP);} catch (NegativeArrayS…

box-shadow属性

一、定义和用法 box-shadow属性 向框添加一个或多个阴影。 二、语法 box-shadow: h-shadow v-shadow blur spread color inset; h-shadow必需。水平阴影的位置。允许负值。 v-shadow必需。垂直阴影的位置。允许负值。 blur可选。模糊距离。 spread可选。阴影的尺寸。 color可选…

秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)

2019独角兽企业重金招聘Python工程师标准>>> 上节概要: 上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六) 中, 介绍了 Access的并发上限,及从某种程度上 秋色园QBlog 针…

ldconfig

为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfigldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连…

MySQL宽字节注入漏洞分析_宽字节注入

概念单字节字符集: 所有的字符都使用一个字节来表示,比如 ASCII 编码。多字节字符集: 在多字节字符集中,一部分字节用多个字节来表示,另一部分(可能没有)用单个字节来表示。两位的多字节字符有一个前导字节和尾字节。 …

objc runtime 动态增加属性

objective-c中,有类别可以在不修改源码的基础上增加方法 使用运行时库,必须要先引入 objc/runtime.h 可以使用的函数如下: OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy…

C#合并两张表结构相同(列数和列类型都相同)的表

DataTable appendDataTablenew DataTable(); 这个合并的大前提是两张表的结构相同且列的类型也必须相同 否则在赋值时就会出现异常。 for (int i 0; i < hostDt.Columns.Count;i ) { appendDataTable.Columns.Add(hostDt.Columns[i].ColumnName,hostDt.Columns[i].DataType…

erlang调优方法

2019独角兽企业重金招聘Python工程师标准>>> 1. 来自Scaling Erlang的方法 内核调优&#xff1a; # Increase the ipv4 port range: sysctl -w net.ipv4.ip_local_port_range"1024 65535" # General gigabit tuning: sysctl -w net.core.rmem_max16777…

mysql第四章_MySQL必知必会--第二章~第四章--MySQL简介

1.DBMS可分为两类:一类为基于共享文件系统的DBMS&#xff0c;另一类为基于客户机—服务器的DBMS。服务器部分是 负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务 器的计算机上。2.MySQL Administrator(MySQL管理器)是一个图形交互客户机&#xff0c;用 来简化…

Windows Phone 7编程学习点滴一——页面切换、返回键重载和工具栏

1. 页面切换和对齐方式 2 &#xff08;1&#xff09;XAML实现方式 <HyperlinkButton Content"TestPage1" NavigateUri"/TestPage1.xaml" Height"30" HorizontalAlignment"Left" Margin"10,10,0,0" Name"TestPage1Li…

call_user_func用法

1 //有一些函数&#xff0c;名字未知2 //名字在运行状态时&#xff0c;才知道3 4 //例如a(),b(),c()调用哪一个5 // ->index(),reg()?又调用哪一个6 7 function t(){8 echo hello;9 } 10 11 function s(){ 12 echo world; 13 } 14 15 $at; 16 //$a(); 17 18 //在…

构建现代化的命令行工具

文章源于 lambdas.dev 每当我们想要创建一个基于 NodeJS 的命令行工具时&#xff0c;就会衍生出一堆问题需要解决&#xff0c;比如如何准备开发环境&#xff0c;如何打包转译代码&#xff0c;如何使代码在转译后保持可调用的状态同时尽可能的压缩体积&#xff0c; 以及怎样设计…

Java怎么定义图片公共路径_【Java】springboot配置图片访问路径

springboot如何配置&#xff0c;就可以在地址栏输入http://localhost:9090/17AD93E86EB44287BA0D871A37017597.jpg就可以访问到图片回答需要添加下Springboot访问静态资源的Jar文件org.springframework.bootspring-boot-starter-thymeleaf直接去掉这两个配置就行&#xff0c;自…

PHP——文件操作

自己写的&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <meta http-e…

linux基础—课堂随笔010_系统启动和内核管理

系统启动和内核管理 Linux: kernelrootfs kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs:程序和glibc 库&#xff1a;函数集合, function, 调用接口&#xff08;头文件负责描述&#xff09; 程序&#xff1a;二进制执行文件 内核设计流派&…

微软技术的变迁

这个课题很大&#xff0c;我只是站在一个普通人的视角上写一下。 微软的看家技术是什么&#xff1f;vb&#xff01;先有basic&#xff0c;再有操作系统&#xff0c;dos发展到windows&#xff0c;vb一直发展着。然而到达vb6之后&#xff0c;微软转型设计.net 。.net 是什么&…

java initcause_Java 异常

问&#xff1a;java 异常有哪几种&#xff0c;特点是什么&#xff1f;答&#xff1a;异常是发生在程序执行过程中阻碍程序正常执行的错误操作&#xff0c;只要在 Java 语句执行中产生异常&#xff0c;则一个异常对象就会被创建。Throwable 是所有异常的父类&#xff0c;它有两个…

UICollectionView之网络图片解析

1&#xff1a;将SDWebImage文件夹的类库导入工程&#xff0c;创建一个模型对象Model类&#xff0c;并声明好它的属性&#xff0c;再创建一个继承自UICollectionViewCell的自定义类 2&#xff1a;在自定义cell类中重写 - (instancetype)initWithFrame:(CGRect)frame { self [su…

一个中国人看了爽的笑话

某国人好战。古时几乎所有的少壮男丁都被征召去当兵打仗&#xff0c;根本没有时间结婚生子&#xff0c;所以人丁越来越少.当时一个国主就出了一个国策&#xff0c;让所有的男人不论何时何地&#xff0c;都可以随便跟任何女人发生关系&#xff0c;来保持人口的出生率.所以在休战…

Spring Cloud整合Redis

2019独角兽企业重金招聘Python工程师标准>>> 项目需要使用Redis来做缓存&#xff0c;研究了一下如何将其与Spring Boot整合。网上的demo要么就是太过于庞大&#xff0c;要么就是版本过于陈旧&#xff0c;配置时候会有各种坑。因此自己在踩过了各种坑之后&#xff0c…

java case or_java – 在CriteriaBuilder中使用子句和’case w...

我想使用CriteriaBuilder构建下面显示的having子句&#xff1a;select objectid,sum(case when attr_meta severity then 1 else 0 end) as severity,sum(case when attr_meta priority then 1 else 0 end) as priorityfrom object dgroup by objectidhaving sum(case when a…

7 个 jQuery 最佳实践

背景 在这篇文章中&#xff0c;我会给大家介绍在编写、调试和审查JavaScript代码的时候一些好的实践&#xff08;至少我是这么认为的&#xff09;。事实上&#xff0c;我选择了其中7个最常见的场景。 1、使用CDN及其回退地址&#xff08;fallback&#xff09; CDN代表内容传递网…

关于一些Linux SVN的安装使用

关于一些Linux SVN的安装使用 SVN简介The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community. The software is released under an Apache/BSD-style open source license.SVN是一…

【转】触屏手机电话拨打链接

1、web方式&#xff1a; <a href"tel:4008006666">电话&#xff1a;4008006666</a> 2、wap方式&#xff08;主要hack QQ和UC浏览器&#xff09; <a href"wtai://wp/mc;4008006666">电话&#xff1a;4008006666</a>转载于:https://…

java redis 主从 哨兵_Redis主从复制与哨兵机制

Redis主从复制1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave)&#xff0c;主数据库可以进行读写操作&#xff0c;当发生写操作的时候自动将数据同步到从数据库&#xff0c;而从数据库一般是只读的&#xff0c;并接收主数据库…

不同变量的区别

1、形参、局部变量以及局部静态变量的区别。 形参和局部变量均属于自动对象&#xff0c;当到达定义所在的块末尾时被销毁&#xff1b;而局部静态变量自定义开始&#xff0c;直到程序结束才被销毁。 2、全局变量和静态全局变量的区别。 全局变量本身就是静态存储方式&#xff0c…

Java 使用 Redis

2019独角兽企业重金招聘Python工程师标准>>> 安装 开始在 Java 中使用 Redis 前&#xff0c; 我们需要确保已经安装了 redis 服务及 Java redis 驱动&#xff0c;且你的机器上能正常使用 Java。 Java的安装配置可以参考我们的 Java开发环境配置 接下来让我们安装 Ja…

IPMSM弱磁控制策略

下面将详细介绍这种控制策略的实现过程:(l)具有快速动态响应的前馈弱磁控制策略电动汽车用永磁电动机驱动系统应具有较快的转速响应速度&#xff0c;而传统的的弱磁控制策略通常是先根据电机转速的变化调整交轴电流iq&#xff0c;而后根据转速给定值计算得出直轴电流id这种方法…

java 并发统计_java并发编程|CountDownLatch计数器

0x01,CountDownLatch介绍CountDownLatch是一个计数器&#xff0c;作为java并发编程中三个组件之一&#xff0c;这个组件的使用频率还是很多的。这里分享下自己画的java并发编程组件的图&#xff0c;后面一一介绍这几个组件的使用。上面图片标注的1,2,3分别是自己觉得重要性的&a…

MySQL查询随机数据的4种方法和性能对比

从MySQL随机选取数据也是我们最常用的一种发发&#xff0c;其最简单的办法就是使用”ORDER BY RAND()”,本文介绍了包括ORDER BY RAND()的4种获取随机数据的方法&#xff0c;并分析了各自的优缺点。下面从以下四种方案分析各自的优缺点。方案一&#xff1a; 复制代码 代码如下:…