#database-driver #client #kv #server #agilulf #key #request

nightly agilulf_driver

Agilulf KV 服务器的客户端

1 个不稳定版本

0.1.0 2019年7月19日

#91 in #database-driver

MIT 协议

55KB
1K SLoC

Agilulf

Agilulf 数据库驱动(针对 Rust)


lib.rs:

这是 Agilulf KV 服务的客户端。

未来将进行许多性能优化。但现在它足够简单和快速。

此软件包测试中的基准测试使用 MemDatabase 以避免数据库算法的影响。但由于 MemDatabase 是通过 SkipList 简单实现的,它将消耗大量 RAM。

提供两个结构体以连接服务器

  1. AgilulfClient:基本客户端,它将发送请求并接收响应,然后返回函数(实际上是返回 Poll::Ready)。批处理发送策略相当简单:send_all。响应顺序与请求顺序保持一致。

  2. MultiAgilulfClient:客户端可以使用多个 TCP 流。同时使用多个 TCP 流可以显著提高性能。一个 MultiAgilulfClient 将打开多个 AgilulfClient 并给它们分配一个 ID。任何请求都将通过键进行哈希处理并发送到相应的客户端。由于它是一个 KV 服务器,只需保持相同键的操作顺序一致即可。注意SCAN 不同,此方法将影响多个键。需要守卫(就像 CPU 的内存守卫)进行此操作。

依赖项

~5.5MB
~111K SLoC