中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站關鍵詞優(yōu)化到首頁難度專業(yè)軟文發(fā)稿平臺

網(wǎng)站關鍵詞優(yōu)化到首頁難度,專業(yè)軟文發(fā)稿平臺,象山網(wǎng)站優(yōu)化公司,wordpress微信聯(lián)系Epoxy 利用 Postgres 事務數(shù)據(jù)庫作為主數(shù)據(jù)庫/協(xié)調數(shù)據(jù)庫,并擴展多版本并發(fā)控制 (MVCC) 以實現(xiàn)跨數(shù)據(jù)存儲隔離。它通過樂觀并發(fā)控制 (OCC) 和兩階段提交 (2PC) 協(xié)議提供隔離性以及原子性和持久性。 環(huán)氧樹脂被用作五種不同數(shù)據(jù)存儲的接口層:Postgres, M…

Epoxy 利用 Postgres 事務數(shù)據(jù)庫作為主數(shù)據(jù)庫/協(xié)調數(shù)據(jù)庫,并擴展多版本并發(fā)控制 (MVCC) 以實現(xiàn)跨數(shù)據(jù)存儲隔離。它通過樂觀并發(fā)控制 (OCC) 和兩階段提交 (2PC) 協(xié)議提供隔離性以及原子性和持久性。

環(huán)氧樹脂被用作五種不同數(shù)據(jù)存儲的接口層:Postgres, MySQL, Elasticsearch, MongoDB, 和Google Cloud Storage (GCS).

Epoxy 是開源的,網(wǎng)址為??https://github.com/DBOS-project/apiary。

Epoxy 的動機是為面對兩種日益流行的趨勢提供交易保證,這使得實現(xiàn)這一目標變得更加困難。**異構數(shù)據(jù):**除了數(shù)據(jù)庫記錄之外,應用程序還存儲和訪問大型媒體 blob。 ?**微服務:**許多系統(tǒng)由多個服務組成,每個服務管理自己的數(shù)據(jù)。

酒店預訂應用程序:客房供應服務將數(shù)據(jù)存儲在 Postgres 中??蛻纛A訂服務將數(shù)據(jù)存儲在 MongoDB 中。工作負載包括 80%:搜索可用房間,在 Postgres 中執(zhí)行讀取,在 MongoDB 中執(zhí)行地理空間搜索;20%:預訂房間,在 Postgres 中執(zhí)行讀取和更新,在 MongoDB 中執(zhí)行插入。如果沒有 Epoxy,這些操作將無法以原子和隔離的方式執(zhí)行,從而導致異常。

電子商務服務:購物車和目錄存儲在 Postgres 中,目錄復制到 Elasticsearch 以進行快速搜索。工作負載包括 90%:搜索和添加項目(Elasticsearch 搜索和 Postgres 讀取、插入、更新),8%:結賬(Postgres 讀取、刪除、兩次插入,用于購物車到訂單的轉換),1%:目錄插入(Postgres 和 Elasticsearch),1%:目錄更新(Postgres 和 Elasticsearch)。如果沒有 Epoxy,并發(fā)搜索和添加以及目錄更新可能會導致購物車添加錯誤。

Epoxy 協(xié)議方法
Epoxy 的想法是提供螺栓式事務支持,利用 Postgres 作為協(xié)調器/主數(shù)據(jù)庫,并通過添加填充層將額外的數(shù)據(jù)存儲加入到此設置中。(請注意,協(xié)調器和主數(shù)據(jù)庫略有不同。協(xié)調器是主數(shù)據(jù)庫之上的墊片。)

解決這個問題的現(xiàn)狀如何?如果您沒有 Epoxy 來解決這個問題,您將自己編寫自定義粘合代碼。您將采用以工作流為中心的解決方案,并在粘合代碼中嵌入/強制執(zhí)行業(yè)務應用程序邏輯。

某種程度上(以定制的方式),您可以將 OLTP 事務擴展到應用程序中。但這是定制的,并且更難重用,并且處理原子性和隔離性的表面積很大,因為你會在你的代碼庫中涂抹它。

作為一個更可重用、抽象化的解決方案,您可以考慮使用分布式事務協(xié)議(如X/Open XA ),基于兩階段提交,以便跨數(shù)據(jù)存儲執(zhí)行事務。然而,X/Open XA 缺乏事務隔離,僅提供原子性。Epoxy 通過提供快照隔離超越了 X/Open XA,使其成為更強大的解決方案。

此外,X/Open XA 方法要求數(shù)據(jù)存儲實現(xiàn)兩階段提交的參與者協(xié)議,從而造成與 MongoDB、CockroachDB 和 Redis 的兼容性問題。此外,在像S3/GCS這樣的非事務性數(shù)據(jù)存儲中,實現(xiàn)X/Open XA的“準備”步驟是不可行的。

Epoxy 協(xié)議:設置
在了解 Epoxy 如何提供跨數(shù)據(jù)存儲的事務保證之前,我們先回顧一下 Epoxy 對主數(shù)據(jù)庫(用作協(xié)調器)和輔助數(shù)據(jù)存儲的要求。主數(shù)據(jù)庫必須提供至少具有快照隔離的 ACID 事務。這是使用 Epoxy 中的 Postgres 實現(xiàn)的。二級存儲必須確保:

  • 單對象寫入操作是可線性化且持久的。

  • 每條記錄都有一個唯一可識別的密鑰。

  • [可選地提高性能]記錄可以包含元數(shù)據(jù),并且可以根據(jù)該元數(shù)據(jù)有效地過濾數(shù)據(jù)存儲中的查詢。

Epoxy 使用四種數(shù)據(jù)存儲來實現(xiàn):Elasticsearch、MongoDB、GCS、MySQL,滿足這些輔助存儲要求。
Epoxy 成為訪問輔助存儲表的獨占模式:使用該存儲的一個應用程序采用 Epoxy,強制訪問該表進行操作的所有應用程序都采用 Epoxy。

每個 Epoxy 事務都鏈接到一個快照,代表其可見的所有過去事務的集合。快照表示使用兩個事務 ID xmin 和 xmax,以及最近提交的事務列表 rc_txns。創(chuàng)建快照時:

  • xmin 是最小的活動事務 ID。
  • xmax 被指定為大于已提交的最大事務 ID 的值。
  • rc_txns 表示 ID 大于 xmin 的已提交事務的集合。
  • 如果 (x < xmin) \/ (x \in rc_txns),則 ID 為 x 的事務位于快照中。

Epoxy 輔助存儲墊片通過元數(shù)據(jù)增強記錄版本,以促進事務讀取操作。記錄版本對事務的可見性取決于事務快照中是否存在 beginTxn 以及事務快照中是否存在 endTxn。

  • 記錄版本用兩個值標記:beginTxn 和 endTxn。
  • beginTxn 表示創(chuàng)建記錄版本的事務的 ID。
  • endTxn 是用新版本取代它或刪除記錄的事務的 ID。

Epoxy協(xié)議:OCC
Epoxy 采用兩階段提交 (2PC) 協(xié)議。輔助存儲首先在其數(shù)據(jù)庫內進行準備,然后主存儲結束事務提交(或中止)。

輔助存儲S在執(zhí)行事務T時,在寫入之前獲取記錄鍵上的排他鎖(如果鎖定失敗,則T被中止)。因此,每個輔助存儲墊片都為其記錄包含一個鎖管理器,為每個記錄維護一個獨占寫鎖。此鎖可防止對先前記錄版本的 endTxn 字段進行并發(fā)修改。

完成 T 后,S 通過獲取獨占(S 本地)驗證鎖來驗證它。然后,S 檢查 T 寫入的密鑰是否也由不在 T 快照中的已提交事務寫入。如果驗證成功,S 臨時將 T 標記為已提交,釋放鎖,并投票提交。

僅當所有輔助存儲都成功驗證時,事務才會提交;否則,它將中止并回滾。通過在主數(shù)據(jù)庫上執(zhí)行提交操作來提交事務。主數(shù)據(jù)庫上的原子提交可確保事務對所有數(shù)據(jù)存儲上的未來事務可見(出現(xiàn)在其快照中)。輔助存儲在獲悉提交后釋放寫鎖(或者如果決定中止,也用于完成回滾)。

如果事務驗證失敗或在任何數(shù)據(jù)存儲中遇到任何錯誤,它將啟動中止。為了防止無限期掛起客戶端故障,如果與客戶端的連接超時,協(xié)調器也會中止事務。中止過程刪除新添加的記錄版本,并恢復記錄 endTxn 字段論文列出了以下正確性不變量:

  • SI1:T 始終從 T 啟動時有效的已提交信息的快照中讀取數(shù)據(jù)。
  • SI2:僅當在提交時快照之外沒有已提交的事務修改了打算由 T 寫入的數(shù)據(jù)時,T 才能提交。
  • AC1:達成決策的所有流程都會達成相同的決策。
  • AC2:流程一旦做出決定,就無法逆轉。
  • AC3&4:只有當所有進程都投票“是”時,才會做出提交決策。在沒有失敗且一致投贊成票的情況下,決定提交。
  • AC5:在任何具有容忍故障(崩潰故障)的執(zhí)行中,如果所有故障都被修復并且在足夠長的時間內沒有新的故障發(fā)生,則所有進程最終都會做出決定。

如果主數(shù)據(jù)庫/協(xié)調數(shù)據(jù)庫發(fā)生故障,輔助存儲將無法接受任何寫入/更新,直到主數(shù)據(jù)庫/協(xié)調數(shù)據(jù)庫恢復并恢復數(shù)據(jù)為止。但它們可以提供讀取服務。主/協(xié)調器故障意味著輔助存儲中活動事務的中止和回滾。在發(fā)生次要或主要故障時,目標是讓它們備份,并恢復輔助存儲以反映已提交的事務,從而建立崩潰一致的狀態(tài)。

局限性和開銷
Epoxy 需要單個協(xié)調器/主節(jié)點。對于多個主選,事情會變得復雜/復雜,并且跨主選所需的分布式事務效率低下。在云中,可以使用 AWS RDS/Aurora 擴展單個 Postgres 協(xié)調器。對于地理分布,可以通過分布式 SQL 產(chǎn)品提供虛擬/單個協(xié)調器。

Epoxy 需要對輔助存儲表進行獨占訪問。如果客戶端在不使用 Epoxy 的情況下進行寫入,則缺少版本信息會使寫入對讀取不可見。同樣,不使用 Epoxy 進行讀取可能會暴露同一記錄的沖突版本。輔助存儲表上的一個應用程序采用 Epoxy 需要該表上的所有其他應用程序執(zhí)行相同的操作。

更高的開銷來自垃圾收集。由于 Epoxy 的 MVCC 方法是通過寫入創(chuàng)建新記錄版本而不是更新現(xiàn)有記錄,因此清理舊版本至關重要。僅當記錄版本不再對任何事務可見時(由所有活動事務的快照中的 endTxn 指示),記錄版本才會被刪除。因此,事務協(xié)調器應該定期執(zhí)行垃圾收集。垃圾收集器掃描所有活動事務以識別最小的 xmin,代表最舊的活動事務。然后,它指示輔助存儲墊片刪除 endTxn 小于此最小活動 xmin 的記錄版本。

https://www.jdon.com/69782.html

http://www.risenshineclean.com/news/46833.html

相關文章:

  • 柯基寧波seo企業(yè)網(wǎng)絡推廣
  • 網(wǎng)站建立于網(wǎng)頁設計搜索引擎的優(yōu)化和推廣
  • 網(wǎng)站圖片滾動是怎么做的seo是做什么工作內容
  • 建設網(wǎng)站目的及功能定位百度收錄規(guī)則2022
  • dedecms手機網(wǎng)站插件網(wǎng)絡營銷方案策劃論文
  • 延吉最好的網(wǎng)站建設公司張家界百度seo
  • 貴州網(wǎng)站開發(fā)公司seo培訓優(yōu)化課程
  • logo設計公司怎么去跟客戶談山西搜索引擎優(yōu)化
  • 網(wǎng)站建設優(yōu)化一年賺幾十萬seo搜索引擎優(yōu)化軟件
  • 網(wǎng)頁布局設計的一般步驟seo全網(wǎng)優(yōu)化推廣
  • 幾十元做網(wǎng)站濰坊快速網(wǎng)站排名
  • 網(wǎng)站設置黑白色快速建站哪個平臺好
  • 新鄉(xiāng)網(wǎng)站優(yōu)化公司價格網(wǎng)絡服務包括哪些內容
  • 拼多多cms網(wǎng)站怎么做今天新聞頭條最新消息
  • ps網(wǎng)站切圖教程南京seo關鍵詞優(yōu)化預訂
  • 四川網(wǎng)站建設價格為企業(yè)策劃一次網(wǎng)絡營銷活動
  • 黨建網(wǎng)站建設入黨外調函模板外貿網(wǎng)站優(yōu)化公司
  • 做網(wǎng)站要買什么中文搜索引擎排名
  • 用wordpress建站學什么網(wǎng)絡推廣經(jīng)驗
  • 成都新線加網(wǎng)站建設百度指數(shù)分是什么
  • 手機ppt制作軟件站群seo技巧
  • 網(wǎng)站開發(fā)女生可以做嗎太原首頁推廣
  • 大學網(wǎng)站建設工作總結aso網(wǎng)站
  • 淮北網(wǎng)站三合一建設百度官方網(wǎng)站網(wǎng)址
  • 煙臺網(wǎng)站制作公司網(wǎng)站發(fā)布與推廣方案
  • wordpress主題安裝說明seo主要做什么
  • wordpress 中介免費seo快速收錄工具
  • ui做網(wǎng)站實例廣告公司業(yè)務推廣
  • 蘇州公司網(wǎng)頁制作seo推廣專員工作好做嗎
  • 網(wǎng)站中的游戲是怎么做的無錫百度快速優(yōu)化排名