这篇文章主要整理了一下计算机中的内存结构,以及 CPU 是如何读写内存中的数据的,如何维护 CPU 缓存中的数据一致性。什么是虚拟内存,以及它存在的必要性。如有不对请多多指教。
CI/CD 的概念非本文重点,不解释了。从上图可以看出。Continuous Profiling(持续性能分析,下文简称为 CP)是生产向开发进行反馈的非常重要的手段。
调度是将稀缺资源分配到一定时间内的不同任务上的决策过程,目的是优化一个或多个目标。两轮车调度场景是指通过预测未来用户的骑行需求,决定各站点车辆的调配任务,并将这些任务分配给合适的运维人员来执行,从而满足用户的骑行需求。在这个调度场景里会涉及三个对象,一是车辆,目标是用户需求满足率高,移车成本低,车辆翻台高。二是运维,目标是运维效率高,运维人员体验好。三是用户,目标是用户体验好。
本文会重点讲述我对招聘、目标管理、团队沟通和工程文化的理解。挑选这几个主题讲述,主要是因为在带团队的这一段时间内,我认为这几个要素是团队长期发挥战斗力和创新能力的核心。得到这个认识对我来说并不容易,市面上有纷繁复杂的书籍(机场书店尤其多)尝试告诉你什么叫领导力,公司也有相关的培训介绍,周围也有很多 TL 用每日的言行告诉你他们是怎么做的。但是我认为这些来自周围的知识,很多是无效的,有更多是错误的。例如有 TL 每天在办公室坐到半夜下班,给团队巨大的加班压力,表面看起来是奋斗,实际上会让大家趋向于更多关注工作时长,从而降低对了对工作价值的思考;又有一些例子是,当团队同学犯错后,把故障和绩效强关联,在我看来这不仅无助于大家深入思考系统健壮性,更是鼓励推责,扼杀创新;更常见的例子可能是 TL 积极向上汇报,承诺超出团队负责的交付能力,导致团队完全无视工程师文化,久而久之优秀的人才逐渐流失,团队整体研发能力实则越来越弱。
字节跳动内部已经将ClickHouse广泛应用,并在原引擎基础上重构了技术架构,本系列文章将从Upsert、多表关联查询、可用性提升等多方面介绍字节跳动基于ClickHouse的能力增强实践。