<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[archimekai的博客]]></title><description><![CDATA[从小白到高手的成长之路 （好吧，现在我还是只小白~~）]]></description><link>https://blog.youkuaiyun.com/archimekai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; archimekai]]></copyright><item><title><![CDATA[如何评估一个单轮NL2SQL查询的难度（0~100）]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/154474270</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/154474270</guid><author>archimekai</author><pubDate>Thu, 06 Nov 2025 08:17:43 +0800</pubDate><description><![CDATA[综合考虑知识库，上下文，用户查询后，查询是否定义完整、清晰、无歧义。]]></description><category></category></item><item><title><![CDATA[WIP 生成式推荐模型中的长序列特征：在线存储]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/150974213</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/150974213</guid><author>archimekai</author><pubDate>Fri, 29 Aug 2025 09:34:25 +0800</pubDate><description><![CDATA[Redis: This is a popular choice for storing user sequence data because of its high performance and versatile data structures, including lists and sorted sets.
Data structure: User behavior sequences can be stored using Redis lists, with each item in the li]]></description><category></category></item><item><title><![CDATA[生成式推荐模型的长序列特征：离线存储]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/150962711</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/150962711</guid><author>archimekai</author><pubDate>Thu, 28 Aug 2025 21:33:49 +0800</pubDate><description><![CDATA[【代码】生成式推荐模型的长序列特征：离线存储。]]></description><category></category></item><item><title><![CDATA[特征工程中的point in time Join （PIT Join）]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/150259812</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/150259812</guid><author>archimekai</author><pubDate>Tue, 12 Aug 2025 08:01:58 +0800</pubDate><description><![CDATA[编纂： archimekai。]]></description><category></category></item><item><title><![CDATA[试玩hudi docke demo]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/143992905</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/143992905</guid><author>archimekai</author><pubDate>Sat, 23 Nov 2024 15:15:57 +0800</pubDate><description><![CDATA[两个参数，不然会报错一些包找不到。]]></description><category></category></item><item><title><![CDATA[（小技巧）Flink Job中如何标注某个异常是不可恢复的]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/142598239</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/142598239</guid><author>archimekai</author><pubDate>Fri, 27 Sep 2024 17:09:10 +0800</pubDate><description><![CDATA[方式2 直接继承上述SuppressRestartsException。]]></description><category></category></item><item><title><![CDATA[Tesseract：在线高性能表结构变更方法（VLDB23）]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/142321110</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/142321110</guid><author>archimekai</author><pubDate>Wed, 18 Sep 2024 00:04:11 +0800</pubDate><description><![CDATA[支持在线的、事务性的表结构变更对DBMS的线上使用是至关重要的。但是现有的DBMS对这个功能支持不足。Tesseract提供了一种在数据库系统内部原生支持DDL的方法。通过合理使用MVCC和快照隔离，可以将DDL视为一种数据修改（DDaM），从而支持上述在线事务性的表结构变更。实验结果显示，Tesseract能够在执行DDL的同时提供高性能的DML。]]></description><category></category></item><item><title><![CDATA[Google Vortex流式存储引擎分析]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/139887763</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/139887763</guid><author>archimekai</author><pubDate>Tue, 17 Sep 2024 23:51:02 +0800</pubDate><description><![CDATA[面向写入和读取，使用不同的存储格式，从而兼顾写入性能和读取性能使用thick client library，减轻服务器的压力写入需要server的，但是读取可以不要server，直接让客户端从分布式存储上读，从而降低存储成本。]]></description><category></category></item><item><title><![CDATA[Google Dremel和parquet的复杂嵌套数据结构表征方法解析]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/136441120</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/136441120</guid><author>archimekai</author><pubDate>Mon, 04 Mar 2024 00:00:38 +0800</pubDate><description><![CDATA[转载请注明出处。作者：archimekai核心参考文献： Dremel: Interactive Analysis of Web-Scale Datasets。]]></description><category></category></item><item><title><![CDATA[为什么postgresql中的字符串排序结果会不一样]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/136280487</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/136280487</guid><author>archimekai</author><pubDate>Sun, 25 Feb 2024 14:24:27 +0800</pubDate><description><![CDATA[转载请注明出处，作者：https://blog.youkuaiyun.com/archimekai/]]></description><category></category></item><item><title><![CDATA[RocksDB是如何实现存算分离的]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/135962467</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/135962467</guid><author>archimekai</author><pubDate>Wed, 31 Jan 2024 22:31:24 +0800</pubDate><description><![CDATA[单机的磁盘（存储能力）和CPU（计算能力）的配比常常不均衡，有时计算能力会有富裕，有时存储能力会有富裕。积少成多就会导致存储空间或计算能力的浪费。如果能把磁盘放在一个池子里，就能减少要预留的空间（100个服务，各预留1TB，vs 100个服务，总共预留10TB），避免空间浪费。对zookeeper或etcd，paxos或raft有一定了解的读者能发现，这一问题是经典的分布式共识问题。要达成共识的对象是当前哪个进程能够修改数据。该技术类似于一种基于单调递增时间戳的分布式锁。]]></description><category></category></item><item><title><![CDATA[DB之家：数据库开发工程师的衣柜（数据库性能优化点子集合）]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/135961551</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/135961551</guid><author>archimekai</author><pubDate>Wed, 31 Jan 2024 20:40:50 +0800</pubDate><description><![CDATA[减少布隆过滤器所需要的内存。参考文献：Mun, J. H., Zhu, Z., Raman, A., & Athanassoulis, M. (n.d.). LSM-Trees Under (Memory) Pressure.]]></description><category></category></item><item><title><![CDATA[初探Spark SQL catalog缓存机制]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/135492732</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/135492732</guid><author>archimekai</author><pubDate>Wed, 10 Jan 2024 21:22:36 +0800</pubDate><description><![CDATA[进一步对Spark SQL的报错进行分析，可见报错点是在org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD.compute(JDBCRDD.scala:320)。从代码中可见，Spark直接使用catalog中缓存的表结构拼接SQL语句下发，直到SQL语句真正被pg执行时，才识别到c1这一列已经不存在的错误。先说结论：Spark SQL catalog中对表结构的缓存一般不会自动更新。]]></description><category></category></item><item><title><![CDATA[postgresql vacuum流程分析]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/135174738</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/135174738</guid><author>archimekai</author><pubDate>Sat, 23 Dec 2023 21:55:35 +0800</pubDate><description><![CDATA[VACUUM是postgresql MVCC机制不可分割的组成部分。postgresql在管理同一个元组的多个版本时，采取在堆表页面上从老版本到新版本放置元组的方法，每个元组都记录了xmax和xmin用于判断其可见性。这样的好处是（1）在索引键没有更新时，btree始终指向最老的元组，更新非索引键的数据无需更新btree中的指针（2）回滚的事务时无需专门进行undo（对比MySQL有专门的回滚段，如果发生了事务回滚时需要从回滚段中把上个版本的数据还原出来的）。]]></description><category></category></item><item><title><![CDATA[postgresql heap_update流程分析]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/135036726</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/135036726</guid><author>archimekai</author><pubDate>Sat, 16 Dec 2023 19:31:49 +0800</pubDate><description><![CDATA[postgresql heap_update流程分析。]]></description><category></category></item><item><title><![CDATA[分布式数据密集型系统设计哲学]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/130874829</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/130874829</guid><author>archimekai</author><pubDate>Thu, 25 May 2023 20:32:22 +0800</pubDate><description><![CDATA[系统是有内涵和外延，有边界的。当关键需求的变化超过边界，系统现有的架构也就无法支持了。产品经理的需求变化如果超过了一定的度，就要求软件系统发生质变才能支撑。为了方便团队统一认识，达成一致，尝试从哲学层面总结一些大家都认同的系统设计哲学。关键需求决定关键架构，关键需求不明确，架构也就定不下来。奥卡姆剃刀原理：如无必要，毋增实体。]]></description><category></category></item><item><title><![CDATA[跨语言环境如何高效开会]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/130615309</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/130615309</guid><author>archimekai</author><pubDate>Thu, 11 May 2023 09:54:47 +0800</pubDate><description><![CDATA[免得说了半天发现说的不是同一件事。语言表达欠佳的，加个翻译（否则互相听不懂）所有的人都按金字塔原理来说话，先说结论。提问完一个问题，再提另一个问题。别着急，让每个人把话说完。]]></description><category></category></item><item><title><![CDATA[两阶段提交（two phase commit，2PC）故障恢复原理分析]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/129659011</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/129659011</guid><author>archimekai</author><pubDate>Sun, 19 Mar 2023 23:47:41 +0800</pubDate><description><![CDATA[很多分布式方面的书籍和网络上的很多博客都有关于两阶段提交的介绍。但是遗憾的是，大部分文章只介绍了两阶段提交在正常状况下的处理流程，并未介绍出现故障时，两阶段提交如何进行故障恢复，确保事务的正确性。这就好像上了一道宫爆鸡丁，只是把其中的花生吃掉了，但是没有吃鸡丁，让读者读后无法掌握两阶段提交的精髓。

基于此，笔者试图较为完整地介绍基本的两阶段提交协议，特别是介绍其日志机制，以及两阶段提交协议在面对进程重启（Failure，F）和网络超时（Timeout， T）这两种典型故障时是如何进行故障恢复的，以飨读者。]]></description><category></category></item><item><title><![CDATA[腾讯高性能图计算框架Plato代码阅读（二） 图加载]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/122738893</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/122738893</guid><author>archimekai</author><pubDate>Sat, 29 Jan 2022 02:05:05 +0800</pubDate><description><![CDATA[腾讯高性能图计算框架Plato代码阅读（二） 图加载
在pagerank计算逻辑中，图加载和图切分是通过如下调用完成的：
  // init graph
  plato::graph_info_t graph_info(FLAGS_is_directed);
  auto pdcsc = plato::create_dcsc_seqs_from_path&lt;plato::empty_t&gt;(
    &amp;graph_info, FLAGS_input, plato::edge_format_t]]></description><category></category></item><item><title><![CDATA[腾讯高性能图计算框架Plato代码阅读（一） 进程启动及环境初始化]]></title><link>https://blog.youkuaiyun.com/archimekai/article/details/122677315</link><guid>https://blog.youkuaiyun.com/archimekai/article/details/122677315</guid><author>archimekai</author><pubDate>Mon, 24 Jan 2022 23:45:50 +0800</pubDate><description><![CDATA[腾讯高性能图计算框架Plato代码阅读（一） 进程启动及环境初始化
archimekai archimekai@163.com
引言
Plato是腾讯开源的高性能分布式图计算框架。Plato吸收了Gemini和KnightKing两个学术界系统的优秀思想，常见算法的执行性能可以比Spark GraphX快一到两个数量级，同时内存消耗比Spark GraphX降低一到两个数量级。
接下来我同大家一起阅读plato源代码，学习其中的设计方法和编程技巧。
进程启动及环境初始化
进程启动命令
进程启动命令在 run]]></description><category></category></item></channel></rss>