摘要:Head of head 在golang的整个生态里,redis client lib全部都使用多连接或者连接池。这是让人难以理解的,所以我和xiaofei一起写了一个同时支持同步和异步的redis client lib:RedisGo-Async。 github地址:https://github.
阅读全文
摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/BackgroundIO可能是我们接触最频繁的系统调用,比如printf到终端,send content到对端,而今天要讨论的仅是Linux平台下访问本机存储设备相关的IO。如果你对IO相关api的优缺点门清,可以忽...
阅读全文
摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/epoll提供了ET和LT两种模式,网上文章很多,这里只总结下LT模式下的两个缺点epoll对fd的管理实现是用的红黑树,所以epoll_ctl并不是一个很快的操作,而LT模式更放大了这个缺点。有一个关于内存屏障(M...
阅读全文
摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/Background网络术语里的阻塞和非阻塞,哪个模式相对好些?大多数都会选择非阻塞模式,不过技术向来都是矛盾的,这里分析和总结下。Blocking一般使用非阻塞来提高IO并发度(Linux的native aio只对...
阅读全文
摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/Background写网络程序的都知道,tcp的窗口控制分为慢启动阶段和拥塞避免阶段,重传机制有快速重传/恢复和超时重传。网上关于快速重传的文章很多,但质量参差不齐,这里对它的设计背景和原理总结下。Conceptrt...
阅读全文
摘要:调度是p2p的核心,一个设计不好的调度会弄瘫整个p2p网络,看看下边的调度1. 关于下载的快慢假设网速不变,种子不变情况,最优调度应该是:种子负载小的优先调度种子RTT小的优先调度种子丢包率小的优先调度对于丢包在紧急区和非紧急区的处理应该是:紧急时,调度优先种子,且多种子调度非紧急时,根据播放点动态...
阅读全文