Základem vysoce výkonného blockchainu je jeho schopnost rychle a bezpečně zpracovávat četné transakce. Pokud však transakce v Sui zahrnují zápis do stejného sdíleného objektu, musí být provedeny postupně. To se může promítnout do delších časů kontrolních bodů, což může snížit efektivitu synchronizace stavu.

Prvním cílem řízení zahlcení sdílených objektů je zlepšit efektivitu při provádění kontrolních bodů. Řízením počtu transakcí, které se dotýkají přetíženého nebo horkého sdíleného objektu v každém kontrolním bodě, systém zajišťuje, že časy zpracování zůstanou konzistentní a zabrání se zpožděním.

Tento mechanismus také podporuje férovost transakcí tím, že zajišťuje, aby transakce s vyššími poplatky za plyn byly upřednostňovány při zahrnutí kontrolních bodů. Uživatelé budou očekávat rychlejší zpracování dražších transakcí.

Řešení dřívějších omezení Sui

Sui dříve spravovala přetížení sdílených objektů prostřednictvím svého správce transakcí. Tento systém monitoruje celkový počet transakcí, které čekají na provedení, a čeká na zpřístupnění požadovaných objektů. Pokud čekající transakce překročí prahovou hodnotu, správce transakcí by přestal přijímat nové požadavky na podepsání nebo provedení transakce.

Předchozí mechanismus, ačkoliv byl v určitých scénářích účinný, v několika oblastech selhal. Často to například vedlo k částečnému odmítnutí transakcí a zablokování objektů kvůli nekonzistentnosti mezi validátory. Neodhadoval přesně doby provádění sekvencí závislých transakcí, což vedlo k neefektivitě a potenciálnímu přetížení zpracování. Nakonec, když došlo k přetížení objektu, předchozí řešení odmítlo všechny příchozí transakce, dokud nebyly provedeny aktuální transakce, což znamená, že nebylo možné upřednostnit zahrnutí pomocí plateb za plyn.

Bližší pohled na kontrolu přetížení 

Nový design Consensus Handler zavádí jemnější přístup ke správě závislostí provádění napříč horkými sdílenými objekty. To zahrnuje dvě nové funkce přidané do logiky validátoru:

  1. Schopnost odložit transakce: Obsluha konsenzu má nyní možnost odložit transakce do budoucích souhlasných potvrzení, a efektivněji tak spravovat závislosti provádění v kontrolních bodech.

  2. Aktivní zrušení transakcí: Validátoři mohou nyní aktivně rušit transakce, které byly nadměrně odloženy. Když je transakce zrušena, je stále zpracovávána, ale s příkazem pro prováděcí stroj k okamžitému zastavení. Jakmile prováděcí stroj obdrží tuto instrukci, uvolní všechny objekty, které uzamkl, a rychle odešle klientovi chybu zrušení, aniž by transakci dokončil.

Consensus Handler třídí a spravuje transakce. Tento diagram používá barevné kruhy pro znázornění transakcí s různými množstvími plynu.

Když Consensus Handler obdrží souhlasné potvrzení, nejprve sloučí transakce v potvrzení s těmi, které byly dříve odloženy, a seřadí je podle ceny plynu. Poté prozkoumá každou transakci jednu po druhé a vytvoří graf závislosti provedení pro jednotlivé objekty, který nastiňuje klíčové kroky potřebné pro provedení kontrolního bodu. Tento proces zajišťuje, že transakce jsou zpracovávány efektivně a v pořadí podle jejich nákladů.​

Chcete-li přidat transakci do grafu závislosti, obsluha vyhodnotí všechny sdílené objekty zahrnuté v transakci. Identifikuje objekt s nejdelší frontou pro zahájení provádění transakce a zarovná fronty všech zúčastněných objektů na tuto maximální délku. Cena transakce je poté přidána do fronty každého objektu a aktualizuje se příkaz k provedení.

Graf závislosti poskytuje odhad latence provádění pro každý objekt na základě nejdelší fronty, což také ukazuje celkovou latenci pro souhlasné potvrzení. V každém souhlasném potvrzení existuje maximální limit pro délku fronty. Pokud transakce překročí tento limit, je odložena na budoucí potvrzení. Pokud je odložen opakovaně překračující určitou hranici, je transakce zrušena a vyřazena ze zpracování. K tomu obvykle dochází, když se transakce zaměřuje na vysoce žádaný objekt, ale nabízí cenu plynu příliš nízkou na to, aby byla konkurenceschopná.

Nový design zvyšuje efektivitu monitorováním závislostí provádění a omezováním transakcí, které zahrnují vysoce požadované sdílené objekty v rámci každého souhlasného potvrzení, a tím chrání provádění kontrolních bodů. Rozhodující je, že transakce, které nezahrnují tyto objekty s vysokou poptávkou, nejsou těmito limity ovlivněny.

Řešení předchozích výzev

Jak již bylo zmíněno, předchozí systém se potýkal se sledováním front transakcí pro každý objekt, což vedlo k neefektivitě. Mechanismus řízení přetížení sdílených objektů nejen řeší tyto výzvy, ale také přináší významná vylepšení pro zefektivnění procesu. Nový přístup zajišťuje jednotné rozhodování všech validátorů o tom, zda transakci provést, odložit nebo zrušit. Tato změna účinně eliminuje problémy spojené se zamčenými objekty a umožňuje rychlé uvolnění objektů držených transakcemi s nižší prioritou.

Mechanismus řízení přetížení také zvyšuje přesnost sledováním úplného grafu závislosti transakcí v rámci každého souhlasného potvrzení. To znamená, že pečlivě zaznamenává posloupnost a závislosti transakcí, což poskytuje mnohem jasnější pohled na skutečný čas potřebný k provedení kontrolních bodů. Tím řeší složitosti a neefektivity, které byly dříve přehlíženy.

Nová metoda navíc podporuje trhy s místními poplatky odložením transakcí a jejich začleněním do nových v následných konsensuálních závazcích. Toto nastavení zvýhodňuje transakce s vyššími cenami plynu a zajišťuje, že mají větší šanci na zpracování během rušných období. Uživatelé získají možnost platit za zahrnutí, což může být zvláště silné pro aktivity DeFi.

A konečně, nový přístup má tendenci dosáhnout lepšího výkonu při pracovní zátěži sdílených objektů dříve, než dojde k jakékoli degradaci provádění kontrolních bodů. Toto zlepšení vychází z konzistentního a kolektivního rozhodování validátorů, což vede k efektivnějšímu zpracování transakcí a zvýšení celkové propustnosti sítě. Tato jednotnost zajišťuje, že systém může zpracovat více transakcí, než nastanou problémy s výkonem.

Sui uvolňuje cestu

Implementace řízení zahlcení sdílených objektů je více než jen technický upgrade, je to strategické vylepšení, které výrazně zlepšuje škálovatelnost a efektivitu Sui.  Díky tomuto základu si nyní uživatelé a aplikace na Sui mohou užívat vyšší efektivitu a spolehlivost transakcí. Zjednodušený mechanismus řízení přetížení poskytuje odrazový můstek pro nasazení složitějších a pohotovějších aplikací a dále rozšiřuje možnosti ekosystému.