Agregace GraphQL, která zabíjí výkon, když ji podceníte
Na velké plochy se hodí obklad: papírový ubrousek namočte do roztoku, přiložte na baterii a nechte působit. Ubrousek drží vlhkost na místě a kyselina pracuje rovnoměrně. Po odstranění kamenů vždy opláchněte čistou vodou a utěrkou vytřete do sucha. Zbytky kyseliny na chromu totiž po čase zmatní a začnou přitahovat nové usazeniny. Totéž platí pro kuchyňskou sůl a jedlou sodu v pastě: fungují, ale zrna soli mohou chrom poškrábat, pokud tlačíte.
Cacheování je třetí místo, kde se chyby opakují. Cache na úrovni pole musí být vázaná na identitu objektu i na kontext uživatele. Pokud cachujete data bez ohledu na oprávnění, dostanete se k cizím datům. Pokud cachujete příliš agresivně, klient vidí zastaralé hodnoty a přestane věřit odpovědím. Rozlišujte mezi cache na úrovni jednoho požadavku a cache mezi požadavky. Ta první je bezpečná vždy, druhá vyžaduje krátkou expiraci a invalidaci při zápisu.
Třetí signál se týká rozhovoru. Pokud si s návštěvou musíte stále říkat „cože?", i když sedíte blízko sebe, místnost pohlcuje řeč nebo ji rozostřuje. Na vině bývá kombinace tvrdých povrchů a velkého otevřeného prostoru do kuchyně nebo na chodbu. Pomůže zavěsit těžší závěs do průchodu, položit běhoun a doplnit měkké sedací plochy. Pozor na příliš mnoho rostlin a dekoračních předmětů, které sice vypadají hezky, ale akusticky téměř nic neřeší.
Co nahradit jako prvn
Hloubka dotazu a limity, které se nesmí přeskočit Druhá past je neomezená hloubka a složitost dotazu. Klient si může vyžádat pět úrovní vnořených vztahů a každý z nich násobí počet volání. Nasaďte analýzu dotazu ještě před spuštěním resolverů a spočítejte, kolik polí a jak hluboko se dotaz rozvětvuje. Stanovte tvrdý limit hloubky a maximální počet uzlů na dotaz. Odmítněte dotaz dřív, než zatíží databázi. Chybová odpověď je lepší než výpadek, který srazí celou službu.
Rezervu berte jako pojištění, ne jako investici. Jejím úkolem je pokrýt výpadky příjmu, opravy a neočekávané účty, ne vydělávat. Jakmile dosáhnete několikanásobku měsíčních výdajů, můžete přestat zvyšovat její podíl a začít řešit jiné cíle. Do té doby ale platí jedno: dokud převod neběží automaticky, spoléháte na disciplínu, a ta v horším měsíci selže. Nastavte ho dnes, zkontrolujte za měsíc a upravte podle reality.
Než začnete cokoli kupovat, projděte místnost a zapište si, které plochy jsou tvrdé a které měkké. Změňte uspořádání nábytku, přidejte textilie a otestujte poslech na stejném místě. Teprve když ani to nepomůže, má smysl uvažovat o cílených akustických prvcích. Většina obýváků se zlepší už tím, že přestanete ignorovat prvních pět signálů.
Poslední věc, kterou většina týmů podcení: sledujte skutečné dotazy v produkci, ne jen v testech. Testovací data jsou malá a rovnoměrná, provoz je nepořádný. Zaznamenejte pomalé dotazy včetně jejich tvaru, hloubky a počtu volání do databáze. Teprve z těchto dat zjistíte, který vzor je skutečně drahý. Optimalizace bez měření je jen další vrstva, která se časem rozpadne.
První let s batoletem se většinou nekazí na palubě, ale už při výběru letu. Batole má pevný režim spánku a jídla a letecká společnost vám ho nepřizpůsobí. Pokud vyberete odlet v době, kdy dítě běžně spí, budete ho budit, přebalovat a táhnout přes terminál v nejhorší možné fázi dne. Naopak let v čase jeho přirozené bdělosti znamená, že bude unavené akorát ke konci cesty, kdy už sedíte v letadle. Cílem je, aby usnulo během stoupání, ne aby řvalo na check-inu.
Jak na usazeninu na chromu bez poškození Nejšetrnější postup je kyselina citronová. Dvě lžičky prášku rozpusťte ve sklenici teplé vody, roztok naneste hadříkem na chrom a nechte působit deset až patnáct minut. Potom povrch otřete vlhkou měkkou utěrkou a dosušte. U starších vrstev postup zopakujte, ale vždy nechte roztok působit, místo abyste tlačili. Stejně funguje ocet, jen je cítit a na některé laciné chromované díly může působit agresivněji. Nikdy nemíchejte ocet s chlorovým čističem, vzniká nebezpečný plyn.
Čtvrtým signálem je únava po poslechu. Po hodině filmu nebo hudby cítíte tlak v uších, bolí vás hlava a máte tendenci zvyšovat hlasitost. Zvuk se totiž odráží od stěn a vy musíte vynakládat větší úsilí, abyste jednotlivé vrstvy oddělili. Zkuste nejdřív snížit hlasitost a poslouchat v tichu bez dalších zvuků z kuchyně. Pokud potíže přetrvávají, je čas řešit akustiku, ne sluch.
Nejčastější příčina pomalých GraphQL dotazů není databáze, ale to, že klient posílá příliš mnoho dotazů tam, kde by stačil jeden. Typický scénář: seznam položek a ke každé se dotahují detaily zvlášť. Vzniká N+1 problém, který se v RESTu řeší snadno, v GraphQL je ale skrytý uvnitř resolverů. První krok k optimalizaci je měřit, ne hádat. Zapněte tracing na úrovni resolverů a sledujte, kolik volání skutečně vzniká. Teprve pak má smysl něco měnit.