无主之地2配置高吗|看真人裸体BBBBB|秋草莓丝瓜黄瓜榴莲色多多|真人強奷112分钟|精品一卡2卡3卡四卡新区|日本成人深夜苍井空|八十年代动画片

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

借助廣度優(yōu)先引擎,Shopify 將 GraphQL 執(zhí)行速度提升了 15 倍

0
分享至


作者 | Leela Kumili

譯者 | 平川

Shopify 推出了一款經(jīng)過(guò)重新設(shè)計(jì)的 GraphQL 執(zhí)行引擎,內(nèi)部代號(hào)為 GraphQL Cardinal。該引擎用廣度優(yōu)先執(zhí)行模型取代了傳統(tǒng)的深度優(yōu)先遍歷,據(jù)稱(chēng)在處理大規(guī)模查詢(xún)工作負(fù)載時(shí),生產(chǎn)環(huán)境的性能得到了顯著提升。新架構(gòu)旨在解決 GraphQL 執(zhí)行本身存在的低效問(wèn)題,而非數(shù)據(jù)庫(kù)或網(wǎng)絡(luò)基礎(chǔ)設(shè)施中的瓶頸。Shopify 工程師認(rèn)為,長(zhǎng)期以來(lái),這一領(lǐng)域在 GraphQL 生態(tài)系統(tǒng)中一直沒(méi)有受到充分關(guān)注。

在 X 平臺(tái)的一篇帖子 中,Shopify 工程團(tuán)隊(duì)總結(jié)了測(cè)試結(jié)果:

在生產(chǎn)環(huán)境中,采用廣度優(yōu)先策略的大型 GraphQL 列表查詢(xún),其字段級(jí)執(zhí)行速度提升了 15 倍,垃圾回收開(kāi)銷(xiāo)減少了 6 倍,P50 端到端時(shí)間縮短了 4 秒以上。


廣度優(yōu)先遍歷與深度優(yōu)先遍歷的端到端響應(yīng)時(shí)間比較(圖片來(lái)源:Shopify 博客

這次重構(gòu)針對(duì)的是傳統(tǒng) GraphQL 執(zhí)行的一個(gè)核心特征。大多數(shù) GraphQL 引擎會(huì)遞歸遍歷查詢(xún)樹(shù),并采用深度優(yōu)先的方式逐個(gè)解析字段。雖然這種方法簡(jiǎn)單直觀,但在處理涉及深度嵌套、高度關(guān)聯(lián)的數(shù)據(jù)集(例如電商系統(tǒng)中常見(jiàn)的產(chǎn)品目錄、商品變體和庫(kù)存結(jié)構(gòu))時(shí),可能會(huì)導(dǎo)致解析器被反復(fù)調(diào)用、內(nèi)存分配模式碎片化,以及垃圾回收負(fù)擔(dān)過(guò)重。

GraphQL Cardinal 通過(guò)在實(shí)體集合中逐層執(zhí)行查詢(xún),改變了這種遍歷模型。引擎不再針對(duì)樹(shù)上的每個(gè)節(jié)點(diǎn)單獨(dú)解析字段,而是將解析器的執(zhí)行做批量處理,針對(duì)同一深度的對(duì)象組進(jìn)行操作。Shopify 表示,這種方法可以提高 CPU 緩存的局部性,減少冗余計(jì)算,并降低每次請(qǐng)求的內(nèi)存波動(dòng)。


深度優(yōu)先與廣度優(yōu)先的執(zhí)行流程及字段追蹤器(圖片來(lái)源:Shopify 博客

這次重構(gòu)還改變了內(nèi)部的執(zhí)行協(xié)調(diào)機(jī)制。在遞歸遍歷過(guò)程中,GraphQL Cardinal 不再反復(fù)調(diào)用解析器,而是按查詢(xún)層協(xié)調(diào)執(zhí)行,使解析器能夠在深入圖結(jié)構(gòu)之前批量處理實(shí)體。這使得批處理成為一種原生的執(zhí)行行為,而非單獨(dú)的優(yōu)化措施。該方法基于 GraphQL 生態(tài)系統(tǒng)探索過(guò)的諸多理念,包括 Airbnb 用于減少 N+1 查詢(xún)開(kāi)銷(xiāo)的批處理解析器、WunderGraph 的廣度批處理實(shí)驗(yàn),以及 graphql-breadth-exec 等項(xiàng)目——這些項(xiàng)目探索了替代遞歸執(zhí)行的廣度優(yōu)先遍歷方案。

在 LinkedIn 的一篇 博文 中,Shopify 工程總監(jiān) Farhan Thawar 寫(xiě)道:

GraphQL Cardinal 是 Shopify 對(duì)一個(gè)顯而易見(jiàn)卻被忽視的問(wèn)題所作出的回應(yīng):在規(guī)?;瘧?yīng)用時(shí),傳統(tǒng)的 GraphQL 執(zhí)行在算法上代價(jià)高昂,但鮮有人對(duì)此提出質(zhì)疑。

然而,Shopify 的實(shí)現(xiàn)方案之所以引人注目,在于它不僅將廣度優(yōu)先遍歷直接大規(guī)模集成到了生產(chǎn)基礎(chǔ)設(shè)施中,同時(shí)還保持了與現(xiàn)有 GraphQL 模式和 API 的兼容性。據(jù)該公司稱(chēng),這次遷移需要在執(zhí)行編排、解析器行為、追蹤基礎(chǔ)設(shè)施以及運(yùn)行時(shí)調(diào)度系統(tǒng)等方面進(jìn)行協(xié)調(diào)一致的變更。

這次遷移面臨的一大關(guān)鍵挑戰(zhàn)在于,在改變底層執(zhí)行行為的同時(shí),仍然需要保留面向開(kāi)發(fā)者的現(xiàn)有 GraphQL 語(yǔ)義。現(xiàn)有的模式和解析器是基于遞歸的深度優(yōu)先假設(shè)而設(shè)計(jì)的,這意味著 Shopify 需要調(diào)整解析器的協(xié)調(diào)和追蹤機(jī)制,同時(shí)避免大規(guī)模重寫(xiě) API。該公司表示,整個(gè)部署過(guò)程始終保持著與現(xiàn)有 GraphQL API 的兼容性,使各團(tuán)隊(duì)能夠從執(zhí)行性能的提升中受益,而又不需要更改應(yīng)用程序級(jí)的查詢(xún)結(jié)構(gòu)。

https://www.infoq.com/news/2026/06/shopify-graphql-cardinal-bf

聲明:本文由 InfoQ 翻譯,未經(jīng)許可禁止轉(zhuǎn)載。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
甲鈷胺能長(zhǎng)期吃嗎?吃吃停??梢詥??本文一次性告訴您答案

甲鈷胺能長(zhǎng)期吃嗎?吃吃停??梢詥幔勘疚囊淮涡愿嬖V您答案

藥師方健
2026-06-12 22:46:03
紀(jì)委核查通訊記錄的獨(dú)門(mén)手段,很多人到落馬都不知道

紀(jì)委核查通訊記錄的獨(dú)門(mén)手段,很多人到落馬都不知道

細(xì)說(shuō)職場(chǎng)
2026-06-13 12:10:38
開(kāi)封3歲男童失聯(lián)后續(xù),家屬做最壞打算,網(wǎng)友:安徽女童案恐再現(xiàn)

開(kāi)封3歲男童失聯(lián)后續(xù),家屬做最壞打算,網(wǎng)友:安徽女童案恐再現(xiàn)

奇思妙想草葉君
2026-06-12 14:34:26
2.2馬赫!5名高中生造出首枚接近臨近空間火箭

2.2馬赫!5名高中生造出首枚接近臨近空間火箭

算力游俠
2026-06-11 03:20:16
中美俄意見(jiàn)一致,寧可讓日本從地球上消失,也堅(jiān)決不允許它擁核!

中美俄意見(jiàn)一致,寧可讓日本從地球上消失,也堅(jiān)決不允許它擁核!

快樂(lè)彼岸
2026-06-13 11:44:59
希爾頓近照大變樣引熱議,當(dāng)年甩了C羅的她,現(xiàn)在變成這樣了?

希爾頓近照大變樣引熱議,當(dāng)年甩了C羅的她,現(xiàn)在變成這樣了?

綠茵八卦君
2026-06-12 15:35:04
跪下了!福克斯的合同!!2030年才到期

跪下了!??怂沟暮贤。?030年才到期

柚子說(shuō)球
2026-06-12 15:30:11
追隨瓦良格來(lái)華的蘇聯(lián)航母設(shè)計(jì)師,如今過(guò)得怎樣?

追隨瓦良格來(lái)華的蘇聯(lián)航母設(shè)計(jì)師,如今過(guò)得怎樣?

阿器談史
2026-06-05 04:41:04
2026事業(yè)編迎來(lái)大調(diào)整,五類(lèi)崗位必須轉(zhuǎn)企,編制從此退出歷史舞臺(tái)

2026事業(yè)編迎來(lái)大調(diào)整,五類(lèi)崗位必須轉(zhuǎn)企,編制從此退出歷史舞臺(tái)

芳姐侃社會(huì)
2026-06-12 23:43:24
因?yàn)閺埦S為教授,給復(fù)旦大學(xué)提兩個(gè)建議

因?yàn)閺埦S為教授,給復(fù)旦大學(xué)提兩個(gè)建議

林中木白
2026-06-12 15:25:33
快訊!俄烏新消息!

快訊!俄烏新消息!

故事終將光明磊落
2026-06-13 10:58:35
B席加盟皇馬表明:進(jìn)化版穆帥成皇馬攝政王,一人之下,萬(wàn)人之上

B席加盟皇馬表明:進(jìn)化版穆帥成皇馬攝政王,一人之下,萬(wàn)人之上

福醬的小時(shí)光
2026-06-13 08:06:09
世界杯誰(shuí)將奪冠?曼聯(lián)名宿給出答案,葡萄牙無(wú)望,一隊(duì)有望成黑馬

世界杯誰(shuí)將奪冠?曼聯(lián)名宿給出答案,葡萄牙無(wú)望,一隊(duì)有望成黑馬

兵哥籃球故事
2026-06-12 14:29:27
“招風(fēng)耳,懸膽鼻,真是八面玲瓏”,附中女孩采訪(fǎng)火了,滴水不漏

“招風(fēng)耳,懸膽鼻,真是八面玲瓏”,附中女孩采訪(fǎng)火了,滴水不漏

熙熙說(shuō)教
2026-06-12 19:33:30
林水龍同志逝世

林水龍同志逝世

政知新媒體
2026-06-12 20:57:57
2026年高考這次,央視、人民日?qǐng)?bào)公開(kāi)銳評(píng)張桂梅,態(tài)度出奇的一致

2026年高考這次,央視、人民日?qǐng)?bào)公開(kāi)銳評(píng)張桂梅,態(tài)度出奇的一致

滄海一書(shū)客
2026-06-13 10:25:34
官方:斯諾克三大賽將不再設(shè)立兩桿147獎(jiǎng)金、單賽季百桿破百獎(jiǎng)金

官方:斯諾克三大賽將不再設(shè)立兩桿147獎(jiǎng)金、單賽季百桿破百獎(jiǎng)金

懂球帝
2026-06-13 01:18:15
他搬了10年磚,父親是黨內(nèi)頭號(hào)人物,毛主席揮揮手:給他30元!

他搬了10年磚,父親是黨內(nèi)頭號(hào)人物,毛主席揮揮手:給他30元!

銅臭的歷史味
2026-06-12 04:31:27
CBA3消息:前男籃主帥接手豪門(mén),前遼籃功勛被歸化,山東敲定目標(biāo)

CBA3消息:前男籃主帥接手豪門(mén),前遼籃功勛被歸化,山東敲定目標(biāo)

萌蘭聊個(gè)球
2026-06-13 10:44:18
參軍9年未能提干,退伍返鄉(xiāng)時(shí),團(tuán)長(zhǎng)找到我:你可知犯了什么錯(cuò)?

參軍9年未能提干,退伍返鄉(xiāng)時(shí),團(tuán)長(zhǎng)找到我:你可知犯了什么錯(cuò)?

凱裕說(shuō)故事
2025-06-07 12:37:40
2026-06-13 13:36:49
InfoQ incentive-icons
InfoQ
有內(nèi)容的技術(shù)社區(qū)媒體
12528文章數(shù) 51943關(guān)注度
往期回顧 全部

科技要聞

SpaceX上市首日破2萬(wàn)億美元,馬斯克再封神

頭條要聞

美國(guó)4比1大勝 美國(guó)主導(dǎo)比賽巴拉圭疲于奔命讓人意外

頭條要聞

美國(guó)4比1大勝 美國(guó)主導(dǎo)比賽巴拉圭疲于奔命讓人意外

體育要聞

東道主三戰(zhàn)不敗!美墨開(kāi)門(mén)紅加拿大零的突破

娛樂(lè)要聞

12年情懷碎一地!跑男接連翻車(chē)

財(cái)經(jīng)要聞

梁文鋒向左,楊植麟向右

汽車(chē)要聞

2026重慶車(chē)展 長(zhǎng)城炮Hi4-T正式上市售14.98萬(wàn)起

態(tài)度原創(chuàng)

家居
游戲
數(shù)碼
藝術(shù)
軍事航空

家居要聞

空間微調(diào) 移形換境

第一人稱(chēng)類(lèi)魂太難做!新游團(tuán)隊(duì)揭秘背后挑戰(zhàn)

數(shù)碼要聞

技嘉推出B840M FORCE WIFI6E主板:橙色點(diǎn)綴,雙PCIe雙M.2

藝術(shù)要聞

書(shū)法各體臨習(xí)方法

軍事要聞

伊外長(zhǎng)披露伊美諒解備忘錄草案部分內(nèi)容

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版