排序:
默认
按更新时间
按访问量

深入理解Go Channel

Golang使用Groutine和channels实现了CSP(Communicating Sequential Processes)模型,channles在goroutine的通信和同步中承担着重要的角色。在GopherCon 2017中,Golang专家Kavya深入介绍了 Go Channe...

2017-07-16 19:06:53

阅读数:4231

评论数:0

再读分布式一致性算法Raft论文

Raft是一个管理日志副本一致性的算法。相比Paxos结果一样,并且一样高效,但是理解起来更加的容易。Raft将一致性的主要元素分离开来,比如leader选举,log 复制,安全等。同时,也提供了一个新的机制实现cluster membership改变,其使用多数的原则来保证安全性。一致性算法一致...

2017-07-16 10:21:11

阅读数:1526

评论数:1

对象存储对比 - Haystack

经过一段时间的调研,对分布式对象系统有了一点浅显的认识,暂不谈和文件系统的区别(其实还是有点傻傻分不清),姑且认为对象存储和文件系统最大的区别就是API,文件系统提供了完整POSIX语义,往往具有层次化的目录结构,对文件可以进行精细的操作(open, read, write, seek, dele...

2017-06-25 21:58:03

阅读数:1670

评论数:0

SeaweedFS索引-CompactMap

SeaweedFS提供了几种不同的needle索引策略,包括memory, btree, blotdb, leveldb四种,其中默认的是memory,也是其内部唯一自己实现的一种索引,btree使用google的btree开源实现,boltdb和leveldb都依赖一个db.memory的索引实...

2017-06-22 09:13:43

阅读数:1092

评论数:2

一致性哈希算法

前面专门介绍过几种常见的数据分片(Sharding),主要包括范围分片(Range)和哈希(Hash)分片两种大的策略,其中哈希分片最简单的Round Robin方法(直接按照机器数取模)存在一个明显的缺点,当机器数增加或者减少的时候,所有的数据都要进行重新的哈希分配。这个问题的本质原因是因为机器...

2017-05-03 12:41:11

阅读数:671

评论数:1

操作系统页表管理

原文地址:http://kdf5000.com/2017/03/12/操作系统页表的管理/学过操作系统的都知道,在操作系统中存在一个虚拟内存的概念,它用于内存的管理,使得应用程序认为它有一段连续的内存,大大地简化了程序员码代码的难度。程序员只用关注在这个连续的虚拟内存段中怎么使用内存,不用关心在物...

2017-04-15 11:00:38

阅读数:2849

评论数:0

mmap内存映射

内存映射是个很有用,也很有意思的思想。我们都知道操作系统分为用户态和内核态,用户态是不能直接和物理设备打交道的,如果想把硬盘的一块区域读到用户态,则需要两次拷贝(硬盘->内核->用户),但是内存映射的设计只需要发生一次的拷贝,大大的提高了读取数据的效率。那么内存映射的原理和内核是如何实...

2017-04-15 10:51:15

阅读数:931

评论数:2

Golang RPC性能测试

最近刚好要使用Golang的RPC,因此对Golang标准库的RPC进行了一下测试,看看其性能到底如何。RPC服务端和客户端的实现完全使用RPC的net/rpc标准库,没有经过特殊的优化,主要针对下面三个场景进行测试。测试之前需要先说明一下,Go的rpc连接是支持并发请求的,就是说一个一个连接可以...

2017-04-15 10:41:11

阅读数:2964

评论数:0

使用Python和BitTorrentSync定期给Kindle推送电子书

Kindle伴侣最近发现一个很好用的Kindle电子书分享网站Kindle伴侣,资源丰富,除了提供各种热门图书免费下载,还提供了很多关于Kindle的使用技巧,里面个人最喜欢的功能就是每周一书,使用BitTorrent每周自动同步热门电子书。使用的是著名的同步软件Resilio Sync, 最开始...

2016-11-12 20:28:24

阅读数:1511

评论数:0

面向HBase的内存key-value缓存的实现

0x01 背景之所以要实现这个缓存主要原因如下(但是由于不是实际业务场景需求,所以可能不太准确,也可能不存在这个需求): * 非结构化数据的爆炸式增长 * 处理速度的要求越来越高 * HBase是面向硬盘的 * 内存容量越来越大 * 热点数据可以在内存放下0x02 设计方案通常的要实现缓...

2016-06-19 18:54:54

阅读数:5743

评论数:0

基于docker的hadoop分布式集群

Hydra-hadoop项目地址:https://github.com/KDF5000/hydra-hadoop 使用docker在单机部署hadoop和hbase的分布式环境,本项目具有一下特征: * 使用serf和dnsmasq 作为集群节点管理和dns解析 * 可以自定义集群hadoo...

2016-05-16 16:41:45

阅读数:894

评论数:0

二分k-均值算法

前面介绍过k-means聚类算法,通过不断的更新簇质心直到收敛为止,但是这个收敛是局部收敛到了最小值,并没有考虑全局的最小值.那么一个聚类算法怎么才能称得上效果好呢?要想评价一个算法的好坏,首先需要有一个标准,这也是我们设计算法的时候要首先考虑的,我们设计算法的目的是什么,设计的算法要达到的什么效...

2015-11-11 18:54:02

阅读数:2719

评论数:1

回溯法解0/1背包问题

背包问题(Knap sack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价值,在限定的总重量内,我们如何选择,才能使得物品的总价值最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。0/1背包问题是背包问题的一个特例,在选择物品时只...

2015-11-11 18:53:10

阅读数:798

评论数:0

k-means聚类算法

k-means聚类算法 优点: 容易实现 缺点: 可能收敛到局部最小值,在大规模数据集上收敛较慢 使用数据类型: 数值型护具 k-均值是发现给定数据集的k个簇的算法.k有用户决定.每一个簇通过旗质心,即簇中所有点的中心描述. 工作流程: 首先随机确定k个初始点作为其质心.然后讲护...

2015-11-07 23:22:56

阅读数:1234

评论数:0

归并排序和快速排序比较

1 . 归并排序和快速排序1.1 归并排序归并排序的思想就是讲数组分为两部分然后对两部分进行排序,然后讲排序后的两部分进行合并,主要的难度在于合并部分,合并的时候需要重新开一个临时数组保存合并的结果,然后再复制到原数组. 下面是归并排序的python实现# coding:utf-8 __auth...

2015-10-25 09:46:35

阅读数:903

评论数:0

分布式爬虫

RSpider一个基于scrapy-redis的分布式爬虫模板,在scrapy-redis自带的example的基础上进行修改,添加在实际爬取过程中大部分爬虫可能用到的功能,使的构建分布式爬虫更加的简单。 scrapy-redis: https://github.com/darkrho/scra...

2015-08-28 15:13:17

阅读数:2013

评论数:0

Ubuntu-14-04-安装PHP环境和反向代理

安装Apache$ sudo apt-get install apache2安装php$ sudo apt-get install php5 libapache2-mod-php5安装mysql$ sudo apt-get install mysql-server反向代理经过测试最小的配置。。。。...

2015-08-28 15:11:51

阅读数:566

评论数:0

Ubuntu 14.04 安装图形监控工具Graphite

什么是graphite?先看看百度百科是怎么介绍 Graphite 是一个Python写的web应用,采用django框架,Graphite用来进行收集服务器所有的即时状态,用户请求信息,Memcached命中率,RabbitMQ消息服务器的状态,Unix操作系统的负载状态,Graphite服...

2015-08-28 15:09:48

阅读数:1764

评论数:0

Ubuntu下Scrapy的安装

最近在学习爬虫,早就听说Python写爬虫极爽(貌似pythoner说python都爽,不过也确实,python的类库非常丰富,不用重复造轮子),还有一个强大的框架Scrapy,于是决定尝试一下。要想使用Scrapy第一件事,当然是安装Scrapy,尝试了Windows和Ubuntu的安装,本文先...

2015-08-23 23:47:19

阅读数:820

评论数:0

Ubuntu 14.04 下安装使用Python rq模块

rq 是Python的一个第三方模块,使用rq可以方便快速的实现Python的队列操作,实现多态电脑的分布式架构。其中 R是Redis的意思,Q是Queue的首字母,rq使用Redis和Queue实现分布式,分别实现了Master和Worker,通过Redis存储任务队列。Ubuntu14.04 ...

2015-08-23 23:44:02

阅读数:943

评论数:0

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