Čo sa dá povedať o optimalite plánu dotazu? MVCC Existuje tabuľka CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); a dotaz, ktorý sa spúšťa každú sekundu UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Po niekoľkých dňoch si všimnete: • veľkosť tabuľky sa výrazne zväčšila • dotaz SELECT * FROM orders WHERE id = 1 beží pomalšie Otázky pre kandidáta 1. Prečo tabuľka rastie, aj keď je riadok vždy rovnaký? 2. Akú úlohu hrá MVCC v tejto situácii? 3. Čo by malo tento problém vyriešiť?
C#
Čo je IAsyncDisposable?
Poznáte vacuum a vacuum full?
Čo vytlačí program s async/await: main vytlačí A, zavolá saySomething (statický, vráti Task), počká 5 sekúnd, potom D?
Typy transakcií / úrovne izolácie?
Čo zobrazí program, ak je throw odkomentované na uvedených miestach?
Aký je ďalší problém s viacvláknovým spracovaním v metóde Init?
Nepracovalo to s Linq2DB?
Ako spraviť triedu iterovateľnou?
Aký technologický stack použili?
IMemoryCache — čo je to a kedy použiť?
Prehľad: použitý kód Trieda obsahuje logiku spracovania nových objednávok. Vyberá objednávky a pozície z databázy, potom vykonáva HTTP volanie na externý mikroservis Stock, v ktorom rezervuje produkty podľa pozícií objednávky. Ak sú všetky rezervácie úspešné, mikroservis potvrdí rezerváciu objednávky v Stock a označí objednávku ako spracovanú. Mikroservis beží v niekoľkých inštanciách, preto sa metóda Process môže vykonávať paralelne. Aby sa zabránilo spracovaniu rovnakých riadkov, používa sa mechanizmus pesimistického zamykania PostgreSQL Select for update ... skip locked. Implementácia IBus odosiela správy do RabbitMq. ```csharp public sealed class PendingOrdersProcessor { public async Task PendingOrdersProcessor(ILogger logger, IBus bus, HttpStockService st { var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var cs = _cs[env]; _db = new OrdersRepository(cs); _bus = bus; logger = logger; ``` ```csharp _stockService = stockService; } private readonly ILogger _logger; private readonly IOrdersRepository _db; private readonly IStockService _stockService; private readonly IBus _bus; private static readonly Dictionary<string, string> _cs = new { { "Development", "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=myDataBase" }, { "Production", "User ID=root;Password=myPassword;Host=prod-db;Port=5432;Database=" "Pooling=true;Min Pool Size=0;Max Pool Size=1;" } }; ```
Kedy dochádza k uzavretiu (closure)?
Povedaj mi o poslednom mieste práce — Severstal. Čim si se ukvarjal, koliko si tam delal, kateri je bil tehnološki stack?
Prečo štruktúra nemôže dediť?
Koľko pamäte zaberá inštancia Date v 32- a 64-bitových systémoch?
Ako opraviť, aby sa zobrazovalo 0-9?
IMemoryCache Aké sú výhody a nevýhody používania IMemoryCache v aplikácii? Čo je top 10 OWASP? Metriky kódu 1. Aké metriky kvality kódu poznáte? 2. Používali ste ich? 3. Ako ste ich vypočítali? 4. Sú súčasťou CI alebo ad hoc? Zaťaženie Čo by ste urobili, ak by sa vaša služba (webová stránka) zasekla v testovacom alebo zaťažovacom prostredí, ale lokálne všetko fungovalo?
Ako fungujú transakcie s verziami v MVCC?
Prečo aplikácia s databázou funguje v jednom prostredí a v inom sa zhoršuje?