fx408
fx408
RT. 样本音频:[http://www.bettertomissthantomeet.com/static/data/in_16.g726](url)
首先非常感谢作者的分享。 最近也在学习PHP扩展的开发(php7),通过实践来看,PHP7 和之前的版本有很多差异, 在看这书的时候,遇到一个小麻烦,PHP7相关的和之前版本的内容 混在一起,很不方便阅读。 是不是可以把之前的 版本开一个分支保留,而 master 分支 只保留PHP7相关的内容呢?
optimizing the unordered file merge self
当前存在的后台任务包含: compaction,乱序合并,降采样,分级存储(开发中) 后台任务之间存在互斥关系,后台任务和 删除BD,删除表,shard过期等业务逻辑之间也存在互斥关系 由于后台任务缺乏有效的管理,导致互斥逻辑变得复杂且混乱 我们可能需要一个管理器,来统一调度各种后台任务,简化逻辑,降低代码复杂度
See: https://github.com/openGemini/openGemini/issues/622
### Describe your question **DBPTInfo 引用计数** 在查询和数据写入等流程中,涉及到访问 DBPTInfo 对象时,会在访问前添加引用计数,访问结束后减少引用计数 **引用计数的作用** 在删除DB、下电等流程,判断 DBPTInfo 是否在使用中(比如有查询请求在执行中),若有,则需要进行等待其他线程使用完成才进行后续操作 **当前的问题** 引用计数操作分布在多个地方,不够收敛, 需要使用者关注引用计数,在使用完成后需要使用方主动减引用计数,非常不方便,且容易出错,比如某些异常流程忘记处理,未减引用计数,导致DB无法删除等问题 **一种改进思路** - 在对象内部封装引用计数逻辑,对外屏蔽引用计数相关细节 - 要求外部访问该对象是,必须通过该方法访问 ``` func (dbPT *DBPTInfo) Execute(handler func(pt *DBPTInfo) error) error...
### Describe your question ### 背景 - 当前 openGemini 数据写入采用了 InfluxDB 的行协议,通过HTTP协议导入 - 存在着以下一些问题: 1. 客户端编码,服务端解码开销大 2. 需要对每行数据的 field 和 tag 进行排序,开销较大 3. 每行数据都有表名称,tag key 和 field key,批量写入时信息冗余 4. 相较于直接使用...
Use AppendIntWidth4 instead of AppendInt to handle year Use AppendIntWidth2 instead of AppendInt to handle month, day, hour, minute, and second Benchmark results: goos: windows goarch: amd64 pkg: time cpu:...