自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(67)
  • 资源 (9)
  • 收藏
  • 关注

原创 leveldb源码阅读分析笔记

这是本人在阅读leveldb源代码的基础上写的读书笔记,现贡献出来供大家交流之用。内容主要来源于leveldb官网的文档和阅读leveldb的源码。转载请注明出处,谢谢Leveldb的实现1.   调研目的互联网业务中大量的数据都是简单地key-value类型,查询时不需要复杂的关系数据块支持。在大量涌现出来的NoSql开源产品中,Leveldb是一个轻

2013-11-27 16:58:34 3232

原创 mongodb调研

这是本人的一篇关于mongodb的调研报告,整理出来供大家交流,内容主要来源于mongodb官网的文档和其他网络资源。转载请注明出处,谢谢。Mongodb调研1.   调研目的       现在公司缺乏一个通用的key-value存储系统。快盘的底层存储系统适合用来存储文件,文件的元数据现在是存储在mysql中的。为了应对元数据规模的不断扩大,在元数据上增加引用计数

2013-11-27 16:54:38 2675 2

原创 常用算法之五:分支限界法

分支限界法一、基本描述    类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。   (1)分支搜索算法    所谓“分支”就是采用广度

2013-02-19 18:18:52 329

原创 常用算法之四:回溯法

1、概念      回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。   回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。     许多复杂的

2013-02-19 18:18:18 238

原创 常用算法之三:贪心算法

贪心算法一、基本概念:      所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。     贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前

2013-02-19 18:17:31 249

原创 常用算法之二:动态规划算法

一、基本概念    动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略    基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通

2013-02-19 18:16:01 248

原创 常用算法类型之一:分治算法

分治算法一、基本概念   在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……    任何一个可以用计算机求解的问题所需的计

2013-02-19 18:04:10 267

转载 Yii Framework 核心之 Component part3

Welcome to the last article in this three-part whirlwind tour of the Yii framework’s component class. The goal of the series is to show you how Yii implements a component-based architecture and how it

2013-02-04 15:11:52 672

转载 Yii Framework 核心之 Component part2

Welcome once again to this tour of the Yii Framework’s CComponent class. This three-part series demonstrates how Yii uses a component-based architecture and how the class implements properties, config

2013-02-04 15:10:52 349

转载 Yii Framework 核心之Component Part1

There’s been a lot of buzz surrounding the use of frameworks for quite a while now and there are many great PHP frameworks to choose from. I was blown away by the simplicity and power of the baseC

2013-02-04 15:09:40 468

转载 php magic methods

魔术函数  1。__construct()  实例化对象时被调用,  当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。  2。__destruct()  当删除一个对象或对象操作终止时被调用。  3。__call()  对象调用某个方法,  若方法存在,则直接调用;

2013-02-01 23:46:31 239

转载 Linux Input System

linux内核input子系统解析    Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等输入设备的支持都通过、或越来越倾向于标准的input输入子系统。    因为input子系统已经完成了字符驱动的文件操作接口,所以编写驱动的核心工作是完成input系统留出的接口,工作量不大。但如果你想更灵活的应用它,就需要好好的分析下input子系统了。

2012-12-24 16:39:00 362

原创 KVM虚拟化之SPICE

由于时间问题,只把http地址粘贴在这里做个标记:http://spice-space.org/kvm---Linux Kernel Visualization Manager 高效的轻量级的内核虚拟化解决方案virtio---para-virtualization 的IO设备虚拟化框架,定义了guest OS的设备驱动(前端)和host OS IO设备驱动的接口及后端设备

2012-09-22 01:36:53 3591

转载 KVM虚拟化之Libvirt虚拟化库剖析

讲到向外扩展计算(比如云计算),libvirt 可能是您从未听说过的最重要的库之一。libvirt 提供一种虚拟机监控程序不可知的 API 来安全管理运行于主机上的来宾操作系统。libvirt 本身 不是一种工具, 它是一种可以建立工具来管理来宾操作系统的 API。libvirt 本身构建于一种抽象的概念之上。它为受支持的虚拟机监控程序实现的常用功能提供通用的 API。libvirt 起初是专门为

2012-09-22 00:13:52 985

转载 KVM虚拟化系列之virio

简介: Linux 内核支持多种虚拟化模式,并且支持的数量随着虚拟化的进步和新模式的出现(例如 lguest)而增加。但是,让这些虚拟化模式能够在 Linux 之上运行之后,又如何让它们能够在 I/O 虚拟化方面利用底层内核呢?答案是使用 virtio,它为 hypervisor 和一组通用的 I/O 虚拟化驱动程序提供高效的抽象。探索 virtio 并了解为什么 Linux 将成为最佳的 h

2012-09-22 00:06:12 1895

原创 nginx搭配codeigniter的配置

最见看一个php的框架codeigniter,轻量级,高效,学习曲线平缓,很适合中小型项目使用。但是codeigniter和nginx组合无法直接正常工作。原因我就不详细记载了,在网上找了好多方法都无效,后来查看了codeigniter的源码和nginx的配置文档说明,搞了将近一天时间,先将nginx的配置需要更改的地方说明如下:nginx版本:1.2.1 codeigniter:

2012-09-05 16:54:05 4114

转载 Yii PHP 框架分析(四)

作者:wdyhttp://hi.baidu.com/delphiss/blog/item/c15b314f05f9dfc0d0c86a26.htmlYii应用的入口脚本最后一句启动了WebApplicationYii::createWebApplication($config)->run();CApplication:public function run(

2012-09-03 22:43:28 1375

转载 Yii PHP 框架分析(三)

作者:wdyhttp://hi.baidu.com/delphiss/blog/item/357663d152c0aa85a1ec9c44.htmlYii应用的入口脚本引用出了Yii类,Yii类的定义:class Yii extends YiiBase{}由yiic创建的应用里Yii类只是YiiBase类的“马甲”,我们也可以根据需求定制自己的Yii类。

2012-09-03 22:32:13 926

转载 Yii PHP 框架分析(二)

Yii是基于组件(component-based)的web框架,CComponent类是所有组件的基类。CComponent类为子类提供了基于属性(property)、事件(event)、行为(behavior)编程接口。组件的属性(property)Ccomponent类并没有提供属性的变量存储,需要由子类来提供两个方法来实现。子类的getPropertyName()方法

2012-09-03 22:10:49 481

转载 Yii PHP 框架分析 (一)

最近看了写php的Yii框架,现在将网上查到的资料转载一下:Yii PHP 框架分析 (一)作者:wdyhttp://hi.baidu.com/delphiss/blog/item/f7da86d787adb72506088b4b.html基于yii1.0.8的代码分析的。用了一个下午整理的,流水账,感兴趣的凑合着先看,国庆期间推出个整理修改版,然后再完成后两个

2012-09-03 22:09:41 677

转载 ZeroMQ 资料汇总

ZeroMQ 汇总所有分析,基于 2.1.0 的代码。建立在 socket 之上的 light-weight message queue。不再需要自己管理 tcp 分包。简单、实用。来自 iMatix 的一个库,iMatix 主要面向金融行业。(业务逻辑决定设计)http://www.zeromq.org/

2012-08-22 20:13:41 804

转载 PHP's Source Code For PHP Developers - Part 1 - The Structure

As a PHP developer, I find myself referencing PHP's source code more and more in my normal everyday work.  It's been very useful in everything from understanding what's happening behind the scenes to

2012-08-18 12:37:19 673

转载 Understanding PHP's internal array implementation (PHP's Source Code for PHP Developers - Part 4)

Welcome back to the fourth part of the “PHP’s Source Code for PHP Developers” series, in which we’ll cover how PHP arrays are internally represented and used throughout the code base.In case you m

2012-08-18 12:32:26 589

转载 Understanding PHP's internal function definitions (PHP's Source Code for PHP Developers - Part 2)

Welcome to the second part of the “PHP’s Source Code For PHP Developers” series.In the previous part ircmaxell explained where you can find the PHP source code and how it is basically structured

2012-08-18 12:31:14 802

转载 PHP's Source Code For PHP Developers - Part 3 - Variables

In this third post of the PHP's Source Code for PHP Developers series, we're going to expand on the prior posts to help understand how PHP works internally.  In the first post of the  series, we

2012-08-18 12:16:31 785

转载 KVM 实现机制

1.    概述1.1.    KVM简介KVM是一个基于Linux内核的虚拟机,它属于完全虚拟化范畴,从Linux-2.6.20开始被包含在Linux内核中。KVM基于x86硬件虚拟化技术,它的运行要求Intel VT-x或AMD SVM的支持。一般认为,虚拟机监控的实现模型有两类:监控模型(Hypervisor)和宿主机模型(Host-based)。由于监控模型需要进行处理器调

2012-03-21 13:15:18 807

转载 Leveldb源码分析8 Snapshot原理

Snapshot(快照)关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。快照的作用主要是能够进行在线数据备份与恢复[0]leveldb也提供了快照。对于整个key-value存储状态,Snapshot提供了一致性只读视图。ReadOptions::snapshot不为NULL时表示读

2011-12-26 20:15:06 1266 1

转载 Leveldb源码分析7 数据查找

leveldb只是单纯的在文件末尾增加,并不改写原有的内容,那么如果删除一个key,或者更新一个key应该怎么办呢?比如:table["liming"] = 18del table["liming"]table["liming"] = 20table["liming"] = 21leveldb将每一个操作变化成如下的格式:userkey sequence

2011-12-26 20:14:01 500

转载 Leveldb源码分析6 Arena

Arena是舞台竞技场的意思,在leveldb中它是一个内存池。Arena所作的工作十分简单,是一个只负责申请空间的内存池,将申请到的内存放入std::vector blocks_中,在Arena的生命周期结束后,统一释放掉所有申请到的内存,内部结构如下图所示。有两个申请函数:其中一个可以申请对齐的内存空间,可以看出Arena没有delete/free函数在Arena的析构函数中统

2011-12-26 20:12:02 432

转载 Leveldb源码分析5 Slice

Slice非常简单的数据结构,它包括length和一个指向外部字节数组的指针。为什么使用Slice,而不直接使用string呢??相比返回string,返回Slice的开销会小的多(没有拷贝,Slice中没有实际数据,只有指向数据的指针,开销低)。leveldb允许key和value包含'\0',不能返回以null结尾的c风格字符串。C++ string和以null结尾的C风格字符

2011-12-26 20:11:06 440

转载 leveldb源代码分析4:SkipList

skiplist思想可以具体参考这:Skip listView more documents from xuqianghitsoft 或者是参考我的这篇博文:http://www.cnblogs.com/xuqiang/archive/2011/05/22/2053516.html, leveldb中的实现方式基本上和我的那篇博文中的实现方式类似。SkipList在db/s

2011-12-26 20:10:14 695

转载 leveldb源代码分析3 memtable

上面一篇博文主要说了leveldb的理论原理,接下来将说明leveldb中如何去实现这些组件,主要是按照下面的思路进行的:首先分别分析LSM的各个组件,例如memtable,commit log,compaction实现,之后将这些功能串联起来分析一下leveldb的读写流程。这篇中主要是关于memtable的分析。memtable常驻于内存,需要按照key进行排序,通常意义上的话,可以使用二

2011-12-26 20:09:21 843

转载 leveldb源码分析2 理论基础

leveldb其实就相当于是bigtable中简化的每个数据节点,其中关键性的思想如下(来自于http://www.slideshare.net/sunzhidong/google-leveldb-study-discuss):也就是说原始的想法就是向如何将随机的io操作转换成顺序的io写操作,下面可能需要考虑的问题就是基于LSM这种数据结构如何进行insert, delete, update

2011-12-26 20:08:33 599

转载 leveldb源码分析1

1. leveldb简介leveldb是一个key/value型的存储引擎,由google开发,并宣布在BSD许可下开放源代码。2. leveldb下载和安装leveldb托管在google code上,可以使用git下载源代码:Plain代码 git clone https://code.google.com/p/leveldb/  下载完成之后,开始

2011-12-26 20:06:25 1065 1

转载 module_param内核模块参数传递

在用户态下编程可以通过main()的来传递命令行参数,而编写一个内核模块则通过module_param() 参数用 moudle_param 宏定义来声明, 它定义在 moduleparam.h.module_param(name,type,perm);module_param 使用了 3 个参数: 变量名, 它的类型, 以及一个权限掩码用来做一个辅助的 sysfs 入口(

2011-11-01 17:01:20 395

转载 KBuild MakeFile介绍

从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。Linux内核Makefile分类·

2011-11-01 17:00:47 378

原创 Linux内核配置文件.config与Makefile

==========================================Makefile 初探 ==========================================Linux的内核配置文件有两个,一个是隐含的.config文件,嵌入到主Makefile中;另一个是include/linux/autoconf.h,嵌入到各个c源文件中,它们由make conf

2011-11-01 17:00:01 6258

转载 Linux内核构建系统之-Kconfig文档的作用

2.6内核的源码树目录下一般都会有两个文文:Kconfig和Makefile。分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.

2011-11-01 16:57:25 522

转载 Linux cgroup机制分析之框架分析

本文转自http://blog.chinaunix.net/space.php?uid=20543183&do=blog&id=1930840------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/--------------------------

2011-11-01 11:53:44 453

原创 内核线程的退出

内核线程的退出要从创建开始,下面是kernel_thread的创建过程上图中regs.ip = kernel_thread_helper,也就是说新建的内核线程从kernel_thread_helper开始运行,kernel_thread_helper函数定义如下:其中的关键是,call *%rsi,调用的是kernel_thread中的fn参数(函数指针),调用结束后

2011-10-27 16:11:39 2512

Introduction to Distributed Algorithms(Second Edition

分布式系统的经典数据,各种分布式算法和系统架构时需要考虑的问题

2011-10-27

glibc内存管理ptmalloc源代码分析

详尽解析glibc ptmalloc代码的详尽读物

2011-10-27

gcc-inline-assembly

GCC 内嵌汇编的语法 详细解析,解压之后是一个HTML文件

2011-10-20

Professional Linux Kernel Architecture

非常好的关于Linux内核的书籍,很详尽,是已知最新的书籍

2011-10-20

Intel系列CPU的保护模式

详细讲解Intel X86CPU的实模式和保护模式,讲解保护模式的分段机制

2009-08-25

深入理解Linux内核

深入理解Linux内核第三版,英文版 深入介绍了Linux内核的结构和关键的数据结构 很经典

2009-07-14

DiretX入门教程

介绍游戏编程的入门级教程,介绍DirectX的使用。

2009-07-14

空空如也

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

TA关注的人

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