共享内存多进程key value操作
摘要:这个方法的优势是多进程,劣势也很明显,只允许操作key为uint32 value为uint32的数据。 https://www.cnblogs.com/dearplain/p/11578588.html 1.初始化,在共享内存上生成40个1000数组,数组每个项8个字节,4字节是key,4字节是va
阅读全文
posted @
2019-09-24 15:35
dearplain
阅读(462)
推荐(0)
分布式存储bfs
摘要:来自bilibili的bfs,很喜欢它的分层结构,我认为,把它改造成类似hadoop的平台,也是可以的。 1.实现分布式存储 其实就是同步元信息和调度的问题,同步元信息可以使用zk,调度具体看应用。bfs的调度是随机的,根据硬盘容量来决定。bfs的调度和存储是分开的,因此可以定制,这也是它的优点之一
阅读全文
posted @
2018-08-30 23:55
dearplain
阅读(968)
推荐(0)
后台架构 一些需要注意的地方
摘要:api1.api或者架构的设计,大改动时候应该发出说明,留有时间让大家思考讨论,并尽量参考别人的设计。2.api做到尽量通用并且简洁,能batch多条命令。3.api在某些情况下,推比拉更有效率。api也更优雅。 测试1.测试环境和可调试环境的搭建。测试环境的搭建需要有文档和说明。2.如果涉及硬件,
阅读全文
posted @
2018-06-09 23:47
dearplain
阅读(453)
推荐(0)
逻辑引擎、工作流、CMDB小感
摘要:工作流是啥? 在界面上画画点点就能生成代码,这是很吸引人的事情,也是很多自动化工具追求的目标。工作流就是这么一个东西,通过定义流程和输入,就能实现你想要的东西,不需要编写代码。 工作流的实现 通过解析流程图,可以知道执行什么逻辑、输入什么数据和生成什么数据。 工作流和逻辑引擎为什么没有真正在代码的世
阅读全文
posted @
2018-02-03 15:22
dearplain
阅读(1278)
推荐(0)
如何保证数据掉电不损坏?
摘要:1. 建议使用ext3 ext4等日志式文件系统,并打开journal。 2. 文件系统无法保证write是原子的,所以,建议直接使用一些优秀的数据库保存数据或者配置,比如sqlite。 sqlite可以考虑打开synchronous = FULL, fullfsync = 1。如果还是出现文件损坏
阅读全文
posted @
2017-12-06 17:15
dearplain
阅读(1124)
推荐(0)
消息推送与同步协议的思考
摘要:同步状态和消息推送,几乎是每个app或者设备都需要的,设计一个省流量,能简化两端逻辑,能应对业务增长的框架尤为重要。 我认为,以下方法不够好: 1.每一个状态都设计一个消息,导致每增加一个状态,服务端都需要改动。 2.每次上线后都请求一次所有类型的最新的消息。 3.最新的消息只推送一次就完事。 第一
阅读全文
posted @
2017-11-25 22:25
dearplain
阅读(1100)
推荐(0)
cassandra的gc调优
摘要:我们用的是cassandra3.7官方的docker镜像,在生产环境发现有一个小时一次停顿的现象。我猜测是java gc的原因,于是看了cassandra的gc日志,果然发现有每小时长达300ms-2s的停顿。 经过研究发现是netty的原因,netty用了direct memory,因为是通过mm
阅读全文
posted @
2017-11-19 11:33
dearplain
阅读(1622)
推荐(0)
加速和监控国际网络
摘要:走udp明显更稳定,而用tcp,无论你是直连,或者走香港中转,还是其他地方中转,都无法保持稳定。反而不如udp直连。(唯一稳定的是美国到中国的) 监控采用的是influxdb和grafana。只需要写sql,grafana能自动显示图表。influxdb往里面写入一些map就行,其中tag是索引,支
阅读全文
posted @
2017-10-29 14:08
dearplain
阅读(246)
推荐(0)
国际网络环境对库的影响
摘要:国际网络环境可以理解为延迟很大、经常掉线、丢包的环境,和跨机房环境是一样的,不过,前者掉线严重,延迟更大,比如德国来回一般有300ms,美国有200ms,新加坡一般是90ms。国际网络环境掉包非常严重,有时候可能达到60%以上。 golang标准库RPC 虽然是表面看是block调用,但是内部的实现
阅读全文
posted @
2017-09-24 09:52
dearplain
阅读(183)
推荐(0)
newlisp
摘要:Windows で使う場合 Windoows用のインストーラからインストールすると、newLISP のIDE用のアイコンが出来るのでそこから使ってもいいし、コマンドプロンプトで newlisp と入力して実行してもいい。 コマンドプロンプトからの利用で、複数行の記述をしたい場合は、 といった風に [
阅读全文
posted @
2013-06-20 20:18
dearplain
阅读(232)
推荐(0)
中规模程序的教训(C/C++ 2万-10万行)
摘要:自己的变量自己管理,减少互相依赖:模块化,服务化,通过函数互相调用。多用get set方法。多用函数,就算一些过程不能封装成可复用函数,也要尽量封装。多用变量和复制 每个变量只有一种含义减少入口 减少参数 不要暴露结构体 让数据来驱动函数前进 多用数据驱动减少入口函数 减少回调 多使用状态(当然可...
阅读全文
posted @
2013-01-21 14:17
dearplain
阅读(419)
推荐(0)