内容提要
谭新宇2023年任天谋科技IoTDB内核开发工程师,团队从高扩展性、高可用性、可观测性、性能优化、技术支持和技术沉淀六方面推进IoTDB,实现计算负载均衡、Copysets分片算法、监控面板与日志精简等成果。他提交119个PR并成为PMC成员。
延伸解读
技术决策中的场景化权衡
文章多次体现技术决策需结合场景权衡。例如,针对Share Nothing架构扩展性问题,团队利用时序数据时间戳递增的特点,通过时间分区实现负载均衡,避免数据迁移,但牺牲新节点立即服务的能力。在共识算法中,面对副本不一致,团队认为时序场景可用性优先,采用有限重试而非Fail Fast。这些案例说明,在时序数据库领域,需根据业务特点灵活选择架构和策略。
可观测性建设的量化收益
文章详细描述了可观测性建设的成果:监控指标从100多个增加到900多个,但监控模块CPU开销从11.34%降至5.81%;日志精简后打印量减少37%至74%。这些数据表明,可观测性提升不仅增强问题排查能力,还能通过优化实现资源节省。团队借鉴《性能之巅》思路构建监控面板,并自研优化监控框架,体现了可观测性作为运维核心工具的价值。
性能优化与团队协作的分布式理念
作者将分布式系统的高扩展性和高可用性理念应用于团队协作:高扩展性要求成员并行工作,避免单点依赖;高可用性要求关键任务冗余,确保知识共享。团队通过文档沉淀、自动化工具和分层支持(L0/L1/L2)提升效率。作者还通过时间记录和任务管理工具优化个人效率,使日均工作时间从10小时降至9.5小时,体现了工程思维在管理中的迁移。
编程语言选择与工程总成本
文章讨论了C/C++与Java的性能对比,指出虽然C/C++在极限优化下能更好发挥硬件特性,但工程开发需考虑总成本。作者引用PingCAP实习经历,说明Go语言虽性能不及C++,但减少了OnCall次数,节约了研发成本。因此,除超低延迟或边缘端等特殊场景外,选择团队熟悉、学习成本低的语言更有利于项目成功,强调了软件工程中稳定性、可维护性和横向扩展能力的重要性。
Q&A
谭新宇在2023年担任什么职位?
谭新宇在2023年担任天谋科技的IoTDB内核开发工程师。
天谋科技的IoTDB有哪些主要性能指标?
IoTDB可实现单节点每秒千万级数据写入、10倍无损压缩、TB数据毫秒级查询响应、两节点高可用、秒级扩容,支持单设备万级点位、多设备亿级点位管理。
2023年系统组在高扩展性方面做了哪些工作?
在高扩展性方面,系统组实现了计算负载均衡(通过时间分区避免数据迁移)、应用了Copysets分片分配算法(提高节点散度,避免OOM),并完成了企业版激活系统的设计。
IoTDB的可观测性建设取得了哪些成果?
可观测性建设包括构建了四个监控面板(近400个panel),监控指标从100多个增加到900多个,但监控模块CPU开销从11.34%降至5.81%;同时进行了日志精简,减少了37%到74%的日志打印量。
谭新宇在Apache IoTDB社区贡献了多少PR?
谭新宇在2023年提交并被合并了119个PR,Review了387个PR,并于9月受邀成为Apache IoTDB社区的PMC成员。
在性能优化方面,系统组做了哪些工作?
性能优化工作包括:在某知名测试场景中取得第一名并通过第三方评测;对行式写入接口进行瓶颈分析和优化预研,找到5个主要优化点,预计性能提升一倍以上。
IoTDB的共识算法IoTConsensus在2023年有哪些改进?
IoTConsensus在性能、稳定性、鲁棒性和可观测性方面有显著提升,优化至接近实时同步,减少了WAL堆积现象,并总结了导致WAL堆积的八大原因及解决策略。
谭新宇在时间管理方面有什么心得?
谭新宇通过记录每天半小时的工作内容,发现实际工作时间不超过11小时,通过优化协调和分工,将平均每日工作时间从10小时减少到9.5小时,提高了效率。