
pnp
春泥面包
这个作者很懒,什么都没留下…
展开
-
PNP: TTCP
TTCP: Test TCP https://en.wikipedia.org/wiki/Ttcp原创 2017-05-04 22:01:29 · 1371 阅读 · 0 评论 -
PNP : Distributed mean and median
分布式的平均数和中位数。 求平均数比较简单。怎么求第k大的数字呢?先猜一个数guess,然后统计与这个数相等的数字的个数记为same,小于这个数的个数记为smaller然后调整guess,直到 smaller < k and smaller+same >= k具体点说,先猜一个guess,然后让10台机器告诉我,guess在第i台机器上的same和smaller,然后将same求和,smal原创 2017-11-23 20:53:11 · 389 阅读 · 0 评论 -
PNP : TCP relay & Socks4a
TCP relayTCP中继。 带宽不匹配问题怎么应对?TCP half-closedmuduo的做法是: TcpConnection::shutdown() –> shutdown(sockfd, SHUT_WR) Keep read(sockdf) uitil it return 0, then close(sockfd)有可能数据没有读完,此时如果使用close关闭连接,那么TCP会发送原创 2017-11-07 22:19:12 · 1358 阅读 · 0 评论 -
PNP : Work Cound & Frequence
问题问题很简单,shell的几个命令就可以搞定。但是,如果输入文件很大不能一次载入内存呢? 文件分布在多个机器上呢?文件可以全部载入内存文件太大不能一次载入内存对于此类问题,即大数据问题,可以使用MapReduce两个MapReduce 第一个MapReduce: WordCount把每个单词映射成Key-Value pair (Map)把key相同的value加起来 (Reduce)此原创 2017-11-27 21:46:19 · 426 阅读 · 0 评论 -
PNP : Sudoku solver
Line protocolRequest : [id:]<81digits>\r\n Response: [id:]<81digits>\r\n [id:]NoSolution\r\nLibrary or service?Cross process boundary, some overhead of courseCross LanguageIndepend原创 2017-10-19 22:42:09 · 426 阅读 · 0 评论 -
PNP : Chat server
将某个连接上的消息发送到其他连接上。BroadcastingIP广播不支持TCP。需要自己实现 Pub/Sub。要考虑单台故障不影响其他机器。pub, hub, sub. 其中hub收到pub的消息,发送到sub上。使用shared_ptr实现copy on write : example/asio/chat/server_thread_efficient.cpp使用thread_local: ex原创 2017-11-07 20:32:14 · 461 阅读 · 0 评论 -
PNP: memcached
memcached1.2.8版本可以用作学习版本。内存密集型(CPU密集型, IO密集型,隔离度递增 ) memcached 本质上是一个远程的哈希表。数据结构的选择1. hash_map<string, value>lock()val = theMap.get(key)send(*val)unlock()//考虑并发(同时get set),send需要在临界区里面执行。2. typede原创 2017-06-22 19:21:51 · 535 阅读 · 0 评论 -
PNP: NetCat
阻塞式IO是带限速的。比如nc从/dev/zero读取数据,然后写到某个socket,如果接收socket速度慢,那么从/dev/zero读取也会慢原创 2017-06-05 19:24:39 · 430 阅读 · 0 评论 -
PNP : procmon
数据的收发交给网络库,业务逻辑才是网络编程的重点。侵入式 : 做成一个库,使用者连接这个库。能够看到程序的内部状态,但是需要使用同一种语言,需要重新编译。非侵入时:无需重新编译,但是无法看到程序的内部状态,只能看到cpu使用率,内存使用量等信息。如何画图 独立的画图服务器JavaScript: jqPlot flot使用libgdCPU使用率:一段时间内cpu的占空比。 比如让cpu是20原创 2017-08-07 15:43:46 · 469 阅读 · 0 评论 -
PNP: non-blocking IO
Save remaining data in some buffer Never call write() when buffer is not empty, it reorders dataAlternatively, always send from bufferStart watching POLLOUT event Meanwhile, any write() should appe原创 2017-06-15 19:14:39 · 526 阅读 · 0 评论 -
PNP : Remote Procedure Call (RPC)
RPCRPC是构建分布式系统的基础。 RPC不会限制所使用的语言,跨语言。 brpc : https://github.com/brpc/brpcprotobuf提供了message passing的能力,可以在此基础之上实现一个RPC框架。type表示消息类型,是请求还是响应 id用来标识一个请求service是一个string, 表示客户端想要调用哪个class method,表示客原创 2017-11-23 20:36:34 · 650 阅读 · 0 评论