kvdb之路:
1.一切从客户端开始,开始接手客户端,参照着淘宝的tbstore开始了socket编程之路。渐渐熟悉和修改出了自己的storeSocket,然后随着讨论的深入,加上了连接池,连接池使用apache pool管理socket,apache pool负责管理socket的创建、保持一定的连接数,最大连接数,销毁,检测连接正常。因为客户端需要面对多台服务器通信,每个服务器又有多个socket连接,所以又设计出了Server 和全部机器状态表SAT,当某台Server的某次通信失败,并且尝试3次后都不能正常通信(根据错误情况,如果是获得确定的信息,第二次重试直接获取另一台服务器通信),设置该Server在SAT信息为不可用,并在后台开启进程进行检测。Server对象也被另一个连接池管理,维护Server列表,持有SAT,对外封装业务接口。最终独自完成了客户端代码的开发。期间讨论出我们的设计协议(两个人通信的基础)
2.kvdb0.1,完成了客户端代码,开始使用erlang构建与sp的通信代码,最初的spconnect.erl,与spserver通信,至2010.10月份还依旧能看到以前的注释。然后是wp,接手服务器sat模块熟悉和重构sat,设置sat状态存储结构和存储方式,写wp模块。最后完成了协作0.1上线。
3.kvdb0.2,0.1上线后维护着系统,3个月 的使用中逐渐出浮现一些小bug,如:日志格式、后台的错误、特殊字符的存储不正确(存储的时候很多是富文本)、 服务器状态的新需求,借鉴java的log4j,在研究了erlang-log底层的代码后&