<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Liao Jiayi · English</title><description>Notes on data infrastructure, AI systems, robotics, and the industries behind the technology.</description><link>https://www.liaojiayi.com/</link><language>en</language><item><title>What Makes Good Data Judgment?</title><link>https://www.liaojiayi.com/en/blog/data-taste/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/data-taste/</guid><description>What does good data taste mean for large language models, from collection and selection to training, quality, and evaluation?</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>LLM Data Processing from Kimi K1.5 to K3</title><link>https://www.liaojiayi.com/en/blog/kimi-data/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/kimi-data/</guid><description>Notes on the data-processing techniques in the Kimi K1.5, K2, and K3 technical reports.</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Large-Scale Text Deduplication for LLMs</title><link>https://www.liaojiayi.com/en/blog/llm-text-dedup/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/llm-text-dedup/</guid><description>Deduplicating LLM documents well at scale is a complex problem.</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Continual Learning: The Next Direction for Intelligence?</title><link>https://www.liaojiayi.com/en/blog/continual-learning/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/continual-learning/</guid><description>Continual learning lets models absorb feedback during use and keep improving, adding another path to intelligence beyond pretraining and post-training/RL.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Tracing Large Models in Recommendation Systems</title><link>https://www.liaojiayi.com/en/blog/rec-llm/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/rec-llm/</guid><description>New wine bottles for familiar ideas: how can LLM techniques systematically reshape recommendation systems?</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Paper Notes</title><link>https://www.liaojiayi.com/en/blog/papers/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/papers/</guid><description>Notes on papers I have read.</description><pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Reinforcement Learning Notes</title><link>https://www.liaojiayi.com/en/blog/rl/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/rl/</guid><description>Exploring reinforcement-learning concepts and infrastructure.</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate></item><item><title>SGLang Notes (Mainly Awesome-ML-SYS-Tutorial Notes)</title><link>https://www.liaojiayi.com/en/blog/sglang/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/sglang/</guid><description>SGLang notes</description><pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate></item><item><title>(copy) MIT IAP 2025 / 6.S186</title><link>https://www.liaojiayi.com/en/blog/mit_robot/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/mit_robot/</guid><description>A few notes</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate></item><item><title>LeRobot Notes: The Basic Workflow</title><link>https://www.liaojiayi.com/en/blog/lerobot/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/lerobot/</guid><description>Notes on LeRobot datasets, training, and policies.</description><pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Image and Video Processing Pipelines</title><link>https://www.liaojiayi.com/en/blog/video-image-pipeline/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/video-image-pipeline/</guid><description>Image and Video Processing Pipelines</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate></item><item><title>The Robot LIBERO Dataset</title><link>https://www.liaojiayi.com/en/blog/robot-libero/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/robot-libero/</guid><description>Notes from exploring the LIBERO robotics dataset.</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Inside a General-Purpose LLM Evaluation Framework</title><link>https://www.liaojiayi.com/en/blog/llm_eval/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/llm_eval/</guid><description>Inside a General-Purpose LLM Evaluation Framework</description><pubDate>Sun, 28 Dec 2025 00:00:00 GMT</pubDate></item><item><title>PyTorch Tensor Transformations</title><link>https://www.liaojiayi.com/en/blog/tensor/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/tensor/</guid><description>PyTorch Tensor Transformations</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Key Implementation Details of vLLM’s KV Cache</title><link>https://www.liaojiayi.com/en/blog/vllm/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/vllm/</guid><description>KV caching is essential to vLLM inference. Growing contexts drive frequent architectural changes, including prefill/decode separation and new cache storage options.</description><pubDate>Sat, 08 Nov 2025 00:00:00 GMT</pubDate></item><item><title>DeepSpeed ZeRO: Source Code and Execution Flow</title><link>https://www.liaojiayi.com/en/blog/deepspeed/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/deepspeed/</guid><description>How ZeRO reduces redundant GPU memory through sharding, with a walkthrough of DeepSpeed&apos;s initialization and training flow.</description><pubDate>Tue, 22 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Frequently Used Tools</title><link>https://www.liaojiayi.com/en/blog/frequent-use/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/frequent-use/</guid><description>Frequently Used Tools</description><pubDate>Sat, 11 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Stream Processing (4) - Failover in Flink</title><link>https://www.liaojiayi.com/en/blog/flink-jm-tm/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-jm-tm/</guid><description>How Flink failover works, why it limits some applications, and alternative recovery approaches.</description><pubDate>Sun, 16 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Data Lakes (2) - How Iceberg&apos;s Core Features Work</title><link>https://www.liaojiayi.com/en/blog/lake-iceberg/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/lake-iceberg/</guid><description>An exploration of Apache Iceberg&apos;s file organization, snapshots, deletes, schema evolution, and how its approach differs from Hudi.</description><pubDate>Sun, 29 May 2022 00:00:00 GMT</pubDate></item><item><title>Data Lakes (1) - How Hudi&apos;s Core Features Work</title><link>https://www.liaojiayi.com/en/blog/lake-hudi/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/lake-hudi/</guid><description>An overview of Hudi&apos;s design, timeline, table types, indexes, upserts, and incremental reads.</description><pubDate>Thu, 05 May 2022 00:00:00 GMT</pubDate></item><item><title>Inside Feast&apos;s Technical Architecture</title><link>https://www.liaojiayi.com/en/blog/feast/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/feast/</guid><description>A detailed look at Feast&apos;s architecture and core feature-store capabilities.</description><pubDate>Sun, 13 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Ray Datasets - The Last Mile Before Model Training</title><link>https://www.liaojiayi.com/en/blog/ray-dataset/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/ray-dataset/</guid><description>Ray 1.8+ introduced Datasets to address the last mile before model training. These notes organize the concepts, based mainly on reading rather than extensive hands-on use.</description><pubDate>Thu, 10 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Flink Fault Tolerance and Weakly Consistent Snapshots</title><link>https://www.liaojiayi.com/en/blog/streaming-fault-tolerance/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/streaming-fault-tolerance/</guid><description>Flink&apos;s checkpoint semantics, their limitations, and production approaches to weakly consistent snapshots.</description><pubDate>Sun, 06 Feb 2022 00:00:00 GMT</pubDate></item><item><title>Why Not RocksDB in Streaming State?</title><link>https://www.liaojiayi.com/en/blog/why-not-rocksdb-in-streaming-state/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/why-not-rocksdb-in-streaming-state/</guid><description>Why RocksDB, despite its strengths, is not an ideal match for large-scale streaming state in Apache Flink.</description><pubDate>Sun, 16 Jan 2022 00:00:00 GMT</pubDate></item><item><title>Hazelcast Jet - Low-Latency Stream Processing at the 99.99th Percentile</title><link>https://www.liaojiayi.com/en/blog/Hazelcast-jet/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/Hazelcast-jet/</guid><description>Notes on Hazelcast Jet&apos;s architecture, low-latency goals, and distributed state storage.</description><pubDate>Wed, 12 Jan 2022 00:00:00 GMT</pubDate></item><item><title>Customizing Serializers for Flink State</title><link>https://www.liaojiayi.com/en/blog/state-serializer/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/state-serializer/</guid><description>Custom state serializers can improve compatibility and performance in complex Flink applications.</description><pubDate>Wed, 12 May 2021 00:00:00 GMT</pubDate></item><item><title>RocksDB Memory Management in Flink</title><link>https://www.liaojiayi.com/en/blog/rocket-memory/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/rocket-memory/</guid><description>How Flink improved control of RocksDB memory, and the operational problems we encountered with managed memory.</description><pubDate>Sat, 17 Apr 2021 00:00:00 GMT</pubDate></item><item><title>How to Decide What Takes Priority</title><link>https://www.liaojiayi.com/en/blog/work-priority/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/work-priority/</guid><description>Technical skills determine whether work can be done; workplace soft skills help determine whether it succeeds. Reflections on prioritization from my own experience.</description><pubDate>Wed, 17 Mar 2021 00:00:00 GMT</pubDate></item><item><title>[Repost] Essential Traits for Surviving a Startup</title><link>https://www.liaojiayi.com/en/blog/growth/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/growth/</guid><description>Reposted from joining-hypergrowth-startups. I strongly agree with much of it and have personally experienced how these traits affect individuals, teams, and entire companies.</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Why Do We Need Data Lakes?</title><link>https://www.liaojiayi.com/en/blog/why-need-datalake/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/why-need-datalake/</guid><description>Growing interest in data lakes is driven by a qualitative change in user needs that traditional data warehouses and their components can no longer satisfy.</description><pubDate>Sun, 15 Nov 2020 00:00:00 GMT</pubDate></item><item><title>Avoiding Data Interruptions in Real-Time Recommendation with Single-Task Recovery</title><link>https://www.liaojiayi.com/en/blog/single-task-failover/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/single-task-failover/</guid><description>How ByteDance improved Flink recovery so a failed task does not interrupt the entire real-time recommendation pipeline.</description><pubDate>Tue, 22 Sep 2020 00:00:00 GMT</pubDate></item><item><title>Future Directions in Stream Processing</title><link>https://www.liaojiayi.com/en/blog/stream-trend/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/stream-trend/</guid><description>Thoughts inspired by the SIGMOD paper Beyond Analytics: The Evolution of Streaming Processing Systems.</description><pubDate>Sun, 13 Sep 2020 00:00:00 GMT</pubDate></item><item><title>Reading Notes on Practical Recommendation Systems</title><link>https://www.liaojiayi.com/en/blog/recommendations/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/recommendations/</guid><description>Notes from a book I took a long time to finish.</description><pubDate>Wed, 12 Aug 2020 00:00:00 GMT</pubDate></item><item><title>How Does Flink Unify Batch and Streaming Engines?</title><link>https://www.liaojiayi.com/en/blog/flink-unify/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-unify/</guid><description>Guided by the 2015 paper Apache Flink: Stream and Batch Processing in a Single Engine, this article explores Flink’s unified architecture.</description><pubDate>Sun, 02 Aug 2020 00:00:00 GMT</pubDate></item><item><title>Reading Notes: What It Takes by Stephen Schwarzman</title><link>https://www.liaojiayi.com/en/blog/sushimin/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/sushimin/</guid><description>I finished this book during a holiday trip to Guangzhou. Part memoir and part reflection on the lessons from different experiences, it is fairly candid and well worth reading.</description><pubDate>Mon, 20 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Flink - Network Buffer</title><link>https://www.liaojiayi.com/en/blog/flink-network-buffer/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-network-buffer/</guid><description>An introduction to network buffers in Flink.</description><pubDate>Fri, 12 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Hudi</title><link>https://www.liaojiayi.com/en/blog/hudi/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/hudi/</guid><description>Notes on Apache Hudi, the open-source data lake framework led by Uber and shaped by its data-processing needs.</description><pubDate>Thu, 14 May 2020 00:00:00 GMT</pubDate></item><item><title>Flink StateBackend (4) - RocksDBStateBackend</title><link>https://www.liaojiayi.com/en/blog/flink-statebackend-rocksdbstatebackend/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-statebackend-rocksdbstatebackend/</guid><description>RocksDBStateBackend stores large state in Flink.</description><pubDate>Fri, 20 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Flink StateBackend (3) - FsStateBackend</title><link>https://www.liaojiayi.com/en/blog/flink-statebackend-fsstatebackend/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-statebackend-fsstatebackend/</guid><description>FsStateBackend may be the most commonly used StateBackend at many companies.</description><pubDate>Wed, 04 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Flink StateBackend (2) - DefaultOperatorStateBackend</title><link>https://www.liaojiayi.com/en/blog/flink-statebackend-operatorstatebackend/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-statebackend-operatorstatebackend/</guid><description>DefaultOperatorStateBackend is a basic and relatively simple component of Flink&apos;s state backend.</description><pubDate>Tue, 04 Feb 2020 00:00:00 GMT</pubDate></item><item><title>Flink StateBackend (1) - Overview</title><link>https://www.liaojiayi.com/en/blog/flink-statebackend-overview/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-statebackend-overview/</guid><description>If I had to name one particularly impressive feature of Flink as a stream-processing engine, State and StateBackend would be it.</description><pubDate>Fri, 31 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Ray - A Distributed Framework for Emerging AI Applications</title><link>https://www.liaojiayi.com/en/blog/ray/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/ray/</guid><description>Notes on Ray, a distributed framework designed for reinforcement learning and emerging AI workloads.</description><pubDate>Fri, 03 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Data Skew</title><link>https://www.liaojiayi.com/en/blog/blink-opt-1-count-distinct/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/blink-opt-1-count-distinct/</guid><description>Stream processing often encounters data skew. A common solution salts keys to redistribute records more evenly, then computes metrics through two-stage aggregation.</description><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Calcite Paper</title><link>https://www.liaojiayi.com/en/blog/calcite-paper/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/calcite-paper/</guid><description>I have been building a SQL engine and took the opportunity to reread the Calcite paper. Documentation on Calcite is frustratingly sparse.</description><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Stream Processing (3) - Rule Engines and Flink CEP</title><link>https://www.liaojiayi.com/en/blog/deep-dive-cep/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/deep-dive-cep/</guid><description>The architecture of rule-engine services and the implementation of complex event processing in Flink.</description><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Flink StateBackend - DefaultOperatorStateBackend</title><link>https://www.liaojiayi.com/en/blog/flink-statebackend2/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-statebackend2/</guid><description>Since the existing StateBackend implementations only override KeyedStateBackend, all Operator State uses DefaultOperatorStateBackend for snapshots.</description><pubDate>Mon, 02 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Flink StateBackend - Overview</title><link>https://www.liaojiayi.com/en/blog/flink-statebackend/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-statebackend/</guid><description>How to build a State Backend in Flink from scratch.</description><pubDate>Sun, 01 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Interactions Between Flink and HDFS</title><link>https://www.liaojiayi.com/en/blog/flink-hdfs/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-hdfs/</guid><description>Understanding the interactions between Flink and HDFS helps clarify the problems HDFS may introduce into Flink.</description><pubDate>Mon, 21 Oct 2019 00:00:00 GMT</pubDate></item><item><title>Kryo (Class cannot be created (missing no-arg constructor))</title><link>https://www.liaojiayi.com/en/blog/kryo/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/kryo/</guid><description>Kryo can serialize Java classes that do not implement Serializable in various ways, but deserializing certain objects, such as those without a no-argument constructor, can produce this error.</description><pubDate>Sun, 22 Sep 2019 00:00:00 GMT</pubDate></item><item><title>Rpc In Flink</title><link>https://www.liaojiayi.com/en/blog/flink-rpc/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-rpc/</guid><description>Apache Flink uses Akka for communication between its Dispatcher, JobMaster, ResourceManager, and TaskExecutor components.</description><pubDate>Mon, 09 Sep 2019 00:00:00 GMT</pubDate></item><item><title>Flink CEP</title><link>https://www.liaojiayi.com/en/blog/flink-cep/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-cep/</guid><description>A source-code-oriented introduction to Flink CEP, revisiting my earlier notes while preparing an online walkthrough.</description><pubDate>Sun, 04 Aug 2019 00:00:00 GMT</pubDate></item><item><title>Why Not Use RocksDB as a StateBackend?</title><link>https://www.liaojiayi.com/en/blog/rocksdb/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/rocksdb/</guid><description>RocksDB is a popular lightweight embedded key-value database. Flink uses it in RocksDBStateBackend to store large state.</description><pubDate>Tue, 23 Jul 2019 00:00:00 GMT</pubDate></item><item><title>Amazon Leadership Principles</title><link>https://www.liaojiayi.com/en/blog/amazon-principles/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/amazon-principles/</guid><description>This was the first course I bought on Geek Time. These are simply my notes.</description><pubDate>Thu, 11 Jul 2019 00:00:00 GMT</pubDate></item><item><title>Optimizing Backpressure in Flink’s Network Stack</title><link>https://www.liaojiayi.com/en/blog/flink-network-stack-opt/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-network-stack-opt/</guid><description>Flink’s backpressure mechanism is often praised, but a production problem led me to discover that it is not perfect.</description><pubDate>Thu, 20 Jun 2019 00:00:00 GMT</pubDate></item><item><title>Disruptor</title><link>https://www.liaojiayi.com/en/blog/disruptor/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/disruptor/</guid><description>Disruptor is a lock-free message queue introduced by LMAX in 2011. Its 45-minute presentation contains many ideas worth exploring.</description><pubDate>Sun, 16 Jun 2019 00:00:00 GMT</pubDate></item><item><title>Notes on Practical Linux Performance Optimization</title><link>https://www.liaojiayi.com/en/blog/geek-linux/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/geek-linux/</guid><description>Summaries and reflections from the Geek Time course on Linux performance optimization.</description><pubDate>Mon, 27 May 2019 00:00:00 GMT</pubDate></item><item><title>Flink - StreamTask With Mailbox</title><link>https://www.liaojiayi.com/en/blog/streamtask/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/streamtask/</guid><description>A recent proposal on Flink’s development mailing list refactors StreamTask. Reading it reminded me how elegantly simple a good solution can be.</description><pubDate>Mon, 13 May 2019 00:00:00 GMT</pubDate></item><item><title>GC Problems in Spark Streaming Under Light Workloads</title><link>https://www.liaojiayi.com/en/blog/jvm-opt/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/jvm-opt/</guid><description>A Spark troubleshooting case involving a simple job that reads from Kafka, applies tagging operators, and writes to Hive.</description><pubDate>Fri, 12 Apr 2019 00:00:00 GMT</pubDate></item><item><title>Optimizing SparkSQL Writes to Hive Dynamic Partitions</title><link>https://www.liaojiayi.com/en/blog/spark-hive-dynamic/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/spark-hive-dynamic/</guid><description>Hive tables are often partitioned by time and populated through SparkSQL dynamic-partition inserts. This reveals an opportunity for optimization.</description><pubDate>Fri, 12 Apr 2019 00:00:00 GMT</pubDate></item><item><title>Influence Without Authority</title><link>https://www.liaojiayi.com/en/blog/note-influence-without-authority/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/note-influence-without-authority/</guid><description>Influence Without Authority</description><pubDate>Thu, 11 Apr 2019 00:00:00 GMT</pubDate></item><item><title>Database (1) - HBase Transactions</title><link>https://www.liaojiayi.com/en/blog/hbase-tx/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/hbase-tx/</guid><description>A discussion of HBase’s transaction mechanisms.</description><pubDate>Tue, 02 Apr 2019 00:00:00 GMT</pubDate></item><item><title>Watermarks in Apache Flink</title><link>https://www.liaojiayi.com/en/blog/flink-watermark/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-watermark/</guid><description>An introduction to Apache Flink’s watermark mechanism.</description><pubDate>Sat, 23 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Flink Schedule Mode</title><link>https://www.liaojiayi.com/en/blog/Flink-Schedule-Mode/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/Flink-Schedule-Mode/</guid><description>Apache Flink schedules resources differently for streaming and batch data. This week’s brief post introduces the two modes.</description><pubDate>Mon, 18 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Flink Meetup - Real-Time User Behavior Analytics with Flink</title><link>https://www.liaojiayi.com/en/blog/flink-meetup/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-meetup/</guid><description>Lessons from GrowingIO&apos;s migration from Spark to Flink for real-time analytics, presented at the Beijing Flink Meetup.</description><pubDate>Sun, 10 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Aerospike (3) - Eviction</title><link>https://www.liaojiayi.com/en/blog/aerospike-evict/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/aerospike-evict/</guid><description>In real-time applications, eviction in systems such as Aerospike and Redis helps prevent storage failures caused by traffic spikes.</description><pubDate>Sun, 03 Mar 2019 00:00:00 GMT</pubDate></item><item><title>CEP In Flink (4) - Usage Bottlenecks</title><link>https://www.liaojiayi.com/en/blog/CEP-In-Flink-4/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/CEP-In-Flink-4/</guid><description>Bottlenecks encountered when using the Apache Flink CEP module.</description><pubDate>Wed, 27 Feb 2019 00:00:00 GMT</pubDate></item><item><title>CEP In Flink (3) - Extracting Matched Events</title><link>https://www.liaojiayi.com/en/blog/CEP-In-Flink-3/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/CEP-In-Flink-3/</guid><description>How matched events are extracted in Apache Flink’s CEP module.</description><pubDate>Wed, 20 Feb 2019 00:00:00 GMT</pubDate></item><item><title>Stock Photography Platforms: Categories and Comparisons</title><link>https://www.liaojiayi.com/en/blog/photo-website/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/photo-website/</guid><description>An introduction to stock photography platforms including 500px, DFIC, and ZCOOL Hellorf.</description><pubDate>Mon, 18 Feb 2019 00:00:00 GMT</pubDate></item><item><title>CEP In Flink (2) - Matching CEP Rules</title><link>https://www.liaojiayi.com/en/blog/CEP-In-Flink-2/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/CEP-In-Flink-2/</guid><description>How Apache Flink matches CEP rules.</description><pubDate>Thu, 14 Feb 2019 00:00:00 GMT</pubDate></item><item><title>Spark - Cleaning Up Objects with WeakReference</title><link>https://www.liaojiayi.com/en/blog/Spark-WeakReference/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/Spark-WeakReference/</guid><description>A Stack Overflow question about when Spark reclaims Accumulator and Broadcast variables led me to explore how ContextCleaner uses WeakReference and a reference queue to clean up unused objects.</description><pubDate>Tue, 12 Feb 2019 00:00:00 GMT</pubDate></item><item><title>Semporna - Scuba Junkie - New Year and Dive Certification</title><link>https://www.liaojiayi.com/en/blog/scuba-junkie-1/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/scuba-junkie-1/</guid><description>A travelogue of a wonderful trip diving and earning my certification at Scuba Junkie.</description><pubDate>Mon, 04 Feb 2019 00:00:00 GMT</pubDate></item><item><title>CEP In Flink (1) - Parsing CEP Rules</title><link>https://www.liaojiayi.com/en/blog/CEP-In-Flink-1/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/CEP-In-Flink-1/</guid><description>How Apache Flink parses CEP rules.</description><pubDate>Fri, 18 Jan 2019 00:00:00 GMT</pubDate></item><item><title>Diving Log</title><link>https://www.liaojiayi.com/en/blog/deco/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/deco/</guid><description>I am grateful I made this mistake early in my diving experience, rather than later at greater depths and in harsher conditions.</description><pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate></item><item><title>Seven Reasons to Use Apache Flink in IoT</title><link>https://www.liaojiayi.com/en/blog/flink-IoT/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-IoT/</guid><description>An English rendering of my Chinese translation of the data Artisans article on stream processing and Apache Flink in IoT.</description><pubDate>Sat, 24 Nov 2018 00:00:00 GMT</pubDate></item><item><title>[Translation] Flink - Savepoint vs Checkpoint</title><link>https://www.liaojiayi.com/en/blog/flink-savepoint-vs-checkpoint/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-savepoint-vs-checkpoint/</guid><description>Translated from the Data Artisans blog, this article compares Savepoints and Checkpoints in Apache Flink.</description><pubDate>Sun, 04 Nov 2018 00:00:00 GMT</pubDate></item><item><title>How Can Flink State Be Initialized Without a Checkpoint?</title><link>https://www.liaojiayi.com/en/blog/flink-checkpoint/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-checkpoint/</guid><description>Three approaches to initializing Apache Flink state when no usable Checkpoint or Savepoint exists.</description><pubDate>Thu, 25 Oct 2018 00:00:00 GMT</pubDate></item><item><title>java.lang.OutOfMemoryError: Map failed</title><link>https://www.liaojiayi.com/en/blog/MapFailed/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/MapFailed/</guid><description>An incident in which Map Failed caused a JVM out-of-memory error, with its causes and remedies.</description><pubDate>Thu, 11 Oct 2018 00:00:00 GMT</pubDate></item><item><title>Oracle SQL - CEP Syntax</title><link>https://www.liaojiayi.com/en/blog/oracle-cep/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/oracle-cep/</guid><description>CEP is a major real-time processing capability. Mature systems such as Siddhi and EsperTech have their own syntax; incorporating CEP into SQL makes for an interesting alternative.</description><pubDate>Sat, 25 Aug 2018 00:00:00 GMT</pubDate></item><item><title>SQL Parsing Framework - Calcite</title><link>https://www.liaojiayi.com/en/blog/calcite/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/calcite/</guid><description>Calcite, a widely used general-purpose SQL parsing framework.</description><pubDate>Fri, 20 Jul 2018 00:00:00 GMT</pubDate></item><item><title>Bitmap - Performance and Implementation</title><link>https://www.liaojiayi.com/en/blog/bitmap/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/bitmap/</guid><description>Notes on bitmap compression techniques and RoaringBitmap&apos;s implementation and performance.</description><pubDate>Fri, 06 Jul 2018 00:00:00 GMT</pubDate></item><item><title>Table In Flink</title><link>https://www.liaojiayi.com/en/blog/flink-1.9</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-1.9</guid><description>Some notes on the Table APIs, which I had not used before.</description><pubDate>Fri, 06 Jul 2018 00:00:00 GMT</pubDate></item><item><title>Aerospike (2) - The Write Mechanism</title><link>https://www.liaojiayi.com/en/blog/aerospike-write/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/aerospike-write/</guid><description>Aerospike’s write mechanism and the problems it can encounter.</description><pubDate>Sun, 03 Jun 2018 00:00:00 GMT</pubDate></item><item><title>Understanding hs_err_pid.log</title><link>https://www.liaojiayi.com/en/blog/hs-err-pid-log/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/hs-err-pid-log/</guid><description>A guide to JVM fatal-error logs, including thread states, native frames, and memory information.</description><pubDate>Wed, 11 Apr 2018 00:00:00 GMT</pubDate></item><item><title>Aerospike (1) - Introduction</title><link>https://www.liaojiayi.com/en/blog/aerospike/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/aerospike/</guid><description>An introduction to Aerospike’s use cases, data model, and indexes, with guidance on choosing it based on its strengths and weaknesses.</description><pubDate>Tue, 20 Mar 2018 00:00:00 GMT</pubDate></item><item><title>Flink - Exactly Once</title><link>https://www.liaojiayi.com/en/blog/flink-exactly-once/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/flink-exactly-once/</guid><description>An introduction to Exactly Once semantics in Flink.</description><pubDate>Tue, 20 Mar 2018 00:00:00 GMT</pubDate></item><item><title>Sorting Algorithms</title><link>https://www.liaojiayi.com/en/blog/sort-algorithms-md/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/sort-algorithms-md/</guid><description>Sorting is fundamental, but different algorithms embody different ideas worth studying. To reinforce my understanding, I am implementing the basic sorting algorithms by hand.</description><pubDate>Fri, 23 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Programming Fundamentals</title><link>https://www.liaojiayi.com/en/blog/programming-basic/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/programming-basic/</guid><description>Important fundamentals that do not always arise in daily work.</description><pubDate>Tue, 23 Aug 2016 00:00:00 GMT</pubDate></item><item><title>LeetCode</title><link>https://www.liaojiayi.com/en/blog/leetcode/</link><guid isPermaLink="true">https://www.liaojiayi.com/en/blog/leetcode/</guid><description>Notes on LeetCode solutions.</description><pubDate>Fri, 22 Jul 2016 00:00:00 GMT</pubDate></item></channel></rss>