[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10407":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":10,"languages":10,"totalLinesOfCode":10,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":15,"starSnapshotCount":15,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},10407,"awesome-database-learning","pingcap\u002Fawesome-database-learning","pingcap","A list of learning materials to understand databases internals","",null,10869,1190,214,3,0,1,8,49,7,44.23,false,"master",[24,25,26,27,28,29,30],"awesome","awesome-list","blogs","books","course","database","papers","2026-06-12 02:02:21","# Awesome Database Learning\n\nA list of learning materials to understand databases internals, including but not limited to:\n\n- papers\n- blogs\n- courses\n- talks\n\nPlease submit a pull request if there is any material that you think should be included in this collection.\n\n## Table of Contents\n\n\u003C!-- vim-markdown-toc GFM -->\n\n* [Recommended Courses, Books and Talks](#recommended-courses-books-and-talks)\n    * [Courses](#courses)\n    * [Books](#books)\n    * [Talks](#talks)\n    * [Blogs](#blogs)\n* [SQL & Relation Algebra](#sql--relation-algebra)\n* [Query Optimizer](#query-optimizer)\n    * [Planner Models](#planner-models)\n    * [Subquery Optimization](#subquery-optimization)\n    * [Join Order Optimization](#join-order-optimization)\n    * [Functional Dependency & Physical Properties](#functional-dependency--physical-properties)\n    * [Cost Model](#cost-model)\n    * [Statistics](#statistics)\n* [Query Execution](#query-execution)\n    * [Execution Framework](#execution-framework)\n    * [Vectorization vs Compilization](#vectorization-vs-compilization)\n    * [Join](#join)\n    * [Hash Table](#hash-table)\n    * [Bloom Filter](#bloom-filter)\n* [DDL](#ddl)\n* [Relational Model](#relational-model)\n    * [Codd's Rules](#codds-rules)\n    * [Relational Data Model](#relational-data-model)\n    * [Relational Algebra](#relational-algebra)\n    * [ER to Relational Model](#er-to-relational-model)\n    * [SQL - Overview](#sql---overview)\n* [Transaction](#transaction)\n    * [Isolation Levels](#isolation-levels)\n    * [Concurrency Control](#concurrency-control)\n* [Network](#network)\n* [Storage](#storage)\n    * [NoSQL Systems](#nosql-systems)\n    * [Buffer Management](#buffer-management)\n    * [Disk IO](#disk-io)\n    * [B-Tree](#b-tree)\n    * [LSM-Tree](#lsm-tree)\n    * [Learned Indexes Structures](#learned-indexes-structures)\n* [Serializing & RPC](#serializing--rpc)\n* [Data Partitioning](#data-partitioning)\n* [Replication & Consistency](#replication--consistency)\n* [Consensus](#consensus)\n* [Scheduling](#scheduling)\n* [Benchmark & Testing](#benchmark--testing)\n* [HTAP](#htap)\n* [TLA+](#tla)\n\n\u003C!-- vim-markdown-toc -->\n\n## Recommended Courses, Books and Talks\n\n### Courses\n\n- CMU [Database Systems (15-445\u002F645)](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2023\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n- CMU [Advanced Database Systems (15-721)](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n- UC Berkeley [Introduction to Database Systems](https:\u002F\u002Fcs186berkeley.net\u002Fcalendar\u002F)\n- Stanford [Database System Implementation](https:\u002F\u002Fweb.stanford.edu\u002Fclass\u002Fcs346\u002F2015\u002F)\n- Cornell [Introduction to Database Systems](http:\u002F\u002Fwww.databaselecture.com\u002F) by Prof. Trummer\n- [Let's Build a Simple Database](https:\u002F\u002Fcstack.github.io\u002Fdb_tutorial\u002F), thanks to [cstack](https:\u002F\u002Fgithub.com\u002Fcstack)\n\n### Books\n\n- Stanford [Database Systems: The Complete Book](http:\u002F\u002Finfolab.stanford.edu\u002F~ullman\u002Fdscb.html)\n- [Designing Data-Intensive Applications](http:\u002F\u002Fshop.oreilly.com\u002Fproduct\u002F0636920032175.do), [中文翻译](https:\u002F\u002Fgithub.com\u002FVonng\u002Fddia)\n- [Database Internals](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fdatabase-internals\u002F9781492040330\u002F)\n- [Foundations of Databases](http:\u002F\u002Fwebdam.inria.fr\u002FAlice\u002F)\n- [Readings in Database Systems, 5th Edition](http:\u002F\u002Fwww.redbook.io\u002F)\n- [Database Design and Implementation: Second Edition (Data-Centric Systems and Applications)](https:\u002F\u002Fwww.amazon.com\u002Fdp\u002F3030338355)\n- [Principles of Distributed Database Systems, 4th ed](https:\u002F\u002Fwww.amazon.com\u002Fdp\u002F3030262529)\n- [Inside SQLite](https:\u002F\u002Fbooks.google.com\u002Fbooks\u002Fabout\u002FInside_SQLite.html?id=QoxUx8GOjKMC)\n- [Architecture of a Database System](https:\u002F\u002Fdsf.berkeley.edu\u002Fpapers\u002Ffntdb07-architecture.pdf)\n- [Relational Database Index Design and the Optimizers](https:\u002F\u002Fwww.amazon.com\u002FRelational-Optimizers-Lahdenmaki-published-Wiley-Blackwell\u002Fdp\u002FB00EKYLFSI)\n- [Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control](https:\u002F\u002Fwww.sciencedirect.com\u002Fbook\u002F9781558605084\u002Ftransactional-information-systems)\n\n### Talks\n\n- [Data Structures and Algorithms for Big Databases](https:\u002F\u002Fpeople.csail.mit.edu\u002Fbradley\u002FBenderKuszmaul-tutorial-xldb12.pdf)\n- [A Journey From A Quick HackTo A High-Reliability Database Engine](https:\u002F\u002Fwww.sqlite.org\u002Ftalks\u002Fwroclaw-20090310.pdf)\n\n### Blogs\n\n- [How does a relational database work](http:\u002F\u002Fcoding-geek.com\u002Fhow-databases-work)\n- [The Internals of PostgreSQL](http:\u002F\u002Fwww.interdb.jp\u002Fpg\u002Findex.html)\n- [Books propose](https:\u002F\u002Fcakebytheoceanluo.github.io\u002F2020\u002F03\u002F10\u002Fbooks\u002F)\n- [what is database and its types](https:\u002F\u002Fwww.scaler.com\u002Ftopics\u002Fdbms\u002Fwhat-is-database\u002F)\n\n## SQL & Relation Algebra\n\nCourses:\n\n- CMU [Database Systems (15-445\u002F645)](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [Course Introduction and the Relational Model](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#aug-26-2019)\n    - [Advanced SQL](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#aug-28-2019)\n\n- UC Berkeley [Introduction to Database Systems](https:\u002F\u002Fcs186berkeley.net\u002Fcalendar\u002F)\n    - Introduction + SQL I\n    - SQL II\n    - Relational Algebra\n\n## Query Optimizer\n\nCourses:\n\n- CMU [Database Systems (15-445\u002F645)](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [Query Planning & Optimization I](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#oct-14-2019)\n    - [Query Planning & Optimization II](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#oct-21-2019)\n\nBlogs:\n\n- [数据库内核杂谈](https:\u002F\u002Fwww.infoq.cn\u002Ftheme\u002F46), thanks to [顾仲贤](https:\u002F\u002Fwww.infoq.cn\u002Fprofile\u002F1780661\u002Fpublish)\n    - [数据库内核杂谈（七）：数据库优化器（上）](https:\u002F\u002Fwww.infoq.cn\u002Farticle\u002FGhhQlV10HWLFQjTTxRtA)\n    - [数据库内核杂谈（八）：数据库优化器（下）](https:\u002F\u002Fwww.infoq.cn\u002Farticle\u002FJCJyMrGDQHl8osMFQ7ZR)\n- [SQL优化器原理 - 查询优化器综述](https:\u002F\u002Fyq.aliyun.com\u002Farticles\u002F610128), thanks to [勿烦](https:\u002F\u002Fyq.aliyun.com\u002Fusers\u002Fkyni3qcv656rk?spm=a2c4e.11153940.0.0.6adc1a8etfb0vx)\n\n### Planner Models\n\nBlogs:\n\n- [数据库内核杂谈](https:\u002F\u002Fwww.infoq.cn\u002Ftheme\u002F46), thanks to [顾仲贤](https:\u002F\u002Fwww.infoq.cn\u002Fprofile\u002F1780661\u002Fpublish)\n    - [数据库内核杂谈（九）：开源优化器 ORCA](https:\u002F\u002Fwww.infoq.cn\u002Farticle\u002F5o16eHOZ5zk6FzPSJpT2)\n- [SQL 查询优化原理与 Volcano Optimizer 介绍](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F48735419), thanks to [张茄子](https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fchase-zh)\n- [Cascades Optimizer](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F73545345), thanks to [hellocode](https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fhellocode-ming)\n\nPapers:\n\n- 1979, [Access Path Selection in a Relational Database Management System](http:\u002F\u002Fciteseerx.ist.psu.edu\u002Fviewdoc\u002Fdownload?doi=10.1.1.71.3735&rep=rep1&type=pdf), SIGMOD\n- 1979, [Query Processing in Main Memory Database Management Systems](http:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2016\u002Fpapers\u002Fp239-lehman.pdf), VLDB\n- 1987, [Query Optimization by Simulated Annealing](http:\u002F\u002Fftp.cs.wisc.edu\u002Fpub\u002Ftechreports\u002F1987\u002FTR693.pdf), SIGMOD\n- 1988, [Grammar-like Functional Rules for Representing Query Optimization Alternatives](https:\u002F\u002Fpeople.eecs.berkeley.edu\u002F~brewer\u002Fcs262\u002F23-lohman88.pdf), SIGMOD\n- 1993, [The Volcano Optimizer Generator- Extensibility and Efficient Search](https:\u002F\u002Fpdfs.semanticscholar.org\u002Fa817\u002Fa3e74d1663d9eb35b4baf3161ab16f57df85.pdf), ICDE\n- 1995, [The Cascades Framework for Query Optimization](https:\u002F\u002Fpdfs.semanticscholar.org\u002F360e\u002Fcdfc79850873162ee4185bed8f334da30031.pdf), IEEE Data engineering Bulltin\n- 1998, [An Overview of Query Optimization in Relational Systems](https:\u002F\u002Fweb.stanford.edu\u002Fclass\u002Fcs345d-01\u002Frl\u002Fchaudhuri98.pdf), PODS\n- 2001, [LEO – DB2’s LEarning Optimizer](http:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2016\u002Fpapers\u002Fstillger-vldb2001.pdf), VLDB\n- 2004, [Robust Query Processing through Progressive Optimization](https:\u002F\u002Fwww.cse.iitb.ac.in\u002Finfolab\u002FData\u002FCourses\u002FCS632\u002F2006\u002FPapers\u002Fsigmod04-markl.pdf), SIGMOD\n- 2014, [Orca: A Modular Query Optimizer Architecture for Big Data](http:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2016\u002Fpapers\u002Fp337-soliman.pdf), SIGMOD\n- 2016, [Parallelizing Query Optimization on Shared-Nothing Architectures](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol9\u002Fp660-trummer.pdf), VLDB\n- 2016, [The MemSQL Query Optimizer: A modern optimizer for real-time analytics in a distributed database](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol9\u002Fp1401-chen.pdf), VLDB\n\n### Subquery Optimization\n\nBlogs:\n\n- [SQL 子查询的优化](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F60380557), thanks to [Eric Fu](https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Ffuyufjh)\n- [Calcite 子查询处理 - I (RemoveSubQuery)](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F62338250), thanks to [一只无情的小猫咪](https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Floop_recur)\n- [Calcite 子查询处理 - II (Decorrelate)](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F66227661), thanks to [一只无情的小猫咪](https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Floop_recur)\n\nPapers:\n\n- 2001, [Orthogonal Optimization of Subqueries and Aggregation](http:\u002F\u002Fciteseerx.ist.psu.edu\u002Fviewdoc\u002Fdownload?doi=10.1.1.563.8492&rep=rep1&type=pdf), SIGMOD\n- 2009, [Enhanced subquery optimizations in Oracle](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F220538535_Enhanced_Subquery_Optimizations_in_Oracle), VLDB\n- 2015, [Unnesting Arbitrary Queries](http:\u002F\u002Fwww.btw-2015.de\u002Fres\u002Fproceedings\u002FHauptband\u002FWiss\u002FNeumann-Unnesting_Arbitrary_Querie.pdf), BTW\n\n### Join Order Optimization\n\nPapers:\n\n- 2006, [Analysis of Two Existing and One New Dynamic Programming Algorithm for the Generation of Optimal Bushy Join Trees without Cross Products](http:\u002F\u002Fwww.vldb.org\u002Fconf\u002F2006\u002Fp930-moerkotte.pdf), VLDB\n- 2015, [How Good Are Query Optimizers, Really?](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol9\u002Fp204-leis.pdf), VLDB\n- 2018, [Adaptive Optimization of Very Large Join Queries](https:\u002F\u002Fdb.in.tum.de\u002F~radke\u002Fpapers\u002Fhugejoins.pdf), SIGMOD\n\n### Functional Dependency & Physical Properties\n\nThesis:\n\n- 2000, [Exploiting Functional Dependence in Query Optimization](https:\u002F\u002Fcs.uwaterloo.ca\u002Fresearch\u002Ftr\u002F2000\u002F11\u002FCS-2000-11.thesis.pdf)\n\nPapers:\n\n- 1996, [Fundamental Techniques for Order Optimization](https:\u002F\u002Fcs.uwaterloo.ca\u002F~gweddell\u002Fcs798\u002Fp57-simmen.pdf), SIGMOD\n- 2004, [An Efficient Framework for Order Optimization](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F4084912_An_efficient_framework_for_order_optimization), ICDE\n- 2010, [Incorporating Partitioning and Parallel Plans into the SCOPE Optimizer](http:\u002F\u002Fwww.cs.albany.edu\u002F~jhh\u002Fcourses\u002Freadings\u002Fzhou10.pdf), ICDE\n\n### Cost Model\n\nPapers:\n\n- 1996, [Modelling Costs for a MM-DBMS](http:\u002F\u002Fwww.eng.uci.edu\u002Ffaculty\u002Fklin\u002Frtdb\u002FLM.ps), in Real-Time Databases\n- 2014, [Approximation Schemes for Many-Objective Query Optimization](https:\u002F\u002Finfoscience.epfl.ch\u002Frecord\u002F219202\u002Ffiles\u002Fp1299-trummer.pdf), SIGMOD\n- 2015, [Multi-Objective Parametric Query Optimization](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol8\u002Fp221-trummer.pdf), VLDB\n\n### Statistics\n\nPapers:\n\n- 1984, [Accurate Estimation of the Number of Tuples Satisfying a Condition](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F971697.602294), SIGMOD\n- 1993, [Optimal Histograms for Limiting Worst-Case Error Propagation in the Size of Join Results](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F169725.169708), ACM Trans. on Database Systems\n- 1993, [Universality of Serial Histograms](https:\u002F\u002Fpdfs.semanticscholar.org\u002Fdeeb\u002Fd2fa377a41de49e5556ea948191a741faa1e.pdf), VLDB\n- 1995, [Balancing Histogram Optimality and Practicality for Query Result Size Estimation](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F223784.223841), SIGMOD\n- 1996, [Improved Histograms for Selectivity Estimation of Range Predicates](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F233269.233342), SIGMOD\n- 1997, [SEEKing the truth about ad hoc join costs](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1007\u002Fs007780050043?download=true), VLDB\n- 2000, [Towards Estimation Error Guarantees for Distinct Values](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F335168.335230), SIGMOD\u002FPODS\n- 2001, [Distinct Sampling for Highly-Accurate Answers to Distinct Values Queries and Event Reports](http:\u002F\u002Fvldb.org\u002Fconf\u002F2001\u002FP541.pdf), VLDB\n- 2003, [The History of Histograms](http:\u002F\u002Fwww.vldb.org\u002Fconf\u002F2003\u002Fpapers\u002FS02P01.pdf), VLDB\n- 2005, [An Improved Data Stream Summary: The Count-Min Sketch and its Applications](http:\u002F\u002Fdimacs.rutgers.edu\u002F~graham\u002Fpubs\u002Fpapers\u002Fcm-full.pdf), Journal of Algorithms\n- 2007, [New Estimation Algorithms for Streaming Data: Count-min Can Do More](http:\u002F\u002Fwebdocs.cs.ualberta.ca\u002F~drafiei\u002Fpapers\u002Fcmm.pdf)\n- 2009, [Preventing Bad Plans by Bounding the Impact of Cardinality Estimation Errors](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.14778\u002F1687627.1687738), VLDB\n- 2010, [Histograms Reloaded: The Merits of Bucket Diversity](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F1807167.1807239), SIGMOD\n- 2014, [Exploiting Ordered Dictionaries to Efficiently Construct Histograms with Q-Error Guarantees in SAP HANA](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F2588555.2595629), SIGMOD\n- 2017, [Adaptive Statistics in Oracle 12c](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol10\u002Fp1813-zait.pdf), VLDB\n- 2019, [Pessimistic Cardinality Estimation: Tighter Upper Bounds for Intermediate Join Cardinalities](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F3299869.3319894), SIGMOD\n- 2019, [Deep Unsupervised Cardinality Estimation](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol13\u002Fp279-yang.pdf), VLDB\n- 2020, [NeuroCard: One Cardinality Estimator for All Tables](https:\u002F\u002Fvldb.org\u002Fpvldb\u002Fvol14\u002Fp61-yang.pdf), VLDB\n\nBooks:\n- [Synopses for Massive Data: Samples, Histograms, Wavelets, Sketches](https:\u002F\u002Fdb.cs.berkeley.edu\u002Fcs286\u002Fpapers\u002Fsynopses-fntdb2012.pdf)\n\n## Query Execution\n\nCourses:\n\n- CMU [Database Systems (15-445\u002F645)](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [Query Execution I](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#oct-07-2019)\n    - [Query Execution II](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#oct-09-2019)\n\n### Execution Framework\n\nPapers:\n\n- 1994, [Volcano-An Extensible and Parallel Query Evaluation System](https:\u002F\u002Fpaperhub.s3.amazonaws.com\u002Fdace52a42c07f7f8348b08dc2b186061.pdf), IEEE Transactions on Knowledge and Data EngineeringFebruary\n- 2014, [Morsel-Driven Parallelism: A NUMA-Aware Query Evaluation Framework for the Many-Core Age](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2019\u002Fpapers\u002F14-scheduling\u002Fp743-leis.pdf), SIGMOD\n\n### Vectorization vs Compilization\n\nBlogs:\n\n- [Overhead of a Generalized Query Execution Engine](https:\u002F\u002Fgithub.com\u002Fpivotal\u002Fblog\u002Fblob\u002Fmaster\u002Fcontent\u002Fpost\u002Fcodegen-gpdb-qx.md), from [The Pivotal Engineering Journal](https:\u002F\u002Fgithub.com\u002Fpivotal\u002Fblog), thanks to the Pivotal Engineering team\n\nPapers:\n\n- 2005, [MonetDB\u002FX100: Hyper-Pipelining Query Execution](http:\u002F\u002Fcidrdb.org\u002Fcidr2005\u002Fpapers\u002FP19.pdf), CIDR\n- 2011, [Efficiently Compiling Efficient Query Plans for Modern Hardware](https:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol4\u002Fp539-neumann.pdf), VLDB\n- 2017, [Relaxed Operator Fusion for In-Memory Databases: Making Compilation, Vectorization, and Prefetching Work Together At Last](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol11\u002Fp1-menon.pdf), VLDB\n- 2018, [Everything You Always Wanted to Know About Compiled and Vectorized Queries But Were Afraid to Ask](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol11\u002Fp2209-kersten.pdf), VLDB\n- 2018, [Adaptive Execution of Compiled Queries](https:\u002F\u002Fdb.in.tum.de\u002F~leis\u002Fpapers\u002Fadaptiveexecution.pdf), ICDE\n\n### Join\n\nPapers:\n\n- 2013, [Multi-Core, Main-Memory Joins: Sort vs. Hash Revisited](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol7\u002Fp85-balkesen.pdf), VLDB\n- 2017, [Looking Ahead Makes Query Plans Robust](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol10\u002Fp889-zhu.pdf), VLDB\n\n### Hash Table\n\nCourses:\n\n- CMU [Database Systems (15-445\u002F645)](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [Hash Tables](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#sep-16-2019)\n\nBlogs:\n\n- [Fibonacci Hashing: The Optimization that the World Forgot (or: a Better Alternative to Integer Modulo)](https:\u002F\u002Fprobablydance.com\u002F2018\u002F06\u002F16\u002Ffibonacci-hashing-the-optimization-that-the-world-forgot-or-a-better-alternative-to-integer-modulo\u002F), thanks to [Malte Skarupke](https:\u002F\u002Fprobablydance.com\u002F)\n- [All hash table sizes you will ever need](https:\u002F\u002Fdatabasearchitects.blogspot.com\u002F2020\u002F01\u002Fall-hash-table-sizes-you-will-ever-need.html), thanks to [Database Architects - Thomas Neumann](https:\u002F\u002Fdatabasearchitects.blogspot.com\u002F)\n\n### Bloom Filter\n\nPapers:\n- 2018, [SuRF: Practical Range Query Filtering with Fast Succinct Tries](https:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002Fpapers\u002Fmod601-zhangA-hm.pdf), SIGMOD\n\n\n## DDL\n\n- 2013, [Online, Asynchronous Schema Change in F1](https:\u002F\u002Fresearch.google.com\u002Fpubs\u002Farchive\u002F41376.pdf), VLDB\n\n## Relational Model\n\nBlogs: \n\n- [What is a Relational Database?](https:\u002F\u002Fwww.calebcurry.com\u002Fwhat-is-a-relational-database\u002F), thanks to [Caleb Curry](https:\u002F\u002Fwww.calebcurry.com\u002Fauthor\u002Fcalebcurry_rlrc3d\u002F)\n- [What is a Relational Database?](https:\u002F\u002Fcareerkarma.com\u002Fblog\u002Frelational-database\u002F),thank to [JAMES GALLAGHER](https:\u002F\u002Fcareerkarma.com\u002Fblog\u002Fauthor\u002Fjamesgallagher\u002F)\n\n### Codd's Rules\n\nBlogs:\n\n- [Codd’s Rules for Relational Database Systems](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fsql-in-a\u002F9780596155322\u002Fch01s01s01.html), thanks to [Kevin Kline](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKevin_Kline)\n\n### Relational Data Model\n\nBlogs:\n\n- [Relational model](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRelational_model), thanks to [Wikipedia](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWikipedia)\n\n### Relational Algebra\n\nBlogs:\n\n- [Introduction of Relational Algebra in DBMS](https:\u002F\u002Fwww.geeksforgeeks.org\u002Fintroduction-of-relational-algebra-in-dbms\u002F#:~:text=Relational%20Algebra%20is%20procedural%20query,column%20data%20from%20a%20relation.), thanks to [GeeksforGeeks](https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fgeeksforgeeks?originalSubdomain=in)\n\n### ER to Relational Model\n\nBlogs:\n\n- [ER Model to Relational Model](https:\u002F\u002Fwww.tutorialspoint.com\u002Fdbms\u002Fer_model_to_relational_model.htm), thanks to [tutorialspoint](https:\u002F\u002Fwww.tutorialspoint.com\u002Findex.htm1)\n\n### SQL - Overview\n\nBlogs:\n\n- [An Overview of SQL Text Functions](https:\u002F\u002Flearnsql.com\u002Fblog\u002F), thanks to [Zahin Rahman](https:\u002F\u002Flearnsql.com\u002Fauthors\u002Fzahin-rahman\u002F)\n\n## Transaction\n\n### Isolation Levels\n\nBlogs:\n\n- [一致性模型](https:\u002F\u002Fwww.jianshu.com\u002Fp\u002F3673e612cce2), thanks to [siddontang](https:\u002F\u002Fwww.jianshu.com\u002Fu\u002F1yJ3ge)\n\nPapers:\n\n- 1995, [A Critique of ANSI SQL Isolation Levels](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fwp-content\u002Fuploads\u002F2016\u002F02\u002Ftr-95-51.pdf), SIGMOD\n- 2000, [Generalized Isolation Level Definitions](http:\u002F\u002Fpmg.csail.mit.edu\u002Fpapers\u002Ficde00.pdf), Proceedings of 16th International Conference on Data Engineering\n\n### Concurrency Control\n\nCourses:\n\n- CMU [Database Systems (15-445\u002F645)](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [Concurrency Control Theory](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#oct-23-2019)\n    - [Two-Phase Locking Concurrency Control](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#oct-28-2019)\n    - [Timestamp Ordering Concurrency Control](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#oct-30-2019)\n    - [Multi-Version Concurrency Control](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#nov-04-2019)\n\n- CMU [Advanced Database Systems (15-721)](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [Multi-Version Concurrency Control (Design Decisions)](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fschedule.html#jan-22-2020)\n    - [Multi-Version Concurrency Control (Protocols)](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fschedule.html#jan-27-2020)\n    - [Multi-Version Concurrency Control (Garbage Collection)](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fschedule.html#jan-29-2020)\n\nPapers:\n\n- 1976, [The Notions of Consistency and Predicate Locks in a Database System](http:\u002F\u002Fjimgray.azurewebsites.net\u002Fpapers\u002Fon%20the%20notions%20of%20consistency%20and%20predicate%20locks%20in%20a%20database%20system%20cacm.pdf), Communications of the ACM\n- 1981, [Concurrency Control in Distributed Database Systems](https:\u002F\u002Fpeople.eecs.berkeley.edu\u002F~brewer\u002Fcs262\u002Fconcurrency-distributed-databases.pdf), ACM Computing Surveys\n- 1981, [On Optimistic Methods for Concurrency Control](https:\u002F\u002Fwww.eecs.harvard.edu\u002F~htk\u002Fpublication\u002F1981-tods-kung-robinson.pdf), ACM Transactions on Database Systems\n- 1983, [Multiversion Concurrency Control - Theory and Algorithms](https:\u002F\u002Fsites.fas.harvard.edu\u002F~cs265\u002Fpapers\u002Fbernstein-1983.pdf), ACM Transactions on Database Systems\n- 2012, [Serializable Snapshot Isolation in PostgreSQL](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol4\u002Fp783-jung.pdf), VLDB\n- 2012, [Calvin: Fast Distributed Transactions for Partitioned Database Systems](http:\u002F\u002Fcs.yale.edu\u002Fhomes\u002Fthomson\u002Fpublications\u002Fcalvin-sigmod12.pdf), SIGMOD\n- 2014, [MaaT: effective and scalable coordination of distributed transactions in the cloud](http:\u002F\u002Fwww.nawab.me\u002FUploads\u002FMaaT_VLDB2014.pdf), VLDB\n- 2014, [Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol8\u002Fp209-yu.pdf), VLDB\n- 2014, [An Evaluation of the Advantages and Disadvantages of Deterministic Database Systems](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol7\u002Fp821-ren.pdf), VLDB\n- 2015, [Fast Serializable Multi-Version Concurrency Control for Main-Memory Database Systems](https:\u002F\u002Fdb.in.tum.de\u002F~muehlbau\u002Fpapers\u002Fmvcc.pdf), SIGMOD\n- 2017, [An Empirical Evaluation of In-Memory Multi-Version Concurrency Control](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol10\u002Fp781-Wu.pdf), VLDB\n- 2017, [An Evaluation of Distributed Concurrency Control](https:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol10\u002Fp553-harding.pdf), VLDB\n- 2019, [Scalable Garbage Collection for In-Memory MVCC Systems](https:\u002F\u002Fdb.in.tum.de\u002F~boettcher\u002Fp128-boettcher.pdf), VLDB\n\n## Network\n\nCourses:\n\n- CMU [Advanced Database Systems (15-721)](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [Networking Protocols](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fschedule.html#feb-19-2020)\n\nPapers:\n\n- 2016, [The End of Slow Networks: It's Time for a Redesign](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol9\u002Fp528-binnig.pdf), VLDB\n- 2016, [Accelerating Relational Databases by Leveraging Remote Memory and RDMA](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fpapers\u002F11-networking\u002Fli-sigmod2016.pdf), SIGMOD\n- 2017, [Don't Hold My Data Hostage: A Case for Client Protocol Redesign](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol10\u002Fp1022-muehleisen.pdf), VLDB\n\n## Storage\n\n### NoSQL Systems\n\nPapers:\n\n- 2006, [Bigtable: A Distributed Storage System for Structured Data](https:\u002F\u002Fstatic.googleusercontent.com\u002Fmedia\u002Fresearch.google.com\u002Fen\u002F\u002Farchive\u002Fbigtable-osdi06.pdf), OSDI\n- 2007, [Dynamo: Amazon’s Highly Available Key-value Store](https:\u002F\u002Fsites.cs.ucsb.edu\u002F~agrawal\u002Ffall2009\u002Fdynamo.pdf), SOSP\n- 2008, [PNUTS: Yahoo!’s Hosted Data Serving Platform](https:\u002F\u002Fsites.cs.ucsb.edu\u002F~agrawal\u002Ffall2009\u002FPNUTS.pdf), VLDB\n- 2010, [Cassandra - A Decentralized Structured Storage System](https:\u002F\u002Fwww.cs.cornell.edu\u002Fprojects\u002Fladis2009\u002Fpapers\u002Flakshman-ladis2009.pdf), SOSP\n- 2019, [PNUTS to Sherpa: Lessons from Yahoo!’s Cloud Database ](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol12\u002Fp2300-cooper.pdf), VLDB\n\n### Buffer Management\n\nCourses:\n\n- CMU [Database Systems (15-445\u002F645)](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [Buffer Pools](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#sep-11-2019)\n\nPapers:\n\n- 1987, [The 5 Minute Rule for Trading Memory for Disc Accesses and the 5 Byte Rule for Trading Memory for CPU Time](https:\u002F\u002Fwww.hpl.hp.com\u002Ftechreports\u002Ftandem\u002FTR-86.1.pdf), SIGMOD\n- 2008, [The Five Minute Rule 20 Years Later and How Flash Memory Changes the Rules](https:\u002F\u002Fciteseerx.ist.psu.edu\u002Fviewdoc\u002Fdownload?doi=10.1.1.227.3846&rep=rep1&type=pdf), ACM Queue\n- 2018, [Managing Non-Volatile Memory in Database Systems](https:\u002F\u002Fdb.in.tum.de\u002Fpeople\u002Fsites\u002Fvanrenen\u002Fpapers\u002FHyMem.pdf?lang=de), SIGMOD\n- 2018, [LeanStore: In-Memory Data Management Beyond Main Memory](https:\u002F\u002Fdb.in.tum.de\u002F~leis\u002Fpapers\u002Fleanstore.pdf), ICDE\n- 2020, [Umbra: A Disk-Based System with In-Memory Performance](http:\u002F\u002Fcidrdb.org\u002Fcidr2020\u002Fpapers\u002Fp29-neumann-cidr20.pdf), CIDR\n\n### Disk IO\n\nBlogs:\n\n- [On Disk IO, Part 1: Flavors of IO](https:\u002F\u002Fmedium.com\u002Fdatabasss\u002Fon-disk-io-part-1-flavours-of-io-8e1ace1de017), thanks to [Alex](https:\u002F\u002Ftwitter.com\u002Fifesdjeen)\n- [On Disk IO, Part 2: More Flavours of IO](https:\u002F\u002Fmedium.com\u002Fdatabasss\u002Fon-disk-io-part-2-more-flavours-of-io-c945db3edb13?), thanks to [Alex](https:\u002F\u002Ftwitter.com\u002Fifesdjeen)\n- [On Disk IO, Part 3: LSM Trees](https:\u002F\u002Fmedium.com\u002Fdatabasss\u002Fon-disk-io-part-3-lsm-trees-8b2da218496f), thanks to [Alex](https:\u002F\u002Ftwitter.com\u002Fifesdjeen)\n- [On Disk IO, Part 4: B-Trees and RUM Conjecture](https:\u002F\u002Fmedium.com\u002Fdatabasss\u002Fon-disk-storage-part-4-b-trees-30791060741), thanks to [Alex](https:\u002F\u002Ftwitter.com\u002Fifesdjeen)\n- [On Disk IO, Part 5: Access Patterns in LSM Trees](https:\u002F\u002Fmedium.com\u002Fdatabasss\u002Fon-disk-io-access-patterns-in-lsm-trees-2ba8dffc05f9), thanks to [Alex](https:\u002F\u002Ftwitter.com\u002Fifesdjeen)\n- [Ensuring data reaches disk(LWN)](https:\u002F\u002Flwn.net\u002FArticles\u002F457667\u002F)\n- [Read, write & space amplification - pick 2](http:\u002F\u002Fsmalldatum.blogspot.com\u002F2015\u002F11\u002Fread-write-space-amplification-pick-2_23.html), thanks to [Mark Callaghan](https:\u002F\u002Ftwitter.com\u002Fmarkcallaghandb)\n\nPapers:\n\n- 2016, [Design Tradeoffs of Data Access Methods](http:\u002F\u002Fscholar.harvard.edu\u002Ffiles\u002Fstratos\u002Ffiles\u002Frum-tutorial.pdf?m=1461167186), SIGMOD\n- 2016, [Designing Access Methods: The RUM Conjecture](https:\u002F\u002Fstratos.seas.harvard.edu\u002Ffiles\u002Fstratos\u002Ffiles\u002Frum.pdf), EDBT\n\n### B-Tree\n\nBlogs:\n\n- [B树、B+树索引算法原理（上）](https:\u002F\u002Fwww.codedump.info\u002Fpost\u002F20200609-btree-1\u002F) thanks to [codedump](https:\u002F\u002Fwww.codedump.info\u002F)\n- [B树、B+树索引算法原理（下）](https:\u002F\u002Fwww.codedump.info\u002Fpost\u002F20200615-btree-2\u002F)\n\nCourses:\n\n- CMU [Database Systems (15-445\u002F645)](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [Trees Indexes I](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#sep-18-2019)\n    - [Trees Indexes II](https:\u002F\u002F15445.courses.cs.cmu.edu\u002Ffall2019\u002Fschedule.html#sep-23-2019)\n\n- CMU [Advanced Database Systems (15-721)](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fschedule.html), thanks to [Andy Pavlo](http:\u002F\u002Fwww.cs.cmu.edu\u002F~pavlo\u002F)\n    - [OLTP Indexes (B+Tree Data Structures)](https:\u002F\u002F15721.courses.cs.cmu.edu\u002Fspring2020\u002Fschedule.html#feb-03-2020)\n\nPapers:\n\n- 1979, [The Ubiquitous B-Tree](http:\u002F\u002Fcarlosproal.com\u002Fir\u002Fpapers\u002Fp121-comer.pdf)\n\n### LSM-Tree\n\nPapers:\n\n- 1996, [The Log-Structured Merge-Tree (LSM-Tree)](https:\u002F\u002Fwww.cs.umb.edu\u002F~poneil\u002Flsmtree.pdf),\n- 2014, [A Comparison of Fractal Trees to Log-Structured Merge (LSM) Trees](http:\u002F\u002Fwww.pandademo.com\u002Fwp-content\u002Fuploads\u002F2017\u002F12\u002FA-Comparison-of-Fractal-Trees-to-Log-Structured-Merge-LSM-Trees.pdf)\n- 2017, [WiscKey: Separating Keys from Values in SSD-conscious Storage](https:\u002F\u002Fwww.usenix.org\u002Fsystem\u002Ffiles\u002Fconference\u002Ffast16\u002Ffast16-papers-lu.pdf), TOS\n- 2019, [LSM-based Storage Techniques: A Survey](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1812.07527.pdf)\n\n### Learned Indexes Structures\n\nPapers:\n\n- 2018, [The Case for Learned Index Structures](https:\u002F\u002Fwww.cl.cam.ac.uk\u002F~ey204\u002Fteaching\u002FACS\u002FR244_2018_2019\u002Fpapers\u002FKraska_SIGMOD_2018.pdf)\n- 2019, [Learning Multi-dimensional Indexes](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1912.01668.pdf)\n- 2020, [XIndex: A Scalable Learned Index for Multicore Data Storage](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F3332466.3374547)\n- 2020, [RadixSpline: A Single-Pass Learned Index](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3401071.3401659), [Source Code](https:\u002F\u002Fgithub.com\u002Flearnedsystems\u002FRadixSpline), aiDM@SIGMOD\n- 2020, [The PGM-index: a fully-dynamic compressed learned index with provable worst-case bounds](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol13\u002Fp1162-ferragina.pdf), [Source Code](https:\u002F\u002Fgithub.com\u002Fgvinciguerra\u002FPGM-index), VLDB\n- 2020, [From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees](http:\u002F\u002Fpages.cs.wisc.edu\u002F~yifann\u002Fbourbon-osdi20.pdf)\n\n## Serializing & RPC\n\n- [Protocol Buffers Developer Guide](https:\u002F\u002Fdevelopers.google.com\u002Fprotocol-buffers\u002Fdocs\u002Foverview)\n- [gRPC Documntation](https:\u002F\u002Fwww.grpc.io\u002Fdocs\u002Fquickstart\u002Fgo\u002F)\n\n## Data Partitioning\n\nBlogs:\n\n- [TiDB Internal (I) - Data Storage](https:\u002F\u002Fpingcap.com\u002Fblog\u002F2017-07-11-tidbinternal1\u002F)\n- [Partitioning Behavior of DynamoDB](https:\u002F\u002Fdzone.com\u002Farticles\u002Fpartitioning-behavior-of-dynamodb), thanks to [Parth Modi](https:\u002F\u002Fdzone.com\u002Fusers\u002F3098371\u002Fparthmodi.html)\n\nPapers:\n\n- 2007, [Dynamo: Amazon’s Highly Available Key-value Store](https:\u002F\u002Fwww.allthingsdistributed.com\u002Ffiles\u002Famazon-dynamo-sosp2007.pdf), SOSP\n\n## Replication & Consistency\n\nBlogs:\n\n- [Tick or Tock? Keeping Time and Order in Distributed Databases](https:\u002F\u002Fdzone.com\u002Farticles\u002Ftick-or-tock-keeping-time-and-order-in-distributed-1), thanks to [Liu Tang](https:\u002F\u002Fdzone.com\u002Fusers\u002F3186309\u002Fsiddontang.html)\n\nPapers:\n\n- 2012, [Consistency Tradeoffs in Modern Distributed Database System Design](http:\u002F\u002Fwww.cs.umd.edu\u002F~abadi\u002Fpapers\u002Fabadi-pacelc.pdf)\n- 2020, [Strong and Efficient Consistency with Consistency-Aware Durability ](http:\u002F\u002Fpages.cs.wisc.edu\u002F~ag\u002Fcad.pdf), FAST 2020\n\n## Consensus\n\nTechnical report:\n\n- University of Cambridge [Distributed consensus revised](https:\u002F\u002Fwww.cl.cam.ac.uk\u002Ftechreports\u002FUCAM-CL-TR-935.pdf), a great paper about Consenssus especially Paxos and Paxos-Related algorithms, by Heidi Howard\n\nPapers:\n\n- 2014, [Ark: A Real-World Consensus Implementation](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1407.4765.pdf), CoRR\n\n## Scheduling\n\nBlogs:\n\n- [Building a Large-scale Distributed Storage System Based on Raft](https:\u002F\u002Fwww.cncf.io\u002Fblog\u002F2019\u002F11\u002F04\u002Fbuilding-a-large-scale-distributed-storage-system-based-on-raft\u002F), by Ed Huang\n\nPapers:\n\n- 2016, [Automated Demand-driven Resource Scaling in Relational Database-as-a-Service](http:\u002F\u002Fwww.audentia-gestion.fr\u002FMICROSOFT\u002Fp883-das.pdf), SIGMOD\n- 2019, [Autoscaling Tiered Cloud Storage in Anna](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.14778\u002F3311880.3311881), VLDB\n- 2020, [Adaptive HTAP through Elastic Resource Scheduling](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F3318464.3389783), SIGMOD\n- 2020, [MorphoSys: Automatic Physical Design Metamorphosis for Distributed Database Systems](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol13\u002Fp3573-abebe.pdf), VLDB\n\n## Benchmark & Testing\n\nBlogs:\n\n- [Use go-ycsb to benchmark different databases (1)](https:\u002F\u002Fmedium.com\u002F@siddontang\u002Fuse-go-ycsb-to-benchmark-different-databases-8850f6edb3a7), thanks to [siddontang](https:\u002F\u002Fmedium.com\u002F@siddontang)\n- [Chaos Tools and Techniques for Testing the TiDB Distributed NewSQL Database](https:\u002F\u002Fdzone.com\u002Farticles\u002Fchaos-tools-and-techniques-for-testing-the-tidb-di-1), thanks to [Liu Tang](https:\u002F\u002Fdzone.com\u002Fusers\u002F3186309\u002Fsiddontang.html)\n- [Creating Custom Sysbench Scripts](https:\u002F\u002Fwww.percona.com\u002Fblog\u002F2019\u002F04\u002F25\u002Fcreating-custom-sysbench-scripts\u002F), thanks to [Matthew Boehm](https:\u002F\u002Fwww.percona.com\u002Fblog\u002Fauthor\u002Fmatthew-boehm\u002F)\n\n\nPapers:\n\n- 2010, [Benchmarking Cloud Serving Systems with YCSB](https:\u002F\u002Fcourses.cs.duke.edu\u002Ffall13\u002Fcompsci590.4\u002F838-CloudPapers\u002Fycsb.pdf), SOCC\n\n## HTAP\n\nPapers:\n\n- 2020, [TiDB: A Raft-based HTAP Database](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol13\u002Fp3072-huang.pdf), VLDB\n- 2020, [F1 Lightning: HTAP as a Service](http:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol13\u002Fp3313-yang.pdf), VLDB\n\n## TLA+\n\nTalks:\n- [The TLA+ Video Course](http:\u002F\u002Flamport.azurewebsites.net\u002Fvideo\u002Fvideos.html)\n","该项目是一个收集了大量关于数据库内部原理学习资料的列表，旨在帮助开发者深入理解数据库技术。核心功能包括提供了丰富的论文、博客、课程和演讲等资源链接，覆盖从基础概念到高级主题如查询优化器、事务管理及存储系统等内容。特别适合那些希望在数据库设计与实现方面提升技能的软件工程师、数据库管理员以及计算机科学专业的学生使用。",2,"2026-06-11 03:28:13","top_topic"]