Đổi schema PostgreSQL khi hệ thống vẫn đang chạy, chống ghi đè dữ liệu khi nhiều người cùng sửa, Redis và object storage.
Đổi schema PostgreSQL không downtime: expand/contract, index CONCURRENTLY, backfill.
DatabaseSong song bài PostgreSQL: hàng đợi metadata lock, INSTANT/INPLACE/COPY đo thật từng thao tác, gh-ost vs pt-osc dưới tải, replica lag, và giới hạn zero-downtime khi Moodle upgrade (LMS Uni).
DatabaseSo theo từng trục: kết nối, lưu trữ, MVCC, isolation/locking, strict mode, collation, DDL, upsert, replication, vận hành. Lab PostgreSQL 18.4 và MySQL 8.4, ma trận quyết định, áp vào LMS Uni và LMS Micro-learning.
DatabaseChạy migration trong pipeline: lock, rollback, tách khỏi bước deploy code.
DatabaseQuét bảng 2 lần, đợi 3 lần, khoá SHARE UPDATE EXCLUSIVE. Fail thì để lại index INVALID. Khi nào KHÔNG dùng.
DatabaseUPDATE ghi bản mới vào mọi index, VACUUM không trả dung lượng, tx dài chặn dọn rác. So với undo + purge của InnoDB, số đo thật PG 18 và MySQL 8.4.
DatabaseAnti-wraparound vacuum chạy kể cả khi autovacuum = off. Nhưng nó freeze 0 dòng nếu xmin horizon bị ghim — demo thật PG 18.4, 5 tầng ngưỡng, runbook lúc DB từ chối ghi.
DatabaseUPDATE ... WHERE version = ? và affected rows. Vì sao Laravel ghi updated_at chỉ tới giây làm mất update im lặng.
Database14 trường hợp tái hiện thật (PG 18.4, MySQL 8.4): khoá ngược thứ tự, gap lock, FK, unique, thiếu index. Đọc log, 1213 vs 1205, retry của Laravel và bẫy side effect, áp vào Moodle.
Object storageKhông có metadata server: hash tên object ra erasure set, xl.meta nằm cạnh dữ liệu. Lab thật 4 ổ và 24 ổ: phá shard, bitrot, mất quorum, heal khi thay ổ. Kèm tình trạng bản community đã archive.
RedisMột luồng chạy lệnh, KEYS/DEL big key/Lua làm đứng cả server, eviction, persistence, replication mất write, lock và cluster.
RedisPRIMARY KEY giữ luật, Redis SET theo user+khoá học, Lua + Stream gom like cho bài hot. Số đo hot row, 12 bẫy đã test.
RedisFormat domain:entity:version:id, băm input tự do, version + TTL, hash tag không gây hot slot. Tên thật Laravel ghi vào Redis và 5 bẫy prefix.