Qx
Qx
在一台机械硬盘的机器上部署的tendisplus-2.4.2,单实例部署,进行压测测试。配置了内存上限, 但是内存没有被限制住,一路涨到了1.7G,而且长时间没有释放 应用场景,是因为redis 数据做实时落地不方便,想要用tendis替换redis,对延迟要求不是特别高,但是想限制内存使用。现在是在内网测试,线上会部署到云上,硬盘会使用高性能云盘。压力测试期间 只有一个client连接。 所以想请问一下 怎样限制内存使用,或者如何释放内存 配置文件 ``` bind 0.0.0.0 port 22182 daemon on cluster-enabled false loglevel notice logdir ./home/log dumpdir ./home/dump dir ./home/db pidfile ./home/tendisplus.pid slowlog ./home/log/slowlog #线程...
Memory-related configuration items support bringing units (KB,MB,GB) 内存相关的配置项支持带单位(KB,MB,GB)
原本想加一个功能, 通过配置文件设置 `rsync`和 `replication` 的端口, 如果配置文件中没有配置, 还和之前一样, 使用 `port` +1000 和 +2000 看了一下现有的逻辑,如果改了会带来一些不兼容的问题 现在slaveof命令和配置文件里的 slaveof的配置中, 端口都是使用的 pika的服务端口, 在需要使用 rsync和replication 时才用 pika的服务端口+偏移量计算出来, 如果改成从配置文件中读取端口配置, 那么 `slaveof` 命令和配置文件中的 主从配置 使用的端口 都需要改成 `replication` 的端口了...
my computer (win10) have two versions go program, `go 1.17.13` and `go 1.20.8` in My project A, goland use `go 1.17.13` , But the environment variable `GOPATH` of the computer...
pikiwidb 命令处理相关功能的开发 在pikiwidb中, 每一个命令处理对应一个C++的class, 当服务端收到一条命令时,会去找这个命令处理对应的对象, 如果没有找到返回错误, 如果找到后, 执行对应的命令. 函数入口(这是临时处理函数,后面会调整这个函数的实现) https://github.com/OpenAtomFoundation/pikiwidb/blob/e05878dfe99c232be3a6f40b6dc9ab73785c7db0/src/client.cc#L244 #### 命令处理相关代码 `BaseCmd` 是所有命令处理类的基类, https://github.com/OpenAtomFoundation/pikiwidb/blob/e05878dfe99c232be3a6f40b6dc9ab73785c7db0/src/base_cmd.h#L89 所有命令处理的class需要继承这个类, 并且重写 `DoInitial` 和 `DoCmd` 这两个虚函数. `DoInitial` 函数, 在命令执行前调用, 负责处理命令执行需要的参数, 例如把 命令的key找到, 命令参数的大小写转换等等 `DoCmd` 函数,...
使用对象池来解决命令对象复用, 现在只是一个实现方案的思路验证,还请帮忙多检查 对象复用池在 `cmd_object_pool` 文件, 这个会代替 `cmd_table_manager` , 后续相关的文件会删除.
修复kqueue 中,删除不存在的事件, 错误的写入error log ## Summary by CodeRabbit - **新特性** - 优化了事件删除和连接管理功能,提升事件管理的效率和可靠性。 - **bug修复** - 改进了写事件删除的错误处理,避免了不必要的日志记录。 - **性能提升** - 增加了事件数组的大小,支持更多事件的处理。
优化命令对象, 使用内存池管理命令对象 避免每次执行命令都需要复制一个命令, ## Summary by CodeRabbit - **New Features** - Introduced a `MemoryPool` class for efficient memory management. - Added new `Clone` methods across various command classes to utilize...
当前braft使用leveldb 存储 raft的log等数据, 有没有考虑支持 rocksdb 作为存储引擎. 首先我先说一下提出这个问题的原因: 1. rocksdb 和 leveldb 在读写接口上差距很小, 如果要实现改动不大 2. 很多数据库都会采用 rocksdb作为存储引擎, 如果想使用 braft 支持分布式, 还需要多一个leveldb的依赖,如果braft支持rocksdb, 那么可以少一个依赖 3. rocksdb的性能大多数场景下会强于leveldb, 替换后可能会提升braft的性能 不知道 有没有实现这个 feature 的计划