Kotlin
Explique la réplication dans PostgreSQL : maître-esclave, ce qui se passe en cas de défaillance de la réplica
Comment fonctionne le mécanisme de Dirty Checking dans Hibernate?
Pourquoi l'optimiseur de requêtes Postgres peut-il utiliser un Seq Scan en production, mais un Index Scan en dev/ft avec les mêmes index ?
As-tu utilisé HQL, requêtes natives, JDBC directement ? Batching dans Hibernate ?
// réserver(seat_id, user_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("Le siège n'est pas disponible") 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()
Des transactions Kafka ont-elles été utilisées (sémantique exactement une fois) ?
Parlez de la surveillance et des métriques dans le projet (Prometheus, Grafana)
Comment résoudre le problème de mise à jour concurrente d'une entité à partir de deux topics Kafka (un topic écrase les modifications de l'autre) ?
Que fait VACUUM dans PostgreSQL et pourquoi des lignes mortes apparaissent-elles?
Parlez du partitionnement dans PostgreSQL
Parlez-moi des niveaux d'isolation des transactions
Parlez-moi des verrouillages optimistes et pessimistes, quand les utiliser?
/* SÉLECTIONNER gauche.K, gauche.V1, droite.V2 DE gauche JOINDRE droite SUR gauche.K = droite.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> gauche, List<Pair<K, V2>> droite) { return null; } private static class Pair<A, B> { private A premier; private B deuxieme; Pair(A premier, B deuxieme) { this.premier = premier; this.deuxieme = deuxieme; } } private static class Triple<A, B, C> { private A premier; private B deuxieme; private C troisieme; Triple(A premier, B deuxieme, C troisieme) { this.premier = premier; this.deuxieme = deuxieme; this.troisieme = troisieme; } }
Connais-tu ce qu'est Service Mesh dans Kubernetes?
Comment contrôler la charge sur les poignées (limitation de débit) ?
Quelle était la charge sur les services ? Quelles optimisations ont été appliquées ?
Parlez-moi de vous et de votre expérience professionnelle
As-tu utilisé Kotlin ? As-tu de l'expérience ?
/*Étant donné une chaîne, il est nécessaire d'implémenter une fonction pour vérifier la correction de l'indication des parenthèses. Chaque parenthèse ouvrante doit correspondre à une parenthèse fermante. Les parenthèses ouvrantes et fermantes doivent être dans le bon ordre. Types de parenthèses : "{", "}", "(", ")", "[", "]". Entrée : "([]){}[(()())()]" Résultat : true Entrée : "[(])" Résultat : false Parce que les parenthèses 2 et 3 sont indiquées incorrectement, la fermeture ']' apparaît avant la fermeture '(' */ 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(); }