gydtep 发表于 2021-1-29 16:58:58
阿里云云效代码智能语法服务的底层技术是LSIF(Language Server Index Format),它是一种持久化语言的索引的图存储格式,通过图的格式,表示了“代码文档”-> “语法智能结果”之间的事件关系。gydtep 发表于 2021-1-30 10:12:48
lsif的图存储格式让人自然地联想到用图数据结构存储,图查询的速度也比较快,然而由于索引变化迭代较快,频繁更换的ID导致图存储难以适配增量方案,不同代码库不同语言的索引数据很难在一张图中结构化,参考了社区的相关实践,考虑到成本和性能,因为ES天然地适合大规模的数据存储和索引,我们最后选择了用ES(Elasticsearch)做结构化数据存储。gydtep 发表于 2021-1-30 15:23:52
第三大块是应用架构,目前我们中台里面做的比较多的叫星环,星环说白了,它想达到架构的本质目的就是将单纯的代码共建模式,抽象成横向和纵向的业务包模式,做到业务与业务隔离,业务与平台隔离。gydtep 发表于 2021-1-31 12:31:02
架构师一定要有技术的广度。大家一定要学会积累,积累到一定程度以后,你会做到无师自通。比如你了解网络、数据库,然后你又了解了磁盘30%,当这些知识逐渐成体系了,你是有能力去消化和打通不同技术点背后的相关性,对于你的个人能力的提升和认知层面的提升有巨大的帮助。gydtep 发表于 2021-1-31 19:38:10
确认所有参与节点 Prepare 成功的情况下,我们向全局事务日志添加一条事务提交记录作为 COMMIT POINT。在 TM 发生异常的情况下,我们可以选择新的 TM 继续完成两阶段提交,新 TM 会根据主库中是否存在 COMMIT POINT 记录选择恢复事务状态或者回滚事务。gydtep 发表于 2021-1-31 20:37:18
XA 事务在并发行上有一定的局限性,在执行的过程中,我们必须使用类似 Spanner 锁定读写的事务策略,为所有 SELECT 操作带上 LOCK IN SHARE MODE ,造成读写相互阻塞。gydtep 发表于 2021-2-1 11:05:24
但 Percolator 也有一些已知缺陷:提交阶段延迟较高,仅支持乐观锁场景、冲突错误只能在提交时汇报等。XA 协议全名为 X/Open XA 协议,是一项通用的事务接口标准。XA 协议也基于两阶段提交的策略。gydtep 发表于 2021-2-1 14:51:29
一个事务如果使用 START TRANSACTION READ ONLY 开启,那么我们就会将事务标记为只读事务。我们会直接通过多个 autocommit 的单语句获取需要的数据,避免长期持有连接和事务的开销。gydtep 发表于 2021-2-1 16:21:12
2015 年由 Linux 基金会发起了一个 The Cloud Native Computing Foundation(CNCF) 基金组织,CNCF基金会的成立标志着云原生正式进入高速发展轨道,Google、Cisco、Docker 各大厂纷纷加入,并逐步构建出围绕 Cloud Native 的具体工具,而云原生这个的概念也逐渐变得更具体化。gydtep 发表于 2021-2-1 17:00:06
这主要因为 CNCF 基金会在当时的核心拳头软件就是 K8s,因此在概念定义上主要是围绕着容器编排建立起来的生态。其实这也是为什么我们可以看到 CNCF 定义云原生的时候有时感觉就是再说容器生态。