自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (3)
  • 收藏
  • 关注

原创 hdfs架构分析

hdfs介绍hadoop的分布式文件系统hdfs是依据谷歌的GFS论文来实现的,它是一个被设计成为运行在廉价的通用硬件之上,具有容错性的文件系统。hdfs的设计使得它能够提供很高的吞吐量,很适合大规模的数据集合。hdfs架构hdfs的设计如下图所示hdfs由Namenode和Datanode组成,Namenode和Datanode可以在任何异构的机器上运行。hd

2017-04-09 22:04:02 989

原创 golang的import导入

在go里,import是很常用的一个命令,import用来导入包。然后我们就可以使用这个包的函数。fmt是go里的标准库,我们以fmt包举一个例子,文件名为main.go如下:import “fmt”func main(){ fmt.Println(“hello world!”)}上边的代码首先去GOROOT目录下加载fmt包,然后在main函数里调用fmt包的Println

2017-02-14 23:35:10 3345

原创 redis集群实现(八)redis+twemproxy集群

redis的确是一个非常高效的缓存服务器,但是单台redis服务器的内存管理能力有限,如果一味的加大内存的话会导致redis服务器的性能下降,所以就必须要搭建redis集群来提供服务。在redis官方在3.0.0版本给出集群方案之前,大部分的企业都使用twemproxy组件来进行redis集群的搭建。      twemproxy 通过引入一个代理层,可以将其后端的多台redis进行统一管理与

2017-01-01 17:23:40 1889

原创 redis集群实现(七)sentinel数据结构和初始

上节我们看过了sentinel协调者模块处理集群故障节点的功能,今天我们看一下sentinel的处理架构以及sentinel的初始化流程。首先,sentinel是独立于数据节点之外的一个协调模块,sentinel不存储任何用户要求存储的key-value数据,sentinel只负责监视集群中每一个节点的运行状态以及处理故障转移。首先sentinel其实就是redis进程的另一种模式

2017-01-01 10:01:10 3732

原创 redis集群实现(六) 容灾与宕机恢复

实现集群,一个重要的保证就是高可用性,要在各种软件和硬件的故障情况下仍然能够提供服务。一般来说有两种解决思路,一种是每一个节点互相之间都会进行数据交互以及监控,出现故障的时候,各个节点都可以做协调任务。另一种就是增加一个协调组件来对集群进行实时监控以及故障处理。现在使用比较广泛的是第二种方案,各个模块之间低耦合,工程师先也比较简单(相对第一种而言)。上一节已经介绍过了raft协议,有了raft协议

2016-12-04 10:54:08 19938 1

原创 redis集群实现(五) sentinel的架构与raft协议

在分布式系统的一致性协议方面,paxos一直是标准级别的存在,但是由于paxos在工程师先上的困难,所以就有人研究出了raft协议。和大名鼎鼎的paxos算法不一样,raft比较通俗易懂,在很多关键的地方甚至给出了伪代码。raft协议在redis内并没有用来实现一些分布式锁以及分布式事务,仅仅是用来做master宕机时的选主。在redis内部有一个哨兵(sentinel)监测master和slav

2016-11-28 22:22:45 13731 7

转载 分布式事务之2PC和3PC

分布式一致性回顾在分布式系统中,为了保证数据的高可用,通常,我们会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上。为了对用户提供正确的增\删\改\差等语义,我们需要保证这些放置在不同物理机器上的副本是一致的。为了解决这种分布式一致性问题,前人在性能和数据一致性的反反复复权衡过程中总结了许多典型的协议和算法。其中比较著名的有二阶提交协议(Two Phase

2016-11-20 18:17:54 809

转载 syslog 系统日志应用

syslog 系统日志应用 1) 概述      syslog是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。      几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送

2016-11-15 10:46:25 4648

原创 redis集群实现(四) 数据的和槽位的分配

不知道有没有人思考过redis是如何把数据分配到集群中的每一个节点的,可能有人会说,把集群中的每一个节点编号,先放第一个节点,放满了就放第二个节点,以此类推。。如果真的是这样的话,服务器的利用率和性能就太低了,因为先放第一个,其他的服务器节点就闲置下来了,单个节点的压力就会非常的大,其实就相当于退化成为了单机服务器,从而违背了集群发挥每一个节点的性能的初衷。在redis官方给出的集群方案中,数

2016-11-15 07:46:50 31462 15

原创 redis集群实现(三)集群删除节点

redis集群里的节点支持动态删除,但是一般情况下不会这么做,只有在节点软硬件升级的时候才会主动让节点下线。删除节点的方式就是redis-cli客户端连接到服务器,然后执行cluster forget node-id就可以了,如果是删除一个从节点的话,集群仍然是可用状态,如果是删除一个主节点的话,集群的槽位不足,就会变成不可用状态。下边看下我在自己的虚拟机运行的例子127.0.0.1:

2016-11-13 22:32:26 7989 1

转载 使用虚拟节点改进的一致性哈希算法

分布式存储中的应用在分布式存储系统中,将数据分布至多个节点的方式之一是使用哈希算法。假设初始节点数为 N,则传统的对 N 取模的映射方式存在一个问题在于:当节点增删,即 N 值变化时,整个哈希表(Hash Table)需要重新映射,这便意味着大部分数据需要在节点之间移动。因此现在普遍使用的是被称为一致性哈希(Consistent Hashing)的一类算法。“一致性” 这个定语的意义在

2016-11-13 10:41:03 5087 3

原创 redis集群实现(二)集群添加节点

在redis-3.0.0里,集群添加节点是通过客户端运行cluster meet命令来实现的,命令格式是cluster meet ,如果客户端向A节点发送这条命令,ip和port分别是B节点的ip和port,就会把ip:port的机器添加进入执行命令的节点所在的集群里。具体的流程如下:1.首先客户端向A节点发送cluster meet 命令。2.A节点在本地为B节点创建对应的数据结

2016-11-06 19:14:10 2440

原创 设置vmware虚拟机固定IP

最近在mac上用vmware fusion,但是经常有这样一个问题。就是换一个局域网,虚拟机上的guest OS(ubuntu/Centos等)就会断开网络然后重新换成一个新的IP,弄得我很麻烦,每换一个局域网都需要手动重新设置一下,来和新的IP相适应。后来终于发现了一个可以在mac上把虚拟机IP固定的方法,本机更换局域网不会对guest OS的IP有任何影响,在此分享给大家,希望大家能够

2016-11-06 15:04:53 5495 1

转载 守护进程的详细总结(包括实例解析)

1、 守护进程的概念:守护进程(Daemon)是一种运行在后台的一种特殊的进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。由于在Linux中,每个系统与用户进行交流的界面成为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这种限制,它脱离于终端并且在后台运行,并且

2016-10-30 09:01:35 1767

转载 linux内核Kmalloc分配内存需要注意的问题(GFP_KERNEL可能会造成内核调度错误)

kmallochttp://blog.chinaunix.net/u2/79914/showart_1905549.html#include Linux/slab.h> void *kmalloc(size_t size, int flags);给 kmalloc 的第一个参数是要分配的块的大小. 第 2 个参数, 分配标志, 非常有趣, 因为它以几个方式控制 kmalloc

2016-10-29 19:52:25 3766

转载 linux C --深入理解字符串处理函数 strlen() strcpy() strcat() strcmp()

在Linux C 编程中,我们经常遇到字符串的处理,最多的就是字符串的长度、拷贝字符串、比较字符串等;当然现在的C库中为我们提供了很多字符串处理函数。熟练的运用这些函数,可以减少编程工作量,这里介绍几个常用的字符串函数,并编写一些程序,如果没有这些库函数,我们将如何实现其功能;1 求字符串长度函数 strlen头文件:string.h函数原型:size_t strlen(c

2016-10-27 22:17:09 3956

转载 分布式系统设计权衡之CAP

写在最前:1.为什么学习并记录分布式设计理念一系列相关的东西在日常工作中系统设计评审的时候,经常会有一些同事抛出一些概念,高可用性,一致性等等字眼,他们用这些最基本的概念去反驳系统最初的设计,但是很多人理解的可用性,一致性等等问题,都是自己拍脑袋想的,或者根本和最原始表达的意思就不是一个东西,在这种情况下PK,就像不再一个频段的人在交流,除了争论,没有任何实质性的进展,所以有必要熟悉其理论

2016-10-27 21:04:22 690

原创 redis伪集群搭建

搭建环境是vmware虚拟机+ubuntu-14.04,以redis伪集群的方式搭建搭建,一共实现了6台机器集群的搭建,三个master节点和三个slave节点。#首先安装redis的集群管理需要ruby和zlibsudo apt-get install zlib ruby#以及安装和redis有关的ruby packagesudo gem install redis#下载安装包,编译

2016-10-27 16:02:01 2036

原创 redis集群实现(一)集群架构与初始化

redis是一个高可用、高性能、高可扩展性的基于内存也支持持久化存储的kv存储数据库,redis相比较于之前的kv存储memcached而言,不但支持的value类型大大增加,并且还支持数据的持久化,弥补了memcached的不能持久化的缺点,但是在3.0之前的redis并不支持集群功能,这也是redis在3.0之前不能被大量部署的一个原因,但是由于3.0以后的redis支持了集群功能,redis

2016-10-27 08:38:00 6183 4

转载 select,poll,epoll的归纳总结区分

Select、Poll与Epoll比较以下资料都是来自网上搜集整理。引用源详见文章末尾。1 Select、Poll与Epoll简介Selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据

2016-10-26 00:27:08 520

转载 跳跃表-原理及Java实现

转载自http://www.cnblogs.com/acfox/p/3688607.html跳跃表-原理及Java实现引言:上周现场面试阿里巴巴研发工程师终面,被问到如何让链表的元素查询接近线性时间。笔者苦思良久,缴械投降。面试官告知回去可以看一下跳跃表,遂出此文。 跳跃表的引入我们知道,普通单链表查询一个元素的时间复杂度为O(n),

2016-10-18 21:16:48 751

原创 e2fsprogs编译问题

今天需要编译e2fsprogs,遇到了问题,打印如下zoned.c:159: warning: 'struct bdev_zone_descriptor' declared inside parameter listzoned.c:159: warning: its scope is only this definition or declaration, which is probabl

2016-10-14 17:44:12 3210

原创 ext4之super.c

super.c是ext4里非常重要的文件,挂载时候运行的代码基本上都在super.c里边,如果super.c有一点代码上的bug的话,那么一个块设备就不能被以ext4文件系统挂载。我在比较重要的地方都加了注释讲解,如果有认为我没写详细或者写错的朋友们欢迎指出。/* *  linux/fs/ext4/super.c * * Copyright (C) 1992, 1993, 1994

2016-10-06 19:12:49 4836

原创 ext4之Makefile

看一个linux内核模块之前,首先要做的就是看Makefile,然后试看init和exit函数,我看ext4的代码看的第一个文件也是Makefile(除了内核文档),接下来我们看一看2.6.19内核的ext4的Makefile吧。## ext4模块的Makefile.#obj-$(CONFIG_EXT4DEV_FS) += ext4dev.oext4dev-y   := b

2016-10-03 09:18:46 722

原创 ext4之内核文档

最近接触ext4比较多,所以就想着直接开一个博客专门是ext4的,一方面是为了系统的学习下ext4,另一方面也是做一个标记,以后如果还有用到的地方可以回来再看看,当然最重要的还是和广大的技术人员交流,如果能够帮助到一些人就更好了。ext4第一次发布是在linux-2.6.19的内核里,发展到现在,ext4的代码已经是非常巨大,我下载linux-4.7的内核代码一看,居然有50W lines,我

2016-10-02 09:39:32 3094

原创 文件系统测试工具IOZONE

最近刚刚入职百度做存储工程师,感觉存储方面真的是博大精深,有很多需要学习的地方,平常比较忙,也就没时间更新博客了(虽然平时来看的人也不是很多。。)。最近发现了几款文件系统测试工具,和大家分享一下。这些都是测试文件系统的工具,而不是测试磁盘的工具。磁盘设备之上是文件系统,测试磁盘的工具往往就是调用驱动块设备驱动的接口进行读写测试。而文件系统的测试软件就是针对文件系统层提供的功能进行测试,包括文件

2016-09-04 09:38:11 3756

原创 2015华为提前批招聘经历

华为是一家中国的通信行业五百强企业,最近也是成为了世界第一的通信行业巨头,还分成了三大BG,就是业务集团,分别是消费者BG,运营商BG,企业BG。在2015年的暑假,我参加了华为南研所的提前批招聘。首先是机试,机试是在美丽的华为南研所N1大楼里边,不得不说,华为的工作环境真的是不错的,机试一共是三道题,都很简单,相信有一点计算机基础的人通过都没有问题,机试当场会给你一个成绩,然后就是性格测试,

2016-04-15 10:14:42 4730

原创 cvte暑期实习经历

去年的此时,我还是一个大三的学生,在准备着未来的求职,在网上看到cvte的暑期实习生招聘启示,不禁为这家公司的各种特点所吸引,比如暑期实习免费住宿,并且有自助餐,餐还很丰盛,这一切对于一个大三的学生而言真的是好有诱惑的,就在网上投递了简历,自此就开始了和cvte笔试,面试,实习,得到offer的缘分之旅,虽然很遗憾最后没有和cvte签约,但是不得不承认cvte是一家有理想,有追求,环境友好的公司。

2016-03-27 22:18:50 44083 1

原创 ext2文件系统源代码之xattr_security.c

继续看ext2文件系统源代码里的最后一些文件,不过最主要的代码我们已经解决了,接下来的就是一些细小的事情了,我们来看xattr_security.c吧。/* * linux/fs/ext2/xattr_security.c * 存储security的扩展属性处理函数 */#include #include #include #include #include #inclu

2016-03-25 21:04:56 1414

原创 ext2文件系统源代码之xattr_user.c

我们继续看xattr_user.c这个文件,很简单。/* * linux/fs/ext2/xattr_user.c * user扩展属性处理函数 * * Copyright (C) 2001 by Andreas Gruenbacher, */#include #include #include #include "ext2.h"#include "xattr.h"

2016-03-25 21:04:10 1126

原创 ext2文件系统源代码之xattr_trusted.c

我们来看下xattr_trusted.c这个文件的代码/* * linux/fs/ext2/xattr_trusted.c * 信任的扩展属性处理代码 * * Copyright (C) 2003 by Andreas Gruenbacher, */#include #include #include #include #include #include "xatt

2016-03-25 21:03:17 1229

原创 ext2文件系统源代码之xattr.c

今天我们来看ext2的扩展属性的主要文件xattr.c,内部有扩展属性的最重要的代码实现,但是文件也真的很长,我们来开始吧。/* 作者版权信息 * linux/fs/ext2/xattr.c * * Copyright (C) 2001-2003 Andreas Gruenbacher * 被Harrison Xing修改过 * Fix by Harrison Xing . *

2016-03-25 21:02:09 1889

原创 ext2文件系统源代码之xattr.h

今天我们开始看ext2文件系统里的另一个重要的东西,就是扩展文件属性,我们首先看它的头文件定义xattr.h/* File: linux/ext2_xattr.h On-disk format of extended attributes for the ext2 filesystem. (C) 2001 Andreas Gruenbacher, */#includ

2016-03-21 12:32:19 1274

原创 ext2文件系统源代码之symlink.c

今天我们继续来看一个ext2文件系统里的软链接相关的文件symlink.c,文件比较短,我们开始吧/* 日常作者版权信息 * linux/fs/ext2/symlink.c * * Only fast symlinks left here - the rest is done by generic code. AV, 1999 * * Copyright (C) 1992, 199

2016-03-21 12:31:13 1515

原创 ext2文件系统源代码之super.c

今天来看一个ext2文件系统里的super.c文件,这个文件的内容是文件系统里的超级块的相关函数,对于文件系统有很大的重要性,并且这个文件也很长,好啦,我们开始看吧。/* 日常作者信息 * linux/fs/ext2/super.c * * Copyright (C) 1992, 1993, 1994, 1995 * Remy Card ([email protected]) * L

2016-03-20 20:05:58 2562

原创 ext2文件系统源代码之namei.c

我们继续来看ext2文件系统源代码里的namei.c文件,这个文件的代码主要是文件名查找之类的操作函数,并不是很难。/* * linux/fs/ext2/namei.c * * The only non-static object here is ext2_dir_inode_operations. * * 作者信息 * Copyright (C) 1992, 1993, 1994

2016-03-20 11:24:58 2413 1

原创 ext2文件系统源代码之ioctl.c

今天,我来说一个ext2文件系统源代码里比较简单的一个文件,ioctl.c,里边是做一些对于硬件设备的io指令相关的文件,一般来说,硬件设备的ioctl应该是极其复杂的文件,但是由于这里是ext2,是文件系统层,所以对于ioctl的操作不是很多。好啦,我们开始看吧。/* 日常作者,还是那个人 * linux/fs/ext2/ioctl.c * * Copyright (C) 1993,

2016-03-20 11:23:49 1660

原创 ext2文件系统源代码之inode.c

今天,我们来看ext2文件系统源代码里边最大的一个文件inode.c。在讲这个文件之前,我需要仙鹤大家说一个概念,就是间接块的概念,ext2文件系统在块大小为4096的时候可以支持的最大文件大小是4T大小,而ext2_inode结构体,就是ext2文件系统的inode在硬盘上的存储格式,__le32i_block[EXT2_N_BLOCKS];EXT2_N_BLOCKS是15,如果每一个指

2016-03-18 19:19:00 3426

原创 ext2文件系统源代码之ialloc.c

今天我们来看一个和inode的分配有关的文件,ialloc.c,这个文件有点大,做好准备哦。我们开始吧/* 文件作者,又是他,看来ext2文件系统的code都是他写的 * linux/fs/ext2/ialloc.c * * Copyright (C) 1992, 1993, 1994, 1995 * Remy Card ([email protected]) * Laborat

2016-03-17 22:47:49 1545

原创 ext2文件系统源代码之fsync.c

今天我们来看ext2文件系统里的一个和文件数据同步有关的文件fsync.c,这个文件的代码是文件在内存里的数据和硬盘上不一样的时候,采取数据同步时需要采用的。那就开始吧/*作者和版权信息 * linux/fs/ext2/fsync.c * * Copyright (C) 1993 Stephen Tweedie ([email protected]) * from * C

2016-03-16 15:11:53 1526

redis源代码分析

redis源代码分析,简明扼要,通俗易懂

2016-10-17

ThinkPHP模版core版本

ThinkPHP模版core版本,是thinkphp框架。

2013-10-25

thinkphp框架完整版附带extends

ThinkPHP框架完整版,附带extends,找了好久的

2013-10-25

空空如也

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

TA关注的人

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