Zero-Copy: Kafka และ Nginx ส่งข้อมูลโดยไม่แตะ RAM
sendfile ลด Context Switch และการก็อปปี้ข้อมูล ทำให้การส่งไฟล์ปริมาณมหาศาลใช้ CPU น้อยลง
อ่านเรื่องนี้ →เรื่องราวเทคโนโลยีที่อ่านจบได้ภายในเวลาพักกาแฟ
sendfile ลด Context Switch และการก็อปปี้ข้อมูล ทำให้การส่งไฟล์ปริมาณมหาศาลใช้ CPU น้อยลง
อ่านเรื่องนี้ →จาก select/poll สู่ Event Loop ที่รองรับการเชื่อมต่อพร้อมกันจำนวนมหาศาล
อ่านเรื่องนี้ →Transaction สองชุดแก้คนละแถว แต่ทำลายกฎเหล็กเดียวกันจนห้องฉุกเฉินไม่มีหมอ
อ่านเรื่องนี้ →Deep Health Check ผูกสถานะ Liveness เข้ากับ Database จนเกิด Restart Storm ทั้งคลัสเตอร์
อ่านเรื่องนี้ →Payment Service สะดุด 2 วินาที แต่ Retry พร้อมเพรียงขยายทราฟฟิกจน Cascading Failure
อ่านเรื่องนี้ →Query ใช้ฟังก์ชันบนคอลัมน์หรือ selectivity ต่ำเกินไป จน Planner ทิ้ง B-Tree แล้วไล่ทั้งตาราง
อ่านเรื่องนี้ →Two-Phase Commit ล็อกทรัพยากรข้ามเซอร์วิสจนระบบกอดคอกันตาย — Saga แยก commit แล้วชดเชยทีหลัง
อ่านเรื่องนี้ →ฟีเจอร์ดึงรูปจาก URL กลายเป็นช่องทางแอบยิงเข้า Cloud Metadata แล้วดูด Access Key ทั้งคลาวด์
อ่านเรื่องนี้ →คีย์แบนเนอร์ Flash Sale หมดอายุพร้อมกัน แล้วคำขอ 15,000 รายการวิ่งลง Database ในมิลลิวินาทีเดียว
อ่านเรื่องนี้ →คีย์แสนรายการหมดอายุวินาทีเดียวกัน แล้วทราฟฟิกพุ่งลง PostgreSQL พร้อมกัน
อ่านเรื่องนี้ →เธรดทางธุรกิจไปรอเขียนดิสก์และท่อ stdout 64KB เต็มจน write() บล็อกทั้งก้อน
อ่านเรื่องนี้ →ข้อความข้ามเน็ตการันตีได้แค่อย่างน้อยหนึ่งครั้ง ส่วนการไม่ประมวลผลซ้ำเป็นหน้าที่ของ idempotency
อ่านเรื่องนี้ →สอง transaction ล็อกคนละแถวในลำดับกลับกัน จนฐานข้อมูลต้องฆ่าตัวหนึ่งเพื่อคลายวงจร
อ่านเรื่องนี้ →ยิง HTTP ใหม่ทุกคำขอจน Ephemeral Port ติด TIME_WAIT แล้ว Linux ตอบ Cannot assign requested address
อ่านเรื่องนี้ →Exit 137 คือ SIGKILL จาก OOM Killer เมื่อหน่วยความจำรวมชนเพดาน cgroup ทั้งที่กราฟ JVM Heap ยังไม่เต็ม
อ่านเรื่องนี้ →Consumer ช้าเกิน max.poll.interval.ms ถูกเตะออก แล้ว Eager Rebalance หยุดงานทั้งบริษัท — ลด poll records และใช้ CooperativeStickyAssignor
อ่านเรื่องนี้ →DELETE ไม่ลบออกจากหน้าดิสก์ — VACUUM แค่ทำเครื่องหมาย Free Space, VACUUM FULL หรือ pg_repack ถึงคืนพื้นที่ OS
อ่านเรื่องนี้ →Write ลง Master แล้วยิงอ่าน Replica ก่อน Binlog ตามทัน — ล็อกอ่าน Master ชั่วคราวหลัง Write
อ่านเรื่องนี้ →ID ขยะพุ่งทะลุ cache เพราะไม่เคยแคชค่าว่าง — อุดด้วย Null TTL และ Bloom Filter
อ่านเรื่องนี้ →SIGTERM ปิด Tomcat และ DB pool กลาง transaction — เปิด graceful shutdown แล้วจูน terminationGracePeriodSeconds
อ่านเรื่องนี้ →Timeout ทิ้ง sender บน unbuffered channel — GC ไม่เก็บ goroutine ที่ยังบล็อกรอ
อ่านเรื่องนี้ →DEL บน list ครึ่งล้านสมาชิกบล็อก event loop — ใช้ UNLINK และหั่นเป็น bucket
อ่านเรื่องนี้ →Unbuffered channel คือการยื่นของมือต่อมือ — ส่งและรับใน goroutine เดียวกันแล้ว Runtime สั่งปิดระบบ
อ่านเรื่องนี้ →ยิ่งเปิด HikariCP เยอะ CPU ของ Database ยิ่งสลับงานจนนิ่ง — จำกัด pool ตามจำนวนคอร์
อ่านเรื่องนี้ →Write-Ahead Logging จดไดอารีต่อท้ายแถวก่อน แล้วค่อยกวาด Dirty Pages ลงตารางจริง
อ่านเรื่องนี้ →Cascading retry และคลื่นยิงพร้อมกันที่ขยายความล้มเหลว — ดับด้วย backoff, jitter และ circuit breaker
อ่านเรื่องนี้ →InetAddress ที่แคช DNS ตลอดกาล ทำให้แอปยิง IP หลุมศพหลังย้ายคลาวด์
อ่านเรื่องนี้ →Page Split จาก UUID สุ่ม และเหตุผลที่ต้องย้ายไป UUIDv7 / ULID / TSID
อ่านเรื่องนี้ →Trace ID, Span ID และ W3C traceparent ที่เปลี่ยนการ grep 15 เครื่องให้เป็นภาพ waterfall
อ่านเรื่องนี้ →ทำไมสองคำสั่งต่อกันข้ามระบบถึงไม่ atomic และ Transactional Outbox Pattern คืนความจริงให้ Event-Driven ได้
อ่านเรื่องนี้ →แกะ Interpreter, Hotspot Profiling และ JIT ที่ทำให้ JVM วอร์มเครื่องก่อนพุ่งความเร็วระดับ native
อ่านเรื่องนี้ →เมื่อสายเน็ตขาด คุณจะยอมให้ข้อมูลไม่เป๊ะ (AP) หรือยอมให้หน้าเว็บขัดข้องเพื่อรักษาความถูกต้อง (CP)
อ่านเรื่องนี้ →แกะ Race Condition จาก Check-Then-Act และวิธีล็อกธุรกรรมด้วย Atomic Update กับ Idempotency Key
อ่านเรื่องนี้ →เข้าใจ IEEE 754, ความคลาดเคลื่อนของ floating point และวิธีคำนวณเงินด้วย BigDecimal อย่างปลอดภัย
อ่านเรื่องนี้ →แกะรอย rebalance storm จาก batch ที่ใหญ่เกินไป และ timeout ที่เปลี่ยนความช้าให้กลายเป็น production avalanche
อ่านเรื่องนี้ →ป้องกัน cache miss พร้อมกันไม่ให้ถล่มฐานข้อมูลด้วย distributed lock และ TTL jitter
อ่านเรื่องนี้ →เข้าใจ Dynamic Proxy, self-invocation และกฎ rollback ของ checked กับ unchecked exceptions
อ่านเรื่องนี้ →เข้าใจ Cache Line, cache invalidation และสาเหตุที่ตัวแปรคนละตัวทำให้หลายคอร์ช้าลงได้
อ่านเรื่องนี้ →เข้าใจต้นเหตุของ N+1 Query และวิธีรวมข้อมูลด้วย JOIN FETCH หรือ EntityGraph ให้จบในครั้งเดียว
อ่านเรื่องนี้ →สำรวจปัญหา JasperPrint ที่กิน JVM heap และกลไก Virtualizer สำหรับรายงานขนาดใหญ่
อ่านเรื่องนี้ →เข้าใจแนวคิด Errors Are Values และเหตุผลที่ Go เลือกการจัดการ error แบบชัดเจนแทน hidden control flow
อ่านเรื่องนี้ →เข้าใจว่า in-memory operations และ I/O multiplexing ทำให้ Redis event loop ทำงานเร็วได้อย่างไร
อ่านเรื่องนี้ →เจาะแนวคิด sequential I/O, append-only logs, page cache และ zero-copy ที่ทำให้ Kafka รองรับข้อความมหาศาลได้
อ่านเรื่องนี้ →เข้าใจต้นทุนของการเปิด Database connection และเหตุผลที่ Connection Pool กับ HikariCP ช่วยให้ระบบตอบสนองได้เร็วขึ้น
อ่านเรื่องนี้ →ทำความเข้าใจงานแบบ blocking และ non-blocking ผ่านอุปมาร้านอาหาร พร้อมดูว่า Coroutine ใช้ Thread อย่างคุ้มค่าได้อย่างไร
อ่านเรื่องนี้ →ย้อนรอยช่องโหว่ CVSS 10.0 ที่ทำให้ข้อความจากผู้ใช้เรียกโค้ดระยะไกลผ่าน Log4j, JNDI และ LDAP ได้
อ่านเรื่องนี้ →ทำความเข้าใจ GC Roots, object reachability และสาเหตุที่ static collections หรือ listeners ทำให้เกิด Memory Leak ได้
อ่านเรื่องนี้ →ย้อนรอยยุคที่ Java Enterprise ต้องใช้ XML หลายร้อยบรรทัด และกลไก Auto-Configuration ที่เปลี่ยนทุกอย่าง
อ่านเรื่องนี้ →ย้อนรอยต้นกำเนิดของ null และดูว่า Kotlin ย้ายปัญหาจาก Runtime Exception ไปเป็น Compile Error ได้อย่างไร
อ่านเรื่องนี้ →