随笔分类 - 并发编程
摘要:shmget函数用于创建或打开一个共享内存区对象,shmget成功调用会返回一个共享内存区的标识符,供其它的共享内存区操作函数使用。 key:用于创建共享内存区的键值,这个在前面其他System IPC创建的时候已经讨论过了,System IPC都有一个key,作为IPC的外部标识符,创建成功后返回
阅读全文
摘要:分布式存储的应用场景相对于其存储接口,现在流行分为三种: 对象存储: 也就是通常意义的键值存储,其接口就是简单的GET、PUT、DEL和其他扩展,如七牛、又拍、Swift、S3 块存储: 这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Blo
阅读全文
摘要:http://blog.chinaunix.net/uid-16723279-id-3803058.html 《两阶段提交协议与paxos投票算法》 点评:2PC绝对是CP的死党,是分布式情况下强一致性算法,因此缺点也是很明显的, 单点coordinator是个严重问题: 没有热备机制,coordi
阅读全文
摘要:协程诞生解决的是低速IO和高速的CPU的协调问题,解决这类问题主要有三个有效途径: 异步非阻塞网络编程(libevent、libev、redis、Nginx、memcached这类) 协程(golang、gevent) “轻量级线程”,相当于是在语言层面做抽象(Erlang) 对比之下协程的编程难度
阅读全文
摘要:第七篇 CAP https://zhuanlan.zhihu.com/p/20399316?refer=auxten CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性 (Consisten
阅读全文
摘要:接上一篇 http://www.cnblogs.com/charlesblc/p/6241926.html 来源: https://zhuanlan.zhihu.com/p/20204159 (一):演进——从Apache到Nginx 网上关于Apache和Nginx性能比较的文章非常多,基本上有如
阅读全文
摘要:之前有一篇文章,说了RPC的内容: http://www.cnblogs.com/charlesblc/p/6214391.html 如果有一种方式能让我们像调用本地服务一样调用远程服务,而让调用者对网络通信这些细节透明,那么将大大提高生产力,比如服务消费方在执行helloWorldService.
阅读全文
摘要:可以参考这篇文章: http://blog.csdn.net/whycold/article/details/47702133 两阶段提交保证了分布式事务的原子性,这些子事务要么都做,要么都不做。 而数据库的一致性是由数据库的完整性约束实现的,持久性则是通过commit日志来实现的,不是由两阶段提交
阅读全文
摘要:之前有一篇文章描述过一些对比: http://www.cnblogs.com/charlesblc/p/6078029.html 这里在代码和应用方面再说一下。 看一下两边的Helloworld基本就了解个大概。 libevent的hello world 上面Libevent最基本的事件驱动器是 e
阅读全文
摘要:参考 http://www.infoq.com/cn/articles/netty-high-performance 高性能的三个主题 1) 传输:用什么样的通道将数据发送给对方,BIO、NIO或者AIO,IO模型在很大程度上决定了框架的性能。 2) 协议:采用什么样的通信协议,HTTP或者内部私有
阅读全文
摘要:这个里面讲了区块链的内容: http://www.cnblogs.com/charlesblc/p/6272785.html 今天和老婆讨论的时候,发现了一些细节需要进一步了解,所以看了些文章。下面几篇讲的很好: 《比特币私钥、公钥、钱包地址之间的关系》 讲了比特币交易的过程,基本就懂了(尤其是防止
阅读全文
摘要:概念太多了,信号,软中断,中断等等。试着做总结。 下面这个里面主要讲了硬件中断: http://www.cnblogs.com/charlesblc/p/6261741.html 下面这个里面主要讲了软中断,硬中断: http://www.cnblogs.com/charlesblc/p/62632
阅读全文
摘要:上一篇讲了拜占庭将军问题,讲的比较清晰: http://www.cnblogs.com/charlesblc/p/6271472.html 而上一篇也提到了,区块链技术比较好的解决了这个问题,而比特币就是基于区块链的。 先用这一篇科普:http://blog.sina.com.cn/s/blog_6
阅读全文
摘要:下面这篇文章,感觉讲的非常好: http://www.8btc.com/baizhantingjiangjun 拜占庭将军问题是一个共识问题: 首先由Leslie Lamport与另外两人在1982年提出,被称为The Byzantine Generals Problem或者Byzantine Fa
阅读全文
摘要:参考这篇文章 http://blog.chinaunix.net/uid-27761170-id-5050258.html 代码如下: 这段代码将使myfun线程在所有cpu中依次执行一段时间,在我的四核cpu上,执行结果为 : system has 4 processor(s) thread 10
阅读全文
摘要:参考了这篇文章:http://blog.csdn.net/zhangskd/article/details/21992933 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器(如 8259A)。 如果中断的线是激活的,中断控制器就把电信号发送给
阅读全文
摘要:参考这篇文章: http://www.cnblogs.com/coding-my-life/p/4782529.html 在linux下,每个进程都有自己的signal mask,这个信号掩码指定哪个信号被阻塞,哪个不会被阻塞,通常用调用sigmask来处理。同时每个进程还有自己的signal ac
阅读全文
摘要:内核信号处理参考: http://www.spongeliu.com/165.html 信号本质上是在软件层次上对中断机制的一种模拟(注意区分中断、异常、信号),其主要有以下几种来源: 目前Linux支持64种信号。信号分为非实时信号(不可靠信号)和实时信号(可靠信号)两种类型,对应于 Linux
阅读全文