mumumuwudi的博客

  • 首页
  • 归档
  • 分类
  • 关于
  • 标签

NGINX最新版正式增加了对reuseport (SO_REUSEPORT) 的支持,正式补丁代码分析

发表于 2015-07-25   |   分类于 nginx

NGINX release 1.9.1 introduces a new feature that enables use of the SO_REUSEPORT

https://www.nginx.com/blog/socket-sharding-nginx-release-1-9-1/
http://forum.nginx.org/read.php?29,252762,253401

实现思路补丁里已经说明,跟很早之的一个简单方案的差别比较大

阅读全文 »

一个nginx_reuseport 简单补丁实现

发表于 2015-07-25   |   分类于 nginx
补丁的diff文件在这里:http://leaf.dragonflybsd.org/~sephe/ngx_soreuseport.diff 该补丁只是一个简单实现演示,很多东西没有考虑到,作者也只是简单验证了使用REUSEPOORT后的效果(正式补丁后来正式提交了 见我的博客) The basic ...
阅读全文 »

OCR文字识别HTTP restapi接口设计

发表于 2015-07-24   |   分类于 http
OCR文字识别需要做成HTTP接口对外使用, 该接口功能非常简单, 用户传递过来一幅图片后端解析完成后将识别出的文字返回. 恩 吃的是图片返回的是文字. 因为HTTP协议是基于文本的,POST数据里的图片data需要做一些处理, 例如腾讯开放的一个API: POST /photo/upload_p ...
阅读全文 »

Tokyo Cabinet 的一个bug

发表于 2015-07-24   |   分类于 Tokyo Cabinet

Tokyo Cabinet 的代码……真是草泥马啊…. 跟LevelDB简直没发比啊…
手机某些机型中Tokyo Cabinet Lib出现了好几次crash报告, 出问题的地方在 2145行:


阅读全文 »

linux中mmap文件到内存中,该进程发生错误被挂掉后mmap映射的内存能否写回到文件中的问题

发表于 2015-07-24   |   分类于 linux
在Tokyo Cabinet中hashDB中的hash索引是通过mmap将数据库文件的一部分映射到内存中的,之前把Tokyo Cabinet 移植到手机淘宝客户端当做一个通用的KV数据库来使用,因为各种手机的环境千差万别,手淘某些机型中得crash率很高. Tokyo Cabinet数据库文件总是不 ...
阅读全文 »

LEVELDB(SSDB)关于读操作两种CACHE的作用和配置

发表于 2015-07-24   |   分类于 leveldb
SSDB及LEVELDB的用来优化查找Cache分为两种,分别是table_cache和block_cache。 table_cache: 用来缓存的是sstable的索引数据,也可以理解为mysql中索引在内存中得缓存, 及通 常所说的元数据的缓存;index_block, bloom_file ...
阅读全文 »

关于SSDB的网络模型

发表于 2015-07-23   |   分类于 leveldb
SSDB 是 完整的LevelDB实现, 因为google的LevelDB并没有实现网络功能, 只封装了数据库的基本操作. SSDB地址和介绍 详见: https://github.com/ideawu/ssdb. SSDB作者代码更新的还是比较快的.. 最新的版本比以前的改动好大.从网络模型上说 ...
阅读全文 »

简单测试一下go(golang) 和libtask 协程的切换效率

发表于 2015-06-01   |   分类于 golang
简单测试一下go(golang)和libtask协程的切换效率, libtask一个C语言的协程库,是go语言的前身很早期的原型,测试机器是我的mac air 安装的centos虚拟机(只有一个核)代码没有采用任何优化,只是使用默认配置 测试结论:golang 切换100w次 需要 295mslib ...
阅读全文 »

c-ares 一个C语言的异步DNS解析库

发表于 2015-05-29   |   分类于 linux
c-ares是一个C语言的异步DNS解析库,可以很方便的和使用者的事件循环统一起来,实现DNS的非阻塞异步解析,libcurl, libevent, gevent, nodejs都在使用。 下面摘自Stack Overflow的一个例子:#include <time.h>#include ...
阅读全文 »

go(golang) dns 解析源码 go/src/net/dnsclient_unix.go 分析

发表于 2015-05-29   |   分类于 golang
关于go dns解析的一些说明参照我的另一篇文章 –go (golang) DNS域名解析实现–go dns 解析 源码在go/src/net/dnsclient_unix.go, lookupHost()通过向本地dns server发送请求,获得IP和域名的对应关系然后返回,函数调用关系如下: ...
阅读全文 »
1234
mumumuwudi

mumumuwudi

35 日志
10 分类
44 标签
© 2025 mumumuwudi