Skip to content
This repository was archived by the owner on Jun 23, 2022. It is now read-only.
This repository was archived by the owner on Jun 23, 2022. It is now read-only.

代码重构与化简 #141

Description

@qinzuoyan

完成

TBD

  • 将cli的接口从core中挪到dist中 (cli: refactor cli related code #156)
  • 移除serialization中对protobuf的支持,从而可以删除所有的xxx.types.h的头文件,只保留_types.h即可
    (serialization: completely remove protobuf support #161, *: remove *.types.h files #164)
  • 移除 tools/repli (tools: remove repli #162)
  • 拆出随机数的接口到utility (util: make rand a standalone util decoupled from rdsn runtime #163)
  • 拆出clock的接口到utility
  • 将logger并到utility,从而使得utility可以成为脱离rdsn的库
  • 一些staled feature的删除:start_delay、rpc_message中的local_hash
  • 彻底删除memory provider,换成tcmalloc
  • 将task、rpc、file的c接口拆成concurrent、rpc、aio的三个模块,从而解除这三个模块间的耦合
  • 将uri resolver从rpc engine中挪出,放到client库中
  • 移除对group address的支持,把rpc engine变成通用、易理解的rpc库
  • 整理bootstrap流程。至少将创建线程池的功能从配置文件挪到源代码,努力把task做成通用的线程池库。
  • 合并failure_detector和failure_detector_multimaster
  • 整理register_component_provider的机制,把注册放到对应的模块中,而不要堆到tool_api.h下。
  • 测试性能影响,可能的话删除shared log
  • 整理last_durable_decree、last_committed_decree、last_flushed_decree
  • 把删表时候添加的各种奇怪的work around整理清楚
  • 将simple kv和rocksdb分别作为storage_engine放到一个公共的目录中,推动pegasus和rDSN的合并。pegasus和rdsn的分离,对于项目的开发以及pr都是不太有利的。
  • 整理C++ client:争取在异步接口层能用到rdsn的task机制;开启条件编译,减小client的库大小;可能的话利用SWIG来统一生成所有的客户端SDK。或者将 C++ client 整理为简单的 C API,可以支持其他语言如 php。
  • 整理测试,把测试和逻辑代码位置放的近一些。
  • 各种satinizer的引入,valgrind的接入,代码覆盖率工具的接入
  • 整理thrift接口,按meta_server, replica_server, base等这些方式区分开
  • 使用 rpc_holder 简化相关的逻辑代码
  • 整理构建过程,让 thrift 的编译生成结果放在 builder 下而不是作为源文件
  • 直接编译官方 thrift compiler 而非下载魔改版本的 compiler。
  • 将 c++ 的 gpid 改名为 gpid_t
  • rocksdb 减少侵入式修改
  • 把 simple_logger 用 https://github.com/gabime/spdlog 代替。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions