uz
Feedback
Databases with V

Databases with V

Kanalga Telegram’da oā€˜tish

I mostly post stuff about databases. AMA - https://forms.gle/YHKpTBvVooNmtJQcA Mirror of my twitter account https://twitter.com/iavins

Ko'proq ko'rsatish
238
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
Ma'lumot yo'q30 kunlar
Postlar arxiv
^Found it from this amazing talk: https://www.youtube.com/watch?v=XcAYkriuQ1o

SQLite vs Postgres benchmarks when both run locally benchmark - https://github.com/benbjohnson/production-sqlite-go
SQLite vs Postgres benchmarks when both run locally benchmark - https://github.com/benbjohnson/production-sqlite-go

Found this HTTP load generator, comes with a nice TUI https://github.com/hatoo/oha

Dr. Stonebraker announced a new serverless service which uses a DB in the Kernel 😲 https://www.dbos.dev/blog/announcing-dbos

TIL Go can read only upto 1GB per Read call - https://kgrz.io/go-file-read-max-size-buffer.html
TIL Go can read only upto 1GB per Read call - https://kgrz.io/go-file-read-max-size-buffer.html

Visualisation of Jeff Dean's Latency Numbers Every Programmer Should Know how long does it take to fetch the data from memory vs disk? https://samwho.dev/numbers/

A short introduction to Deterministic Simulation Testing with a simple Go example code https://blog.resonatehq.io/deterministic-simulation-testing

Some details about how do we do (geo) replication https://x.com/penberg/status/1766031437919138218?s=4

Gitlab is open source, so is their database schema. This guy went through the 35K LOC of SQL to understand Gitlab’s schema. It covers many things, including: - What would you use for primary keys: serial, big serial or UUID? - Naming conventions in tables, and columns - Foreign Key constraints - Partitioning It’s opinionated and contextual, but surely you will pick one or two great ideas to implement in your production code. https://shekhargulati.com/2022/07/08/my-notes-on-gitlabs-postgres-schema-design/

I needed to analyse a bunch of log files, spanning over a few GBs. Using grep was difficult where I had to trace a request across multiple files. Somehow I found the issue, but meanwhile I did find couple of open source tools which would make searching and analysing logs easier. I haven't used any of them, but sharing here: 1. The Logfile Navigator - https://lnav.org/ - https://github.com/tstack/lnav 2. Textualize's Toolong - https://github.com/Textualize/toolong 3. Logdy Dev - https://logdy.dev/ - https://github.com/logdyhq/logdy-core

Short and quick explanation of how does an append only BTree works > This wastes disk space, but writing consecutive pages to
Short and quick explanation of how does an append only BTree works > This wastes disk space, but writing consecutive pages to disk is more efficient than writing random locations. And there is no need for a transaction log, because the database file is the transaction log. https://bzero.se/ldapd/btree.html

I worked on a very nasty bug today and in the patch, I added a couple of snapshot tests. But.. what are snapshot tests? I published a short blog post - https://avi.im/blag/2024/snapshot-testing/

TIL PRQL - Pipelined Relational Query Language, pronounced ā€œPrequelā€. It compiles to SQL and claims that it makes writing com
TIL PRQL - Pipelined Relational Query Language, pronounced ā€œPrequelā€. It compiles to SQL and claims that it makes writing complex SQL queries simple and intuitive https://prql-lang.org/

Someone gave me a nice compliment today on CaskDB and the way it teaches building the KV Store in a TDD fashion. The TDD way of learning is something I picked up while working through the book Interpreter in Go by Thorsten Ball. You write tests, then write code fixing those tests and you end up with Monkey Lang. Helped me understand interpreters and compilers. Not only that, I was able to use the interpreter at work to solve a business problem, where in we had a use case of running code submitted by customers. I hacked Monkey and made it safer (e.g. no infinite recursion or for loops etc). It served as a great demo, but later the project goals changed. If you are looking to learn about interpreter and compilers, consider the book. It’s excellent. https://github.com/avinassh/monkey

Problems of C, and how Zig addresses them - https://avestura.dev/blog/problems-of-c-and-how-zig-addresses-them and also, The Road to Zig 1.0 - Andrew Kelley - https://www.youtube.com/watch?v=Gv2I7qTux7g

Collection of materials on debuggers: - how to use them - how they work - how to implement one from scratch! https://werat.dev/blog/learning-about-debuggers/

Found these recently, if you want to get started on query optimisation and want to deep into it, then: An Overview of Query Optimization in Relational Systems - https://web.stanford.edu/class/cs345d-01/rl/chaudhuri98.pdf Building Query Compilers - https://pi3.informatik.uni-mannheim.de/~moer/querycompiler.pdf (book, 700 pages)

If you want a quick reference to C, here is a 45 page short PDF: Essential C by By Nick Parlante http://cslibrary.stanford.edu/101/EssentialC.pdf

6. [paraphrased] Do you recommend *** course? I don’t give recommendations unless I have attended it myself or people I trust recommended it. My suggestion is simple: don’t buy courses from people who haven’t built it themselves. Also, this recent post by Andrej Karpathy is on point: > There are a lot of videos on YouTube/TikTok etc. that give the appearance of education, but if you look closely they are really just entertainment. This is very convenient for everyone involved : the people watching enjoy thinking they are learning (but actually they are just having fun). The people creating this content also enjoy it because fun has a much larger audience, fame and revenue. But as far as learning goes, this is a trap. https://twitter.com/karpathy/status/1756380066580455557 7. Where do I begin to understand about deterministic software testing? The Foundation DB vidoes are good! https://www.youtube.com/watch?v=4fFDFbi3toc https://www.youtube.com/watch?v=OJb8A6h9jQQ 8. How to contribute to sqlite project? To be pedantic, the SQLite project is not open for contributions. They won’t accept your pull request: https://www.sqlite.org/copyright.html So Turso forked SQLite and created libsql project, which is open source and open to contribution. We are also building open source community around it - https://discord.gg/3ktFWuDueE Contributing to libsql is like any other standard open source project: 1. Find good first issues - https://github.com/tursodatabase/libsql/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 2. Alternatively, a less intimidating approach is contributing to the database drivers. We have in JS/TS, Rust, Python and Go. --- You may submit your questions here: https://forms.gle/YHKpTBvVooNmtJQcA