張振華,朱曉民,王玉龍
(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,北京 100876; 2 東信北郵信息技術(shù)有限公司,北京 100191)
重構(gòu)手機閱讀管理平臺的數(shù)據(jù)同步方案*
張振華1,2,朱曉民1,2,王玉龍1,2
(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,北京 100876; 2 東信北郵信息技術(shù)有限公司,北京 100191)
手機閱讀管理平臺進行架構(gòu)級重構(gòu)后,要對拆分出的子系統(tǒng)進行數(shù)據(jù)同步,因此需要準確的同步方案作為指導(dǎo)。本文首先簡介手機閱讀管理平臺的數(shù)據(jù)同步需求,進而深入探討同步系統(tǒng)應(yīng)遵循的同步原則,分析各個原則的使用場景和落實該原則的技術(shù)方案。以期對其它的數(shù)據(jù)同步系統(tǒng)提供參考。
同步原則;最小傷害;冪等;主鍵
手機閱讀業(yè)務(wù)是中國移動手機閱讀基地向用戶提供的以在線和下載為主要閱讀方式的自有增值業(yè)務(wù),以移動終端為主要載體,提供圖書、漫畫、雜志、聽書、手機報等多種形式的媒體內(nèi)容,向用戶提供海量圖書內(nèi)容服務(wù),讓人享受隨身隨地閱讀的樂趣。
作為手機閱讀業(yè)務(wù)運作的管理中樞——業(yè)務(wù)內(nèi)容管理系統(tǒng)(CMU),為業(yè)務(wù)提供內(nèi)容、運營、互動、推薦、配置等全方位的管理。CMU主要面向內(nèi)容提供商(CP)、內(nèi)容編審人員、運營管理人員、系統(tǒng)管理人員提供內(nèi)容整合商(MCP)管理、內(nèi)容管理、版權(quán)管理、不良信息管理、質(zhì)檢管理、作家管理、運營管理、終端管理、系統(tǒng)管理、用戶互動管理、實體書管理等手機閱讀業(yè)務(wù)的全方位管理。
目前為了改進CMU缺乏全局或長遠考慮的短期設(shè)計,消除冗余,采用更優(yōu)更簡潔的實現(xiàn)方案,讓代碼更容易理解、修改和測試,CMU進行了架構(gòu)級重構(gòu)。重構(gòu)后的CMU分為通用子系統(tǒng)、作家子系統(tǒng)、圖書子系統(tǒng)、工作流子系統(tǒng)以及負責(zé)數(shù)據(jù)同步的內(nèi)容同步子系統(tǒng),并在數(shù)據(jù)庫層面進行了劃分:記錄書籍、作家基本信息和狀態(tài)信息以及平臺配置信息的通用庫,記錄作家詳細信息的作家?guī)?,記錄書籍詳細信息的圖書庫,記錄平臺工作流信息的工作流庫,如圖1所示。數(shù)據(jù)庫的劃分帶來了邏輯清晰,便于管理和拓展的好處,但是隨之而來的通用庫和其它各庫之間的數(shù)據(jù)同步問題亟待解決。
圖1 手機閱讀管理平臺系統(tǒng)劃分
因為CMU業(yè)務(wù)復(fù)雜性的存在以及保證數(shù)據(jù)同步的合理性和準確性,需要研究和設(shè)計好數(shù)據(jù)同步的原則。
2.1 單向同步原則
數(shù)據(jù)同步按照同步方向的差異可分為單向同步和雙向同步,單向同步也稱主從式,由一個主節(jié)點和多個目標節(jié)點構(gòu)成,同步總是由主節(jié)點向各目標節(jié)點進行,源節(jié)點數(shù)據(jù)副本可以修改,但目標節(jié)點上的副本是只讀的,每次目標節(jié)點數(shù)據(jù)的更新是由源節(jié)點數(shù)據(jù)修改之后同步到目標節(jié)點,以達到數(shù)據(jù)更新的目的,因此,可以有效的預(yù)防同步時發(fā)生同步?jīng)_突。雙向同步也叫對等式同步,數(shù)據(jù)的同步在兩個方向可以同時進行,所有的數(shù)據(jù)庫節(jié)點既是源數(shù)據(jù)庫也是目標數(shù)據(jù)庫,并且對數(shù)據(jù)都具有讀寫的權(quán)利,即各節(jié)點同地位平等,任何一個節(jié)點的數(shù)據(jù)副本的修改都會影響到全部的數(shù)據(jù)副本。對等式數(shù)據(jù)同步必然帶來同步?jīng)_突。
為避免出現(xiàn)數(shù)據(jù)一致性問題,應(yīng)盡量避免出現(xiàn)數(shù)據(jù)雙向同步的情況,所有同步內(nèi)容盡量滿足在一個庫中修改,其它庫中只讀的要求。
如果涉及到多個子系統(tǒng)都需要對同一類數(shù)據(jù)進行修改,基本策略是通過維護該內(nèi)容的主系統(tǒng)開放接口,其它系統(tǒng)通過該接口修改數(shù)據(jù)的方式實現(xiàn)。
例如CMU的圖書子系統(tǒng)中維護的圖書,通用子系統(tǒng)中應(yīng)盡量保證為只讀,既把圖書庫作為源節(jié)點,通用庫作為目標節(jié)點,如果在通用子系統(tǒng)中必須對通用庫中的圖書狀態(tài)進行修改時(如圖書入庫操作),應(yīng)通過圖書子系統(tǒng)的接口來修改圖書庫中圖書狀態(tài),再通過內(nèi)容同步子系統(tǒng)來實現(xiàn)通用庫的狀態(tài)修改,流程如圖2所示。
2.2 異步復(fù)制原則
數(shù)據(jù)同步根據(jù)更新傳播的方式分為同步復(fù)制和異步復(fù)制,同步復(fù)制是指每一個事務(wù)更新都需要同步的傳送到其它數(shù)據(jù)庫節(jié)點上,并且在事務(wù)提交時要求所有的副本一起將事務(wù)更新提交,如果某一環(huán)節(jié)出現(xiàn)故障,則同時做事務(wù)的撤銷,同步復(fù)制保證了單副本的串行性,基本可以看成是單個數(shù)據(jù)庫中事務(wù)執(zhí)行的簡單擴展,同步復(fù)制實現(xiàn)簡單,但卻帶來極大的通信開銷,事務(wù)的平均響應(yīng)時間也很長。同時,同步復(fù)制在做事務(wù)回滾時,需要對每個包含該數(shù)據(jù)副本的事務(wù)進行事務(wù)回滾,增加了相應(yīng)的代價。異步復(fù)制的更新傳播是在該事務(wù)在本地節(jié)點提交之后,再將包含所有更新信息的更新事務(wù)發(fā)送給包含副本的各個節(jié)點,事務(wù)提交失敗時只需要放棄本地的更新即可,降低了通信量和減少了事務(wù)回滾代價。
結(jié)合管理平臺的業(yè)務(wù)需求分析,平臺允許可接受范圍的時延存在,并且盡量降低通信成本和事務(wù)回滾代價,同時考慮存在網(wǎng)絡(luò)不穩(wěn)定的可能性,異步復(fù)制更適合內(nèi)容同步子系統(tǒng)。
2.3 邏輯關(guān)系同步原則
CMU重構(gòu)后的子系統(tǒng)相互隔離,這就要求內(nèi)容同步的參與方是基于內(nèi)容的邏輯同步,既對于同一內(nèi)容,允許同步參與方使用不同的表名、不同的字段甚至完全不同的表結(jié)構(gòu)。例如圖書庫的審核批次信息表的表結(jié)構(gòu)不同于通用庫中的,如圖3所示。
內(nèi)容同步子系統(tǒng)在定義每種內(nèi)容的同步任務(wù)時,注意要按照該內(nèi)容的邏輯關(guān)系組織同步,而不是按內(nèi)容的表結(jié)構(gòu)組織同步。同步過程中,同步內(nèi)容的中間格式、處理過程等要注意盡量與同步數(shù)據(jù)庫表結(jié)構(gòu)解耦。
基本目標是在以后各子系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)改變,但邏輯關(guān)系沒變時,不會對其它子系統(tǒng)造成影響。
同步參與方的針對同一內(nèi)容的數(shù)據(jù)庫設(shè)計可以完全不一樣,只要邏輯上能夠映射即可。
圖2 圖書入庫操作的單向同步
圖3 圖書庫中審核批次信息表與通用庫中的對比
2.4 最小傷害原則
考慮到同步失敗以及同步恢復(fù)的問題,在同一個同步操作中,需要優(yōu)先執(zhí)行次級關(guān)聯(lián)內(nèi)容,最后同步主內(nèi)容;在一對多同步時,優(yōu)先進行非重要的接收端的同步,最后進行核心接收端的同步。
如對于圖書入庫同步請求,涉及到圖書自身信息和圖書章節(jié)信息的同步,這種情況下,應(yīng)先進行圖書章節(jié)信息的同步,再進行圖書信息的同步。這樣,當(dāng)同步失敗時,不會影響同步接收端的正常處理。
最小傷害原則要求能夠?qū)ν煌秸埱髨?zhí)行多次,同步失敗時不影響同步接收端的正常運行。
2.5 冪等原則
內(nèi)容同步子系統(tǒng)以同步任務(wù)為基本單位,所有需要同步的內(nèi)容都分解為最基礎(chǔ)的同步任務(wù),同步子系統(tǒng)按照同步任務(wù)為單位進行調(diào)度和執(zhí)行。
對于同步任務(wù)的定義和處理過程,都要求支持冪等原則,即同一內(nèi)容的同類型同步請求(如圖書的入庫同步)可以多次執(zhí)行,每次均能達到相同的目標(即該圖書的狀態(tài)在同步參與方中是一致的)。不能由于前面失敗同步動作的失敗甚至丟失影響后面針對同一內(nèi)容的同步動作。
這要求同步實現(xiàn)能夠兼容同步錯誤的情況,如前面所說,部分章節(jié)同步成功,總體沒有成功,后面的針對該圖書的入庫同步應(yīng)該能夠繼續(xù)完成。
這一原則同樣要求在進行同步子系統(tǒng)的接口設(shè)計的時候,應(yīng)主要描述要同步的內(nèi)容標識和要同步的內(nèi)容范圍,而不是具體的內(nèi)容信息。如設(shè)計圖書狀態(tài)變更時,應(yīng)描述要同步的圖書ID和范圍(可以通過同步類型區(qū)分),而不應(yīng)包含具體的某狀態(tài)到某狀態(tài)的遷移,這樣,即使這個同步狀態(tài)變更丟失或者失敗,只要重新發(fā)起該請求,還可以將該圖書狀態(tài)正確同步到接收方。
冪等原則可以簡化故障處理和恢復(fù)過程,降低失同步造成的影響。
2.6 同步中不處理主鍵原則
同一內(nèi)容的跨庫主鍵一致性通過CMU通用子系統(tǒng)提供的“主鍵序列號生成服務(wù)”實現(xiàn),同步子系統(tǒng)可以不用處理主鍵問題,以避免給同步任務(wù)增加不必要的工程量。但如果在同步過程中出現(xiàn)主鍵沖突的異常,表明可能業(yè)務(wù)程序存在問題,很難通過程序自動解決,需要結(jié)束同步任務(wù)并通過管理員人工核查處理。
2.7 同步失敗報警原則
同步任務(wù)可能因為網(wǎng)絡(luò)問題或者大量同步任務(wù)突發(fā),最終導(dǎo)致了同步任務(wù)失敗,根據(jù)預(yù)先設(shè)置的失敗重試次數(shù),重試失敗后停止同步。此時應(yīng)記錄同步任務(wù)的詳細信息,例如任務(wù)ID、任務(wù)類型及錯誤信息,以便于通過管理系統(tǒng)查詢,同時應(yīng)該能夠通過郵件或短信的方式及時報警給管理員。告警后可由管理員通過同步管理界面進行手工查看定位問題,并恢復(fù)同步任務(wù)。最好允許為每個同步任務(wù)指定不同的同步失敗策略和報警策略。
結(jié)合數(shù)據(jù)同步基礎(chǔ)知識和同步業(yè)務(wù)需求,研究和設(shè)計好清晰的同步原則,為保證數(shù)據(jù)同步的合理性和準確性以及同步子系統(tǒng)的開發(fā)打下了堅實的基礎(chǔ)。同時也為其它數(shù)據(jù)同步場景提供了有效的參考。
News
思博倫最新發(fā)布的PT TestBench軟件將實現(xiàn)GNSS/GPS測試的大幅簡化和自動化
1月11日,思博倫通信宣布PT TestBench正式上市。PT TestBench軟件可以幫助技術(shù)、系統(tǒng)和應(yīng)用開發(fā)商更快構(gòu)建更精確的定位功能。該軟件包括測試、分析和報告,能夠?qū)崿F(xiàn)GPS和其它全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS)接收機測試的自動化,從而以更快、更可靠的方式向市場推出質(zhì)量更高的系統(tǒng)。
迄今為上,尚沒有任何規(guī)范GNSS接收機性能評估的標準,因此開發(fā)商必須從頭開始自行創(chuàng)建測試計劃。PT TestBench蘊含著思博倫30余年的GNSS測試專業(yè)知識,使所有用戶只需輕點鼠標即可建立、運行、重復(fù)和解釋這些極為耗時的測試。
思博倫通信產(chǎn)品經(jīng)理Romain Zimmermann指出:“PT TestBench將使GPS/GNSS接收機測試發(fā)生徹底的變革,并將幫助開發(fā)商將精力集中在提供更優(yōu)秀的用戶體驗上。它還可以針對真實的GPS干擾和欺騙信號對接收機的設(shè)計做出評估。
通過添加GNSS漏洞和威脅測試套件,PT TestBench用戶可以獲得為期12個月的PT Cloud訪問權(quán),這是一種持續(xù)更新的云庫,內(nèi)含各種真實存在的GNSS威脅。它可以提供多種已捕獲的、真實的、故意干擾波形、GNSS分段錯誤、接收機過渡、干擾和欺騙事件,以及最新的已觀察到的太空天氣和閃爍等多種實例。這些實例結(jié)合在一起后便成為一種非常優(yōu)秀的手段,能夠在用戶的GNSS模擬中構(gòu)建出非常強健的測試。
(彭芳)
The reconstruction of mobile reading management platform data synchronization program
ZHANG Zhen-hua1,2, ZHU Xiao-min1,2, WANG Yu-long1,2
(1 Beijing University of Posts and Telecommunications Networking and Switching Technology, State Key Laboratory, Beijing 100876, China; 2 EBUPT Information Technology Co., Ltd., Beijing 100191, China)
After the architecture-level reconstruction of mobile reading management platform, we need to perform data synchronization of the divided subsystem with an accurate synchronization program as a guide. In this paper, we fi rst brie fl y introduce the data synchronization requirements of the platform, and then deeply discuss the synchronization principles of data synchronization subsystem, analyze the usage scenarios of each principle and the technical scheme of implementing each principle, in order to provide reference for other data synchronization system.
synchronization principles; minimal damage; idempotent; primary key
TN929.5
A
1008-5599(2017)02-0086-04
2016-11-28
國家自然科學(xué)基金(編號:61372120, 61421061, 61671079, 61471063); 北京市自然科學(xué)基金(編號:4152039)。