![分布式數(shù)據(jù)庫技術(shù)金融應(yīng)用規(guī)范解讀_第1頁](http://file4.renrendoc.com/view/ea51c736f18bd44f4b4ec73578b2c83f/ea51c736f18bd44f4b4ec73578b2c83f1.gif)
![分布式數(shù)據(jù)庫技術(shù)金融應(yīng)用規(guī)范解讀_第2頁](http://file4.renrendoc.com/view/ea51c736f18bd44f4b4ec73578b2c83f/ea51c736f18bd44f4b4ec73578b2c83f2.gif)
![分布式數(shù)據(jù)庫技術(shù)金融應(yīng)用規(guī)范解讀_第3頁](http://file4.renrendoc.com/view/ea51c736f18bd44f4b4ec73578b2c83f/ea51c736f18bd44f4b4ec73578b2c83f3.gif)
![分布式數(shù)據(jù)庫技術(shù)金融應(yīng)用規(guī)范解讀_第4頁](http://file4.renrendoc.com/view/ea51c736f18bd44f4b4ec73578b2c83f/ea51c736f18bd44f4b4ec73578b2c83f4.gif)
![分布式數(shù)據(jù)庫技術(shù)金融應(yīng)用規(guī)范解讀_第5頁](http://file4.renrendoc.com/view/ea51c736f18bd44f4b4ec73578b2c83f/ea51c736f18bd44f4b4ec73578b2c83f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、分布式數(shù)據(jù)庫技術(shù)金融應(yīng)用規(guī)范的 技術(shù)架構(gòu)及分布式事務(wù)核心功能的解讀揭秘國(guó)內(nèi)三種主流金融行業(yè)的分布式事務(wù)數(shù)據(jù)庫的技術(shù)架構(gòu)揭秘Applications (e.g mysql client)Applicatio nApplicationApplicationAppicationApplicationApplicationApplicatio nApplicatio nSQLMySQLServer(mysqld)MySQLServer(mysqld)MySQLServer(mysqld)StorageNDBCluster(data nodes)(ndb d)(ndb d)(ndb d)(ndb d)M
2、anagementManagement Server (ndb_mqmd)ManagementClient(e.g ndb_mgm)教科書定義的分布式事務(wù)數(shù)據(jù)庫的技術(shù)架構(gòu)及功能特性局部?jī)?nèi)模式全局概念模式分布式數(shù)據(jù)庫 增加的全局自治分片模式分配模式全局 DBMS局部概念模式局部概念模式局部概念模式全局外模式局部?jī)?nèi)模式局部?jī)?nèi)模式局部 數(shù)據(jù)庫局部 數(shù)據(jù)庫局部 數(shù)據(jù)庫集中式 數(shù)據(jù)庫 原有的場(chǎng)地自治局部 DBMS全局外模式全局外模式模式一模式二模式三模式四分布式數(shù)據(jù)庫:是由一組數(shù)據(jù)組成的,這組數(shù)據(jù)分布在計(jì)算機(jī)網(wǎng)絡(luò)的不同計(jì)算機(jī)上,網(wǎng)絡(luò)中的每個(gè)結(jié)點(diǎn)具有獨(dú)立處理能力(稱為場(chǎng) 地自治),可以執(zhí)行局部應(yīng)用。同時(shí)每
3、個(gè)結(jié)點(diǎn)也能通過網(wǎng)絡(luò)通訊子系統(tǒng)執(zhí)行全局應(yīng)用(稱為全局自治)。l SELECT * FROM TABLE_NAME WHERE ID=14;ScanScanScanDataDataDataDataData計(jì)算匯總國(guó)內(nèi)三種主流金融行業(yè)的分布式事務(wù)數(shù)據(jù)庫的技術(shù)架構(gòu)揭秘:數(shù)據(jù)緩存節(jié)點(diǎn)和數(shù)據(jù)持久節(jié)點(diǎn)結(jié)合Client LayerApplicnatioApplicationClientClientSQL LayerProxyProxyIncrement Data LayerFull Data LayerChunkServe r MergeServe rVIPUpdateServerUpdateServerUp
4、dateServerUpdate ServerChunkServe rMergeServe rChunkServe rMergeServe rVIPUPDATE TABLE_NAME ClientSET WHERE ID100;UPDATE TABLE_NAMESET WHERE ID100;TE TABLE_NUPDAAMESET WHERE ID 1秒讀寫分離的基礎(chǔ)功能摘要信息:主從存儲(chǔ)節(jié)點(diǎn)的同步延遲判斷,對(duì)延遲從庫摘除和自動(dòng)恢復(fù)主從存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)一致性算法核對(duì)的定期執(zhí)行事務(wù)內(nèi)的讀操作、寫操作都由主存儲(chǔ)節(jié)點(diǎn)承擔(dān)非事務(wù)內(nèi)的讀操作負(fù)載均衡地發(fā)到從存儲(chǔ)節(jié)點(diǎn)上執(zhí)行強(qiáng)制某一類讀操作SQL語句發(fā)送到從
5、存儲(chǔ)節(jié)點(diǎn)上執(zhí)行u從讀者信息表中讀取上海地區(qū)的客戶信息u對(duì)客戶信息進(jìn)行查詢、更新等操作u主從一致延遲超過1秒鐘:存儲(chǔ)節(jié)點(diǎn)被摘除u挑選數(shù)據(jù)延遲閾值內(nèi)的從存儲(chǔ)節(jié)點(diǎn)讀操作uHint指定讀從存儲(chǔ)節(jié)點(diǎn)u被摘除的從存儲(chǔ)節(jié)點(diǎn)數(shù)據(jù)追平,則恢復(fù)正常分布式事務(wù)數(shù)據(jù)庫的讀寫分離的技術(shù)原理及功能特性分布式事務(wù)數(shù)據(jù)庫的并行計(jì)算INSERT的技術(shù)原理及功能特性DS2DS2MIDFISSUERAPPDS1DS1MIDFISSUER04100000004中國(guó)銀行總部以存儲(chǔ)支付機(jī)構(gòu)號(hào)數(shù)據(jù)的MIDF字段作為分片字段,使用路由算法MATCH函數(shù)。 假設(shè)數(shù)據(jù)路由配置規(guī)則為:機(jī)構(gòu)號(hào)104100000004和305100000013存儲(chǔ)到
6、數(shù)據(jù)節(jié)點(diǎn)DN1;INSERT INTO table_nameVALUES (104100000004,中國(guó)銀行總部)DN1DN2動(dòng)畫演示:數(shù)據(jù)拆分為2個(gè)數(shù)據(jù)節(jié)點(diǎn)(DN1和DN2),每個(gè)數(shù)據(jù)節(jié)點(diǎn)為經(jīng)典的雙主架構(gòu)(DS1和DS1為一對(duì),DS2和DS2為一對(duì))。 通過分布式事務(wù)數(shù)據(jù)庫的分片路由算法及分片函數(shù)MATCH,控制數(shù)據(jù)行的存儲(chǔ)分布位置。1 Query ok, 1 row affected;105100000017中國(guó)建設(shè)銀行總行INSERT INTO table_nameVALUES (105100000017,中國(guó)建設(shè)銀行總行)Query ok, 1 row affected;051000
7、00013中國(guó)民生銀行INSERT INTO table_nameVALUES (305100000013,中國(guó)民生銀行總行)3 Query ok, 1 row affected;總行303100000006中國(guó)光大銀行總行機(jī)構(gòu)號(hào)105100000017和303100000006存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)DN2。分布式事務(wù)數(shù)據(jù)庫31310345100000001014763路由規(guī)則為DN121節(jié)點(diǎn)INSERT INTO table_name VALUES (303100000006,中國(guó)光大銀行總行)Query ok, 1 row affected;分布式事務(wù)數(shù)據(jù)庫的并行計(jì)算INSERT的技術(shù)原理及功能特
8、性以存儲(chǔ)支付機(jī)構(gòu)號(hào)數(shù)據(jù)的MIDF字段作為分片字段,使用路由算法MATCH函數(shù)。 假設(shè)數(shù)據(jù)路由配置規(guī)則為:機(jī)構(gòu)號(hào)104100000004和305100000013存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)DN1; 機(jī)構(gòu)號(hào)105100000017和303100000006存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)DN2。DS2DS2MIDFISSUERDS1DS1MIDFISSUERAPP分布式事務(wù)數(shù)據(jù)庫INSERT INTO table_name VALUES(104100000004,中國(guó)銀行總部) ,(105100000017,中國(guó)建設(shè)銀行總行);DN1DN2動(dòng)畫演示:數(shù)據(jù)拆分為2個(gè)數(shù)據(jù)節(jié)點(diǎn)(DN1和DN2),每個(gè)數(shù)據(jù)節(jié)點(diǎn)為經(jīng)典的雙主架構(gòu)(DS1
9、和DS1為一對(duì),DS2和DS2為一對(duì))。 通過分布式事務(wù)數(shù)據(jù)庫的分片路由算法及分片函數(shù)MATCH,控制數(shù)據(jù)行的存儲(chǔ)分布位置。INSERT INTO table_name VALUES(104100000004,中國(guó)銀行總部);INSERT INTO table_name VALUES(105100000017,中國(guó)建設(shè)銀行總行);104100000004中國(guó)銀行總部105100000017中國(guó)建設(shè)銀行總行INSERT INTO table_name VALUES(305100000013,中國(guó)民生銀行總行) ,(303100000006,中國(guó)光大銀行總行);3105410000001034路由
10、規(guī)則為DN1,3103510000000167路由規(guī)則為DN2INSERT INTO table_name VALUES(303100000006,中國(guó)光大銀行總行);INSERT INTO table_name VALUES305100000013中國(guó)民生銀行總行303100000006中國(guó)光大銀行總行Query ok, 1 row affected;Query ok, 1 row affected;Query ok, 2 rows affected;Query ok, 1 row affected;Query ok, 1 row affected;Query ok, 2 rows affe
11、cted;(305100000013,中國(guó)民生銀行總行);分布式事務(wù)數(shù)據(jù)庫的并行計(jì)算UPDATE單條數(shù)據(jù)的技術(shù)原理及功能特性APP分布式事務(wù)數(shù)據(jù)庫DS2DS2MIDFISSUERDS1DS1DN1DN2動(dòng)畫演示:數(shù)據(jù)拆分為2個(gè)數(shù)據(jù)節(jié)點(diǎn)(DN1和DN2),每個(gè)數(shù)據(jù)節(jié)點(diǎn)為經(jīng)典的雙主架構(gòu)(DS1和DS1為一對(duì),DS2和DS2為一對(duì))。 通過分布式事務(wù)數(shù)據(jù)庫的分片路由算法及分片函數(shù)MATCH,計(jì)算出分片字段值的存儲(chǔ)位置分布,控制SQL語句路由到正確 的存儲(chǔ)數(shù)據(jù)節(jié)點(diǎn)上執(zhí)行,并返回結(jié)果集給應(yīng)用程序。MIDFISSUER104100000004中國(guó)銀行總部305100000013中國(guó)民生銀行總行005511
12、0000000000001177中中國(guó)國(guó)建建設(shè)設(shè)銀銀行行分總行UPDATE table_name SETISSUER=“中國(guó)建設(shè)銀行分行”WHERE MIDF=105100000017;1 Query ok, 1 rowaffected;303100000006中國(guó)光大銀行總行以存儲(chǔ)支付機(jī)構(gòu)號(hào)數(shù)據(jù)的MIDF字段作為分片字段,使用路由算法MATCH函數(shù)。 假設(shè)數(shù)據(jù)路由配置規(guī)則為:機(jī)構(gòu)號(hào)104100000004和305100000013存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)DN1;機(jī)構(gòu)號(hào)105100000017和303100000006存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)DN2。分片字段值105100000017經(jīng)路由算法MATCH函數(shù)計(jì)算,
13、 得出存儲(chǔ)位置為DN2節(jié)點(diǎn)分布式事務(wù)數(shù)據(jù)庫的并行計(jì)算UPDATE多條數(shù)據(jù)的技術(shù)原理及功能特性APP分布式事務(wù)數(shù)據(jù)庫DS2DS2MIDFISSUERDS1DS1MIDFISSUERDN1DN2動(dòng)畫演示:數(shù)據(jù)拆分為2個(gè)數(shù)據(jù)節(jié)點(diǎn)(DN1和DN2),每個(gè)數(shù)據(jù)節(jié)點(diǎn)為經(jīng)典的雙主架構(gòu)(DS1和DS1為一對(duì),DS2和DS2為一對(duì))。 通過分布式事務(wù)數(shù)據(jù)庫的分片路由算法及分片函數(shù)MATCH,計(jì)算出分片字段值的存儲(chǔ)位置分布,控制SQL語句路由到正確 的存儲(chǔ)數(shù)據(jù)節(jié)點(diǎn)上執(zhí)行,并返回結(jié)果集給應(yīng)用程序。104100000004中國(guó)銀行總部UPDATE table_name SETISSUER=REPLACE(ISSUER
14、,總行,分行) WHERE MIDF IN (105100000017,303100000006中國(guó)光大銀行總行UPDATE table_name SETISSUER=REPLACE(ISSUER,總行, 分 行 ) WHERE MIDF IN (105100000017, 305100000013);PLACE(ISSUER,總行,分行305100000013)0055110000000000001133中中國(guó)國(guó)民民生生銀銀行分總行110055110000000000001177中中國(guó)國(guó)建建設(shè)設(shè)銀銀行總分行3 Query ok, 1 rowaffected;Query ok, 1 rowaf
15、fected;UPDATE table_name SETISSUER=RE Query ok, 2 rows affected;) WHERE MIDF IN (105100000017,以存儲(chǔ)支付機(jī)構(gòu)號(hào)數(shù)據(jù)的MIDF字段作為分片字段,使用路由算法MATCH函數(shù)。 假設(shè)數(shù)據(jù)路由配置規(guī)則為:機(jī)構(gòu)號(hào)104100000004和305100000013存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)DN1;機(jī)構(gòu)號(hào)105100000017和303100000006存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)DN2。分片字段值105100000017, 305100000013經(jīng)路由算法MATCH函數(shù)計(jì) 算,得出存儲(chǔ)位置分別為DN1節(jié)點(diǎn)和DN2節(jié)點(diǎn)分布式事務(wù)數(shù)據(jù)庫的并
16、行計(jì)算SELECT單條數(shù)據(jù)的技術(shù)原理及功能特性APP分布式事務(wù)數(shù)據(jù)庫DS2DS2DS1DS1DN1DN2動(dòng)畫演示:數(shù)據(jù)拆分為2個(gè)數(shù)據(jù)節(jié)點(diǎn)(DN1和DN2),每個(gè)數(shù)據(jù)節(jié)點(diǎn)為經(jīng)典的雙主架構(gòu)(DS1和DS1為一對(duì),DS2和DS2為一對(duì))。 通過分布式事務(wù)數(shù)據(jù)庫的分片路由算法及分片函數(shù)MATCH,計(jì)算出分片字段值的存儲(chǔ)位置分布,控制SQL語句路由到正確 的存儲(chǔ)數(shù)據(jù)節(jié)點(diǎn)上執(zhí)行,并返回結(jié)果集給應(yīng)用程序。105100000017中國(guó)建設(shè)銀行總行SELECT* FROM table_nameWHERE MIDF= 105100000017;MIDFISSUER105100000017,中國(guó)建設(shè)銀行總行3031
17、00000006中國(guó)光大銀行總行MIDFISSUER104100000004中國(guó)銀行總部305100000013中國(guó)民生銀行總行以存儲(chǔ)支付機(jī)構(gòu)號(hào)數(shù)據(jù)的MIDF字段作為分片字段,使用路由算法MATCH函數(shù)。 假設(shè)數(shù)據(jù)路由配置規(guī)則為:機(jī)構(gòu)號(hào)104100000004和305100000013存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)DN1;機(jī)構(gòu)號(hào)105100000017和303100000006存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)DN2。分片字段值105100000017經(jīng)路由算法MATCH函數(shù)計(jì)算, 得出存儲(chǔ)位置為DN2節(jié)點(diǎn)分布式事務(wù)數(shù)據(jù)庫的并行計(jì)算SELECT多條數(shù)據(jù)的技術(shù)原理及功能特性APP分布式事務(wù)數(shù)據(jù)庫DS1DS1104100000004
18、中國(guó)銀行總部104100000001DS2DS2MIDFISSUERMROOT105100000017中國(guó)建設(shè)銀行總行305100000002303100000006中國(guó)光大銀行總行104100000001支付機(jī)構(gòu)號(hào)數(shù)據(jù)的MIDF字段+報(bào)文標(biāo)識(shí)號(hào)MROOT字段組合作為分片字段,使用路由算法MATCH函數(shù)和哈希假設(shè)數(shù)據(jù)路由配置位置為:機(jī)構(gòu)號(hào)104100000004與104100000001組合、305100000013與305100000002組合存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)到數(shù)據(jù)節(jié)點(diǎn)DN1;機(jī)構(gòu)號(hào)105100000017與305100000002組合、303100000006與104100000001組合存
19、儲(chǔ)DN2。DN1DN2動(dòng)畫演示:數(shù)據(jù)拆分為2個(gè)數(shù)據(jù)節(jié)點(diǎn)(DN1、DN2),每個(gè)數(shù)據(jù)節(jié)點(diǎn)為經(jīng)典的雙主架構(gòu)(DS1和DS1為一對(duì),DS2和DS2為一對(duì))。 通過分布式事務(wù)數(shù)據(jù)庫的分片哈希約定算法及分片函數(shù)HASH,及分布式事務(wù)數(shù)據(jù)庫的內(nèi)置JOIN算法引擎,實(shí)現(xiàn)跨數(shù)據(jù)節(jié) 點(diǎn)的JOIN及數(shù)據(jù)結(jié)果集合并處理再返回正確的結(jié)果集。SELECT O.MIDF AS A,O.ISSUER AS OISS,O.MROOT,P.MIDF AS B,P. ISSUER AS PISS FROM MAS O JOIN M AS P ON O.MROOT=P.MROOT WHERE 約定算法HASH函數(shù)。O.MROOT=
20、104100000001;SELECT O.MIDF AS A,O.ISSUER AS OISS, O.MROOTFROM M AS O WHERE O.MROOT=104100000001;SELECT P.MIDF AS B,P.ISSUER AS PISS, P.MROOT,FROM M AS P WHERE P.MROOT=104100000001;分片字段值104100000001MIDFISSUERMROOT104100000004,中國(guó)銀行總部 , 104100000001305100000013中國(guó)民生銀行總行30510000000230310000行總行 ,0006,中國(guó)光大
21、銀104100000001104100000004,中國(guó)銀行總部,104100000001,303100000006,中國(guó)光大銀行總行經(jīng)過HASH函數(shù)計(jì)算,得出數(shù)據(jù)分布在DN1和DN2數(shù)據(jù)節(jié)點(diǎn)上, 分布式事務(wù)數(shù)據(jù)庫將SQL語句路由下發(fā)到DN1和DN2數(shù)據(jù)節(jié)點(diǎn)上并行執(zhí)行,返回的結(jié)果集再 經(jīng)分布式事務(wù)數(shù)據(jù)庫內(nèi)置JOIN算法處理,最終返回應(yīng)用程序期望的結(jié)果集分布式事務(wù)數(shù)據(jù)庫的功能特性分布式事務(wù)存儲(chǔ)節(jié)點(diǎn)層存儲(chǔ)節(jié)管理協(xié)調(diào)節(jié)點(diǎn)無狀態(tài)計(jì)算節(jié)點(diǎn)update 1;點(diǎn)Query okCommit;CommitQuery ok請(qǐng)求存儲(chǔ)節(jié)點(diǎn) 及協(xié)調(diào)返回狀態(tài)update 1;Query ok;update 1;ok;存
22、儲(chǔ)節(jié)點(diǎn)存引入“管理協(xié)調(diào)節(jié)點(diǎn)”帶來的問題優(yōu)勢(shì): 性能問題:響應(yīng)時(shí)間變長(zhǎng),存在性能毛刺 可靠性問題:交互環(huán)節(jié)增多,增加隱患點(diǎn) 有狀態(tài)轉(zhuǎn)移:有狀態(tài)的信息從計(jì)算節(jié)點(diǎn)轉(zhuǎn)移到管理協(xié)調(diào)節(jié)點(diǎn), 管理協(xié)調(diào)節(jié)點(diǎn)水平擴(kuò)展數(shù)量受分布式一致性協(xié)議限制存儲(chǔ)節(jié)點(diǎn)有狀態(tài)計(jì)算節(jié)點(diǎn)有狀態(tài)計(jì)算節(jié)點(diǎn)有狀態(tài)計(jì)算節(jié)點(diǎn)管理協(xié)調(diào)節(jié)點(diǎn)管理協(xié)調(diào)節(jié)點(diǎn)無狀態(tài)計(jì)算節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)儲(chǔ)節(jié)點(diǎn)update 1;應(yīng)用okErrorCommit;Commit ok無狀態(tài)計(jì)算節(jié)點(diǎn)Query ok;Queryupdate 1;計(jì)算節(jié)點(diǎn)成為有狀態(tài)的問題優(yōu)勢(shì):u 問題:有狀態(tài)信息維護(hù)在“指揮官”計(jì)算節(jié)點(diǎn)上, 則要求計(jì)算節(jié)點(diǎn)處理能力更強(qiáng)大,水平擴(kuò)展 數(shù)量受分布式一致性協(xié)議限制
23、u 優(yōu)勢(shì):減少故障環(huán)節(jié),穩(wěn)定性更好;減少網(wǎng)絡(luò)交互,響應(yīng)時(shí)間更短,吞吐量更大Query ok;分布式事務(wù)應(yīng)用透明的計(jì)算節(jié)點(diǎn)架構(gòu)和引入管理協(xié)調(diào)節(jié)點(diǎn)架構(gòu)的差異分布式事務(wù)隔離級(jí)別的功能效果及測(cè)試驗(yàn)證方法MySQLMySQLMySQLMySQLLVS/F5/MySQLMySQLMySQLMySQLdn_1dn_4計(jì)算節(jié)點(diǎn)計(jì)算節(jié)點(diǎn)管理平臺(tái)dn_2dn_3APPAPPAPPLVS/F5/A10A10IDVALUEIDVALUET1線程,產(chǎn)生隨機(jī)數(shù)N,循環(huán)執(zhí)行:START TRANSATCION;NSAC_TEST SET VALUE=VALUE+NWHEREUPDATE TRA ID=1;UPDATE TR
24、ANSAC_TEST SET VALUE=VALUE -N WHEREID=4;COMMIT;計(jì)算節(jié)點(diǎn) + N- N1+-1- NT2線程,休眠0.1秒,循環(huán)執(zhí)行: 查詢T1中兩行對(duì)應(yīng)字段值及其和11+ NN4-1 - N225-2336-38-474和始終為0測(cè)試方案:新建一張分片表,除分片字段外,需要有至少一個(gè)int型字段,并插入部分?jǐn)?shù)據(jù)構(gòu)造或選擇兩行不在同一節(jié)點(diǎn)的數(shù)據(jù)行,數(shù)據(jù)行的int型非分片字段設(shè)置數(shù)值為0, 后稱該字段為C1,兩行數(shù)據(jù)后稱R1與R2T1線程,產(chǎn)生一個(gè)新的整型的范圍在1到100的隨機(jī)數(shù),在分布式數(shù)據(jù)庫開啟事務(wù),扣減R1的C1字段該隨機(jī)值數(shù)值,增加R2的C1字段該隨機(jī)值數(shù)
25、值,提交事務(wù);然后T1線程循 環(huán)執(zhí)行此過程T2線程,休眠0.1秒,開啟事務(wù),查詢R1與R2行的C1字段及其和并記錄結(jié)果,休眠0.1 秒,查詢R1與R2行的C1字段及其和并記錄結(jié)果,提交事務(wù);然后T2線程循環(huán)執(zhí)行此過程1000次測(cè)試結(jié)果參考:Read Uncommitted:T2線程在事務(wù)中的讀取,可能并且應(yīng)該出現(xiàn)字段和不為0的現(xiàn)象Read Commited:T2線程在事務(wù)中的讀取,一次都不出現(xiàn)字段和不為0的現(xiàn)象,可能并且 應(yīng)該出現(xiàn)一個(gè)事務(wù)中兩次查詢R1的C1字段值發(fā)生變化Repeatable Read:T2線程在事務(wù)中的讀取,一次都不出現(xiàn)字段和不為0的現(xiàn)象,并且一次 都不出現(xiàn)一個(gè)事務(wù)中兩次查詢
26、R1的C1字段值發(fā)生變化的現(xiàn)象,可能并且應(yīng)該出現(xiàn),兩個(gè)事務(wù)之間查詢到的R1的C1字段值發(fā)生變化 Serializable:此測(cè)試現(xiàn)象的要求和repeatable read相同,T1線程可能出現(xiàn)因鎖等待變慢(根據(jù)實(shí)現(xiàn)方式不同,也可能無此現(xiàn)象),但該測(cè)試方法并不足以證明serializable的正確性分布式事務(wù)數(shù)據(jù)庫me SET ISSUER, D1 and ID 1 and I,分行)UPDATE tabl ISSUER=REP WHERE ID1ame SET E(ISSUER,總 ID1 and ID1 and ID1 andActive MasterStandby MasterStandb
27、y MasterUPDATE OKUPDATE OKETPrepareEPreparePrepare OKCommitE tR=RCommitR, WID1 and ID1 an=REPLACE(ISS,分行) WH d ID1 and ID1000UPDATE操作UPDATE操作104中國(guó)銀行分總行313中國(guó)民生銀行分總行706中國(guó)光大銀行分總行512中國(guó)建設(shè)銀行分總行MySQL自動(dòng)回滾動(dòng)畫演示:數(shù)據(jù)拆分為18個(gè)數(shù)據(jù)節(jié)點(diǎn)(DN1DN18),每 個(gè)數(shù)據(jù)節(jié)點(diǎn)為經(jīng)典的雙主 架構(gòu)(Active Master與 Standby Master為一組)。通過分布式事務(wù)數(shù)據(jù)庫的 分片哈希約定算法及分片 函數(shù)
28、HASH,及分布式事 務(wù)數(shù)據(jù)庫的內(nèi)置強(qiáng)一致分 布式事務(wù)算法引擎,保證 跨數(shù)據(jù)分片的事務(wù)在正常 場(chǎng)景或異常場(chǎng)景下都能做 到數(shù)據(jù)結(jié)果集始終一致。分布式事務(wù)原子性的功能效果及測(cè)試驗(yàn)證方法VIPMySQLMySQLMySQLMySQLdn_1dn_2APPAPPAPPMySQLMySQLMySQLMySQLdn_3dn_4計(jì)算LVS/F5/A10LVS/F5/A10計(jì)算節(jié)點(diǎn)節(jié)點(diǎn)計(jì)算節(jié)點(diǎn)SESSION 1:TRANSACTION 1:批量插入1000條數(shù)據(jù) TRANSACTION 2:刪除上一步插入的1000條數(shù)據(jù)Query ok;Query ok;Begin;INSERT INTO TABLE_NAM
29、E VALUES(XXX),(XXX); COMMIT;Begin;DELETE FROM TABLE_NAME VALUES(XXX),(XXX); COMMIT;Begin;INSERT INTO TABLE_NAME VALUES(XXX),(XXX); COMMIT;Begin;DELETE FROM TABLE_NAME VALUES(XXX),(XXX); COMMIT;Begin;INSERT INTO TABLE_NAME VALUES(XXX),(XXX); COMMIT;Begin;DELETE FROM TABLE_NAME VALUES(XXX),(XXX); COMM
30、IT;Begin;INSERT INTO TABLE_NAME VALUES(XXX),(XXX);OMMIT;egin;DELETE FROM TABLE_NAME VALUES(XXX),(XXX); COMMIT;管理平臺(tái)Query ok;Query ok;SESSION 2:SELECT COUNT(*) FROM TABLE_NAME;SELECT COUNT(*) FROM TABLE_NAME;SELECT COUNT(*) FROM TABLE_NAME;SELECT COUNT(*) FROM TABLE_NAME;CBSELECT COUNT(*) FROM TABLE_N
31、AME;Query ok;Query ok;Query ok;Query ok;SELECT COUNT(*) 出的結(jié)果為0或1000;第一步驟:開啟一個(gè)SESSION,包含兩個(gè)事務(wù),一個(gè)是INSERT 1000條數(shù)據(jù),一個(gè)是DELETE1000條數(shù)據(jù),兩個(gè)事務(wù)反復(fù)交替執(zhí)行,無間隔 時(shí)間;(可提供腳本)第二步驟:開啟第二個(gè)SESSION進(jìn)行SELECTCOUNT(*) 操作,查詢所有節(jié)點(diǎn)的數(shù)據(jù)總數(shù), 該操作應(yīng)反復(fù)執(zhí)行,多次驗(yàn)證,應(yīng)為0或者1000,保障分布式事務(wù)的數(shù)據(jù)讀一致。分布式事務(wù)數(shù)據(jù)庫核心技術(shù)算法功能:分布式事務(wù)的數(shù)據(jù)讀一致性第一步驟:開啟一個(gè)SESSION,反復(fù)執(zhí)行INSERT操作,批
32、量插入1000條數(shù)據(jù),中間無間隔;(可提 供腳本)第二步驟:登錄后端節(jié)點(diǎn),在MySQL端反復(fù)進(jìn)行kill所有連接的操作,執(zhí)行5-10分鐘;(可提供腳本) 第三步驟:停止第一個(gè)SESSION的插入操作;第四步驟:統(tǒng)計(jì)所有節(jié)點(diǎn)的數(shù)據(jù)行數(shù),應(yīng)該為1000 的整數(shù)倍,保障分布式事務(wù)的數(shù)據(jù)寫一致。VIPLVS/F5/A10LVS/F5/A10MySQLMySQLMySQLMySQLdn_1dn_2APPAPPAPPMySQLMySQLMySQLMySQLdn_3dn_4計(jì)算計(jì)算節(jié)計(jì)算節(jié)點(diǎn)節(jié)點(diǎn)點(diǎn)SESSION 1:自動(dòng)提交模式反復(fù)執(zhí)行:批量插入1000條數(shù)據(jù)Query ok;Query ok;INSERT
33、 INTO TABLE_NAME VALUES(XXX),(XXX);INSERT INTO TABLE_NAME VALUES(XXX),(XXX);INSERT INTO TABLE_NAME VALUES(XXX),(XXX);INSERT INTO TABLE_NAME VALUES(XXX),(XXX);INSERT INTO TABLE_NAME VALUES(XXX),(XXX);INSERT INTO TABLE_NAME VALUES(XXX),(XXX);NSERT INTO TABLE_NAME VALUES(XXX),(XXX);NSERT INTO TABLE_NAM
34、E VALUES(XXX),(XXX);管理平臺(tái)Query ok;Query ok;SESSION 2:SELECT COUNT(*) FROM TABLE_NAME;SELECT COUNT(*) FROM TABLE_NAME;SELECT COUNT(*) FROM TABLE_NAME;SELECT COUNT(*) FROM TABLE_NAME;IISELECT COUNT(*) FROM TABLE_NAME;Query ok;Query ok;Query ok;Query ok;SELECT COUNT(*) 出的結(jié)果為1000的整數(shù)倍;KILL分布式事務(wù)數(shù)據(jù)庫核心技術(shù)算法功能
35、:分布式事務(wù)的數(shù)據(jù)寫一致性MySQMySQLMySQLMySQLMySQLMySQLMySQLMySQLdn_4IDNAMEIDNAMEIDNAMEIDNAMLEVIPLVS/F5/A10LVS/F5/A10dn_1dn_2APPAPPAPPdn_3計(jì)算節(jié)點(diǎn)計(jì)算節(jié)點(diǎn)計(jì)算節(jié)點(diǎn)INSERT INTO TABLE_NAME(ID,NAME) VALUES (11,abc),(12,abc), (13,abc), (14,abc);INSERT INTO TABLE_NAME(ID,NAME)VALUES(11,abc);INSERT INTO TABLE_NAME(ID,NAME)VALUES(12
36、,abc);INSERT INTO TABLE_NAME(ID,NAME)VALUES(13,abc);INSERT INTO TABLE_NAME(ID,NAME)VALUES(14,abc);管理平臺(tái)開啟A客戶端執(zhí)行A事務(wù):BEGIN;SELECT * FROM TABLE_NAME WHERE ID=11 FOR UPDATE;SELECT * FROM TABLE_NAMEWHERE ID=11 FOR UPDATE;開啟B客戶端執(zhí)行B事務(wù):BEGIN;SELECT * FROM TABLE_NAME WHERE ID=14 FOR UPDATE;SELECT * FROM TABLE
37、_NAMEWHERE ID=14 FOR UPDATE;依舊在A客戶端繼續(xù)執(zhí)行A事務(wù):UPDATE TABLE_NAME SET NAME=bcd WHERE ID=14;依舊在B客戶端繼續(xù)執(zhí)行B事務(wù):UPDATE TABLE_NAME SET NAME=bcd WHERE ID=11;UPDATE TABLE_NAME SETNAME=bcd WHERE ID=14;UPDATE TABLE_NAME SETNAME=bcd WHERE ID=11;鎖檢測(cè)模型死鎖發(fā)生鎖爭(zhēng)用,死 Query ok; 判斷出現(xiàn)第一步驟:在數(shù)據(jù)分片到不同存儲(chǔ)節(jié)點(diǎn)的前提下 第二步驟:制造分布式事務(wù)死鎖1)以下兩行數(shù)
38、據(jù)分布在不同數(shù)據(jù)節(jié)點(diǎn)2)開啟一個(gè)客戶端執(zhí)行A事務(wù),如下:select * from table_name where id=11 for update;update table_name set name=bcd where id=14;3)開啟另一個(gè)客戶端執(zhí)行B事務(wù),如下:select * from table_name where id=14 for update;update table_name set name=bcd where id=11;Query ok;Query ok;12abcQuery ok;13abcQuery ok;Query ok;14abcQuery ok;11
39、abc分布式事務(wù)數(shù)據(jù)庫核心技術(shù)算法功能:高效智能的分布式死鎖檢測(cè)MySQLIDNAME14bcdMySQLMySQLMySQLMySQLMySQLMySQLdn_4E11abcIDNAM E12abcIDNAM E13abcE14abcMySQLVIPAPPLVS/F5/A10LVS/F5/A10dn_1dn_2APPAPPdn_3算節(jié)點(diǎn)計(jì)算節(jié)點(diǎn)計(jì)算節(jié)點(diǎn)計(jì)管理平臺(tái)第一步:死鎖檢測(cè)算法發(fā)現(xiàn)鎖爭(zhēng)用的環(huán)形第二步:計(jì)算出來解除那個(gè)事務(wù)已爭(zhēng)用到的鎖資 源,能破解環(huán)形鎖且是犧牲最小第三步:對(duì)被符合要求且保證能破解環(huán)形鎖的其 中一個(gè)或多個(gè)事務(wù)進(jìn)行回滾操作死鎖解除:選擇解除代價(jià)最小的Kill queryB事務(wù)
40、失敗IDNAMQuery ok;IDNAMQuery ok;分布式事務(wù)數(shù)據(jù)庫核心技術(shù)算法功能:高效智能的分布式死鎖解除機(jī)制應(yīng)用層實(shí)現(xiàn)數(shù)據(jù)分片與數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)分片的區(qū)別應(yīng)用層和分布式事務(wù)數(shù)據(jù)庫兩種方式實(shí)現(xiàn)數(shù)據(jù)分布式的核心區(qū)別維度項(xiàng)應(yīng)用層實(shí)現(xiàn)數(shù)據(jù)分布式分布式事務(wù)數(shù)據(jù)庫產(chǎn)品實(shí)現(xiàn)數(shù)據(jù)分布式單個(gè)存儲(chǔ)節(jié)點(diǎn) 維度的應(yīng)用連接數(shù)存儲(chǔ)節(jié)點(diǎn)服務(wù)端:?jiǎn)蝹€(gè)應(yīng)用程序服務(wù)創(chuàng)建的連接的數(shù)量 * 應(yīng)用服務(wù)個(gè)數(shù)計(jì)算節(jié)點(diǎn)服務(wù)端:?jiǎn)蝹€(gè)應(yīng)用程序服務(wù)創(chuàng)建的連接的數(shù)量 * 應(yīng)用程序服務(wù)個(gè)數(shù)存儲(chǔ)節(jié)點(diǎn)服務(wù)端:以單個(gè)mysqld服務(wù)的TPS/QPS最佳吞吐量128-256個(gè)并發(fā)為準(zhǔn)單個(gè)應(yīng)用程序服務(wù) 維度的數(shù)據(jù)庫連接數(shù)應(yīng)用程序服務(wù)端:?jiǎn)蝹€(gè)存儲(chǔ)節(jié)點(diǎn)
41、連接的數(shù)量 * 數(shù)據(jù)分片數(shù)量,增加開銷應(yīng)用程序服務(wù)端:?jiǎn)蝹€(gè)數(shù)據(jù)庫連接的數(shù)量,無額外開銷數(shù)據(jù)服務(wù)的高可用應(yīng)用程序服務(wù)端或借助第三方組件實(shí)現(xiàn)數(shù)據(jù)服務(wù)的高可用計(jì)算節(jié)點(diǎn)服務(wù)的高可用:分布式選舉算法,且支持少于半數(shù)計(jì)算節(jié)點(diǎn)和只剩下一個(gè) 計(jì)算節(jié)點(diǎn)都能確保正常提供數(shù)據(jù)服務(wù)存儲(chǔ)節(jié)點(diǎn)服務(wù)的高可用:計(jì)算節(jié)點(diǎn)服務(wù)的內(nèi)置智能算法架構(gòu)設(shè)計(jì)成本規(guī)避跨數(shù)據(jù)分片數(shù)據(jù)操作的成本高,抬高技術(shù)門檻及需專家分析實(shí)現(xiàn)減少跨數(shù)據(jù)分片數(shù)據(jù)操作的成本低,由AI算法實(shí)現(xiàn)智能數(shù)據(jù)分片降低技術(shù)門檻應(yīng)用開發(fā)成本跨數(shù)據(jù)分片數(shù)據(jù)訪問的研發(fā)成本高,代碼增加量龐大且不通用無研發(fā)成本,應(yīng)用強(qiáng)透明維護(hù)管理成本存儲(chǔ)節(jié)點(diǎn)的數(shù)量決定維護(hù)管理工作量的倍數(shù),增加巨大的維
42、護(hù)工作量簡(jiǎn)便且全圖形化界面智能自動(dòng),智能算法發(fā)現(xiàn)定位異常,小于等于單庫維護(hù)工作量數(shù)據(jù)操作強(qiáng)一致跨數(shù)據(jù)分片的數(shù)據(jù)操作強(qiáng)一致需要借助業(yè)務(wù)沖賬方式實(shí)現(xiàn)跨數(shù)據(jù)分片的數(shù)據(jù)操作強(qiáng)一致由計(jì)算節(jié)點(diǎn)服務(wù)端的內(nèi)置分布式事務(wù)算法實(shí)現(xiàn)數(shù)據(jù)備份強(qiáng)一致支持單個(gè)存儲(chǔ)節(jié)點(diǎn)數(shù)據(jù)備份,全局?jǐn)?shù)據(jù)無法做到強(qiáng)一致支持全部存儲(chǔ)節(jié)點(diǎn)的全局一致數(shù)據(jù)備份,支持全局?jǐn)?shù)據(jù)強(qiáng)一致數(shù)據(jù)彈性伸縮不支持彈性擴(kuò)展,需要應(yīng)用程序和存儲(chǔ)節(jié)點(diǎn)一同改造支持在線無阻塞不停機(jī)的彈性擴(kuò)展(遷庫和拆庫兩種模式)數(shù)據(jù)服務(wù)的 軟件版本升級(jí)每個(gè)應(yīng)用程序的代碼都須更新和服務(wù)都要重啟,借助負(fù)載均衡服務(wù)可灰度 發(fā)布只須計(jì)算節(jié)點(diǎn)的代碼更新和服務(wù)重啟,分布式選舉算法支持灰度發(fā)布應(yīng)用程序的
43、研發(fā)語言僅限一種編程語言編程語言無限制金融行業(yè)面臨基礎(chǔ)軟件選型難題金融行業(yè)面臨基礎(chǔ)軟件選型難題基礎(chǔ)軟件的產(chǎn)品成熟度技術(shù)標(biāo)準(zhǔn):缺乏官方推出的基礎(chǔ)軟件行業(yè)技術(shù)標(biāo)準(zhǔn)測(cè)試標(biāo)準(zhǔn):缺乏官方機(jī)構(gòu)的基礎(chǔ)軟件行業(yè)評(píng)測(cè)標(biāo)準(zhǔn)行業(yè)共識(shí):基礎(chǔ)軟件廠商產(chǎn)品的功能定義、技術(shù)指標(biāo)、產(chǎn)品形態(tài)各不相同基礎(chǔ)軟件的企業(yè)持續(xù)研發(fā)實(shí)力:缺乏專注基礎(chǔ)軟件細(xì)分領(lǐng)域的產(chǎn)品研發(fā)大型企業(yè)現(xiàn)狀:基礎(chǔ)軟件以創(chuàng)業(yè)型和政府型的企業(yè)為主,非大型企業(yè)的主營(yíng)業(yè)務(wù)及未來也屬非關(guān)鍵性營(yíng)收業(yè)務(wù)人才:國(guó)內(nèi)基礎(chǔ)軟件行業(yè)的人才數(shù)量極少,高校配套的培養(yǎng)體系缺乏,就業(yè)導(dǎo)向缺乏基礎(chǔ)軟件的生態(tài)鏈處理器:多數(shù)購(gòu)買國(guó)外處理器指令集知識(shí)產(chǎn)權(quán)或OEM國(guó)外廠商處理器,處理能力遠(yuǎn)低于當(dāng)下主流
44、 商業(yè)處理器,也存在跟不上技術(shù)更新節(jié)奏,及存在斷供的風(fēng)險(xiǎn)危機(jī)操作系統(tǒng):國(guó)產(chǎn)操作系統(tǒng)都是基于開源操作系統(tǒng)定制研發(fā)的版本,且無法跟上開源社區(qū)的步 伐,及兼容國(guó)產(chǎn)處理器CPU的能力不足應(yīng)用軟件:軟件開發(fā)商已全部基于國(guó)外商業(yè)或開源的操作系統(tǒng)、商業(yè)數(shù)據(jù)庫(逐漸支持開源數(shù)據(jù) 庫)、中間件等,涉及研發(fā)人員、維護(hù)人員、架構(gòu)改造等費(fèi)用成本金融監(jiān)管要求監(jiān)管考核:銀保監(jiān)會(huì)對(duì)金融行業(yè)的系統(tǒng)穩(wěn)定可靠性、數(shù)據(jù)正確性等考核要求依然是按照國(guó)外商業(yè)產(chǎn) 品要求制定激勵(lì)政策:技術(shù)創(chuàng)新缺乏對(duì)金融單位和個(gè)人實(shí)質(zhì)性的鼓勵(lì)政策序號(hào)維度描述MySQLPostgreSQL1穩(wěn)定產(chǎn)品(8分)產(chǎn)品的健壯性,在生產(chǎn)環(huán)境中保持穩(wěn)健運(yùn)行并保障優(yōu)秀的性能852成熟產(chǎn)品(8分)產(chǎn)品已經(jīng)形成一定規(guī)范,沒有嚴(yán)重的產(chǎn)品缺陷,擁有固定的用戶群,且產(chǎn)品可靠性和可應(yīng)用性都有保障,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)印刷機(jī)齒輪數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年開合簾電機(jī)項(xiàng)目投資價(jià)值分析報(bào)告
- 2025年發(fā)電機(jī)活塞環(huán)項(xiàng)目可行性研究報(bào)告
- 2025至2030年RV合股絲項(xiàng)目投資價(jià)值分析報(bào)告
- ZNO基變阻器材料項(xiàng)目風(fēng)險(xiǎn)識(shí)別與評(píng)估綜合報(bào)告
- 非金屬?gòu)U料和碎屑項(xiàng)目風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2025年餐館就餐合同
- 2025年演出交響樂團(tuán)協(xié)議
- 2025年訂金預(yù)約購(gòu)物協(xié)議
- 寵物樂園室內(nèi)設(shè)計(jì)服務(wù)協(xié)議
- 2024年高端裝備制造行業(yè)現(xiàn)狀分析:國(guó)家政策確保高端裝備制造行業(yè)有序發(fā)展
- 《帶一本書去讀研:研究生關(guān)鍵學(xué)術(shù)技能快速入門》筆記
- 知識(shí)圖譜智慧樹知到答案2024年浙江大學(xué)
- 2024年吉林省吉林市中考一模物理試題(解析版)
- Unit 2 Last weekend C Story time (教學(xué)設(shè)計(jì))人教PEP版英語六年級(jí)下冊(cè)
- 2024年上海市普通高中學(xué)業(yè)水平等級(jí)性考試化學(xué)試卷(含答案)
- DZ∕T 0153-2014 物化探工程測(cè)量規(guī)范(正式版)
- 2024年度-美團(tuán)新騎手入門培訓(xùn)
- 化妝品祛痘功效評(píng)價(jià)
- 高一數(shù)學(xué)寒假講義(新人教A專用)【復(fù)習(xí)】第05講 三角函數(shù)(學(xué)生卷)
- 皮下注射的并發(fā)癥及預(yù)防
評(píng)論
0/150
提交評(píng)論