• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    金融分布式數(shù)據(jù)庫(kù)異步全局索引研究

    2023-11-16 00:51:30金磐石李博涵秦小麟李曉棟
    計(jì)算機(jī)與生活 2023年11期
    關(guān)鍵詞:事務(wù)全局分布式

    金磐石,李博涵,秦小麟,邢 磊,李曉棟,王 進(jìn)

    1.中國(guó)建設(shè)銀行,北京 100010

    2.南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院/人工智能學(xué)院/軟件學(xué)院,南京 211106

    我國(guó)的數(shù)據(jù)庫(kù)市場(chǎng)曾經(jīng)被國(guó)外產(chǎn)品壟斷,國(guó)產(chǎn)數(shù)據(jù)庫(kù)市占率極低,主流數(shù)據(jù)庫(kù)產(chǎn)品如Oracle、DB2、SQLServer等均是來(lái)自國(guó)外。特別地,目前金融等關(guān)鍵行業(yè)也存在這種現(xiàn)象,其核心業(yè)務(wù)普遍采用“大/小機(jī)+Oracle/DB2”的集中式數(shù)據(jù)庫(kù)系統(tǒng)。而隨著國(guó)產(chǎn)數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,尤其是移動(dòng)端支付的發(fā)展,現(xiàn)有系統(tǒng)已無(wú)法滿足金融等關(guān)鍵行業(yè)的要求,因此,建設(shè)新型數(shù)據(jù)庫(kù)成為了重要的研究課題[1-2]。由于數(shù)據(jù)庫(kù)向下調(diào)用底層硬件資源,向上支撐應(yīng)用業(yè)務(wù),作為三大基礎(chǔ)軟件之一的數(shù)據(jù)庫(kù)是計(jì)算機(jī)功能實(shí)現(xiàn)的重要基礎(chǔ)。隨著數(shù)據(jù)庫(kù)國(guó)產(chǎn)替代不斷加速,其發(fā)展的主流之一便是分布式數(shù)據(jù)庫(kù)。分布式數(shù)據(jù)庫(kù)是傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)的有機(jī)結(jié)合,在平滑擴(kuò)展、整體性能、高可靠、高可用、低成本等方面具有優(yōu)勢(shì),特別是整體性能可突破集中式數(shù)據(jù)庫(kù)的瓶頸,具有很強(qiáng)的研究和應(yīng)用價(jià)值,目前很多數(shù)據(jù)庫(kù)企業(yè)研發(fā)了分布式數(shù)據(jù)庫(kù)產(chǎn)品,并在金融、電信、互聯(lián)網(wǎng)等關(guān)鍵行業(yè)進(jìn)行了成功應(yīng)用,具有良好的發(fā)展前景[3]。

    索引是集中式數(shù)據(jù)庫(kù)性能優(yōu)化最常見(jiàn)的手段之一,它是加速查詢非常有效的手段[4]。但是索引本身也會(huì)帶來(lái)弊端,比如會(huì)導(dǎo)致寫(xiě)放大和空間放大,同時(shí)過(guò)多的索引也會(huì)導(dǎo)致查詢優(yōu)化器的搜索空間增大,拖慢查詢優(yōu)化器的優(yōu)化效率,并且不合適的索引會(huì)誤導(dǎo)優(yōu)化器。在分布式數(shù)據(jù)庫(kù)中,計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)分離情況下,如果缺乏必要的全局索引,由于網(wǎng)絡(luò)導(dǎo)致延遲更加嚴(yán)重,性能往往更加劣化。因此研究基于分布式數(shù)據(jù)庫(kù)的全局索引具有重大的現(xiàn)實(shí)意義[5]。伍賽等人于2009年提出了一種雙層索引框架[6],分為全局索引和本地索引兩層結(jié)構(gòu),后續(xù)的關(guān)于雙層索引方案的研究大都是基于該框架進(jìn)行的,如基于Raft 協(xié)議研究出的混合交易分析處理(hybrid transaction analytical processing,HTAP)數(shù)據(jù)庫(kù)TiDB[7]、基于Hash與B+Tree的雙層檢索結(jié)構(gòu)[8]以及基于并發(fā)跳表的雙層索引架構(gòu)[9]。但是當(dāng)前常用的全局索引采用同步寫(xiě)入方式,會(huì)導(dǎo)致連接放大嚴(yán)重,并使得可以優(yōu)化的單節(jié)點(diǎn)事務(wù)退化成分布式事務(wù),這使得單表能夠支持的全局索引數(shù)量有限,且隨著數(shù)量增加性能下降嚴(yán)重。

    金融分布式數(shù)據(jù)管理的主要應(yīng)用場(chǎng)景是交易場(chǎng)景,大部分任務(wù)在云端上進(jìn)行,其特點(diǎn)是峰谷流量差異很大,因此需要一個(gè)能夠用于云端的高效檢索索引框架[10]。在交易峰值時(shí),如果全局索引和本地索引一樣,保持和主表數(shù)據(jù)完全同步的一致性寫(xiě)入,將會(huì)導(dǎo)致數(shù)據(jù)庫(kù)的緩沖池負(fù)載較大,當(dāng)達(dá)到緩沖池的閾值時(shí),需要向磁盤(pán)寫(xiě)入臟頁(yè),臟頁(yè)數(shù)量較多達(dá)到磁盤(pán)IO 的瓶頸時(shí),將會(huì)產(chǎn)生比較明顯的事務(wù)響應(yīng)時(shí)間(response time,RT)抖動(dòng),在交易場(chǎng)景中這是不允許的。金融分布式數(shù)據(jù)管理的另一個(gè)典型場(chǎng)景是批量導(dǎo)入數(shù)據(jù),每天凌晨12 點(diǎn)后,需要限定時(shí)間內(nèi),導(dǎo)入100 GB以上的來(lái)自其他系統(tǒng)的前一天的數(shù)據(jù)到本數(shù)據(jù)庫(kù)中,而這些數(shù)據(jù)庫(kù)表上同樣存在一個(gè)或多個(gè)全局索引。實(shí)踐證明,同步寫(xiě)入全局索引的話,尤其是有多個(gè)全局索引的情況下,會(huì)極大地影響效率,甚至無(wú)法在限定時(shí)間內(nèi)完成該操作。

    針對(duì)以上兩個(gè)金融領(lǐng)域典型場(chǎng)景,當(dāng)前的分布式數(shù)據(jù)庫(kù)同步方式的全局索引存在以下不足:(1)單表支持的全局索引數(shù)量有限且隨著數(shù)量增加性能下降非常快;(2)交易場(chǎng)景下,全局索引的存在會(huì)增加寫(xiě)入事務(wù)的時(shí)延,交易高峰容易出現(xiàn)明顯的RT抖動(dòng);(3)批量導(dǎo)入數(shù)據(jù)場(chǎng)景下,全局索引的存在會(huì)增加系統(tǒng)負(fù)載,降低系統(tǒng)吞吐量。為了解決上述問(wèn)題,本文提出了一種異步的全局索引設(shè)計(jì)思路和方法,同時(shí)利用RDMA(remote direct memory access)網(wǎng)絡(luò)降低事務(wù)時(shí)延,滿足金融交易場(chǎng)景的需要,通過(guò)金融典型場(chǎng)景下的海量數(shù)據(jù)實(shí)驗(yàn)表明,性能提高顯著,且資源消耗降低,為進(jìn)一步在生產(chǎn)環(huán)境中的商用奠定了良好的基礎(chǔ)[11-14]。

    1 背景與相關(guān)工作

    當(dāng)前全局索引設(shè)計(jì)思路主要分為兩大類:一類是索引和主表數(shù)據(jù)存在相同的存儲(chǔ)引擎下且同步更新,其優(yōu)點(diǎn)是和主表數(shù)據(jù)保持ACID(Atomicity 原子性,Consistency一致性、Isolation隔離性、Durability持久性)特性,缺點(diǎn)是會(huì)對(duì)數(shù)據(jù)庫(kù)的負(fù)載和RT造成不利影響;另一類是索引和主表數(shù)據(jù)不在相同的存儲(chǔ)引擎下,比如利用Redis做的鍵值(key value,KV)索引,利用ElasticSearch做倒排索引,優(yōu)點(diǎn)是查詢速度比較快,缺點(diǎn)是維護(hù)較為困難,無(wú)法和主表數(shù)據(jù)做到外部一致性。

    1.1 同構(gòu)的全局索引

    索引和主表數(shù)據(jù)在相同存儲(chǔ)引擎下,全局索引有兩種組織方式:全局非分區(qū)索引(global non-partitioned index)和全局分區(qū)索引(global partitioned index)[15-16]。

    (1)全局非分區(qū)索引。索引數(shù)據(jù)不做分區(qū),保持單一的數(shù)據(jù)結(jié)構(gòu),但由于主表已經(jīng)做了分區(qū),會(huì)出現(xiàn)索引中的某一個(gè)鍵映射到不同主表分區(qū)的情況,即“一對(duì)多”的對(duì)應(yīng)關(guān)系。

    (2)全局分區(qū)索引。索引數(shù)據(jù)按照指定的方式做分區(qū)處理,比如做哈希(hash)或范圍(range)分區(qū),將索引數(shù)據(jù)分散到不同的分區(qū)中。索引的分區(qū)和主表的分區(qū)是獨(dú)立的,因此對(duì)于每個(gè)索引分區(qū)來(lái)說(shuō),分區(qū)中的任一個(gè)鍵都可能映射到不同的主表分區(qū)(當(dāng)索引鍵有重復(fù)值時(shí)),索引分區(qū)和主表分區(qū)之間是“多對(duì)多”的對(duì)應(yīng)關(guān)系。

    1.2 異構(gòu)的全局索引

    索引和主表數(shù)據(jù)被獨(dú)立存儲(chǔ)在Cache 緩存系統(tǒng)和數(shù)據(jù)庫(kù)的存儲(chǔ)引擎中,具體有兩種實(shí)現(xiàn)方式:一種數(shù)據(jù)庫(kù)和外部Cache組件相互獨(dú)立[17],業(yè)務(wù)系統(tǒng)優(yōu)先到Cache 中查詢,如果Cache 中查詢不到,再查詢數(shù)據(jù)庫(kù);另一種是直接在數(shù)據(jù)庫(kù)內(nèi)部集成Cache,典型的如MySQL 的innodb_memcached 組件[18]。兩種方式并沒(méi)有本質(zhì)區(qū)別,客戶端或應(yīng)用都需要維護(hù)兩條鏈路單獨(dú)訪問(wèn)存儲(chǔ)引擎和Cache緩存組件,同時(shí)需要維護(hù)兩邊的數(shù)據(jù)一致性。除此之外,異構(gòu)環(huán)境下的并行離群點(diǎn)的檢測(cè)也需要一定的算法來(lái)實(shí)現(xiàn)[19]。

    2 基于RDMA的低時(shí)延異步全局索引

    為了解決以上全局索引數(shù)量有限、高峰期寫(xiě)入事務(wù)RT抖動(dòng)和資源占用集中度高等問(wèn)題,本文中的全局索引設(shè)計(jì)為獨(dú)立于主表的一套分片表,和主表的元數(shù)據(jù)獨(dú)立,但是對(duì)于用戶不可見(jiàn)。使用局限性小于主表的二級(jí)索引,行的長(zhǎng)度沒(méi)有限制,極端情況可以做成主表的聚集索引[20](clustered index,也稱聚類索引、簇集索引)完全覆蓋主表字段,避免網(wǎng)絡(luò)回表導(dǎo)致的性能衰減。其次,在提供對(duì)數(shù)據(jù)的事務(wù)性訪問(wèn)中,采用動(dòng)態(tài)時(shí)間戳[21]排序方式來(lái)提供可序列化,使得事務(wù)有更高的機(jī)會(huì)邏輯上可序列化的時(shí)間線。

    在傳統(tǒng)的分布式數(shù)據(jù)庫(kù)或者并行數(shù)據(jù)庫(kù)環(huán)境中,一般采用計(jì)算和存儲(chǔ)分離的架構(gòu)設(shè)計(jì),計(jì)算和存儲(chǔ)之間采用以太網(wǎng)連接,但網(wǎng)絡(luò)的傳輸速率遠(yuǎn)低于內(nèi)存訪問(wèn)速率,而隨著RDMA等高速網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)傳輸代價(jià)大幅度降低。此外,隨著非易失性存儲(chǔ)設(shè)備的發(fā)展,將索引放到非易失性存儲(chǔ)中并做索引結(jié)構(gòu)的重新設(shè)計(jì)也成為研究的熱點(diǎn)[22-24]。

    本文基于RDMA的低時(shí)延全局索引設(shè)計(jì)的分布式數(shù)據(jù)庫(kù)系統(tǒng)的總體架構(gòu)如圖1 所示。整體架構(gòu)主要分為四部分,分別為:(1)計(jì)算集群,由1 到N個(gè)計(jì)算節(jié)點(diǎn)(computing node,CN)組成;(2)存儲(chǔ)集群,由1到M個(gè)數(shù)據(jù)節(jié)點(diǎn)(data node,DN)組成;(3)管理集群,核心模塊主要包含全局事務(wù)管理器(global transaction manager,GTM)模塊、元數(shù)據(jù)服務(wù)(meta data service,MDS)模塊以及本文新增的Cluster Cache 和Cluster MQ 模塊;(4)本文新增的全局索引構(gòu)建引擎Index Sinker 模塊,既可以單獨(dú)部署,也可以采用與管理集群合設(shè)的部署方式。

    圖1 支持異步全局索引的分布式數(shù)據(jù)庫(kù)架構(gòu)Fig.1 Distributed database architecture supporting asynchronous global indices

    本文的數(shù)據(jù)庫(kù)架構(gòu)中計(jì)算集群和管理集群之間采用RDMA連接,其余都采用25GE以太網(wǎng)連接。為了構(gòu)建異步低時(shí)延全局索引,新增加的3類節(jié)點(diǎn)的主要功能如下:

    (1)Cluster Cache:集群緩存,用來(lái)存儲(chǔ)主表和索引表的日志的邏輯序列號(hào)(log sequence number,LSN)信息、時(shí)間戳(time stamp,TS)信息,以及Cache 類型的KV索引。

    (2)Cluster MQ:集群消息隊(duì)列,用來(lái)緩存全局索引的數(shù)據(jù),采用appendOnly模式,寫(xiě)入性能遠(yuǎn)高于直接寫(xiě)入DN節(jié)點(diǎn)的B+Tree數(shù)據(jù)結(jié)構(gòu)。

    (3)Index Sinker:全局索引構(gòu)建引擎,消費(fèi)Cluster MQ 的索引信息,以批量方式寫(xiě)入DN 集群,然后向MDS模塊更新該索引的LSN點(diǎn)位信息。

    從應(yīng)用角度看,事務(wù)對(duì)應(yīng)的索引數(shù)據(jù)只要CN節(jié)點(diǎn)通過(guò)RDMA網(wǎng)絡(luò)寫(xiě)入Cluster MQ之后就可以認(rèn)為事務(wù)已經(jīng)提交成功;而Index Sinker 采用異步模式根據(jù)一定規(guī)則把MQ 中的索引數(shù)據(jù)真正寫(xiě)入DN 節(jié)點(diǎn)。本文設(shè)計(jì)的主要目的是為了降低事務(wù)的響應(yīng)時(shí)延和系統(tǒng)負(fù)載。

    本文提出的全局索引總體結(jié)構(gòu)如圖2所示,由Hash(也可以采用列表、取模等方式組織)與B+Tree組成的兩層組成。其中Hash 層用來(lái)進(jìn)行分區(qū)路由,分區(qū)內(nèi)的索引則以B+Tree 的方式進(jìn)行組織。根據(jù)不同的查詢條件,這兩層索引配合的情況可以分成3 種:

    圖2 Hash和B+Tree結(jié)合的雙層全局索引架構(gòu)Fig.2 Hash and B+Tree two-layer global index structure

    第一種情況,查詢語(yǔ)句中攜帶了可以直接路由的主鍵(primary key,PK)值,則如圖2的路徑①所示,先根據(jù)Hash算法,定位到對(duì)應(yīng)的B+Tree索引B2,再在B2中根據(jù)PK定位到具體的索引。

    第二和第三種情況,如果全局索引的列可以覆蓋檢索字段,則如圖2 的路徑②所示,直接從全局索引返回?cái)?shù)據(jù),否則如圖2 的路徑③所示,以主表的Distributed Key 和PK 作為邏輯指針,通過(guò)主表再查詢一次數(shù)據(jù)。

    針對(duì)所有包含全局索引的表,如圖3 所示,在Cluster Cache中會(huì)維持一張Map映射表。CN節(jié)點(diǎn)會(huì)維護(hù)主表的LSN 和TS 信息。Index Sinker 會(huì)維護(hù)全局索引的LSN和TS信息。全局索引TS和主表TS之間差值,表示全局索引相對(duì)于主表落后。同時(shí)CN節(jié)點(diǎn)和Cache 緩存節(jié)點(diǎn)直接的網(wǎng)絡(luò)采用RDMA,利用RDMA API 用戶態(tài)驅(qū)動(dòng)進(jìn)行通訊,避免內(nèi)核中斷,可降低網(wǎng)絡(luò)時(shí)延。針對(duì)Cache數(shù)據(jù)需要落盤(pán)的場(chǎng)景,由于不通過(guò)系統(tǒng)的IO 落盤(pán),以Kernel Bypass 的方式直接寫(xiě)入非易失性內(nèi)存主機(jī)控制器接口規(guī)范(nonvolatile memory express,NVME)硬盤(pán),目的是為了降低磁盤(pán)開(kāi)銷。

    圖3 基于分片表的全局索引組織Fig.3 Global index organization based on sharded tables

    2.1 全局索引讀取算法

    優(yōu)化器在判斷表的元數(shù)據(jù)確認(rèn)含有全局索引情況下,需要加入全局索引的優(yōu)化規(guī)則。例如,全局索引掃描優(yōu)化規(guī)則GlobalIndexScanRule、全局索引連接優(yōu)化規(guī)則GlobalIndexJoinRule。CN節(jié)點(diǎn)在處理查詢語(yǔ)句時(shí),判斷全局索引是否是覆蓋索引。

    如果是覆蓋索引,查詢代價(jià)顯然是低于查詢主表,因此執(zhí)行計(jì)劃是否可以使用全局索引,只需要判斷全局索引數(shù)據(jù)和主表分片數(shù)據(jù)是否一致。在默認(rèn)情況下,需要滿足強(qiáng)一致性,即涉及到的主表分片的LSN=索引表LSN。業(yè)務(wù)SQL 上也可以增加hint 屬性,指定容忍索引數(shù)據(jù)落后多長(zhǎng)時(shí)間閾值范圍內(nèi),可以路由到索引表。

    如果是數(shù)據(jù)符合Cache索引,優(yōu)先查詢Cache,如果Cache 中存在,直接返回客戶端,如果Cache 中不存在,到DN節(jié)點(diǎn)上查詢一次。CN節(jié)點(diǎn)上使用RDMA API和Cluster Cache節(jié)點(diǎn)通訊,降低時(shí)延。

    2.2 全局索引寫(xiě)入算法

    全局索引寫(xiě)入時(shí),Cluster MQ作為索引數(shù)據(jù)寫(xiě)入的緩存管道,典型的先進(jìn)先出(first input first output,F(xiàn)IFO)隊(duì)列。CN節(jié)點(diǎn)負(fù)責(zé)向Cluster MQ寫(xiě)入索引數(shù)據(jù),Index Sinker 節(jié)點(diǎn)負(fù)責(zé)向DN 節(jié)點(diǎn)寫(xiě)入索引數(shù)據(jù)。由CN->Cluster MQ,Cluster MQ->DN,完成索引數(shù)據(jù)的二階段異步寫(xiě)入,支持流控。在全局索引寫(xiě)入過(guò)程中,CN節(jié)點(diǎn)算法如下:

    算法1CN節(jié)點(diǎn)寫(xiě)入數(shù)據(jù)(包含全局索引)

    在用戶事務(wù)的主流程中,不涉及把全局索引的數(shù)據(jù)寫(xiě)入DN 節(jié)點(diǎn)的流程,只需寫(xiě)入主表的數(shù)據(jù)到DN 節(jié)點(diǎn),全局索引數(shù)據(jù)寫(xiě)入MQ 隊(duì)列。同時(shí)在Cluster Cache上推高主表數(shù)據(jù)的LSN點(diǎn)位,SQL優(yōu)化器在執(zhí)行查詢計(jì)劃的時(shí)候是否走全局索引,可以根據(jù)Cluster Cache 上存儲(chǔ)的LSN 點(diǎn)位信息精準(zhǔn)地判斷。LSN 的點(diǎn)位是以主表在每個(gè)DN 上涉及到的分表為key維度,LSN的MAP映射表,實(shí)現(xiàn)了一種無(wú)鎖化的數(shù)據(jù)結(jié)構(gòu),可以在CN節(jié)點(diǎn)上通過(guò)RDMA API以用戶態(tài)的方式高效寫(xiě)入。在全局索引寫(xiě)入過(guò)程中,Index Sinker節(jié)點(diǎn)算法如下:

    算法2MQ上的索引數(shù)據(jù)寫(xiě)入存儲(chǔ)引擎

    判斷MQ 上的剩余數(shù)據(jù)量和DN 的節(jié)點(diǎn)的負(fù)載是否需要進(jìn)行索引數(shù)據(jù)同步。當(dāng)MQ 上的數(shù)據(jù)量過(guò)少并且距離上一次同步時(shí)間小于閾值(比如500 ms)時(shí),跳過(guò)本次同步;同時(shí)如果DN 節(jié)點(diǎn)上的負(fù)載過(guò)大時(shí),也跳過(guò)本次同步,等待DN 節(jié)點(diǎn)的負(fù)載滿足需求時(shí)才進(jìn)行同步。Index Sinker 從offset 點(diǎn)批量讀取Cluster MQ 上的Index 數(shù)據(jù),讀取的數(shù)據(jù)量需要參考DN節(jié)點(diǎn)的負(fù)載,考慮流控的因素(CPU負(fù)載、網(wǎng)絡(luò)流量、BufferPool負(fù)載),以免對(duì)TP的流量產(chǎn)生影響。從MQ 上讀取到的索引數(shù)據(jù),按照路由分組生成batchInsert 的數(shù)據(jù)結(jié)構(gòu),其中需要按索引鍵進(jìn)行排序,可以優(yōu)化B+Tree索引數(shù)據(jù)的寫(xiě)入效率。寫(xiě)入DN節(jié)點(diǎn)成功后,本文利用RDMAAPI向Cluster Cache更新LSN 點(diǎn)位和TS 時(shí)間戳信息,以及MQ topic 的offset信息。

    3 實(shí)驗(yàn)結(jié)果與分析

    3.1 實(shí)驗(yàn)設(shè)計(jì)

    3.1.1 實(shí)驗(yàn)環(huán)境和組網(wǎng)

    本文搭建了基于RDMA 和以太網(wǎng)混合的3 主機(jī)實(shí)驗(yàn)仿真環(huán)境,機(jī)器具體配置和網(wǎng)絡(luò)環(huán)境見(jiàn)表1,3個(gè)節(jié)點(diǎn)上部署的軟件模塊見(jiàn)表2。數(shù)據(jù)為脫敏后的真實(shí)銀行交易數(shù)據(jù)。在實(shí)驗(yàn)對(duì)比中選取了典型的批量導(dǎo)入數(shù)據(jù)和交易場(chǎng)景,并分別與支持全局索引功能的Oracle 和CockroachDB 數(shù)據(jù)庫(kù)進(jìn)行對(duì)比。批量導(dǎo)入數(shù)據(jù)模型為:原表中含有40個(gè)字段,平均每條記錄為4 KB。建立1至3個(gè)全局索引,索引字段個(gè)數(shù)為10個(gè)。通過(guò)控制并發(fā)數(shù)調(diào)整導(dǎo)入的數(shù)據(jù)量,具體為每增加10個(gè)并發(fā),導(dǎo)入的記錄個(gè)數(shù)增加100萬(wàn)條。

    表1 實(shí)驗(yàn)環(huán)境和組網(wǎng)Table 1 Experimental environment and networking

    表2 網(wǎng)元分布Table 2 Network element distribution

    3.1.2 實(shí)驗(yàn)場(chǎng)景設(shè)計(jì)

    實(shí)驗(yàn)的測(cè)試項(xiàng)命名為GAGI(GoldenDB with asynchronous global index)。為了驗(yàn)證GAGI 異步處理架構(gòu)的表現(xiàn),在實(shí)驗(yàn)對(duì)比中選取了典型的批量導(dǎo)入數(shù)據(jù)和交易場(chǎng)景,并分別與支持全局索引功能的Oracle和CockroachDB數(shù)據(jù)庫(kù)進(jìn)行對(duì)比。CockroachDB架構(gòu)和GAGI結(jié)構(gòu)類似,都有CN、DN節(jié)點(diǎn)等,因此實(shí)驗(yàn)涉及不同節(jié)點(diǎn)類型對(duì)比時(shí),以CockroachDB 為主;Oracle 是單節(jié)點(diǎn)類型,涉及整體性能對(duì)比時(shí),以O(shè)racle數(shù)據(jù)庫(kù)為主;其他情況則同時(shí)和這兩者對(duì)比。

    批量導(dǎo)入數(shù)據(jù)模型為:原表中含有40個(gè)字段,平均每條記錄為4 KB。建立1至3個(gè)全局索引,索引字段個(gè)數(shù)為10 個(gè)。通過(guò)控制并發(fā)數(shù)調(diào)整導(dǎo)入的數(shù)據(jù)量,具體為每增加10 個(gè)并發(fā),導(dǎo)入的記錄個(gè)數(shù)增加100萬(wàn)條。

    交易場(chǎng)景為:金融行業(yè)使用頻率很高的快捷支付業(yè)務(wù)。如圖4 所示的模型簡(jiǎn)要描述了該業(yè)務(wù)中查詢與插入全局索引表的操作,對(duì)私業(yè)務(wù)往往插入數(shù)據(jù)量隨機(jī)且有限,更加追求查詢和插入的性能。

    圖4 金融快速支付交易場(chǎng)景Fig.4 Financial fast payment transaction scenario

    本文實(shí)驗(yàn)所用的數(shù)據(jù)都來(lái)自國(guó)有大型商業(yè)銀行的真實(shí)環(huán)境,部分字段進(jìn)行了脫敏處理。下述的關(guān)系代數(shù)描述了此類交易對(duì)應(yīng)的事務(wù)模型,金額檔表TBSPAMT0(字段數(shù)>100 個(gè),單條記錄>30 KB)是此交易事務(wù)的主要業(yè)務(wù)表,對(duì)該表的查詢操作單條記錄的數(shù)據(jù)量都在10 KB以上,最后的批量插入對(duì)私明細(xì)表TBSPTXN0操作的數(shù)據(jù)量在100 KB以上。

    (1)查詢扣款

    (2)查詢準(zhǔn)貸記卡

    (3)查詢補(bǔ)款賬號(hào)

    (4)查詢內(nèi)部賬號(hào)

    由于金融交易場(chǎng)景的高并發(fā)需求,上述操作性能不能出現(xiàn)大幅下降,在TBSPTXN0 表上建立了全局唯一索引。為了驗(yàn)證GAGI異步處理架構(gòu)的表現(xiàn),實(shí)驗(yàn)重點(diǎn)對(duì)比了目前業(yè)界內(nèi)采取的同步處理全局索引表和二級(jí)索引子表。CockroachDB 架構(gòu)和GAGI結(jié)構(gòu)類似,都有CN、DN 節(jié)點(diǎn)等,因此實(shí)驗(yàn)對(duì)比涉及不同節(jié)點(diǎn)類型對(duì)比時(shí),以CockroachDB 為主;Oracle是單節(jié)點(diǎn)類型,涉及整體性能對(duì)比時(shí),以O(shè)racle 數(shù)據(jù)庫(kù)為主,對(duì)比前兩者都做了相應(yīng)性能調(diào)優(yōu)。

    3.2 實(shí)驗(yàn)結(jié)果分析

    Index Sinker模塊和異步機(jī)制的引入,使得GAGI在處理全局索引表的數(shù)據(jù)插入時(shí)能夠根據(jù)業(yè)務(wù)流量調(diào)節(jié)負(fù)載壓力。當(dāng)數(shù)據(jù)導(dǎo)入全局索引表主表引起網(wǎng)絡(luò)、磁盤(pán)和CPU等壓力超過(guò)一定范圍時(shí),Index Sinker能夠通過(guò)感知DN節(jié)點(diǎn)側(cè)的流量,放慢或者暫停消費(fèi)Cluster MQ端的消息的消費(fèi),從而達(dá)到提高業(yè)務(wù)承載能力的目的。

    在實(shí)際金融場(chǎng)景中,高并發(fā)的數(shù)據(jù)導(dǎo)入和讀取全局索引表通常是錯(cuò)開(kāi)的,因此二級(jí)索引表的更新延時(shí)在一定區(qū)間內(nèi)是可以接受的。為了對(duì)比引入Index Sinker 等模塊后帶來(lái)的性能改變,本文建立了3.1.2小節(jié)中描述的兩種業(yè)務(wù)模型。第一種是為了模擬高并發(fā)情況下對(duì)多表導(dǎo)入數(shù)據(jù),以求獲得觸摸到服務(wù)器性能瓶頸的情況下兩種方案的表現(xiàn);第二種是模擬日常交易場(chǎng)景中的隨機(jī)讀寫(xiě),確認(rèn)新方案的引入對(duì)單表隨機(jī)讀寫(xiě)的性能提升。本文通過(guò)調(diào)整并發(fā)度和全局索引的數(shù)目,驗(yàn)證在新方案的改造下Index Sinker 的流控能力對(duì)GAGI 整體負(fù)載的保護(hù)和疏導(dǎo)能力。

    3.2.1 批量導(dǎo)入數(shù)據(jù)性能提升結(jié)果分析

    批量導(dǎo)入數(shù)據(jù)場(chǎng)景具備如下特征,即單次導(dǎo)入的數(shù)據(jù)大多分布在相同DN節(jié)點(diǎn),單條記錄的數(shù)據(jù)大小幾乎相同,并且受其他業(yè)務(wù)干擾可以忽略不計(jì)。針對(duì)此類業(yè)務(wù)模型,本文所提出的方案參考了Index Sinker 的流控能力,使得其性能優(yōu)勢(shì)較為明顯。同時(shí),由于二級(jí)索引表分布規(guī)則的限制(通過(guò)哈希等分布規(guī)則來(lái)平均各DN 節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)量),同步架構(gòu)下全局索引表原表和二級(jí)索引表的插入通常情況下是分布式的,需要額外封裝分布式事務(wù)來(lái)保證數(shù)據(jù)的一致性。而將原表和二級(jí)索引表的數(shù)據(jù)導(dǎo)入分離開(kāi)后,原表數(shù)據(jù)分布在相同DN節(jié)點(diǎn)的分布式事務(wù)會(huì)退化成單機(jī)事務(wù),減少了CN節(jié)點(diǎn)對(duì)分布式事務(wù)的控制處理、CN節(jié)點(diǎn)和DN節(jié)點(diǎn)的語(yǔ)句交互和DN節(jié)點(diǎn)刷臟處理等步驟,能夠進(jìn)一步提升數(shù)據(jù)導(dǎo)入的處理速度。

    如圖5、圖6所示,通過(guò)對(duì)比兩種方案下的每秒事務(wù)數(shù)(transaction per second,TPS)和事務(wù)執(zhí)行平均耗時(shí)能夠發(fā)現(xiàn),異步處理全局索引表方案下分布式數(shù)據(jù)庫(kù)導(dǎo)入全局索引表的性能有了明顯的提升(圖5(b)和圖6(a),取表中帶有一個(gè)全局唯一索引的場(chǎng)景)。針對(duì)Index Sinker的流控作用和異步處理方式下取消了分布式事務(wù)的封裝兩個(gè)優(yōu)化點(diǎn),圖5(a)(取10~60并發(fā)度下各數(shù)據(jù)庫(kù)的最高TPS進(jìn)行對(duì)比)中GAGI給出了明顯高于其他兩個(gè)產(chǎn)品的TPS,且其優(yōu)勢(shì)在增加全局索引個(gè)數(shù)后更加明顯。

    圖5 全局索引個(gè)數(shù)和并發(fā)度對(duì)TPS的影響Fig.5 Influence of global index number and concurrency on TPS

    圖6 不同數(shù)據(jù)庫(kù)的全局索引性能對(duì)比Fig.6 Performance comparison of global indices in different databases

    在擴(kuò)大全局索引的數(shù)目,即在數(shù)據(jù)庫(kù)內(nèi)部增加二級(jí)索引表的個(gè)數(shù)之后,在此測(cè)試場(chǎng)景下同步處理方式對(duì)CN 節(jié)點(diǎn)和DN 節(jié)點(diǎn)效率的負(fù)面影響更為明顯。全局索引個(gè)數(shù)達(dá)到兩個(gè)時(shí),同步方案很快便觸及性能瓶頸(圖6(a),CockroachDB數(shù)據(jù)庫(kù),單個(gè)全局索引的場(chǎng)景),對(duì)高并發(fā)的處理能力減弱,進(jìn)而導(dǎo)致TPS的回落。對(duì)于Oracle和CockroachDB來(lái)說(shuō),增加全局索引的個(gè)數(shù)不只是增加CN 節(jié)點(diǎn)整理和分發(fā)數(shù)據(jù)的壓力,更是帶來(lái)了導(dǎo)入DN 節(jié)點(diǎn)的數(shù)據(jù)量的增加。而新的處理架構(gòu)在全局索引數(shù)目達(dá)到3 個(gè)且并發(fā)較大時(shí)才觸及性能瓶頸,如圖6(b)所示。

    通過(guò)監(jiān)控服務(wù)器上的CPU 使用率(N核CPU,則最大利用率為N×100%,本文實(shí)驗(yàn)機(jī)器為64 核,因此最大利用率為6 400%,下同)和IO使用率可以看出,高并發(fā)多表導(dǎo)入場(chǎng)景下DN 節(jié)點(diǎn)接收端會(huì)出現(xiàn)長(zhǎng)時(shí)間的網(wǎng)絡(luò)峰值,其寫(xiě)入磁盤(pán)的效率會(huì)在磁盤(pán)寫(xiě)入性能達(dá)到極限后迅速回落。此時(shí)CN 節(jié)點(diǎn)需等待接收DN 節(jié)點(diǎn)的處理結(jié)果,并進(jìn)行進(jìn)一步整合和計(jì)算,導(dǎo)致CN節(jié)點(diǎn)的CPU消耗增加,影響了其處理客戶端請(qǐng)求和向CN節(jié)點(diǎn)加大導(dǎo)入壓力的能力,同步處理模式下CN節(jié)點(diǎn)的CPU使用率低于GAGI,如圖7(a)所示。

    圖7 GAGI對(duì)資源的占用情況Fig.7 Occupancy of resources of GAGI

    如圖7所示,通過(guò)(a)~(d)的對(duì)比,展示了異步處理架構(gòu)下GAGI內(nèi)部控制流量壓力的能力。CN節(jié)點(diǎn)的CPU 占用穩(wěn)定為0 代表著客戶端的業(yè)務(wù)壓力(30并發(fā)度)已經(jīng)結(jié)束,而該時(shí)間點(diǎn)后,在GAGI 的DN 節(jié)點(diǎn)的CPU 占用仍然存在且穩(wěn)定在一定的水平(圖7(a)、圖7(b))。相對(duì)應(yīng)的,磁盤(pán)的IO使用率在同步處理架構(gòu)下快速?zèng)_高和回落,而GAGI能夠在前端業(yè)務(wù)結(jié)束后仍然保持在較高的水平(圖7(c))。以上兩點(diǎn)充分說(shuō)明GAGI 的異步處理方式能夠?qū)⑶岸藰I(yè)務(wù)壓力轉(zhuǎn)移到Index Sinker 后,由Index Sinker 根據(jù)DN 節(jié)點(diǎn)的壓力均勻地、異步地向其導(dǎo)入二級(jí)索引子表的數(shù)據(jù)。根據(jù)磁盤(pán)寫(xiě)入等待時(shí)間的對(duì)比能夠看出(圖7(d)),同步處理架構(gòu)下數(shù)據(jù)庫(kù)在集中導(dǎo)入數(shù)據(jù)期間IO壓力過(guò)大導(dǎo)致寫(xiě)入等待時(shí)間過(guò)長(zhǎng)(約20 s),過(guò)度地占用資源反而會(huì)導(dǎo)致執(zhí)行效率的下降和嚴(yán)重影響其他并行的業(yè)務(wù)。而在新引入的異步處理架構(gòu)下DN節(jié)點(diǎn)的IO、CPU 和網(wǎng)卡等壓力不會(huì)在前端集中導(dǎo)入數(shù)據(jù)期間短時(shí)間內(nèi)過(guò)載,在Index Sinker合理分配DN節(jié)點(diǎn)的壓力后,GAGI不但提升了集中導(dǎo)入數(shù)據(jù)的效率,還能最大限度降低對(duì)并行業(yè)務(wù)的影響。

    3.2.2 交易型場(chǎng)景性能提升結(jié)果分析

    日常單表隨機(jī)讀寫(xiě)測(cè)試更注重讀寫(xiě)并行化,以模擬金融業(yè)務(wù)中并發(fā)交易的場(chǎng)景。其中3.2.1小節(jié)中描述的分布式事務(wù)優(yōu)化為單機(jī)事務(wù)的改進(jìn)點(diǎn)同樣適用于此模型。在此類測(cè)試架構(gòu)下,對(duì)于插入語(yǔ)句,優(yōu)化點(diǎn)在于二級(jí)索引表與原表的數(shù)據(jù)導(dǎo)入分離開(kāi)來(lái)異步執(zhí)行,以及分布式事務(wù)退化為單機(jī)插入的處理;對(duì)于查詢語(yǔ)句,在二級(jí)索引表數(shù)據(jù)與全局索引表原表數(shù)據(jù)的導(dǎo)入時(shí)延處于較低的水平時(shí),能夠通過(guò)精確化查詢策略、查詢二級(jí)索引表的方式保證處理效率。圖8(c)(單個(gè)全局索引情景)能夠充分證明優(yōu)化后的事務(wù)時(shí)延有了明顯的下降。

    圖8 不同數(shù)據(jù)庫(kù)的全局索引對(duì)比測(cè)試Fig.8 Global index comparison test of different databases

    引入Index Sinker和Cluster Cache組件后,GAGI處理涉及全局索引表的讀語(yǔ)句需要和Cluster Cache交互,獲取該表的當(dāng)前狀態(tài)從而確定查詢策略。在二級(jí)索引表導(dǎo)入時(shí)延較低的情況下,子表數(shù)據(jù)很快追上主表,從而推動(dòng)CN 節(jié)點(diǎn)下發(fā)到DN 節(jié)點(diǎn)的查詢語(yǔ)句能夠包含索引字段,大大提升查詢速度;同時(shí)CN 節(jié)點(diǎn)能夠?qū)⒎植际讲樵兎植荚诙郉N 節(jié)點(diǎn)的原表,簡(jiǎn)化為目的性更強(qiáng)的從確定DN節(jié)點(diǎn)撈取二級(jí)索引表的查詢策略,上述兩點(diǎn)優(yōu)化能夠彌補(bǔ)CN節(jié)點(diǎn)與Cluster Cache交互帶來(lái)的損耗,甚至能夠通過(guò)數(shù)據(jù)導(dǎo)入帶來(lái)的性能提升來(lái)推動(dòng)整體讀寫(xiě)操作的更優(yōu)表現(xiàn)(圖8(a),單個(gè)全局索引情景下的TPS對(duì)比)。

    如圖8(b)所示,全局索引數(shù)目增大的情況下取10~60并發(fā)度下的最高TPS進(jìn)行對(duì)比,異步處理方案較之原有方案愈加懸殊的優(yōu)異表現(xiàn)能夠充分論證寫(xiě)操作的性能提升對(duì)整體讀寫(xiě)操作的影響。同時(shí)異步處理方案中CN 節(jié)點(diǎn)與Cluster Cache 的額外交互和二級(jí)索引表數(shù)據(jù)導(dǎo)入的時(shí)延,在可控范圍內(nèi)對(duì)業(yè)務(wù)模型沒(méi)有帶來(lái)明顯的沖擊。

    相較于批量導(dǎo)入數(shù)據(jù)的測(cè)試模型,此交易模型下插入語(yǔ)句相對(duì)降低,且導(dǎo)入的數(shù)據(jù)量較小。如圖9所示,能夠看出在異步處理架構(gòu)下,客戶端業(yè)務(wù)停止后僅有小幅度的DN節(jié)點(diǎn)上的CPU占用,耗時(shí)相較于批量導(dǎo)入數(shù)據(jù)模型也更短。在導(dǎo)入數(shù)據(jù)語(yǔ)句更少、數(shù)據(jù)量更小的情況下GAGI 的異步處理架構(gòu)仍能夠帶來(lái)非常明顯的性能提升,也論證了此架構(gòu)下對(duì)于查詢語(yǔ)句的優(yōu)化效果。

    圖9 GAGI和CockroachDB的關(guān)鍵節(jié)點(diǎn)CPU占用Fig.9 CPU usage of key nodes of GAGI and CockroachDB

    4 結(jié)束語(yǔ)

    針對(duì)傳統(tǒng)的基于同步機(jī)制和以太網(wǎng)絡(luò)實(shí)現(xiàn)的全局索引方案,在金融核心業(yè)務(wù)典型的交易和批量導(dǎo)入數(shù)據(jù)場(chǎng)景下單表索引數(shù)量少、吞吐量降低、寫(xiě)入事務(wù)時(shí)延加大等問(wèn)題,本文提出了改進(jìn)的分布式數(shù)據(jù)庫(kù)中全局索引方法,將RDMA網(wǎng)絡(luò)引入CN和Cluster MQ 之間的通訊,以此顯著降低時(shí)延,將全局索引的實(shí)現(xiàn)方式修改成基于appendOnly的異步緩存隊(duì)列方式,通過(guò)對(duì)實(shí)驗(yàn)測(cè)試數(shù)據(jù)的對(duì)比和分析,在同樣場(chǎng)景下比現(xiàn)有方法性能顯著提升,且對(duì)系統(tǒng)資源的峰值需求明顯降低。本文工作可以有效地提升分布式數(shù)據(jù)庫(kù)全局索引的可用性,有力促進(jìn)對(duì)現(xiàn)有傳統(tǒng)集中式數(shù)據(jù)庫(kù)的升級(jí)和替代進(jìn)程,支撐銀行金融業(yè)務(wù)的高質(zhì)量發(fā)展。

    未來(lái),計(jì)劃在全局索引緩存隊(duì)列中進(jìn)一步修改ElasticSearch 等組件,這樣可以更好支持全文索引,而且可以應(yīng)用于金融數(shù)據(jù)管理之外更廣闊的應(yīng)用領(lǐng)域。

    猜你喜歡
    事務(wù)全局分布式
    “事物”與“事務(wù)”
    基于分布式事務(wù)的門(mén)架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
    Cahn-Hilliard-Brinkman系統(tǒng)的全局吸引子
    量子Navier-Stokes方程弱解的全局存在性
    河湖事務(wù)
    落子山東,意在全局
    金橋(2018年4期)2018-09-26 02:24:54
    分布式光伏熱錢(qián)洶涌
    能源(2017年10期)2017-12-20 05:54:07
    分布式光伏:爆發(fā)還是徘徊
    能源(2017年5期)2017-07-06 09:25:54
    基于DDS的分布式三維協(xié)同仿真研究
    新思路:牽一發(fā)動(dòng)全局
    日本av手机在线免费观看| 亚洲第一av免费看| 免费在线观看完整版高清| 欧美精品一区二区大全| 亚洲成国产人片在线观看| 高潮久久久久久久久久久不卡| 热99国产精品久久久久久7| 欧美成人精品欧美一级黄| 亚洲视频免费观看视频| 色精品久久人妻99蜜桃| 国产精品一区二区在线不卡| 在线 av 中文字幕| 亚洲欧美色中文字幕在线| 人人妻人人澡人人爽人人夜夜| 18在线观看网站| 国产精品三级大全| 亚洲专区国产一区二区| 宅男免费午夜| 制服诱惑二区| 精品第一国产精品| 婷婷成人精品国产| 看免费成人av毛片| 亚洲欧美成人综合另类久久久| 日本av手机在线免费观看| 亚洲精品在线美女| 欧美日本中文国产一区发布| 久久九九热精品免费| 欧美精品av麻豆av| 日韩中文字幕欧美一区二区 | 国产亚洲午夜精品一区二区久久| 水蜜桃什么品种好| 少妇被粗大的猛进出69影院| 日韩av在线免费看完整版不卡| 婷婷丁香在线五月| 欧美性长视频在线观看| 久久狼人影院| 麻豆av在线久日| 国产男女内射视频| 99热全是精品| 亚洲久久久国产精品| 免费人妻精品一区二区三区视频| 免费在线观看日本一区| 国产深夜福利视频在线观看| 欧美日韩亚洲综合一区二区三区_| 精品一区二区三区四区五区乱码 | 1024香蕉在线观看| 国产一区二区三区av在线| 丰满迷人的少妇在线观看| 又紧又爽又黄一区二区| 在线精品无人区一区二区三| 视频区图区小说| 国产成人免费无遮挡视频| 欧美 日韩 精品 国产| 久久精品国产亚洲av涩爱| 制服诱惑二区| 9191精品国产免费久久| 丁香六月天网| 欧美精品人与动牲交sv欧美| 美女扒开内裤让男人捅视频| 99热全是精品| www.av在线官网国产| 久9热在线精品视频| 校园人妻丝袜中文字幕| 亚洲图色成人| 51午夜福利影视在线观看| 爱豆传媒免费全集在线观看| 午夜激情av网站| 在线观看免费视频网站a站| 日韩人妻精品一区2区三区| www.精华液| 欧美日韩精品网址| 中文字幕人妻丝袜一区二区| 久久久精品国产亚洲av高清涩受| 亚洲欧美一区二区三区久久| 巨乳人妻的诱惑在线观看| 51午夜福利影视在线观看| 成人三级做爰电影| 国产精品一二三区在线看| 久久av网站| 两性夫妻黄色片| 天堂8中文在线网| 亚洲精品中文字幕在线视频| 美女脱内裤让男人舔精品视频| 十分钟在线观看高清视频www| 我要看黄色一级片免费的| 国产日韩欧美在线精品| 免费看十八禁软件| 日日摸夜夜添夜夜爱| 欧美+亚洲+日韩+国产| 黑丝袜美女国产一区| av片东京热男人的天堂| 9色porny在线观看| 在线 av 中文字幕| 777久久人妻少妇嫩草av网站| 老司机影院成人| 午夜激情av网站| 久久精品国产a三级三级三级| 日韩精品免费视频一区二区三区| 尾随美女入室| 看免费成人av毛片| cao死你这个sao货| 久久九九热精品免费| 波多野结衣一区麻豆| 最新在线观看一区二区三区 | 亚洲熟女毛片儿| 在线亚洲精品国产二区图片欧美| 91字幕亚洲| 成年动漫av网址| 久久精品国产亚洲av涩爱| 大香蕉久久成人网| 亚洲av片天天在线观看| 久久久精品免费免费高清| 免费看十八禁软件| 中文字幕高清在线视频| 亚洲精品久久成人aⅴ小说| 十八禁人妻一区二区| 精品一区二区三区av网在线观看 | 国产av国产精品国产| 亚洲av成人不卡在线观看播放网 | 久久久久久亚洲精品国产蜜桃av| 欧美精品av麻豆av| 妹子高潮喷水视频| 国产有黄有色有爽视频| 国产男女内射视频| 999久久久国产精品视频| 人体艺术视频欧美日本| 91麻豆av在线| 欧美 日韩 精品 国产| 免费高清在线观看日韩| svipshipincom国产片| 国产亚洲一区二区精品| 久久中文字幕一级| 在线观看国产h片| 欧美日韩亚洲高清精品| 成在线人永久免费视频| 国产高清国产精品国产三级| 亚洲精品一区蜜桃| 最新的欧美精品一区二区| 免费在线观看日本一区| 国产日韩欧美在线精品| 欧美日韩一级在线毛片| 美女国产高潮福利片在线看| 成年人免费黄色播放视频| 菩萨蛮人人尽说江南好唐韦庄| 又黄又粗又硬又大视频| 宅男免费午夜| 国产成人欧美在线观看 | 少妇人妻 视频| 高清欧美精品videossex| 精品人妻在线不人妻| 欧美精品一区二区免费开放| 国产精品久久久久成人av| 80岁老熟妇乱子伦牲交| 国产麻豆69| 国产老妇伦熟女老妇高清| 1024香蕉在线观看| 中文字幕色久视频| 亚洲欧美激情在线| 久久人妻福利社区极品人妻图片 | 国产欧美亚洲国产| 2018国产大陆天天弄谢| 欧美日韩亚洲高清精品| 性色av乱码一区二区三区2| 国产视频首页在线观看| 亚洲成人免费av在线播放| 亚洲国产欧美一区二区综合| 中文字幕av电影在线播放| 一个人免费看片子| 成年人黄色毛片网站| 精品久久久精品久久久| 99国产精品免费福利视频| 两人在一起打扑克的视频| a 毛片基地| 久久精品国产亚洲av涩爱| 成人国产av品久久久| 国产一区二区 视频在线| av线在线观看网站| 久久99精品国语久久久| 欧美性长视频在线观看| 日韩熟女老妇一区二区性免费视频| 国产男人的电影天堂91| 自线自在国产av| 在线看a的网站| 国产一区二区 视频在线| 十八禁高潮呻吟视频| 一级片免费观看大全| 日日夜夜操网爽| 国产又爽黄色视频| 18禁黄网站禁片午夜丰满| 成年人午夜在线观看视频| 十八禁网站网址无遮挡| www.精华液| 18禁观看日本| 免费高清在线观看视频在线观看| 我要看黄色一级片免费的| 亚洲男人天堂网一区| 色婷婷av一区二区三区视频| 久久久精品区二区三区| 欧美日韩亚洲综合一区二区三区_| 成人影院久久| 免费少妇av软件| 中文欧美无线码| 美国免费a级毛片| 亚洲视频免费观看视频| 国产男人的电影天堂91| 人人妻,人人澡人人爽秒播 | 欧美日韩av久久| 黄色视频不卡| 成人影院久久| avwww免费| 99香蕉大伊视频| 手机成人av网站| 五月开心婷婷网| 欧美国产精品一级二级三级| 少妇精品久久久久久久| 亚洲熟女精品中文字幕| 一边摸一边抽搐一进一出视频| 中文字幕人妻丝袜一区二区| 丰满人妻熟妇乱又伦精品不卡| 欧美+亚洲+日韩+国产| 中国美女看黄片| 热re99久久国产66热| 另类亚洲欧美激情| 91麻豆av在线| 涩涩av久久男人的天堂| 91国产中文字幕| 我要看黄色一级片免费的| 精品少妇黑人巨大在线播放| 男女高潮啪啪啪动态图| 搡老岳熟女国产| 日韩伦理黄色片| 久热爱精品视频在线9| 国产亚洲欧美在线一区二区| 视频区图区小说| 中文字幕av电影在线播放| 亚洲欧美日韩另类电影网站| 国产午夜精品一二区理论片| 99国产精品一区二区蜜桃av | 欧美日韩视频高清一区二区三区二| 国产老妇伦熟女老妇高清| 中文字幕制服av| 亚洲,欧美精品.| 一级片免费观看大全| 亚洲国产精品一区三区| 中文字幕精品免费在线观看视频| 好男人电影高清在线观看| 人人妻人人爽人人添夜夜欢视频| 大香蕉久久成人网| 在线 av 中文字幕| 欧美激情高清一区二区三区| av国产精品久久久久影院| 精品视频人人做人人爽| 日韩中文字幕视频在线看片| 午夜免费成人在线视频| 十八禁人妻一区二区| 日本欧美国产在线视频| 国产男女超爽视频在线观看| 亚洲精品av麻豆狂野| 久久久精品免费免费高清| 国产成人免费观看mmmm| 狠狠精品人妻久久久久久综合| 1024视频免费在线观看| 国产片特级美女逼逼视频| 国产精品一区二区在线观看99| 成人18禁高潮啪啪吃奶动态图| 欧美精品高潮呻吟av久久| 亚洲人成电影免费在线| 国产精品久久久久久精品古装| 最近最新中文字幕大全免费视频 | 国产成人精品久久二区二区91| 美女午夜性视频免费| 嫁个100分男人电影在线观看 | 成年人黄色毛片网站| 下体分泌物呈黄色| 51午夜福利影视在线观看| 91精品伊人久久大香线蕉| 亚洲视频免费观看视频| 免费av中文字幕在线| 国产亚洲av片在线观看秒播厂| 欧美精品一区二区免费开放| 亚洲中文字幕日韩| 男女边摸边吃奶| 夜夜骑夜夜射夜夜干| 精品人妻熟女毛片av久久网站| √禁漫天堂资源中文www| 日本91视频免费播放| 日本一区二区免费在线视频| 老汉色∧v一级毛片| 天天躁夜夜躁狠狠久久av| 又黄又粗又硬又大视频| 久久人妻福利社区极品人妻图片 | 亚洲欧美一区二区三区黑人| 一级毛片女人18水好多 | 精品少妇内射三级| 看十八女毛片水多多多| 日日摸夜夜添夜夜爱| 免费在线观看完整版高清| 国产精品三级大全| 午夜免费观看性视频| 一本—道久久a久久精品蜜桃钙片| 国产欧美日韩一区二区三区在线| 国产黄色免费在线视频| 亚洲欧美一区二区三区国产| 中文字幕人妻丝袜制服| 天天躁日日躁夜夜躁夜夜| 国产欧美亚洲国产| 啦啦啦在线免费观看视频4| 亚洲男人天堂网一区| 精品一区在线观看国产| 久久久欧美国产精品| 亚洲国产欧美在线一区| 国产日韩欧美在线精品| 91麻豆av在线| 亚洲国产看品久久| 国产亚洲欧美精品永久| 免费少妇av软件| 亚洲免费av在线视频| 三上悠亚av全集在线观看| 成年人黄色毛片网站| 麻豆乱淫一区二区| 只有这里有精品99| 在线观看www视频免费| 免费看十八禁软件| 国产日韩欧美视频二区| 欧美日韩成人在线一区二区| 侵犯人妻中文字幕一二三四区| 大型av网站在线播放| 最近手机中文字幕大全| 夫妻性生交免费视频一级片| 咕卡用的链子| 丝袜美腿诱惑在线| 91九色精品人成在线观看| 90打野战视频偷拍视频| 热re99久久国产66热| 大香蕉久久网| 丝袜美足系列| 精品久久久久久久毛片微露脸 | 美女国产高潮福利片在线看| 亚洲av欧美aⅴ国产| 2021少妇久久久久久久久久久| 日韩熟女老妇一区二区性免费视频| 中文字幕色久视频| 久久久久国产一级毛片高清牌| 菩萨蛮人人尽说江南好唐韦庄| 成人18禁高潮啪啪吃奶动态图| 亚洲精品成人av观看孕妇| 精品少妇黑人巨大在线播放| 亚洲欧美成人综合另类久久久| 精品久久久精品久久久| 热99久久久久精品小说推荐| 国产精品秋霞免费鲁丝片| a级毛片黄视频| 国产欧美亚洲国产| 大码成人一级视频| 999精品在线视频| 亚洲国产精品一区二区三区在线| 91老司机精品| 免费黄频网站在线观看国产| 嫁个100分男人电影在线观看 | 宅男免费午夜| 国产97色在线日韩免费| 国产视频一区二区在线看| 欧美日韩综合久久久久久| av天堂久久9| 在线观看人妻少妇| 这个男人来自地球电影免费观看| 狂野欧美激情性bbbbbb| 十八禁人妻一区二区| 水蜜桃什么品种好| 欧美日韩成人在线一区二区| 欧美亚洲日本最大视频资源| 女警被强在线播放| 亚洲伊人色综图| e午夜精品久久久久久久| 亚洲精品一区蜜桃| 成年女人毛片免费观看观看9 | 操美女的视频在线观看| 天天影视国产精品| 亚洲国产中文字幕在线视频| 宅男免费午夜| 国产99久久九九免费精品| 亚洲国产日韩一区二区| 91精品伊人久久大香线蕉| 国产精品一区二区在线观看99| 好男人视频免费观看在线| 亚洲人成77777在线视频| 亚洲国产欧美网| 99国产综合亚洲精品| 精品少妇内射三级| 成年美女黄网站色视频大全免费| 高清欧美精品videossex| 久久精品国产亚洲av高清一级| 国产老妇伦熟女老妇高清| 欧美精品人与动牲交sv欧美| 国产日韩欧美视频二区| 99香蕉大伊视频| 欧美亚洲日本最大视频资源| 永久免费av网站大全| 国产亚洲午夜精品一区二区久久| 亚洲五月婷婷丁香| 大片免费播放器 马上看| 欧美97在线视频| 国产成人精品久久久久久| 日日爽夜夜爽网站| 两个人免费观看高清视频| 桃花免费在线播放| 飞空精品影院首页| 亚洲激情五月婷婷啪啪| 久久精品国产综合久久久| 午夜福利,免费看| 啦啦啦在线观看免费高清www| 国产在线一区二区三区精| 国产一区二区三区av在线| 国产精品一区二区精品视频观看| 亚洲九九香蕉| 国产免费视频播放在线视频| 男女床上黄色一级片免费看| 久久久久国产一级毛片高清牌| 欧美av亚洲av综合av国产av| 夫妻午夜视频| 亚洲av美国av| 热re99久久国产66热| 欧美激情高清一区二区三区| 国产精品99久久99久久久不卡| 免费看十八禁软件| 少妇粗大呻吟视频| 七月丁香在线播放| 日韩视频在线欧美| 国产高清国产精品国产三级| 九草在线视频观看| 人妻人人澡人人爽人人| 欧美精品人与动牲交sv欧美| 国产无遮挡羞羞视频在线观看| 精品国产乱码久久久久久小说| 人人妻,人人澡人人爽秒播 | 侵犯人妻中文字幕一二三四区| 亚洲美女黄色视频免费看| 午夜视频精品福利| 18禁裸乳无遮挡动漫免费视频| 日韩精品免费视频一区二区三区| 久久人人爽av亚洲精品天堂| 久久精品人人爽人人爽视色| 一级毛片我不卡| 国产成人精品久久二区二区91| 精品少妇一区二区三区视频日本电影| 欧美日韩一级在线毛片| 欧美精品高潮呻吟av久久| 国产精品 欧美亚洲| 日韩精品免费视频一区二区三区| 欧美少妇被猛烈插入视频| 两个人免费观看高清视频| 精品一区二区三区av网在线观看 | av在线app专区| 自拍欧美九色日韩亚洲蝌蚪91| 国产av一区二区精品久久| 精品第一国产精品| 午夜福利在线免费观看网站| 一边摸一边抽搐一进一出视频| 亚洲五月婷婷丁香| 日本五十路高清| xxx大片免费视频| 国产不卡av网站在线观看| 精品少妇久久久久久888优播| 国产高清不卡午夜福利| 丝袜脚勾引网站| 亚洲五月婷婷丁香| 日本五十路高清| 亚洲国产中文字幕在线视频| 国产在线视频一区二区| 一级毛片我不卡| 久久久久久久久久久久大奶| 飞空精品影院首页| 国产精品人妻久久久影院| 午夜免费男女啪啪视频观看| 少妇猛男粗大的猛烈进出视频| 欧美xxⅹ黑人| 亚洲精品在线美女| 国产97色在线日韩免费| 国产不卡av网站在线观看| 国产免费视频播放在线视频| 国产女主播在线喷水免费视频网站| 亚洲中文字幕日韩| 日本vs欧美在线观看视频| 国产精品香港三级国产av潘金莲 | 大陆偷拍与自拍| a 毛片基地| 免费观看a级毛片全部| 午夜福利视频在线观看免费| 伦理电影免费视频| 人人妻人人澡人人爽人人夜夜| a级毛片黄视频| 后天国语完整版免费观看| 女人高潮潮喷娇喘18禁视频| 伦理电影免费视频| 久久女婷五月综合色啪小说| 水蜜桃什么品种好| 女警被强在线播放| h视频一区二区三区| 欧美日韩视频高清一区二区三区二| 成人亚洲欧美一区二区av| 九色亚洲精品在线播放| 国产国语露脸激情在线看| 国产成人系列免费观看| 国产日韩一区二区三区精品不卡| 国产av精品麻豆| 日韩 亚洲 欧美在线| 免费在线观看黄色视频的| 精品国产一区二区三区四区第35| 看免费av毛片| 国产成人精品久久二区二区91| 婷婷色av中文字幕| 狂野欧美激情性xxxx| 国产91精品成人一区二区三区 | av国产精品久久久久影院| 性色av乱码一区二区三区2| 久久精品久久久久久久性| 女人精品久久久久毛片| 亚洲视频免费观看视频| 丰满少妇做爰视频| 欧美日韩成人在线一区二区| 91成人精品电影| 狂野欧美激情性xxxx| 国产免费又黄又爽又色| 国产熟女欧美一区二区| 少妇的丰满在线观看| 中文字幕制服av| 后天国语完整版免费观看| 黄色 视频免费看| 免费人妻精品一区二区三区视频| 亚洲成人免费电影在线观看 | 老司机在亚洲福利影院| 亚洲黑人精品在线| 黄色视频在线播放观看不卡| 99国产精品一区二区蜜桃av | 美女中出高潮动态图| 国产精品三级大全| 波多野结衣av一区二区av| 国产97色在线日韩免费| av在线老鸭窝| 一级片'在线观看视频| 日韩电影二区| 伦理电影免费视频| 欧美黄色片欧美黄色片| xxxhd国产人妻xxx| 久久精品人人爽人人爽视色| 一区二区三区乱码不卡18| 满18在线观看网站| 久热爱精品视频在线9| 国产精品偷伦视频观看了| 飞空精品影院首页| 国产精品秋霞免费鲁丝片| 波多野结衣av一区二区av| 一级片'在线观看视频| 久久毛片免费看一区二区三区| 亚洲情色 制服丝袜| 日本黄色日本黄色录像| 午夜91福利影院| 在线观看免费日韩欧美大片| 国产成人系列免费观看| 国精品久久久久久国模美| 伊人亚洲综合成人网| 乱人伦中国视频| 亚洲国产精品一区三区| 亚洲欧美一区二区三区黑人| 国产欧美日韩一区二区三区在线| 久久久精品94久久精品| 久久中文字幕一级| 蜜桃国产av成人99| 欧美中文综合在线视频| 成人亚洲欧美一区二区av| 亚洲精品在线美女| 高清av免费在线| 色94色欧美一区二区| 久久人人爽人人片av| 国产成人免费观看mmmm| 一二三四社区在线视频社区8| 亚洲欧美中文字幕日韩二区| 69精品国产乱码久久久| 午夜福利一区二区在线看| 天天躁日日躁夜夜躁夜夜| 制服诱惑二区| 欧美黑人精品巨大| 真人做人爱边吃奶动态| 国产成人精品久久久久久| 又紧又爽又黄一区二区| 婷婷色综合大香蕉| 女人精品久久久久毛片| 97在线人人人人妻| bbb黄色大片| 久久人人97超碰香蕉20202| 日本vs欧美在线观看视频| 欧美精品高潮呻吟av久久| svipshipincom国产片| 99国产精品免费福利视频| 久久精品国产综合久久久| 人成视频在线观看免费观看| 久久久精品区二区三区| 亚洲国产av影院在线观看| 欧美在线黄色| 亚洲av电影在线观看一区二区三区| 久久鲁丝午夜福利片| 午夜福利影视在线免费观看| 日韩av不卡免费在线播放| 每晚都被弄得嗷嗷叫到高潮| 国产97色在线日韩免费| 国产午夜精品一二区理论片| 一区二区三区四区激情视频| 精品免费久久久久久久清纯 | 午夜免费成人在线视频| 2018国产大陆天天弄谢| 十八禁网站网址无遮挡| 亚洲自偷自拍图片 自拍| 亚洲激情五月婷婷啪啪| www.自偷自拍.com| 91老司机精品|