存储结构的细节暂时可能还无法确定,但最初读了bitcask的论文之后,心里基本也有了底儿, 甚至在看到kafka的存储结构说明的时候, 更是板上钉钉的事儿了,基本上是append only write, 这可以很大程度上利用磁盘的IO能力, 缩短各个存储结构之间的差距,不过, 我还是想在这个基础上在发挥一下,所以让实习生帮忙验证新基于BigMemory的推测出来的另一种方式, 目前看来效果不错, 只不过可能需要添加冗余结点来保证可用性和可靠性。(http://sna-projects.com/krati/有些思想也是类似的, 但还是不能吃现成的饭)
集群的管理打算用zookeeper, jgroups虽然之前用的,了解过zookeeper之后, 感觉还是zookeeper甚得吾心,这东西用的好了,不但我手头上的项目可以用,部门其他项目也可以共享其服务, 岂是不亦乐乎?只不过, 基于zk的group membership管理可能还远远满足不了需求,需要做更进一步的扩展和考虑,这部分还是没有摆平, 明显不是zk的理解程度之类的问题了, 还要综合考虑产品的特性和要求, 以及部署和管理相关关注点。
还有心烦的就是, 系统架构用Actor模型来构建应该很简单, 也避免了不必要的并发控制, 可Java实现Actor实在是蹩脚, 不得不一个Actor耗费一个线程而且还不是那么正宗, Task-Based Concurrency的结构模拟Data-Based Concurrency的结构,再怎么说,也不会那么完美的匹配。 想直接用Scala写了算了,可整个team也就我玩,其它的都不了解, 带着这么批新人做项目就是这个不爽, 走一步都得掂前顾后…
其它没啥太好说的了, 就是感觉好像今年我没咋好好读几本书…
没有评论:
发表评论