NeoFS S3 Gateway v0.45.1 optimaliseert lees- en schrijfprestaties via SDK RC21
Belangrijkste punten
- •NeoFS S3 Gateway v0.45.1 introduceert een schrijfpadoptimalisatie die ten minste één tussenliggende gegevenskopie verwijdert tijdens PUT-bewerkingen, waardoor geheugentoewijzing en CPU-overhead worden verlaagd.
- •Ranged GET-verzoeken halen nu zowel objectheaders als payload-gegevens op in één netwerkaanroep in plaats van een aparte round-trip te vereisen, wat gunstig is voor streaming-media en gedeeltelijke download-workflows.
- •Uitgebreide toegangscontrolelijsten worden tegelijkertijd toegepast met het aanmaken van containers, waardoor een vervolgverzoek overbodig wordt en een venster wordt gesloten waarin nieuw aangemaakte containers zonder hun aangewezen toegangsbeleid konden bestaan.
- •Een metagegevenscorrectie filtert interne NeoFS-systeemkenmerken uit GetObject-reacties, zodat alleen door de gebruiker gedefinieerde metagegevens worden geretourneerd en het risico op informatielekkage in multi-tenant-implementaties wordt verminderd.
- •De patch omvat een gRPC-afhankelijkheidsupdate naar v1.82.1 die HTTP/2 frame flood denial-of-service-aanvallen mitigeert en autorisatie-omzeilingskwetsbaarheden in xDS-permissiematching oplost.

Neo SPCC heeft op 4 augustus NeoFS S3 Gateway v0.45.1 uitgebracht. Deze patch-update introduceert drie prestatieoptimalisaties en een metagegevenscorrectie voor de S3-compatibele interface van het gedecentraliseerde NeoFS-opslagnetwerk. Omdat de Amazon S3 API de de facto standaard is geworden voor objectopslag op zowel gecentraliseerde als gedecentraliseerde platforms, hebben verbeteringen aan de doorvoer en correctheid van de S3-gateway direct invloed op hoe gemakkelijk ontwikkelaars applicaties kunnen migreren of bouwen op NeoFS met vertrouwd gereedschap.
Twee van deze prestatieverbeteringen worden mogelijk gemaakt door de NeoFS SDK Go RC21, die enkele dagen eerder is uitgebracht tegelijk met NeoFS Node v0.55.0.
Voortbouwend op de belangrijke juli-release van S3 Gateway v0.45.0 — die naamruimteconfiguratie, vereenvoudigde EACL-regels en het verwijderen van verouderde access box-ondersteuning bracht — vereist deze nieuwe patch geen migratie voor bestaande v0.45.0-gebruikers.
Schrijfbuffering en ranged GET-optimalisaties
De eerste optimalisatie implementeert de io.ReaderFrom-interface voor de object payload-writer, een mogelijkheid die is geïntroduceerd in SDK RC21. Door ten minste één tussenliggende gegevenskopie te verwijderen tijdens PUT-bewerkingen, verlaagt deze update de geheugentoewijzing en CPU-overhead op het schrijfpad (#1320).
De tweede optimalisatie verbetert ranged GET-verzoeken. Eerder vereisten deze verzoeken een aparte round-trip om de objectheader op te halen voordat het opgegeven bereik aan gegevens kon worden opgehaald. Met behulp van de op HTTP lijkende byte-rangeparameters van SDK RC21 kan de gateway nu zowel de header als de ranged payload in één enkele netwerkaanroep ophalen (#1319). Deze verbetering is aanzienlijk voordelig voor streaming-media, gedeeltelijke downloads en meerdelige upload-workflows die afhankelijk zijn van S3-range-leesbewerkingen.
Uitgebreide toegangscontrolelijsten toegepast bij aanmaken van containers
Uitgebreide toegangscontrolelijsten (EACL) worden nu tegelijkertijd toegepast met het aanmaken van containers in één netwerkaanroep, waardoor de noodzaak voor een vervolgverzoek verdwijnt (#1304). Deze aanpassing vermindert de latentie bij het aanmaken van S3-buckets en sluit een kort kwetsbaarheidsvenster waarin een nieuw aangemaakte container zonder het bijbehorende toegangsbeleid kon bestaan.
Correctie van systeemkenmerken
Een cruciale correctiefilter verwijdert interne NeoFS-systeemkenmerken uit GetObject-metagegevensreacties (#1321). In eerdere versies werden deze kenmerken op protocolniveau samen met door de gebruiker gedefinieerde metagegevens in S3-reacties opgenomen, waardoor interne implementatiedetails onbedoeld aan clients werden blootgesteld. De correctie zorgt ervoor dat alleen door de gebruiker gedefinieerde metagegevens worden geretourneerd, waardoor het systeem wordt afgestemd op het verwachte S3 API-gedrag en het risico op informatielekkage in multi-tenant-implementaties wordt verminderd.
Updates van afhankelijkheden
Naast de SDK RC21-upgrade neemt versie 0.45.1 diverse beveiligings- en onderhoudsupdates op, waaronder:
golang.org/x/cryptov0.52.0golang.org/x/netv0.55.0google.golang.org/grpcv1.82.1
De gRPC-update richt zich specifiek op mitigaties voor HTTP/2 frame flood denial-of-service-aanvallen en lost autorisatie-omzeilingsscenario's op in xDS-permissiematching. Deze klassen van HTTP/2-kwetsbaarheden worden actief geëxploiteerd in het bredere infrastructuurecosysteem, waardoor tijdige updates van afhankelijkheden een basale beveiligingspraktijk vormen voor opslaggateways die blootgesteld zijn aan niet-vertrouwde clients.
De volledige release-opmerkingen zijn hier beschikbaar: https://github.com/nspcc-dev/neofs-s3-gw/releases/tag/v0.45.1