这是学习笔记的第 1798篇文章
今天晚上在客厅里来回走了几十圈,最后把最近碰到的一些问题思绪理了下。
最近的一次技术讨论,领导的一个问题一下子点拨了我。我们聊的是一个元数据交互的场景,我提出了目前数据同步的一些问题,也列举了目前在同步过程中双方存在的一些问题和建议,以及改进措施,整体来说,思路还是比较清晰的。领导很认真的问了一句:为什么数据库需要系统层面的元数据?这个问题看起来很好回答,其实需要解释的是,在数据库中关注的系统层面信息除了CPU,内存和磁盘这几个硬性指标(这些信息其实数据库层面也完全可以自己采集到),在这个基础之上的一个深层次需求其实是数据库层面要做高可用,需要让系统同学不要把主从部署在一个宿主机上,但问题又来了,系统同学也不知道主从是不是在一个宿主机上,问题绕了一圈又折回来了。所以问题转变为数据库需要系统层面的元数据,但是希望抽取的元数据是增量的,而不是全量的。
这类的问题和需求在工作中经常会碰到,如果说解决方案,其实有很多种或者在流程中都可以做到取舍。但是通过这么一个看起来很简单的问题折射出了我们还有很多细节的工作需要去补充完善。
这个问题再更深一个层次,那就是系统同学应该不需要去关注主从服务部署在一个宿主机上,有了这个基础背书,那么数据库其实也就不需要强依赖系统层面的元数据信息了。但是这个问题光靠背书没法保证,怎么解决呢,其实可以通过标签系统来完美解决。
所以一个看起来很简单的一个问题,在解决方式和方法上有很多需要考量的地方,我想这也是我们讨论的价值所在,也是后续要开展的工作的价值所在。
故事有点长,其实主要想表达的就是一个看起来很简单的问题,从表面情况来说,发现的问题很多,解决方法可以解决现状,但是我们需要反思,这个问题本身的目的是什么,如果能从根因的角度来出发,找到问题的本源,那么对于这个问题的分析就上升了一个层面,同时对于问题的边界能够划分清楚,这样其实后续的对接中,就不需要过度的强关联依赖。
所以对于我们从事技术工作来说,我有以下的几个建议,供参考。