09 2011 档案
摘要:Bitcask是一个日志型的基于hash表结构和key-value存储模型,我了解到他也就几天时间,但是其简洁有效的设计思路,让我的某种技术癖好得到了极大满足,于是酝酿出这篇东西。 Bitcask模型指导下的存储系统有Riak和豆瓣的beansdb新版本(beansdb新版本信息,参见这里),下面就简单的介绍一下Bitcask模型: 1.日志型的数据文件 何谓日志型?就是append onl...
阅读全文
摘要:目的 本文档可以作为使用Hadoop分布式文件系统用户的起点,无论是将HDFS应用在一个Hadoop集群中还是作为一个单独的分布式文件系统使用。HDFS被设计成可以马上在许多环境中工作起来,那么一些HDFS的运行知识肯定能大大地帮助你对一个集群做配置改进和诊断。 概览 HDFS是Hadoop应用的主要分布式存储。一个HDFS集群由一个管理文件系统元数据的NameNode,和存储实际数据的一些...
阅读全文
摘要:第一节、B树、B+树、B*树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然会...
阅读全文
摘要:日志保证了数据的持久性和事务的原子性。可以简单的认为日志是一个不断追加日志记录的文件。单条日志记录是一段二进制缓冲区。 下面是本文会使用到的几条通用的日志记录: 标示trasaction的开始 标示transcatoin成功提交,所有对数据的修改都已经成功。由于cache的存在,在日志中看到COMMIT并不一定意味着 数据的修改都已经持久化。日志的目的就是保证所有COMMIT的事务...
阅读全文
摘要:1 事务的ACID 事务是保证数据库从一个一致性的状态永久地变成另外一个一致性状态的根本,其中,ACID是事务的基本特性。 A是Atomicity,原子性。一个事务往往涉及到许多的子操作,原子性则保证这些子操作要么都做,要么都不做,而不至于出现事务的部分操作成功,而另外一部分操作没有成功。如果事务在执行的过程中发生错误,那么数据库将回滚到事务发生之前的状态。比如银行的转账服务,这个事务...
阅读全文
摘要:C++开发 cgi, 经常需要输出xml格式的数据。借鉴个to_json.hpp的库, 实现了个to_xml库, 可以方便输出xml数据。使用范例:#include "to_xml.hpp"#include <stdio.h>struct A{ int a; struct B { int i; std::string name; std::vector<std::string> other; DEF_TO_XML_MEM3(B, i, name, other) }; std::vector<int> b; B c; std::string
阅读全文
摘要:C++开发 cgi, 经常需要输出json格式的数据。有些数据有重复的元素,每次写这些东西既容易出错,又繁琐。 在查看msgpack这个序列化库代码的时候,受到启发,写了个to_json.hpp的库,可以方便输出json数据。使用范例:#include "to_json.hpp"#include <stdio.h>struct A{ int a; struct B { int i; std::string name; std::vector<std::string> other; DEF_TO_JSON_MEM3(i, name, other) };
阅读全文
摘要:PumpManual Pump User's Manual Updated Nov 1, 2010 by w...@google.com The Problem Our Solution Highlights Examples Constructs Grammar Code Real E...
阅读全文
摘要:现在许多开放源代码的程序都会附带有 configure 脚本。这种脚本的用途之一是自动进行对目标新系统的猜测过程。在过去,程序会附带一个 Makefile 文件,这个文件中有 6 个不同的编译标记和选项,但只会用到一个,其余全部注释掉,并且会有一个注解,告诉您“为您的系统选择合适的标记”。如果配置选项更复杂,可能还会有一个名为 config.h 的长长的 C 头文件,其中包含一些要设置的标记,这依...
阅读全文
摘要:现象 1 压力测试过程中,发现被测对象性能不够理想,具体表现为: 进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。 初步分析 majflt代表major fault,中文名叫大错误,minflt代表minor ...
阅读全文
摘要:Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能。下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关系到用户安全的功能,希望大家能从下面的文章中能知道什么样的方法才是一个好的用户登录功能。以下内容,转载时请保持原文一致,并请注明作者和出处。 用户名和口令 首先,我们先来说说用户名和口令的事。这并...
阅读全文

浙公网安备 33010602011771号