Xavfsizlikka chidamli tizimni loyihalash (to'lov o'tkazish, logistika). Migratsiya asta-sekin amalga oshirilishi kerak, xizmat to'xtatilmasdan. KAMAYTIRISH - Umumiy foydalanuvchilar soni: 8 million - Kunlik faol foydalanuvchilar (DAU): 3 million - Oylik faol foydalanuvchilar (MAU): 12 million - Eng yuqori yuklama: 25k o'qish / 5k yozish soniyalarda - Yangi ma'lumotlar hajmi: yilda 10 TB - Maksimal parallelizm: 120k so'rovlar bir vaqtning o'zida - Yillik foydalanuvchi o'sishi: 30% - Maqsadli p99 kechikish: <150 ms o'qish uchun, <400 ms yozish uchun - Maqsadli mavjudlik: 99.95% Sizning vazifangiz — arxitektura yechimini ishlab chiqish, bu...
Golang
OrderService arxitekturasida keshni qanday ishlatishni rejalashtiryapsiz? Redisda nima saqlanadi?
Qaysi sharding strategiyalarini bilasiz, shunda yechim og'riqli bo'lmaydi?
CREATE TABLE staff ( id TEXT name TEXT head_id TEXT ); id | name | head_id -------------------- 1 | Ivan | NULL 2 | Petr | 1 3 | Alice | 1 4 | Max | 2 5 | Alex | 2 6 | Elena | 4 7 | Bob | NULL Kutilgan natija: employee_name | manager_name --------------------------- Ivan | NULL Petr | Ivan Alice | Ivan Max | Petr Alex | Petr Elena | Max Bob | NULL SELECT e.name AS employee_name, m.name AS manager_name FROM staff e LEFT JOIN staff m ON e.head_id = m.id
[ism] so'radi: Hali ham o'qiyapsizmi? Bu, to'liq ish bilan muammo bo'ladimi?
func main() { c := make(chan int, 1000) for i := 0; i < 100; i++ { go foo(c) } sum := 0 for r := range c { sum += r } fmt.Println(sum) } func foo(c chan int) { r := rand.Int() for i := 0; i < r; i++ { c <- r } } --- func main() { c := make(chan int, 1000) var wg sync.WaitGroup wg.Add(100) for i := 0; i < 100; i++ { go func() { defer wg.Done() foo(c) }() } go func() { wg.Wait() close(c) }() sum := 0 for r := range c { sum += r } // // fmt.Println(sum) } func foo(c chan int) { r := rand.Int() for i := 0; i < r; i++ { c <- r } }
Hozir yangi ish joyingizda o'zingiz uchun nima qidiryapsiz?
Iste'molchi Guruh haqida gapir. Agar 3 bo'lak va 2 iste'molchi bo'lsa, qanday taqsimlanadi?
[ism] so'radi: Sizning tajribangizdan biror bir voqeani ayta olasizmi, bilan faxrlanasizmi?
Qay tarzda relokatsiya qilishga munosabatingiz qanday va qayerga ko‘chishni o‘ylayapsiz?
Kiritilganlar ro'yxati o'sish tartibida tartiblangan raqamlar massivlari: - gumonlilar - aybdor emaslar Gumonlilar ro'yxatidan barcha aybdor emaslarni chiqarish kerak. Misollar: Input: suspects = [1, 2, 3, 4, 5], innocents = [2, 4] Output: [1, 3, 5] Input: suspects = [3, 80, 123, 421, 936], innocents = [80, 936] Output: [3, 123, 421]
[ism] so'radi: Jamoa va jarayonlar haqida aytib bering — bu ko'p funksiyali jamoa, sprintlar qanday ishlaydi?
/* Kiritishda, uzunligi n bo'lgan nums nomli massiv mavjud. Har bir massivdagi raqam yoki noyob, yoki ikki marta uchraydi. Raqamlar [1, n] diapazonida. Faqat ikki marta uchraydigan raqamlaridan iborat massivni chiqaradigan funktsiya yozish kerak. Misollar: Kiritish: nums = [4, 3, 2, 7, 8, 2, 3, 1] Chiqish: [2, 3] Kiritish: nums = [2, 2, 1] Chiqish: [2] */
Siz to'g'ri tushunyapsizmi, cache-aside bilan biz ma'lumotlar bazasida ma'lumotlarni yangilashda ham cachega borib, ma'lumotlarni invalid qilishimiz kerakmi?
PostgreSQL'da indekslash: bir nechta parametr bilan so'rov uchun indeksni qanday yaratish mumkin? Nima uchun indeks faol yangilanishlar bilan olti oy ichida yomonlashdi?
Kafka'da topikni qayta yaratmasdan bo'laklar sonini oshirish mumkinmi?
PostgreSQL'da statistikalarni yangilashga yordam beradigan buyruq nima?
[ism] so'radi: Hozirgi ish joyingiz haqida aytib bering — bu qanday kompaniya va qaysi mahsulot ustida ishlayapsiz?
[ism] so'radi: Nega avvalgi kompaniyangizdan hozirgi kompaniyaga o'tdingiz?
Ma'lumotlar bazasida qanday indekslarni bilasiz?