ÉlőUtoljára: 1 órájaMa: 17
Eszközökfrissítve: 12:30

Yandex új, zero-copy Protobuf formátuma, a YaFF, 3,8-szoros olvasási sebességet ígér

A Yandex új, nyílt forráskódú YaFF formátuma a Protobuf-hoz képest akár 3,8-szor gyorsabb olvasást tesz lehetővé, miközben 10-20% CPU-megtakarítást is hoz.

Yandex új, zero-copy Protobuf formátuma, a YaFF, 3,8-szoros olvasási sebességet ígér
Fotó: Jorge Salvador / Unsplash
forrás: MarkTechPost·AI Forradalom szerk.·
Megosztás

A Yandex közzétette a YaFF-ot, egy új, nyílt forráskódú zero-copy wire formatot, amely a Protobuf ökoszisztémájába illeszkedik. A formátum célja a szerveroldali feldolgozás sebességének növelése, miközben a meglévő .proto sémák továbbra is egyetlen igazságforrásként szolgálnak. A Yandex Tech Blog beszámolója szerint a Flat Layout elnevezésű elrendezés körülbelül 3,8-szor gyorsabban képes olvasni az adatokat, mint a FlatBuffers, és mindössze 1,2-szer lassabb egy nyers C++ structnál. (MarkTechPost)

Négy elrendezés a sebesség és rugalmasság egyensúlyáért

A YaFF négy különböző memóriaelrendezést kínál: Fixed, Flat, Sparse és Dynamic. Ezek az elrendezések a sebesség és a sémarugalmasság között teremtenek egyensúlyt. A Fixed egy egyszerű, fagyasztott sémájú struct, míg a Flat két bájtos fejlécet ad hozzá a sémaevolúció támogatásához. A Sparse meta-táblán keresztül címez meg mezőket, ideális ritka sémákhoz. A Dynamic, amely az alapértelmezett, futásidőben választ a Flat és a Sparse között, attól függően, hogy a séma engedélyezi-e a lapos igazítást. A Yandex saját reklámajánló rendszerében a YaFF használata 10-20% CPU-megtakarítást eredményezett termelési szinten.

Kapcsolódó: GPU-kernelek Pythonból

A Protobuf-parsing CPU-igényének csökkentése

A Protobuf-parsing jelentős, kétszámjegyű CPU-terhelést okozhat nagy terhelésű backendekben, ami nagy léptékben akár több ezer fizikai magot is igénybe vehet. Bár a Google FlatBuffers-e is egy népszerű zero-copy megoldás, nem kompatibilis közvetlenül a Protobuf-fal, és külön séma-karbantartást, valamint konverziós réteget igényel. A YaFF célja, hogy ezt a problémát úgy oldja meg, hogy megtartja a Protobuf szemantikáját, miközben nullára csökkenti a másolási műveleteket az olvasás során. A Yandex által végzett teljesítménytesztek szerint a Flat Layout átlagosan 9,79 nanoszekundum alatt képes olvasni egy hierarchikus adatot, míg a FlatBuffers 37,30, a Protobuf pedig 219,35 nanoszekundumot igényel. A nyers C++ struct alapértéke 8,14 nanoszekundum.

Kapcsolódó: Rust és CUDA fordítás

A YaFF bevezetése és használati esetei

A YaFF bevezetése fokozatosan történhet, egyetlen forró útvonalba integrálva, miközben a többi részen megmarad a kétirányú Protobuf konverzió. A formátum ideális olyan rendszerekhez, ahol a gyártót és a fogyasztót is mi magunk irányítjuk, mint például ajánló- és hirdetéskiszolgáló rendszerek, vagy memóriatérképezett indexek. A Yandex a YaFF-ot a GitHubon tette elérhetővé Apache 2.0 licenc alatt, C++ nyelven, v0.1.0 verziószámmal.

Kapcsolódó: AI-ügynökök programnyelve

Forrás

Feldolgozott sajtóforrás·MarkTechPost

Eredeti cikk megnyitása →

Ez a cikk a fenti sajtóforrás alapján készült AI-összefoglalóval.

tetszett a cikk? oszd meg →
Megosztás

Tetszik az oldal? Támogasd a fejlesztést

Az AI Forradalom egy automatizált pipeline: napi adatgyűjtés, LLM-feldolgozás és infrastruktúra fenntartása valódi költségekkel jár. Ha értékesnek találod a tömör, naprakész AI-összefoglalókat, egy kávé sokat segít.

Támogatom