Sobes.tech

Python

Czym jest kompresja Write-Ahead Log (WAL) w PostgreSQL? W jakich przypadkach włączenie kompresji plików WAL zmniejsza obciążenie podsystemu dyskowego i sieci, a w jakich prowadzi do pogorszenia wydajności z powodu nadmiernego wykorzystania rdzeni CPU?

6

Jak jest zbudowany mechanizm Polityki Pętli Zdarzeń w asyncio? W jakich scenariuszach programista backend musi wymusić zmianę domyślnej polityki pętli zdarzeń na własną, na przykład używając uvloop opartego na libuv, i jak osiąga się wzrost wydajności?

6

Czym jest indeks wyrażenia (Expression Index / Functional Index) w PostgreSQL? Jakie nakłady na operacje zapisu (INSERT/UPDATE) wiąże i dlaczego planista może odmówić jego użycia, jeśli typy danych w wyrażeniu zapytania nie pasują?

4

Czym jest głębokie kopiowanie obiektów (copy.deepcopy) w Pythonie z punktu widzenia wydajności? Jak ten mechanizm omija cykliczne odniesienia, dlaczego działa krytycznie wolno na dużych grafach obiektów, i jakie alternatywne wzorce go zastępują w systemach wysokiego obciążenia?

4

Jak działa wzorzec Sidecar w Kubernetes, na przykład z Istio lub Envoy? Jak ten wzorzec pozwala na odciążenie szyfrowania ruchu (mTLS), śledzenia żądań i ponownych prób z aplikacji?

4

Czym są Penetracja pamięci podręcznej, Avalanche pamięci podręcznej i Rozgrzewka pamięci podręcznej? Jak zaprojektować warstwę pamięci podręcznej dla sklepu internetowego, aby podczas nocnej wyprzedaży, gdy miliony użytkowników jednocześnie żądają nowych produktów, baza danych nie uległa awarii z powodu braków w pamięci podręcznej?

4

Jakie są różnice między architekturami Push a Pull w projektowaniu systemów strumieniowania danych, takich jak RabbitMQ i Kafka? Jak te podejścia wpływają na wykorzystanie pamięci po stronie brokera i problem backpressure konsumentów?

3

Opisz protokół dwufazowego zatwierdzania (2PC) dla rozproszonych transakcji obejmujących dwie niezależne relacyjne bazy danych. Co się dzieje z systemem, jeśli koordynator transakcji zawiesi się dokładnie między fazą głosowania (Prepare) a fazą zatwierdzenia (Commit)?

3

Opisz mechanikę wbudowanej funkcji compile(). Jak przekształcić dynamicznie wygenerowany ciąg kodu Pythona w obiekt kodu, bezpiecznie go wykonać w izolowanym kontekście za pomocą exec/eval i zapobiec lukom RCE?

3

Opisz kompromisy między protokołami WebSockets, SSE (Server-Sent Events) i gRPC Streaming. Który protokół wybrałbyś dla: a) czatu na żywo, b) jednokierunkowego strumienia notowań giełdowych, c) komunikacji między usługami w architekturze mikroserwisów, i dlaczego?

2

Jak są zbudowane rozszerzenia C/C++ dla Pythona (C Extensions) pod maską? Dlaczego rozszerzenia napisane przy użyciu tradycyjnego API C Pythona spowalniają przejście na Pythona bez GIL, i jak rozwiązują ten problem nowoczesne alternatywy takie jak HPy lub Cython?

2

Dlaczego standardowa funkcja os.cpu_count() w Pythonie często zwraca łączną liczbę rdzeni fizycznego serwera w kontenerze Docker uruchomionym w podzie Kubernetes z limitem CPU: 2? Jakie krytyczne problemy z rozmiarem puli wątków w Gunicorn lub Celery to powoduje i jak to naprawić?

2

Jak działa algorytm Consistent Hashing? Dlaczego jest potrzebny przy projektowaniu rozproszonego klastra pamięci podręcznej, na przykład z 20 serwerami Redis, i jak minimalizuje liczbę kluczy, które muszą zostać przeniesione przy dodawaniu lub usuwaniu węzła?

1

Jak Linux Cgroups (Control Groups) i Namespaces tworzą izolację w kontenerze Docker? Co się dzieje z procesem Pythona, gdy przekracza resource.limits.cpu w Kubernetes, i dlaczego przekroczenie limits.memory prowadzi do OOMKilled, podczas gdy przekroczenie CPU powoduje tylko throttling?

1