自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis Cluster Configure

bdrq:在集群中,如果master挂掉,那么slave将被提升为master, master再次启动是,会变成slavenutcracker1.编译nutcracker$ CFLAGS="-ggdb3 -O0" ./configure --enable-debug=full$ make$ sudo make install2.Config nutcrackeralph

2014-12-25 09:39:14 2594

原创 Riak Core Guide 3

Learn Riak Core Step By Step 3Riak Core, Conflict Resolution这一章主要描述最终一致性和如何实现强一致性。Object非重重要的一个数据结构:rts_obj : #rts_obj | not_found record( rts_obj, { val :: #incr |

2014-12-01 01:06:59 3409 3

原创 EStateBox For CRDTs

EStateBox For CRDTs

2014-11-30 17:23:52 2792

原创 Riak VClock

Riak VClock关于向量时钟的概念,在这里就多讲了,大家可以参照一下Dynamo的论文了解一下,向量时钟在分布式主要用于解决一致性性问题,可以和CRDTs一起看。下面的源代码是参照riak中的,就是把它翻译为elixir格式而已,基本不变。时钟主要出现的情况有网络分区和并行更新。这样只会丢掉一些向量时钟的信息,即数据更新过程的信息,但是不会丢掉实实在在的数据。

2014-11-12 00:48:27 2897

翻译 Riak Core Guide 2

Learn Riak Core Step By Step 2Riak Core, The CoordinatorWhat is a Coordinator?顾名思义, Coordinator即使一个协调者,主要工作就是用来协调进来的请求。它强行执行N, R, and W的一致性语义,并且执行想read repair的anti-entropy 服务。足药用在分布式集群中,当出现冲

2014-10-14 22:01:51 3099

原创 ARP局域网攻击

/*linux 、unix 下简单的ARP局域网攻击 */    p style="text-align: left;">#include#include#include#include#include#include#include#include#define ARP_LEN 30 //ARP帧头字节数void mac_str( char *mac,

2014-10-13 23:48:15 2328

原创 ping

ICMP Structure在linux gnu c library 中函数icmp的定义 1 struct icmp2 {3 u_int8_t icmp_type; /* type of message, see below */4 u_int8_t icmp_code; /* type sub code */

2014-10-13 23:41:26 2402

原创 进程控制编程

1.Get the process ID#include #include vpid_t getpid(void)获取本进程ID。vpid_t getppid(void)获取父进程ID。2.Create processA:fork#includepid_t fork(void)功能:创建子进程f

2014-10-13 23:39:01 1710

原创 TCP 传输协议

TCP 传输协议 TCP 连接建立协议 名词解释:序号用来标识 从TCP发端向TCP接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。 主要字段解释:① 32 位序列号:该序列号有自己随机产生 , 用于ACK的确认 ,这个字段一致存在② 32 位确认序列号:等于上次已成功接收到数据字节序号加1,并且只有AC

2014-10-13 23:36:48 1910

原创 TCP洪水攻击

TCP洪水攻击 下面的程序是根据网友 ssffz1 改编的 ,修改后得效果不是很好,但作为学习还是可以说得过去,请支持原创http://bbs.chinaunix.net/thread-2145439-1-1.html改写的源代码  http://www.kuaipan.cn/file/id_51649056203605134.htm原始的源代码  http

2014-10-13 23:34:49 2740

原创 linux 编译jsoncpp

下载scons 在这里http://www.scons.org/解压  tar -zxvf scons-2.0.1.tar.gz设定环境变量# export MYSCONS=解压的路径# export SCONS_LIB_DIR=$MYSCONS/engine开始编译jsoncpp# cd jsoncpp-src-0.5.0结果有一些错误 也可能是早期的版本是如

2014-10-13 23:29:04 1740

原创 unix下的I/O——阻塞,非阻塞,同步,异步

前4种模型的主要区别在于第一阶段,因为它们的第二阶段都是一样的:在数据从内核缓冲区拷贝到进程缓冲区期间,进程阻塞与recvfrom这个系统调用中。参考 Richard Stevens的“UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking”。Stevens一共提出了五种 IO Model:

2014-10-13 23:25:48 1944

原创 关于uboot.map 文件的作用

用make命令编译时自动生成的,里面包含所有的函数逻辑地址.printf("0x%x\n", function_name); /* 这个逻辑地址,可以在u-boot.map里找到对应的函数名,用于是debug查错,相当好,例如函数指针. */实际上,kernel开发,也常常用syste.map文件.LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttex

2014-10-13 23:24:45 1895

原创 Riak Core Guide 1

riak core guide

2014-10-10 22:59:39 4106

原创 Clojure

#Clojure在Clojure中,任何函数调用都需要用括号将其包起来。括号里 的第一个元素是函数名,剩下的是参数。user=> ( println "Give Me Some Clojure!")Give Me Some Clojure!niluser=> (-1)ClassCastException java.lang.Long cannot be cast to c

2014-10-09 00:52:58 3266

原创 elixir quote, macro

Quote , quote and Macro1 引用与去引用elixir可以被自己的数据结构表示出来。在这一章,我们将会学习到这种数据结构是怎样子的,该如果去撰写它们。这一章的学习跟宏有关,下一章我们将会更深入的学习。1.1 引用elixir代码块用三元素的元祖来表示。列如sum(1, 2, 3)函数调用,内部可以表示为:{:sum, [], [1

2014-10-07 18:22:42 2632

翻译 cowboy rest

REST Flowcharts这章节将通过一些列不同的流程图来介绍REST处理状态机。一个请求主要有四条路线,一个是方法OPTIONS, 一个是方法GET和HEAD;一个是PUT,POST和PATCH,最后一个是DELETE。所有的路径都是从“Start”开始,如果资源存在,除了OPTIONS路径,其他全部路径都经过“Content negotiation”并且可选“Cond

2014-10-07 18:17:37 2921

原创 cowboy 基础使用

CowboyInitialization首先, init函数会被调用,所有的处理都会调用该函数。如果使用rest处理当前的请求,那么这个函数必须返回upgrade[init({tcp, http}, Req, Opts) -> {upgrade, protocol, cowboy_test}.cowboy会转为REST协议来开始执行状态机,如果rest_init

2014-10-07 18:14:48 2850

原创 PoolBoy

PoolBoy source code :https://github.com/devinus/poolboyCheckoutready({checkout, Block, Timeout}, {FromPid, _}=From, State) -> #state{supervisor = Sup, workers = Wo

2014-09-04 10:21:55 3241

原创 avl树 golang实现

package mainimport ("fmt")type DataType inttype Node AVLTreeNodetype AVLTree *AVLTreeNodetype AVLTreeNode struct {key   DataTypehigh  intleft  *AVLTreeNoderight *AVLT

2014-08-25 23:37:49 3041

原创 a simple erlang process pool analysis

a simple erlang process pool analysis

2014-08-10 23:48:59 1219

翻译 a little riak book

a little riak book 的无聊总结#!/bin/bash# Riak HTTP interface stays true to their intent: 1xx Informational, 2xx Success,# 3xx Further Action, 4xx Client Error, 5xx Server Error### putPORT=10

2014-06-24 21:15:10 1134

原创 拜占庭

拜占庭问题-----》主要是忠诚的将军如何在意见上达到一致,其他的叛徒将军不考虑,其他条件不考虑。 条件有两个:IC1:所有忠诚的副官遵守相同的命令。(协议的制定)IC2:如果发送命令的将军是忠诚的,那么所有忠诚的副官遵守司令(发出命令的将军)的命令。 特别提示:发送命令的每次只有一个将军,将其命令发送给n-1个副官。M代表叛国者的个数,因为将军总数为n,所有副官总数为

2014-03-16 23:39:26 902

原创 Paxos -- 介绍

最经在弄论文,zk的原理还是不太明白,听说zk这些协调系统都是基于Paxos算法演变出来,看来得先理解Paxos算法才行。下面是本人根据网上资料对Paxos做的总结,希望对和我一样的菜鸟有点好处(错了,来吐槽吧,文明点)Paxos 的理解困境 1 Paxos究竟在解决什么问题?2 Paxos如何在分布式存储系统中应用?3 Paxos算法的核心思想是什么

2014-03-13 23:08:34 1980 1

转载 vim教程

1写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, "工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了

2014-03-11 20:55:03 1120

原创 erlang 之时钟

今天来看一下erlang中的时钟如何实现的:-module(timeout).-export([sleep/1,flush_buffer/0]).%%%睡眠函数sleep(Time) -> receive after Time -> true end.%%%清空邮箱flush_buffer() -> receive AnyMessage ->

2014-03-09 00:54:10 1759

原创 golang consistent hash 菜鸟分析

一直找集群的算法,刚好golang上面有一个适合。下面作为菜鸟来分析一下// Copyright (C) 2012 Numerotron Inc.// Use of this source code is governed by an MIT-style license// that can be found in the LICENSE file.// Package consist

2014-02-12 16:04:54 4017

原创 erlang 基础

Erlang变量在Eelang中一个变量的范围是在相同函数中变量被绑定后的任意位置。Case unsafe(X) →case X of one → Y = true ;_ → Z =false ;end,Y.这是一种不好的变成习惯。Y可能没有被定义。下面是安全使用变量的理想方法,对应的变量只绑定一次,而变量的值由一个case语句决定。Case 是一种匹配的方

2014-02-11 01:11:42 985

原创 erlang --进程生成测试

下班了,写个程序先其中进程之间的消息传递如图erlang code-module(myring).-export([start/1,start_proc/2]).start(Num) -> start_proc(Num,self()).start_proc(0,Pid) -> receive ok -> ok end, Pid ! ok ;

2014-01-17 18:30:27 855

原创 erlang -- timeout 的简单使用

今天晚上有点晚了,不过还是坚持每一天写一个程序!下面的时超时器 :       建设A要想db进程发送一个信息,然后在规定的时间内等待消息的返回,那么A可以设置一个超时器,注意的是在发送消息之前,得先清空消息队列,要不然等译接到的消息可能db还没发送之前的了read(Key) -> flush(), db | {self(),{read,Key}}, receive {re

2014-01-17 00:55:28 1065

原创 erlang 之 echo 服务器

简单实现了一个echo 服务器-module(echo).-export([start/0,loop/0]).start() -> Pid = spawn(echo,loop,[]), Pid ! {self(),'Hello Word'}, receive {Pid,Msg} -> io:format('~w~n',[Msg]) end, Pid ! st

2014-01-16 01:05:24 1509

原创 erlang 并发编程

最近上班比较忙,没时间学习erlang ,实在对不起自己啊,以前一直在找erlang相关的教程,终于找到一个了,这个网站是前几天才开始运行的,以后的文章可能都是来自于那里,网站是http://www.erlang-cn.com ,大家忙没事多学习!并发编程一:-module(tut15).-export([start/0,ping/2,pong/0]).ping(0,Pong_

2014-01-11 22:08:04 1767

原创 erlang 简单的树操作

下面是一个简单非平衡的二叉树的操作-module(tree).-export([test1/0]).lookup(Key,nil) -> not_found;lookup(Key,{Key,Value,_,_}) -> {found,Value};lookup(Key,{Key1,_,Smaller,_}) when Key lookup(Key,Smaller);l

2014-01-08 00:10:56 980

原创 erlang 之简单密码加密

这些程序主要是来之 连城 翻译的一个书里面的代码-module(encode).-export([encode/2]).encode(Pin.Password) -> Code = {nil,nil,nil,nil,nil,nil,nil,nil,nil, nil,nil,nil,nil,nil,nil,nil,nil,nil, nil,nil,nil,nil,nil,n

2013-12-30 00:20:10 1236

原创 erlang 之简单的Diction实现

最近在看学erlang ,看到了字典这个demo ,把程序Copy出来和大家分享一下-module (diction).-export([new/0,lookup/2,add/3,delete/2]).new() -> [].lookup(Key , [{Key,Value}|Rest]) -> {value,Value};lookup(Key,[Pair|Rest])

2013-12-30 00:17:27 1138

原创 常用的排序算法

#include #include /*算法的分类排序算法插入排序(直接插入排序、希尔排序)选择排序(简单选择排序、堆排序)归并排序基数排序*/////////////////////////////////////////////////////////////*堆排序*//***@param A[] 完全二叉树*@param i 看中的那个父结点*@param

2013-11-10 23:38:46 1057

原创 限制服务器最大并发连接数(47)

限制服务器最大并发连接数(MuduoManual.pdf P108)用Timing wheel踢掉空闲连接(MuduoManual.pdf P122)Timing wheel echo.h#ifndef MUDUO_EXAMPLES_IDLECONNECTION_ECHO_H#define MUDUO_EXAMPLES_IDLECONNECTION_ECHO_

2013-11-08 10:58:53 3119

原创 muduo实现简单了聊天功能(44-45)

聊天服务器(MuduoManual.pdf P66)examples/asio/chat/server.cc 单线程 examples/asio/chat/server_threaded.cc,多线程TcpServer,并用mutex来保护共享数据 examples/asio/chat/server_threaded_efficient.cc,借shared_ptr实现copy

2013-11-08 10:58:11 2893

原创 四个 服务器设计模型(42)

五个简单TCP协议(MuduoManual.pdf P50)muduo库网络模型使用示例(sudoku求解服务器MuduoManual.pdf P35 )reactor(一个IO线程)reactor + threadpool (一个IO + 多个计算线程)multiple reactor (多个IO线程)one loop per thread + thread po

2013-11-08 10:57:50 5458

原创 文件传输服务器(43)

文件传输(MuduoManual.pdf P57)examples/filetransfer/download.ccexamples/filetransfer/download2.ccexamples/filetransfer/download3.cctests/Filetransfer_test.cc单线程模式之一次性发完一个文件#includ

2013-11-08 10:57:20 1621

空空如也

空空如也

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

TA关注的人

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