Kotlin
Разкажи за шардването на бази данни
Използвани ли са Kafka транзакции (точно веднъж семантика)?
Използвал ли си HQL, Native Query, JDBC директно? Батчинг в Hibernate?
// резервация(седалка_id, потребител_id) PostgreSQL Begin Transaction(read_commited) seat = select * from seats where id = seat_id for update if(seat == null || seat.status == "booked") rollback return error("Мястото не е налично") insert into bookings (user_id, seat_id, status, created_at) values (user_id, ...) update seats set status = 'booked' where id = seat_id commit return success()
Как работи механизмът за Dirty Checking в Hibernate?
Разкажи ми за нивата на изолация на транзакциите
Защо оптимизаторът на заявки на Postgres може да използва Seq Scan в продукция, но Index Scan в dev/ft при едни и същи индекси?
Как да контролирате натоварването на дръжките (ограничаване на скоростта)?
Разкажи за оптимистичното и песимистичното блокиране, кога да ги прилагаме?
Какво прави VACUUM в PostgreSQL и защо се появяват мъртви редове?
Разкажи за мониторинга и метриките в проекта (Prometheus, Grafana)
Разкажи за партиционирането в PostgreSQL
Как да решите проблема с конкурентното обновяване на една същност от два Kafka топика (един топик презаписва промените на другия)?
/* ИЗБОР ляво.K, ляво.V1, дясно.V2 ОТ ляво JOIN дясно ON ляво.K = дясно.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> ляво, List<Pair<K, V2>> дясно) { return null; } private static class Pair<A, B> { private A първи; private B втори; Pair(A първи, B втори) { this.първи = първи; this.втори = втори; } } private static class Triple<A, B, C> { private A първи; private B втори; private C трети; Triple(A първи, B втори, C трети) { this.първи = първи; this.втори = втори; this.трети = трети; } }
Какво беше натоварването на услугите? Какви оптимизации бяха приложени?
Използвал ли си Kotlin? Имаш ли опит?
Знаеш ли какво е Service Mesh в Kubernetes?
Разкажете ми за себе си и своя опит в работата
/*Дадена е низ, необходимо е да се имплементира функција за проверка на правилноста на означувањето на заградите. Секој отворен заграден знак треба да има соодветен затворен знак. Отворените и затворените загради треба да бидат во правилен ред. Типови на загради: "{", "}", "(", ")", "[", "]". Влез: "([]){}[(()())()]" Резултат: true Влез: "[(])" Резултат: false Затоа што заградите 2 и 3 се неправилно наведени, затворната ']' се појавува пред затворната '(' */ public boolean check(String s){ Deque<Character> stack = new ArrayDeque<>(); Map<Character, Character> map = Map.of( ')', '(', ']', '[', '}', '{' ); // ((( for( char c : s.toCharArray()){ if(map.containsValue(c)){ stack.push(c); } else if(map.containsKey(c)){ if( stack.isEmpty() || stack.pop() != map.get(c)){ return false; } } } return stack.isEmpty(); }