AktualnościKryptoNeoFS S3 Gateway v0.45.1 optymalizuje wydajność odczytu i zapisu dzięki SDK RC21

NeoFS S3 Gateway v0.45.1 optymalizuje wydajność odczytu i zapisu dzięki SDK RC21

Autor: CryptoNewsNet·

Najważniejsze informacje

  • NeoFS S3 Gateway v0.45.1 wprowadza optymalizację ścieżki zapisu, która usuwa co najmniej jedną pośrednią kopię danych podczas operacji PUT, zmniejszając zużycie pamięci i narzut CPU.
  • Żądania ranged GET pobierają teraz zarówno nagłówki obiektu, jak i dane ładunku w jednym wywołaniu sieciowym zamiast wymagać osobnej wymiany, co wspiera strumieniowanie multimediów i częściowe pobieranie plików.
  • Extended Access Control Lists są stosowane jednocześnie z tworzeniem kontenera, eliminując dodatkowe żądanie i zamykając okres, w którym nowo utworzone kontenery mogły istnieć bez przypisanej polityki dostępu.
  • Poprawka metadanych filtruje wewnętrzne atrybuty systemowe NeoFS z odpowiedzi GetObject, zapewniając zwracanie wyłącznie metadanych zdefiniowanych przez użytkownika i ograniczając ryzyko wycieku informacji w środowiskach wielodostępnych.
  • Poprawka obejmuje aktualizację zależności gRPC do v1.82.1, która łagodzi ataki HTTP/2 frame flood denial-of-service i usuwa podatności obejścia autoryzacji w dopasowywaniu uprawnień xDS.
NeoFS S3 Gateway v0.45.1 optymalizuje wydajność odczytu i zapisu dzięki SDK RC21

Neo SPCC opublikował NeoFS S3 Gateway v0.45.1 4 sierpnia. Ta aktualizacja typu patch wprowadza trzy optymalizacje wydajności oraz poprawkę metadanych do zgodnego z S3 interfejsu zdecentralizowanej sieci przechowywania NeoFS. Ponieważ Amazon S3 API stało się de facto standardem dla obiektowego przechowywania danych zarówno w scentralizowanych, jak i zdecentralizowanych platformach, usprawnienia przepustowości i poprawności bramy S3 bezpośrednio wpływają na to, jak łatwo deweloperzy mogą migrować lub budować aplikacje na NeoFS przy użyciu znanych narzędzi.

Dwie z tych poprawek wydajności są wspierane przez NeoFS SDK Go RC21, wydany zaledwie kilka dni wcześniej wraz z NeoFS Node v0.55.0.

W oparciu o duże lipcowe wydanie S3 Gateway v0.45.0, które wprowadziło konfigurację przestrzeni nazw, uproszczone reguły EACL oraz usunięcie obsługi starszego access box, ta nowa poprawka nie wymaga migracji dla istniejących użytkowników v0.45.0.

Buforowanie zapisu i optymalizacje ranged GET

Pierwsza optymalizacja wdraża interfejs io.ReaderFrom dla zapisywania ładunku obiektu, funkcję wprowadzoną w SDK RC21. Usunięcie co najmniej jednej pośredniej kopii danych podczas operacji PUT obniża zużycie pamięci i narzut CPU na ścieżce zapisu (#1320).

Druga optymalizacja dotyczy żądań ranged GET. Wcześniej takie żądania wymagały osobnej wymiany sieciowej w celu pobrania nagłówka obiektu przed odczytem wskazanego zakresu danych. Dzięki parametrom zakresu bajtów podobnym do HTTP, dostarczonym przez SDK RC21, brama może teraz pobrać zarówno nagłówek, jak i zakresowy ładunek w jednym wywołaniu sieciowym (#1319). Usprawnienie to szczególnie korzystnie wpływa na strumieniowanie multimediów, częściowe pobieranie plików oraz przepływy pracy związane z wieloczęściowym przesyłaniem, które opierają się na odczytach zakresowych S3.

EACL ustawiane podczas tworzenia kontenera

Extended Access Control Lists (EACL) są teraz stosowane jednocześnie z tworzeniem kontenera w jednym wywołaniu sieciowym, bez potrzeby dodatkowego żądania następczego (#1304). Zmiana ta zmniejsza opóźnienie podczas tworzenia bucketów S3 i zamyka krótki okres, w którym nowo utworzony kontener mógł istnieć bez przypisanej polityki dostępu.

Poprawka atrybutów systemowych

Istotna poprawka poprawności filtruje wewnętrzne atrybuty systemowe NeoFS z odpowiedzi metadanych GetObject (#1321). Wcześniej te atrybuty na poziomie protokołu były zwracane wraz z metadanymi zdefiniowanymi przez użytkownika w odpowiedziach S3, nieumyślnie ujawniając klientom wewnętrzne szczegóły implementacyjne. Poprawka zapewnia, że zwracane są wyłącznie metadane zdefiniowane przez użytkownika, dostosowując system do oczekiwanego zachowania API S3 i ograniczając ryzyko wycieku informacji w środowiskach wielodostępnych.

Aktualizacje zależności

Oprócz aktualizacji SDK RC21, wersja 0.45.1 uwzględnia różne aktualizacje bezpieczeństwa i utrzymaniowe, w tym:

  • golang.org/x/crypto v0.52.0
  • golang.org/x/net v0.55.0
  • google.golang.org/grpc v1.82.1

Aktualizacja gRPC obejmuje w szczególności środki ograniczające ataki typu HTTP/2 frame flood denial-of-service oraz naprawia scenariusze obejścia autoryzacji wykryte w dopasowywaniu uprawnień xDS. Tego rodzaju podatności HTTP/2 były aktywnie wykorzystywane w szerszym ekosystemie infrastrukturalnym, dlatego terminowe aktualizacje zależności są podstawową praktyką bezpieczeństwa dla bram przechowywania wystawionych na ruch od niezaufanych klientów.

Pełne informacje o wydaniu są dostępne pod tym adresem: https://github.com/nspcc-dev/neofs-s3-gw/releases/tag/v0.45.1