自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 数据库的锁

锁是用于管理对共享资源的并发访问,是数据库系统区别于文件系统的一个关键特性MySQL中的锁本文主要来谈InnoDB引擎,InnoDB引擎支持行锁、表锁粒度的锁意向锁为了支持多粒度锁定,InnoDB 存储引擎引入了意向锁(Intention Lock)意向锁是表级锁什么是意向锁呢?如果没有意向锁,当已经有人使用行锁对表中的某一行进行修改时,如果另外一个请求要对全表进行修改,那么就需要对所有的行是否被锁定进行扫描,在这种情况下,效率是非常低的;不过,在引入意向锁之后,当有人使用行锁对表中的某一行进

2021-02-13 22:57:17 298 1

原创 数据库MVCC

版本链基于undo log对于使用InnoDB存储引擎的表来说,它的聚簇索引记录中都包含两个必要的隐藏列:trx_id:每次对某条聚簇索引记录进行改动时,都会把对应的事务id赋值给trx_id隐藏列。roll_pointer:每次对某条聚簇索引记录进行改动时,都会把旧的版本写入到undo日志中,然后这个隐藏列就相当于一个指针,可以通过它来找到该记录修改前的信息。假设之后两个id分别为100、200的事务对这条记录进行UPDATE操作,操作流程如下:每次对记录进行改动,都会记录一条undo日

2021-02-13 22:40:09 166

原创 数据库的索引

首先我们从B树讲起B树B树又称多路平衡查找树,那为什么树要长这样呢?通常情况下,一棵树的数据量比较庞大,不能一次性全部读入内存。所以需要分批读入,可以理解为一层一层的读入,那么就要减小树的高度一个m阶的B树具有如下几个特征:根结点至少有两个子女每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m所有的叶子结点都位于同一层。B+树一个m阶的B+树具有如下几个特征:有k个

2021-02-13 20:49:41 147

原创 数据库的架构

包括两部分程序实例存储管理缓存机制SQL解析日志管理权限划分容灾机制索引管理锁管理存储文件系统

2021-02-13 19:58:46 129

原创 RabbitMQ

RabbitMQ 简介Exchange生产者直接将消息发送到exchange里面。vhost虚拟主机。一个RabbitMQ物理服务器上可以支持有多个vhost。不同的vhost可以认为都是一个RabbitMQ Server,可以简单的理解为,每一个vhost都是运行在物理机上的一个虚拟机。它会拥有自己的queue、exchange、bindings等,并且不同的vhost单独配置自己的权限。注意,不同的vhost,其queue和exchange不允许绑定。消费模式拉模式,就是消费者根据自己的

2021-02-12 21:55:40 157

原创 Java_JVM

https://github.com/CyC2018/CS-Notes/blob/master/notes/Java 并发.md#十二锁优化1.JVM组成类加载器运行时数据区程序计数器、虚拟机栈、本地方法栈、堆区、metaspace执行引擎对命令进行解析本地库接口类加载过程加载 - 连接(验证、准备、解析) - 初始化 - 使用- 卸载加载1. 由类加载器(ClassLoader)负责根据一个类的全限定名来读取此类的二进制字节流到JVM内部,并存储在MetaSpac.

2021-02-12 21:54:06 387 1

原创 Kafka分布式消息队列

分布式消息队列可快速持久化。通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能高吞吐量。即使是非常普通的硬件Kafka也可以支持每秒数百万的消息完全的分布式系统。它的Broker、Producer、Consumer都原生地支持分布式,自动支持负载均衡基本概念Broker 一个实例或节点TopicTopic是Kafka中同一类数据的集合,相当于数据库中的表Partition分区是一个有序的、不可修改的消息队列,分区内消息有序

2021-02-12 21:51:32 317

原创 数据库基础

1数据库架构程序实例存储管理缓存机制SQL解析日志管理权限划分容灾机制索引管理锁管理存储文件系统2索引B树每个非叶子节点由n-1个key和n个指针组成,其中d<=n<=2d。B+树非叶子节点的指针域和关键字个数相同(存储更多的指针)B+树的非叶子结点只包含导航信息,不包含实际的值每个父结点的元素都出现在子结点中,是子节点中最大/小的元素Hash以及BitMap哈希索引自适应哈希哈希(hash)一般仅需要一次查找就能定位数

2021-02-08 21:34:27 224

原创 设计模式

一、创建型1. 单例模式保证一个类仅有一个实例优点:避免对共享资源的多重占用当需要频繁创建和销毁的对象时单例模式无疑可以提高系统的性能单例模式的缺点:由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。应用场景:有状态的工具类对象回收站,任务管理器数据库连接池,避免频繁创建1.直接实例化饿汉式第一种形式的示例代码:public class Singleton1 { public final static Singleton1 singleton

2021-02-08 21:32:23 346

原创 操作系统基础

中断程序执行过程中遇到紧急事件时,暂时停止现有程序的执行,转而处理紧急事件,执行完后,再执行当前程序。intel手册:同步中断软中断异步中断硬中断Linux中很难看到内外中断的说法,常说软硬中断硬件中断外部中断 | 异步中断由 CPU 执行指令以外的事件引起I/O 完成中断,每个设备或设备集都有它自己的IRQ(中断请求)时钟中断外部中断是可以屏蔽的中断内部中断 | 异常 | 同步中断不可屏蔽软件中断处理硬中断未完成的工作,是一

2021-02-08 21:29:00 719

原创 G1垃圾收集器

https://javadoop.com/post/g1G1 垃圾收集算法主要应用在多 CPU 大内存的服务中,在满足高吞吐量的同时,尽可能的满足垃圾回收时的暂停时间。G1采用复制方式收集垃圾,不会产生很多的垃圾碎片;G1的Stop The World(STW)更可控,G1在停顿时间上添加了预测机制,用户可以指定期望停顿时间-XX:MaxGCPauseMillis特点带压缩的收集器,在回收老年代的分区时,是将存活的对象从一个分区拷贝到另一个可用分区,这个拷贝的过程就实现了局部的压缩兼顾吞吐量和停顿

2021-02-07 08:27:51 630

原创 Docker容器技术

dockerDocker 核心技术Linux两个重要进程:/lib/systemd/systemd负责执行内核的一部分初始化工作和系统配置,也会创建一些类似 getty 的注册进程kthreadd负责管理和调度其他的内核进程。Docker 的出现是因为目前的后端在开发和运维阶段确实需要一种虚拟化技术解决开发环境和生产环境环境一致的问题Namespacehttps://coolshell.cn/articles/17010.htmlnamespace解决了环境隔离

2021-02-07 08:26:44 474

原创 分布式NewSQL数据库HBase

分布式NewSQL数据库HBase与Hadoop一样,HBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。利用 HDFS 作为其文件存储系统,支持MR程序读取数据;还可利用 Zookeeper 作为协同服务依赖 hdfs zookeeper应用场景:1.海量数据存储。2.准实时查询。上百亿行*上百亿列,实现百毫秒查询。hbase应用于海量数据存储,只有当数据量非常大的时候,Hbase才能发挥其相应的威力。比如几百万的数据量,是完全没有必要用到Hbase的。HBa

2021-02-06 13:05:32 329

原创 分布式计算框架 / MapReduce

分布式计算框架 / MapReduce核心思想• 分而治之,并行计算• 移动计算,而非移动数据Split• 输入数据被划分成等长的小数据块,称为输入切片(Input Split),简称切片• Split是逻辑概念,仅包含元数据信息,如:数据的起始位置、长度、所在节点等• 每个Split交给一个Map任务处理,Split的数量决定Map任务的数量• Split的大小默认等于Block大小Map阶段• 由若干Map任务组成,任务数量由Split数量决定• 输入:Split切片(key-v

2021-02-06 13:02:34 293

原创 YARN / 分布式通用资源管理系统

YARN(Haoop2之后的资源管理器),即所有的map reduce资源都需要yarn进行调度​ 1.ResourceManager:分配和调度资源;启动并监控ApplicationMaster; 监控NodeManager​ 2.ApplicatonMaster:为MR类型的程序申请资源,并分配给内部任务;负责数据的切分;监控任务的执行及容错;​ 3.NodeManager:管理单个节点的资源,直接向ResourceManager汇报 ;处理来自ResourceMan

2021-02-06 13:00:44 516

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除