Skip to main content
  1. Posts/

My 2023 Year-End Summary

·1160 words·6 mins
liuzhilong62
Author
liuzhilong62
PostgreSQL DBA. Writing about database internals, production cases, and source code analysis.

As a DBA
#

Since early 2023, I set my main task for the year — learn the PostgreSQL database. Though I didn’t set detailed plans, the overall goal was to finish learning some foundational PostgreSQL knowledge. Later I found I had oversimplified things — the cost of learning PostgreSQL was far greater than I imagined, and I didn’t achieve this goal in 2023. For example, the PostgreSQL transaction chapter: I thought I could finish it in 2 weeks, but it took me about 2 months. Regardless, persistent learning did yield some results:

Image

Among them, the optimizer chapter was actually not completed. Though I’m guilty, I still need to explain. The optimization chapter has been in progress for over two months — not because I was slacking off, but because it’s simply impossible to finish. It has already reached Typora’s text limit — around 8000 characters it starts lagging, so I had to passively split it into parts. It’s already split to Part 4:

Image

Even so, the optimization chapter is probably less than half done. I can only shamelessly carry it over to the next year… Personally, I think another 4 months should let me complete the optimization chapter… Even then, the priority needs to be pushed back — there’s really not enough time!

READING
#

My main profession is databases, so I should spend time on databases, and extracurricular reading should take a back seat. However, I still don’t want to give up this part, for three reasons I think:

  • The value brought by reading is immeasurable in the short term
  • Reading brings a pleasant sense of intellectual enrichment
  • I use fragmented time to read, only spending 2-3 hours writing reading notes, which doesn’t take up too much study time

I’ve certainly read some PostgreSQL technical books, but I read them with a targeted approach. For example, for optimization, I’d bring together “The Internals of PostgreSQL,” “PostgreSQL Technical Internals: Query Optimization Deep Dive,” “PostgreSQL Query Engine Source Code Technical Analysis,” and “The Art of Database Query Optimizer” to study a particular knowledge point together. I wasn’t focused on whether I’d finish them, and I didn’t read them cover-to-cover in order. So the reading list here only covers extracurricular books.

2023 Extracurricular Reading List (ranked by preference):

  1. “Homo Deus”
  2. “Romance of the Three Kingdoms”
  3. The “Space Odyssey” series: 2001, 2010, 2060, 3001
  4. “Elon Musk”
  5. “Chimpanzee Politics”
  6. “Goodbye, the Age of Mediocrity”
  7. “Wild”
  8. “Are We Smart Enough to Know How Smart Animals Are?”
  9. “To Kill a Mockingbird”
  10. “Rich Dad Poor Dad”
  11. “When Breath Becomes Air”
  12. “The Metamorphosis,” “The Judgment,” “A Hunger Artist” and other Kafka short stories

Not great: “What Life Could Mean to You,” “How to Win Friends and Influence People,” “The Courage to Be Disliked”

Blog and WeChat Official Account
#

I publish articles through two channels:

I’ve been persisting with blogging for many years. The big change in 2023 was mainly writing about PostgreSQL and increasing technical depth. The WeChat Official Account is a new venture I started this year, and it was a major experiment in 2023. Both blogs and official accounts can be used for technical sharing, but their audiences are somewhat different. A blog can serve as a technical accumulation, while an official account is more like a technical news feed. There are many big names in the community who publish daily (even multiple times a day) — I greatly admire that. But there are also big names who focus on quality articles without worrying about daily posting. I personally prefer the latter approach — learning a domain’s knowledge roughly in one go, which feels more holistic and targeted. Often I split longer articles into parts for the official account (I don’t even like reading overly long articles myself). On my blog I don’t split them, so readers interested in a particular article can search for it on CSDN — it’s easier to read there.

Why write?

  • Self-learning value
  • Technical research value
  • Dissemination value

The efficiency of active learning far exceeds passive learning, just like this learning pyramid (image from “Rich Dad Poor Dad” — the value of extracurricular reading!):

img

Opportunities like hands-on practice and presentations are rare and hard to come by. Outputting what you’ve learned as articles greatly improves your understanding of knowledge points. Reading an article might take just ten minutes, but producing it as an article may take more than ten times that long.

This year I also tried doing pure translation-style technical articles. Although the technical research value isn’t high, there’s still learning value and dissemination value. Reading something once versus translating it once leads to different levels of understanding, just like what I said above: active learning. However, what bothers me a bit now is: previously, for things I couldn’t understand, I’d use Google Translate for a rough pass and then polish it myself. Now with GPT, it can translate an entire article and I barely need to change any words or sentences. The active learning value has been severely diluted — the AI is doing all the learning…

My writing style changed significantly in 2023. I wrote about various things and tried everything. Of course, I know one should focus on vertical content, but I still couldn’t resist doing random things — I haven’t even settled on a name for my official account yet. Currently, what’s clear is: technical articles and extracurricular reading notes, with technical articles as the main focus. Other types of articles probably won’t be written anymore. Whether I’ll adjust later, I don’t know. At least the official account still has room for adjustment. Anyway, let’s keep it like this — launch first, adjust later.

2023 blog statistics are hard to track now. I can only provide blog data from 2017 to 2023 as a snapshot.

CSDN Blog:

Image

WeChat Official Account followers:

Image

Final Thoughts
#

The biggest realization of 2023 — time. There’s really not enough time!

On June 17, 2023, I participated in the PostgreSQL Database Technology Summit Chengdu stop and shared my fresh, hot-off-the-press PostgreSQL transaction knowledge with the experts. It was my first time on stage and I was quite nervous. I must thank Boss Can for the opportunity. There was a small episode during this sharing that shows how pressed for time I was in 2023. I also had part-time graduate studies — the day of the sharing was also my final exam day. After finishing my talk, I rushed straight to the airport… In the end, I missed 3 exams and had to retake them… It was too hard.

I’ve completely given up on work-life balance — having a work-learning balance would be good enough. Every day after work I don’t think about resting but about going home to study. In the end, there were still many things unfinished, left to my 2024 self.

Expectations for 2024:

  1. Complete my thesis and graduate smoothly
  2. Finish the PostgreSQL optimization section
  3. We’ll see about the rest

Related

Getting Started with HikariCP Connection Pool

·1889 words·9 mins
A Brief Introduction to HikariCP # “Hikari” means “light” in Japanese — HikariCP aims to be a Connection Pool as light and fast as light. This nearly Java-only middleware connection pool is extremely lightweight and performance-focused. HikariCP is now the default connection pool for Spring Boot, and with the proliferation of Spring Boot and microservices, HikariCP usage continues to grow. On the HikariCP GitHub homepage, there’s a performance comparison: (https://github.com/brettwooldridge/HikariCP-benchmark)

History of Transactions and SSI — PostgreSQL Database Technology Summit Chengdu Stop Sharing

·3384 words·16 mins
Preface # PostgreSQL Database Technology Summit Chengdu Stop # Recently (June 17, 2023), the “PostgreSQL Database Technology Summit Chengdu Stop” organized by the PostgreSQL branch of the China Open Source Software Promotion Alliance was successfully held. I had the honor of participating as a speaker and gained a lot from it. (Summit review and all PPT downloads: PPT downloads are here | PostgreSQL Technology Summit Chengdu Stop Review)

How to Solve Index Split Contention?

·1047 words·5 mins
Index Splitting # When an index block is nearly full, index splitting occurs. Index splitting comes in two forms: 55 and 91: The difference between index splitting and the enq: TX - index contention wait event Whether 55 or 91 splitting, both are normal index behavior as data volume increases. Index splitting is a normal phenomenon caused by growing data volume leading to larger indexes — when an index can’t hold more data, it naturally needs more index blocks. There are hardly any scenarios with tables but no indexes (only during initial data loading would one consider inserting data first and building indexes afterward). Although index splitting consumes some resources, in today’s Oracle environments it can complete quickly. Only when there are too many indexes does it affect insert efficiency.