分布式异步对象存储 DAOS 是一个开源的对象存储系统,专为大规模分布式非易失性内存设计,利用了 SCM 和 NVMe 等的下一代 NVM 技术。 DAOS 同时在硬件之上提供了键值存储接口,提供了诸如事务性非阻塞 I/O、具有自我修复的高级数据保护、端到端数据完整性、细粒度数据控制和弹性存储的高级... ...
分类:
其他好文 时间:
2021-04-02 13:21:51
阅读次数:
0
传统的BIO里面socket.read(),如果TCP RecvBuffer里没有数据,函数会一直阻塞,直到收到数据,返回读到的数据。 对于NIO,如果TCP RecvBuffer有数据,就把数据从网卡读到内存,并且返回给用户;反之则直接返回0,永远不会阻塞。 最新的AIO(Async I/O)里面 ...
分类:
其他好文 时间:
2021-04-01 12:59:55
阅读次数:
0
为了讲多路复用,当然还是要跟风,采用鞭尸的思路,先讲讲传统的网络 IO 的弊端,用拉踩的方式捧起多路复用 IO 的优势。 为了方便理解,以下所有代码都是伪代码,知道其表达的意思即可。 Let's go 阻塞 IO 服务端为了处理客户端的连接和请求的数据,写了如下代码。 listenfd = sock ...
分类:
其他好文 时间:
2021-03-30 13:34:02
阅读次数:
0
看到一篇总结的很好的一篇博文,于是做个小结 redis大多数时候是单线程运行的(同一个时间只占用一个CPU,只有一个指令在运行,即不可能并行读写),但是redis性能还是很好,原因如下: redis使用了 多路I/O复用机制(详看我的另一篇博客多路复用机制),处理客户端请求时,不会阻塞主线程。red ...
分类:
编程语言 时间:
2021-03-18 14:33:32
阅读次数:
0
在某些时候,我们需要精确的启动一个func,如果用time.sleep简单的轮询,会因为执行的任务阻塞,或者其他原因导致无法精确的定时执行。 例如在采集某些数据的时候,需要精确的每60秒采集一次,如果直接简单的轮询:{1:计时1,2:采集,3:计时2,4:sleep(60-计时2-计时1)},正常的 ...
分类:
编程语言 时间:
2021-03-18 14:22:51
阅读次数:
0
实现原理 AQS(AbstractQueuedSynchronizer),抽象的队列式同步器 AQS 维护了一个 state(共享资源变量)和一个 FIFO 线程等待队列(CLH 队列),多个线程竞争 state 被阻塞时就会进入此队列中。 State state 使用 volatile 修饰的一个 ...
分类:
编程语言 时间:
2021-03-17 15:06:57
阅读次数:
0
php socket 读取缓存区域 <?php //创建socket套接字 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //设置阻塞模式 socket_set_block($socket); //为套接字绑定ip和端口 socket ...
分类:
Web程序 时间:
2021-03-16 13:58:08
阅读次数:
0
新增特性 多路复用、二进制分帧 请求优先级 头部压缩 服务器推送 一、多路复用 http1.1的主要问题 TCP慢启动 开启多条TCP连接,那么这些连接会竞争固定的带宽。影响关键资源的下载速度 队头阻塞 多路复用的原理 http2的传输是基于二进制帧的。每一个TCP连接中承载了多个双向流通的流,每一 ...
分类:
Web程序 时间:
2021-03-16 13:56:46
阅读次数:
0
问题一 在这个程序下: //d=a+b //out=d+c always @(posedge Clk or negedge Rst_n) begin if(!Rst_n) out = 2'b0; else begin d <= a + b; out <= d + c; end end 问题:出现了o ...
分类:
其他好文 时间:
2021-03-15 11:35:38
阅读次数:
0
一、什么是进程 程序:例如xxx.py这是程序,是一个静态的 进程:一个程序运行起来后,代码+用到的资源称之为进程,它是操作系统分配资源的基本单元。 不仅可以通过线程完成多任务,进程也是可以的 进程的状态 工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执 ...
分类:
编程语言 时间:
2021-03-15 11:19:10
阅读次数:
0