GitHub - mit-pdos/noria:通过动态、部分有状态的数据流实现快速 Web 应用程序

主要观点:Noria 是为高性能 Web 应用设计的新流式数据流系统,基于相关论文,可作为读密集型 Web 应用的快速存储后端,自动更新缓存结果,减少内存开销并支持动态数据流和查询更改。它有 MySQL 适配器,能让现有应用轻松切换到 Noria,还提供 Rust 绑定和 MySQL 适配器两种交互方式,以及 CLI 和 Web UI 用于数据检查,代码结构包含多个子 crate 和外部工具,开发时可通过 cargo 命令进行测试、构建文档等操作,其许可证为 Apache 2.0 或 MIT 许可,贡献需遵循相应条款。
关键信息

  • Noria 基于 Jon Gjengset 的博士论文及相关论文,像数据库但预计算缓存关系查询结果以提高读取速度。
  • 有 MySQL 适配器可实现二进制 MySQL 协议,如运行 Lobsters 类似工作时吞吐量提高 5 倍。
  • 遵循服务器-客户端模型,需启动noria-server二进制文件且 ZooKeeper 运行,需 nightly Rust 编译。
  • 可通过 Rust 绑定或 MySQL 适配器与 Noria 交互,前者有相关文档和示例,后者需确保适配器运行。
  • 有 CLI 和 Web UI 用于检查数据,包括 MySQL 客户端和 Noria 自己的 Web 界面。
  • 代码结构包含多个负责不同组件的子 crate,如noriaapplicationsserver/src/等。
  • 许可证为 Apache 2.0 或 MIT 许可,贡献需遵循相应条款。
    重要细节
  • noria crate 提供 Rust 绑定,noria-mysql为 MySQL 适配器。
  • 运行noria-server时可指定部署、地址和分片等参数。
  • 测试套件使用cargo test,构建和打开文档使用cargo doc --open
  • 可通过 ZooKeeper 发现 Noria 的 REST API 地址和端口,基本图形 UI 运行在http://IP:PORT/graph.html,还可部署更高级的 Web UI。
阅读 22
0 条评论