自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

guojun07的专栏

关注分布式存储,文件系统,Linux内核

  • 博客(14)
  • 资源 (12)
  • 收藏
  • 关注

原创 std::nth_element bug引起的crash问题

(1)     源码:auto less_compare = [] (const MirroringGroup& mg1, const MirroringGroup& mg2) -> bool { return (mg1.usage() < mg2.usage());};std::nth_element(mgs->begin(), mgs->begin() + (c

2015-11-30 18:03:21 1069 1

原创 单生产者-多消费者模型中遇到的问题

(1)      出问题的代码最近使用单生产者-多消费者模型是遇到一个问题,以前既然都没有想到过。生产者线程的代码如下,基本功能就是接收到一个连接之后创建一个Socket对象并放到list中等待处理。

2014-08-09 18:07:44 876

原创 Socket connect error 99(Cannot assign requested address)

转载请注明转自: 存储系统研究, 本文固定链接:socket connect error 99(Cannot assign request address) 这是最近使用libcurl写http服务的压力测试的时候遇到的一个问题,其直接表象是客户端在发送http请求时失败,最终原因是客户端的TIME_WAIT状态的socket进程过多,导致端口被占满。下面看整个分析过程:(1) 首先看

2014-06-22 23:31:49 7837

原创 C语言可变长参数实现原理

博客:存储系统研究微博:http://weibo.com/u/2203007022               (1)      C语言可变参数我们可以从C语言的printf得出可变参数的作用,printf函数的原型如下:int printf ( const char * format, ... );通过使用可变个数参数,就是传入的参数个数是可变的,如printf需要根

2014-05-03 00:58:46 1501 3

原创 使用python调用zxing库生成二维码图片

(1)     安装Jpype 用python调用jar包需要安装jpype扩展,在Ubuntu上可以直接使用apt-get安装jpype扩展$ sudo apt-get install python-jpype关于使用Jpype调用jar包的方式,请看http://blog.csdn.net/niuyisheng/article/details/9002926 (2)

2014-04-20 14:42:38 2914 1

原创 Centos上安装nginx

最近由于项目原因需要使用nginx,所以看了一下,先从安装和配置开始。

2014-04-18 20:48:02 703

原创 使用Tair时遇到pthread_join段错误问题解决

最经使用程序访问Tair时,程序经常Crash,通过跟踪和分析发现原因如下     在tair_client_impl::retrieve_server_addr中调用了如下函数:            thread.start(this, reinterpret_cast(heart_type));            response_thread.start(this, rei

2013-11-22 13:40:52 2985

原创 浅析淘宝网络通信库tbnet的实现

最近开始看Tair的源码实现,Tair的通信使用的是淘宝的开源的网络库tbnet实现。具体来说是依靠tbnet::Transport类型实现,其源代码路径如下:http://code.taobao.org/svn/tb-common-utils/trunk/tbnet/src下面是Transport的简单类图:          下面介绍其通信流程:1. 启动

2013-11-22 13:40:49 1119

原创 Linux内核学习系列---排队自旋锁

传统的自旋锁实际上就是一个整数,值为1时表示没有被占用,值为0或负数时表示锁已经被占用,此时spin_lock循环等待,直到spin_unlock将自旋锁的值置为1,在这个过程中没有保存线程申请自旋锁的顺序信息,后进入等待的线程有可能先获得自旋锁。      排队自旋锁(FIFO Ticket Spinlock)是 Linux 内核 2.6.25 版本引入的一种新型自旋锁,它通过保存执行线程申

2013-11-22 13:40:43 528

原创 AT&T汇编语言基础学习示例

Linux内核中硬件相关的代码基本都是用AT&T汇编语言实现,最近决定系统学习一下,以下使用AT&T汇编语言编写的几个简单程序:1. Hello World. 点击(此处)折叠或打开 .section .rodata hello:   .asciz "Hel

2013-11-22 13:40:40 820

原创 访问淘宝Tair的基础类型

下面是一个访问淘宝Tair分布式存储的基础类型, 当前仅实现了Put,Get和Remove三个方法。主要用于存入数据,得到数据,删除数据。头文件tair_handler.h   #include #include "tair/tair_client_api.hpp"

2013-11-22 13:40:38 706

原创 淘宝Tair分布式存储安装部署

最近开发图片存储系统,其中缩略图选用Tair进行缓存,以下是Tair如何安装部署:      1.      如何安装tair: (1)    确保安装了automake autoconfig 和 libtool, 使用automake --version查看,一般情况下已安装 (2)    获得底层库 tbsys 和 tbnet的源代码:

2013-11-22 13:40:35 1464

原创 C++ STL map中的Key使用自定义类型

C++ STL 中的map容器中的元素是按照Key的升序进行排列的,所以map的Key需要使用自定义类型时,该自定义类型必须重载operator 点击(此处)折叠或打开 In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../inclu

2013-11-22 13:40:33 1752

原创 Thrift服务端实现原理浅析

一. server端服务启动流程   创建一个Processor(rpc_handler)实例,用于处理特定的输入; TBufferedTransportFactory用于数据传输; threadManager.start()启动服务线程;

2013-11-22 13:40:31 1027

深入理解计算机系统第二版中文.pdf

深入理解计算机系统第二版中文,

2019-06-25

MySQL技术内存-InnoDB存储引擎.pdf

MySQL技术内存-InnoDB存储引擎,

2019-06-25

TCP-IP详解卷1

TCP-IP详解卷1,

2019-03-17

Ceph分布式存储实战

Ceph分布式存储实战

2019-03-17

tcp client

TCP文件传输client

2011-12-08

TCP server

TCP文件传输server

2011-12-08

file client

Linux tcp client.

2011-12-08

fileserver

Linux tcp server.

2011-12-08

Windows核心编程中文版.chm

希望在Windows上编程的程序员,都应该看一下这本书

2009-03-11

windows核心编程(第五版)英文

这是一本经典的Windows核心编程指南,从第1版到第5版,引领着数十万程序员走入Windows开发阵营,培养了大批精英。

2009-03-01

面试 笔试 C C++

C C++各大公司常见的面试笔试题,有答案,并且而进行了比较深入的剖析

2009-02-28

空空如也

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

TA关注的人

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