I. Ulubiona Iluzja Branży

Przez długi czas wydajność blockchaina była promowana jako liczba. Szczytowe TPS. Milisekundowa finalność. Laboratoryjne benchmarki w idealnych warunkach uchwycone. Chociaż te liczby są kuszące, ukrywają niesamowitą prawdę: przepustowość nie jest miarą architektury systemu.

Szybkość nie jest cnotą w izolacji. To jest test wytrzymałości.

Patrząc na sekwencyjne czasy wykonywania, strukturalne słabości są dobrze ukryte. Transakcje ustawiają się w kolejce. Bloki wypełniają się w porządku. Każda interakcja przechodzi przez tę samą wąską ścieżkę przetwarzania. A ponieważ wszystko jest domyślnie seryjnie przetwarzane, każda aplikacja wydaje się być poddana temu samemu systemowemu oporowi. Opóźnienie otoczenia jest akceptowaną cechą środowiska, a nie sygnałem diagnostycznym.

Gdy użytkownicy są trzymani w ciemności, ponieważ deweloperzy nie widzą wyraźnie, nie mogą dostrzec, jaki jest problem. Czy sieć jest nasycona? Czy kontrakt jest źle zaprojektowany? Czy wspólny obiekt stanu staje się ukrytym punktem zatorowym? Wszystko jest przetwarzane jedno po drugim w sekwencyjnej kolejności, a wady architektury systemu są zakopane przez równomierne rozkładanie opóźnienia w całym systemie.

Zator jest kamuflażem, w tych sytuacjach.

Teraz wyobraź sobie zastosowanie tego samego programu na bazie SVM Layer 1, takiej jak Fogo - kamuflaż znika - transakcje nie kolejkowały się już losowo, ponieważ wykonują się niezależnie. To oznacza, że nie będzie domniemanych konfliktów, chyba że zostaną zadeklarowane przez wspólny zapisywalny stan.

Równoległe strzały poruszają się płynnie po systemie - to znaczy, aż napotkają jedno konto.

W tym momencie łańcuch wraca do serializacji nie dlatego, że łańcuch jest wolny, ale dlatego, że architektura wymusiła blokadę.

Wąskie gardło nie jest już abstrakcyjne, ale explicite.

A prędkość nie wprowadza tarcia, ale je ujawnia.

II. Stan jako Powierzchnia Współbieżności

W równoległym czasie wykonania stan nie jest pasywnym magazynem. To jest polityka współbieżności.

Każde zapisywalne konto reprezentuje granicę blokady. Gdy transakcja deklaruje, że zamierza zmienić konto, czas wykonania musi zapewnić wyłączny dostęp. Jeśli dwie transakcje próbują jednocześnie modyfikować to samo konto, jedna musi czekać. To nie jest nieefektywność, to jest poprawność.

Implikacja architektoniczna jest poważna: każdy wspólny zapisywalny obiekt staje się powierzchnią serializacji. Globalny licznik, który jest aktualizowany przy każdej transakcji, metryka na poziomie protokołu, która jest przeliczana przy każdej interakcji. Istnieje jedno konto puli płynności dla wszystkich swapów. Gdy ruch jest niski, te wybory projektowe wydają się rozsądnie bezpieczne. Gdy ruch jest wysoki, reprezentują górny limit skalowalności.

Aby równoległe wykonanie mogło działać, modyfikacje, które zachodzą, muszą być niezależne.

Izolowane modyfikacje stanu mogą być dokonywane przez użytkowników na indywidualnych kontach, podzielonych pulach lub oddzielnych książkach zamówień. W tych scenariuszach czas wykonania systemu może zaplanować modyfikację tych stanów bez zakłócania się nawzajem. To naturalnie zwiększa przepustowość.

Gdy cała aktywność jest skierowana na jeden zmienny stan, system jest zmuszony do sekwencyjnego przetwarzania w tym stanie. Niezależnie od tego, ile rdzeni jest obecnych lub jak niskie są opóźnienia, wspólny stan staje się wąskim gardłem.

To jest sednem problemu, który stwarza zapotrzebowanie na równoległość.

W systemie sekwencyjnym globalny stan jest użyteczny. W systemach równoległych globalny stan jest drogim zasobem.

Podczas projektowania dla współbieżności, analiza każdego zmiennego jest potrzebna:

Czy ta wartość naprawdę musi być modyfikowana synchronicznie?

Czy może być podzielone przez użytkownika, rynek lub epokę?

Czy raportowanie może być oddzielone od poprawności?

Czy krytyczne ścieżki wykonania mogą być wolne od analityki?

To nie jest mikrooptymalizacja — to są zobowiązania strukturalne.

Gdy system został wdrożony, równoległość nie może być dodana jako myśl wsteczna. Musi być wbudowana w projekt topologii stanu od samego początku.

III. Silniki i Ramy

Silniki o wysokiej wydajności generują moc. Dostosowanie miejsca silnika nie zmieni tej zdolności.

Umieść silnik w dobrze wyrównanej ramie. Przy odpowiedniej geometrii i dobrym rozkładzie wszystkich sił, rama również będzie działać dobrze, a przyspieszenie będzie płynne. Rama i silnik będą działać w symetrii ze sobą, a konwersja energii w ruch nie będzie marnowana.

Ale jeśli ten sam silnik zostanie umieszczony w źle wyrównanej ramie z naciskiem na słabe jointy, niskie ścieżki się zmienią, a wydajność również się zmieni. Wibracje zostaną wzmocnione. Komponenty będą przeciążone. Pęknięcia zostaną stworzone przez ciśnienie. Silnik nie zawodzi. Struktura nie jest w stanie przyjąć tego wyjścia.

Tak działają równoległe czasy wykonania.

Silnik SVM, taki jak Fogo, oferuje niskie opóźnienia i wysoką przepustowość przy równoległym wykonaniu. Nie zmniejszy swojej wydajności, aby dostosować się do wad architektury. Silnik nie będzie zablokowany z powodu uogólnionego zatoru.

To zwiększy wady struktury.

Jeśli kontrakt kieruje wszystkie zapisy do jednego konta, nastąpi serializacja. Protokół, który zależy od synchronicznej globalnej aktualizacji, będzie wstrzymany w przewidywanych punktach kontencji. Czas wykonania nie złagodzi rezultatów. Będzie jasne, jaki będzie dokładny wynik.

Twoje zdanie było mylące. Zmieniłem kolejność niektórych słów, ale nie zmieniłem znaczenia.

IV. Piąty. Argument na rzecz Zintegrowanego Projektowania.

Celem nie jest kara. Celem jest pomiar.

Gdy zintegrowane z pionowymi ogranicznikami, stała sekwencyjna sieć może przez długi czas ukrywać niedoskonałości. Szybka równoległa sieć po prostu tego nie może.

Gdy pierwszy rentgen się pojawi, obowiązek architekta nie może być już unikany.

Dyscyplina w utrzymywaniu równoległości.

Projektowanie dla równoległego wykonania wymaga porządku na poziomie stanów:

Domyślna izolacja stanów użytkowników. Niezależność jako stan istnienia jest punktem wyjścia, a nie późniejszą korektą.

Wspólne systemy powinny być podzielone. Użytkownicy wspólnych systemów, takich jak rynki, pule lub książki zamówień, powinni być dzieleni tam, gdzie to możliwe, aby zmniejszyć powierzchnie kontencji.

Oddziel poprawność i raportowanie. Niezmienniki na łańcuchu, które muszą być prawdziwe, powinny być synchroniczne, podczas gdy analityka i metryki mogą być asynchroniczne.

Globalne zapisy powinny być minimalizowane. Każde wspólne, zapisywalne konto powinno być traktowane jako cenny zasób.

Kontencja powinna być modelowana explicite. Jeśli serwery użytkowników, zaprojektuj, aby zrównoważyć koszty kontencji, zakładając brak serializacji.

Celem nie jest całkowite wyeliminowanie wspólnych stanów i systemów. Niezmienniki, które są krytyczne, wymagają pewnego poziomu koordynacji. Celem powinna być celowa i minimalna serializacja.

Jasność strukturalna jest nagradzana równoległością.

V. Co Prędkość Ostatecznie Ujawnia

Szybka infrastruktura nie jest gwarancją dla aplikacji. To, co ona gwarantuje, to otwartość. *Gdy równoległe czasy wykonania osiągają pułapy wydajności, zazwyczaj nie jest tajemnicą, dlaczego. Są to bezpośrednie wyniki wspólnego zapisywalnego stanu, scentralizowanych punktów mutacji i wczesnych oraz nieprzemyślanych wyborów architektonicznych.

W tym sensie prędkość nie jest cechą marketingową, to jest rentgen.

Usuwa zamglenie, które kiedyś maskowało kontencję. Rozróżnia ograniczenia sieciowe od wad projektowych aplikacji. Uczynia granice blokady widocznymi.

A gdy tylko staną się widoczne, można je przeprojektować.

Przyszłość wysokowydajnych blockchainów nie będzie określona wyłącznie przez szybsze czasy wykonania. Zostanie określona przez to, czy deweloperzy wewnętrznie przyswoją lekcję, którą te czasy wykonania narzucają: niezależność to skalowalność.

Przepustowość nie jest dziedziczona z łańcucha. Jest zdobywana przez architekturę.

\u003cm-177/\u003e \u003ct-179/\u003e \u003cc-181/\u003e