T0 Công ty lớn Tencent Vòng 1-3
Tencent TEG AI Infra vòng một, hai và ba
Câu hỏi phỏng vấn Tencent AI Infra vòng một, hai và ba thật, gồm tối ưu toán tử và các hướng liên quan
Tối ưu toán tử
Vòng một
Kinh nghiệm dự án
- Giới thiệu kinh nghiệm liên quan dự án
Cơ sở dữ liệu
- Cách hiện thực tầng dưới của aggregate function và GROUP BY
- Cách hiện thực JOIN và chiến lược tối ưu (tối ưu index, tối ưu hash table)
- Trong hash JOIN, nếu một phía bảng lớn hơn nhiều phía còn lại thì tối ưu thế nào
- Vai trò của database optimizer và nguyên lý hiện thực
- Cơ chế thực thi của câu EXPLAIN
- Thiết kế và hiện thực Buffer Pool
- Chiến lược quản lý dirty page và cách xử lý mất dữ liệu (redo log)
- Hạn chế của LRU (prefetch miss, cache pollution) và phương án cải tiến
- Cơ chế hiện thực B+ tree đồng thời
- So sánh volcano model với các execution model khác (materialization model)
- Phân tích scenario phù hợp của row store và column store
- Khái niệm cơ bản của transaction và MVCC
- Ý tưởng thiết kế mở rộng database đơn máy thành distributed database (sharding dữ liệu, quản lý metadata, thực thi toán tử)
- Khác biệt giữa hash sharding và range sharding
- Phương án high availability cho metadata node (replication primary–replica, giao thức đồng thuận phân tán)
- Trong MySQL primary–replica replication, đảm bảo strong consistency thế nào
- Execution plan của
SELECT * FROM table(toán tử Project chiếu + toán tử TableScan quét toàn bảng) - Trong scenario phân tán cần thêm những toán tử nào để truy vấn xuyên node
- Thiết kế distributed execution plan có WHERE và GROUP BY COUNT
Hệ điều hành
- Quá trình khởi động Linux
- Cơ chế hiện thực module xử lý interrupt
- CPU xử lý nhiều interrupt đồng thời thế nào
- Khác biệt giữa process và thread (gồm cả user-space thread)
- Cách scheduling user-space thread và các vấn đề có thể gặp
- Quá trình chuyển từ user space sang kernel space
Bài lập trình
- Hiện thực file system trong memory (biến thể trie)
Vòng hai
Kinh nghiệm dự án
- Giới thiệu phân công dự án và phần việc cá nhân đảm nhận
- Dựa trên MiniOb trình bày toàn bộ flow thực thi một câu SQL
- Trong quá trình query, khâu nào ảnh hưởng hiệu năng nhiều nhất
- Dự án có thiết kế optimizer không
- Quan hệ giữa volcano model và pipeline model
- Hướng tối ưu phá bottleneck của execution model hiện tại (CRTP giảm overhead virtual function, materialization model trả dữ liệu theo batch)
- Phân tích ưu nhược của dự án OceanBase
- Giới thiệu dự án xv6 và những gì thu được từ đó
Bài lập trình
- Fast/slow pointer tìm điểm giữa linked list + đảo linked list
Vòng ba
Kinh nghiệm dự án
- Giới thiệu phần bạn phụ trách trong dự án trên CV và cách phân công
- Khi cộng tác nhóm gặp bất đồng thì xử lý thế nào
Bài lập trình
- Đưa chữ hoa trong chuỗi về chữ thường rồi sắp xếp theo thứ tự từ điển (không dùng thư viện)