精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

得物推薦引擎 - DGraph

開發(fā) 項(xiàng)目管理
DGraph是得物在推薦業(yè)務(wù)上一次非常成功的探索,并在算法指標(biāo)、穩(wěn)定性、機(jī)器成本等多方面取得了收益。搜推場(chǎng)景是互聯(lián)網(wǎng)中算力開銷特別大的場(chǎng)景之一,數(shù)據(jù)更新頻繁,日常業(yè)務(wù)迭代復(fù)雜,因此對(duì)系統(tǒng)的挑戰(zhàn)非常高。

一、前言

隨著得物業(yè)務(wù)規(guī)模的不斷增加,推薦業(yè)務(wù)也越來(lái)越復(fù)雜,對(duì)推薦系統(tǒng)也提出了更高的要求。我們于2022年下半年啟動(dòng)了DGraph的研發(fā),DGraph是一個(gè)C++項(xiàng)目,目標(biāo)是打造一個(gè)高效易用的推薦引擎。推薦場(chǎng)景的特點(diǎn)是表多、數(shù)據(jù)更新頻繁、單次查詢會(huì)涉及多張表。了解這些特點(diǎn),對(duì)于推薦引擎的設(shè)計(jì)非常重要。通過(guò)閱讀本文,希望能對(duì)大家了解推薦引擎有一定幫助。為什么叫DGraph?因?yàn)橥扑]場(chǎng)景主要是用x2i(KVV)表推薦為主,而x2i數(shù)據(jù)是圖(Graph)的邊,所以我們給得物的推薦引擎取名DGraph。

二、正文

整體架構(gòu)

DGraph可以劃分為索引層&服務(wù)層。索引層實(shí)現(xiàn)了索引的增刪改查。服務(wù)層則包含Graph算子框架、對(duì)外服務(wù)、Query解析、輸出編碼、排序框架等偏業(yè)務(wù)的模塊。

圖1 DGraph 整體框架圖1 DGraph 整體框架

索引框架

在DGraph里面參考圖1,索引的管理被抽象成5個(gè)模塊:Reader 索引查詢、Writer 索引寫入、Compaction 增量全量合并、LifeCycle 索引生命周期管理、Schema 索引配置信息。

不同類型的索引只需要實(shí)現(xiàn)上面的5個(gè)類即可,不同類型的索引只需要關(guān)注索引本身的實(shí)現(xiàn)方式,而不需要關(guān)心索引的管理問(wèn)題,通過(guò)這種模式,索引管理模塊實(shí)現(xiàn)了索引的抽象管理,如果業(yè)務(wù)需要,可以快速在DGraph面加入一種新的索引。

DGraph數(shù)據(jù)的管理都是按表(table)進(jìn)行的(圖2),復(fù)雜的索引會(huì)使用到DGraph的內(nèi)存分配器D-Allocator,比如KVV/KV的增量部分 & 倒排索引 & 向量索引等。在DGraph所有數(shù)據(jù)更新都是DUMP(耗時(shí))->索引構(gòu)建(耗時(shí))->引擎更新(圖3),索引平臺(tái)會(huì)根據(jù)DGraph引擎的內(nèi)存情況自動(dòng)選擇在線更新還是分批重啟更新。這種方式讓DGraph引擎的索引更新速度&服務(wù)的穩(wěn)定性得到了很大的提升。

圖2 DGraph索引組織關(guān)系圖2 DGraph索引組織關(guān)系

圖3 Graph索引更新圖3 Graph索引更新


索引

數(shù)據(jù)一致性

相比訂單、交易等對(duì)于數(shù)據(jù)一致性要求非常嚴(yán)格的場(chǎng)景。在搜推場(chǎng)景,數(shù)據(jù)不需要嚴(yán)格的一致性,只需要最終一致性。若一個(gè)集群有N個(gè)引擎,通過(guò)增量向集群寫入一條數(shù)據(jù),每個(gè)引擎是獨(dú)立更新這條數(shù)據(jù)的,因?yàn)槭仟?dú)立的,所以有些機(jī)器會(huì)更新快一點(diǎn),有些機(jī)器會(huì)更新慢一點(diǎn),這個(gè)時(shí)間尺度在毫秒級(jí)附近,理論上在某一時(shí)刻,不同引擎上的數(shù)據(jù)是不一致的,但這對(duì)業(yè)務(wù)影響不大,因?yàn)樽罱K這些數(shù)據(jù)會(huì)保持一致。

最終一致性這個(gè)特性非常重要,因?yàn)閷?shí)現(xiàn)嚴(yán)格的一致性很復(fù)雜,2PC&3PC等操作在分布式場(chǎng)景下,代價(jià)很高。所以事情就變得簡(jiǎn)單了很多,引擎的讀寫模型只需要滿足最終一致性即可。這可以讓我們的系統(tǒng),更偏向于提供更高的讀性能。這個(gè)前提也是DGraph目前很多設(shè)計(jì)的根因。

讀寫模型

推薦場(chǎng)景需要支持在線服務(wù)更新數(shù)據(jù),因此引擎有讀也有寫,所以它也存在讀寫問(wèn)題。另外引擎還需要對(duì)索引的空間進(jìn)行管理,類似于JAVA系統(tǒng)里面JVM的內(nèi)存管理工作,不過(guò)引擎做的簡(jiǎn)單很多。讀寫問(wèn)題常見的解決方案是數(shù)據(jù)加鎖。數(shù)據(jù)庫(kù)和大部分業(yè)務(wù)代碼里面都可以這么做,這些場(chǎng)景加鎖是解決讀寫問(wèn)題最靠譜的選擇。但是在推薦引擎里面,對(duì)于讀取的性能要求非常高,核心數(shù)據(jù)的訪問(wèn)如果引入鎖,會(huì)讓引擎的查詢性能受到很大的限制。

推薦引擎是一個(gè)讀多寫少的場(chǎng)景,因此我們?cè)诩夹g(shù)路線上選擇的是無(wú)鎖數(shù)據(jù)結(jié)構(gòu)RCU。RCU在很多軟件系統(tǒng)里面有應(yīng)用,比如Linux 內(nèi)核里面的kfifo。大部分RCU的實(shí)現(xiàn)都是基于硬件提供的CAS機(jī)制,支持無(wú)鎖下的單寫單讀、單寫多讀、多寫單讀等。DGraph選擇的是單寫多讀+延遲釋放類型的無(wú)鎖機(jī)制。效率上比基于CAS機(jī)制的RCU結(jié)構(gòu)好一點(diǎn),因?yàn)镃AS雖然無(wú)鎖,但是CAS會(huì)鎖CPU緩存總線,這在一定程度上會(huì)影響CPU的吞吐率。

如果簡(jiǎn)單描述DGraph的索引結(jié)構(gòu),可以理解為實(shí)現(xiàn)了RcuDoc(正排)、RcuRoaringBitMap(倒排)、RcuList、RcuArray、RcuList、RcuHashMap等。用推薦場(chǎng)景可推池來(lái)舉一個(gè)例子,可推池表的存儲(chǔ)結(jié)構(gòu)可以抽象成RcuHashMap<Key, RcuDoc> table。這里用RcuList來(lái)舉例子,可以用來(lái)理解DGraph的RCU機(jī)制。其中MEMORY_BARRIER是為了禁止編譯器對(duì)代碼重排,防止亂序執(zhí)行。

圖 4  RcuList 元素插入圖 4 RcuList 元素插入


圖5 RcuList刪除元素圖5 RcuList刪除元素

圖5是刪除的例子,簡(jiǎn)單講一下,在RcuList里面,刪除一個(gè)元素的時(shí)候,比如Node19,因?yàn)閯h除期間可能有其他線程在訪問(wèn)數(shù)據(jù),所以對(duì)List的操作和常規(guī)的操作有些不同,首先將Node11的Next節(jié)點(diǎn)指向Node29,保證后面進(jìn)來(lái)的線程不會(huì)訪問(wèn)Node19,然后把Node19的Next指向Null,因?yàn)檫@個(gè)時(shí)候可能還有線程在訪問(wèn)Node19,因此我們不能立即把Node19刪除,而是把Node19放入刪除隊(duì)列,延遲15秒之后再刪除,另外刪除的動(dòng)作不是主動(dòng)的,而是由下一個(gè)需要申請(qǐng)內(nèi)存的操作觸發(fā),因此刪除是延時(shí)且Lazy的。

數(shù)據(jù)持久化

在DGraph里面我們構(gòu)建了一個(gè)內(nèi)存分配器D-Allocator(每個(gè)索引只能申請(qǐng)一個(gè)/可選),用于存儲(chǔ)增量或者倒排索引等復(fù)雜數(shù)據(jù)結(jié)構(gòu)。采用了類似TcMalloc按大小分類的管理模式。D-Allocator利用Linux系統(tǒng)的mmap方法每次從固定的空間申請(qǐng)128M ~ 1GB大小,然后再按塊劃分&組織。由系統(tǒng)的文件同步機(jī)制保證數(shù)據(jù)的持久化。目前64位x86 CPU實(shí)際尋址空間只有48位,而在Linux下有效的地址區(qū)間是 0x00000000 00000000 ~ 0x00007FFF FFFFFFFF 和 0xFFFF8000 00000000 ~ 0xFFFFFFFF FFFFFFFF 兩個(gè)地址區(qū)間。而每個(gè)地址區(qū)間都有128TB的地址空間可以使用,所以總共是256TB的可用空間。在Linux下,堆的增長(zhǎng)方向是從下往上,棧的增長(zhǎng)方向是從上往下,為了盡可能保證系統(tǒng)運(yùn)行的安全性,我們把0x0000 1000 0000 0000 到 0x0000 6fff ffff ffff分配給索引空間,一共96TB,每個(gè)內(nèi)存分配器可以最大使用100GB空間。為了方便管理,我們引入了表keyID,用于固定地址尋址,表地址 = 0x0000 1000 0000 0000 + keyId * 100GB, 引擎管理平臺(tái)會(huì)統(tǒng)一管理每個(gè)集群的keyId,偶數(shù)位分配給表,奇數(shù)位保留作為表切換時(shí)使用。keyId 0 - 600 分配給集群獨(dú)享表,keyId 600-960分配給全局表。因此單個(gè)集群可以最多加載300個(gè)獨(dú)享表+最多180共享表(備注:不是所有表都需要D-Allocator,目前沒(méi)有增量的KVV/KV表不受這個(gè)規(guī)則限制)。

圖6 引擎內(nèi)存管理圖6 引擎內(nèi)存管理

KV/KVV索引

KV -> Map<Key, Object> 、 KVV -> Map<Key, List<Object>>。推薦引擎絕大部分表都是KVV索引,數(shù)據(jù)更新特點(diǎn)是,定期批量更新 & 大部分表沒(méi)有實(shí)時(shí)增量。針對(duì)這些業(yè)務(wù)特性,DGraph設(shè)計(jì)了內(nèi)存緊湊型KV\KVV索引(圖7)。這里簡(jiǎn)單講一下DenseHashMap的實(shí)現(xiàn),傳統(tǒng)的HashMap是ArrayList+List或者ArrayList+紅黑樹的結(jié)構(gòu)。DGraph的DenseHashMap,采用的ArrayList(Hash)+ArrayList(有序)方式,在ArrayList(Hash)任意桶區(qū)域,存儲(chǔ)的是當(dāng)前桶的首個(gè)KVPair信息,以及當(dāng)前桶Hash沖突的個(gè)數(shù),沖突數(shù)據(jù)地址偏移量,存儲(chǔ)在另外一個(gè)ArrayList(有序)地址空間上(Hash沖突后可以在這塊區(qū)域用二分查找快速定位數(shù)據(jù))。這種結(jié)構(gòu)有非常好的緩存命中率,因?yàn)樗趦?nèi)存空間是連續(xù)的。但是它也是有缺點(diǎn)的,不能修改,全量寫入也非常復(fù)雜。首先我們要把數(shù)據(jù)加載到一個(gè)普通的HashMap,然后計(jì)算每個(gè)Hash桶上面元素的個(gè)數(shù),知道了桶的數(shù)量和每個(gè)桶下面的元素個(gè)數(shù),遍歷HashMap,把數(shù)據(jù)固化成DenseHash。KV/KVV的增量部分則是由RcuHashMap + RcuDoc基于D-Allocator(圖6)實(shí)現(xiàn)。

圖7 緊湊型KV/KVV索引圖7 緊湊型KV/KVV索引

Invert索引

基于開源RoaringBitmap實(shí)現(xiàn)的RCU版本(基于D-Allocator實(shí)現(xiàn))。RoaringBitmap 將一個(gè)文檔ID(uint32)分為高位和低位,高16位的ID用來(lái)建一級(jí)索引,低16位的ID用來(lái)構(gòu)建二級(jí)索引(原文稱之為Container),在二級(jí)索引中,因?yàn)?^16=65536,一個(gè)short占用空間16bit,65536剛好可以存儲(chǔ)4096個(gè)short,因此當(dāng)分段內(nèi)文檔數(shù)量少于等于4096是,用short數(shù)組存儲(chǔ)文檔,當(dāng)分段內(nèi)的文檔數(shù)量大于4096時(shí)則轉(zhuǎn)為Bitmap存儲(chǔ),最多可以存儲(chǔ)65536個(gè)文檔。這種設(shè)計(jì)對(duì)于稀疏倒排&密集倒排在存儲(chǔ)空間利用率&計(jì)算性能上都表現(xiàn)優(yōu)異。

圖8 倒排(Invert)索引圖8 倒排(Invert)索引


Embedding索引

基于開源的Kmeans聚類。Kmeans聚類后,引擎會(huì)以每個(gè)中心向量(centroids)為基點(diǎn),構(gòu)建倒排,倒排的數(shù)據(jù)結(jié)構(gòu)也是RoaringBitmap,同一個(gè)聚簇的向量都回插入同一個(gè)RoaringBitmap里面。這樣的好處是,可以在向量檢索中包含普通文本索引,比如你可以在向量召回的基礎(chǔ)上限制商品的tile必須要包含椰子、男鞋、紅色等文本信息。

圖9 向量索引圖9 向量索引

算子調(diào)度框架

推薦存儲(chǔ)引擎最開始只提供了簡(jiǎn)單的數(shù)據(jù)查詢&數(shù)據(jù)補(bǔ)全功能,由于擴(kuò)招回需要,后期又引入了算子框架,初步提供了基本的多算子融合調(diào)度能力(Merge/LeftJoin/Query),可以將多次引擎查詢合并為單次查詢,降低召回RT,  提升召回能力。老的框架有很多問(wèn)題:1)只提供了JAVA API接入,API可解釋性比較差,用戶接入上存在一定困難。2)算子調(diào)度框架效率偏低,采用OMP+階段策略調(diào)度,對(duì)服務(wù)器硬件資源利用率偏低,部分場(chǎng)景集群CPU超過(guò)20%后99線95線即開始惡化。3)Graph運(yùn)行時(shí)中間數(shù)據(jù)采用行式存儲(chǔ),在空間利用率和運(yùn)算開銷上效率低,導(dǎo)致部分業(yè)務(wù)在遷移算子框架后RT反而比之前高。4)缺少調(diào)試 & 性能分析手段。

DGraph后期針對(duì)這些問(wèn)題我們做了很多改進(jìn):1)引入了Graph存儲(chǔ),用于可以通過(guò)傳入GraphID訪問(wèn)一個(gè)圖,配合引擎管理平臺(tái)的DAG展示&構(gòu)圖能力,降低圖的使用門檻。2)開發(fā)了全新的調(diào)度框架:節(jié)點(diǎn)驅(qū)動(dòng)+線程粘性調(diào)度。3)算子中間結(jié)果存取等計(jì)算開銷比較大的環(huán)節(jié),通過(guò)引入了列存儲(chǔ),虛擬列等有效的降低了運(yùn)行時(shí)開銷。上線后在平均RT和99線RT都取得了不錯(cuò)的結(jié)果。

圖10 算子框架演進(jìn)圖10 算子框架演進(jìn)

三、后記

DGraph是得物在推薦業(yè)務(wù)上一次非常成功的探索,并在算法指標(biāo)、穩(wěn)定性、機(jī)器成本等多方面取得了收益。搜推場(chǎng)景是互聯(lián)網(wǎng)中算力開銷特別大的場(chǎng)景之一,數(shù)據(jù)更新頻繁,日常業(yè)務(wù)迭代復(fù)雜,因此對(duì)系統(tǒng)的挑戰(zhàn)非常高。在DGraph的研發(fā)過(guò)程中,我們投入了非常多的精力在系統(tǒng)的穩(wěn)定性 & 易用性上面,積累了很多些經(jīng)驗(yàn),簡(jiǎn)單總結(jié)下:1)平臺(tái)側(cè)需要做好數(shù)據(jù)的校驗(yàn),數(shù)據(jù)的增刪的改是搜推場(chǎng)景最容易引發(fā)事故的源頭。2)提供靈活的API,類SQL或者DAG都可以,在C++內(nèi)部做業(yè)務(wù)開發(fā)是非常危險(xiǎn)的。3)索引必須是二進(jìn)制結(jié)構(gòu)并且采用mmap方式加載,這樣即使發(fā)生崩潰的情況,系統(tǒng)可以在短時(shí)間快速恢復(fù),日常調(diào)試重啟等操作也會(huì)很快。

責(zé)任編輯:武曉燕 來(lái)源: 得物技術(shù)
相關(guān)推薦

2025-04-17 04:00:00

2011-08-16 16:24:28

全文檢索數(shù)據(jù)挖掘

2025-04-08 02:30:00

2024-08-22 12:35:37

2023-05-10 18:34:49

推薦價(jià)格體驗(yàn)優(yōu)化UV

2023-01-11 18:34:22

推薦精排模型

2025-09-04 01:21:00

2023-05-12 18:42:13

得物AI平臺(tái)

2012-12-31 12:02:56

百度推薦引擎數(shù)據(jù)架構(gòu)

2025-05-13 05:00:00

2022-12-02 18:45:06

SOP機(jī)器人技術(shù)

2024-03-07 10:46:13

人工智能?

2012-12-28 13:16:35

大數(shù)據(jù)架構(gòu)

2025-11-11 01:55:00

2023-03-30 18:39:36

2023-06-09 20:45:35

得物多場(chǎng)景推薦平臺(tái)

2023-10-09 18:35:37

得物Redis架構(gòu)

2025-03-13 06:48:22

2023-04-28 18:37:38

直播低延遲探索

2023-11-27 18:38:57

得物商家測(cè)試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

av中文字幕不卡| 国产精品无码久久久久| 成人午夜视频在线观看| 57pao成人国产永久免费| 久久久久久久无码| 国产香蕉久久| 亚洲一区在线电影| 日本亚洲自拍| 超碰在线人人干| 母乳一区在线观看| 久久久极品av| 中文字幕av观看| 国产亚洲天堂网| 亚洲精品国产精品乱码| av中文字幕一区二区| 制服丝袜一区二区三区| 精品国产一区三区| 免费黄色电影在线观看| 99在线视频精品| 91精品久久久久久久久久另类 | 国产精品1024久久| 欧美一级淫片播放口| 国产稀缺精品盗摄盗拍| 亚洲人成网www| 欧美电视剧在线看免费| 蜜臀av免费观看| 嗯啊主人调教在线播放视频| 中文字幕 久热精品 视频在线| 懂色中文一区二区三区在线视频| 日韩黄色片网站| 亚洲三级免费| 久久国产色av| 美国黄色片视频| 国产成人1区| 日韩av影视在线| 无码人妻久久一区二区三区蜜桃| aaaa欧美| 欧洲一区在线电影| 麻豆av免费在线| 国产精品13p| 亚洲动漫第一页| 国产a级黄色大片| 国产高清一区二区三区视频| 国产喷白浆一区二区三区| 久久精品国产一区二区三区日韩| 午夜精品久久久久久久91蜜桃| 美女精品自拍一二三四| 国产99久久精品一区二区| 日韩精品人妻中文字幕| 国产三级漂亮女教师| 高潮久久久久久久久久久久久久| 欧美日韩精品三区| 日本中文字幕高清| 欧美特大特白屁股xxxx| 看黄网站在线观看| 国产91精品露脸国语对白| 亚洲精品免费一区二区三区| 夜夜躁狠狠躁日日躁av| 免费成人在线视频观看| 国产精品三级网站| 亚洲天堂中文网| 久久精品国产77777蜜臀| 国产精品露脸av在线| 国产精品无码一区| 免费不卡在线视频| 91精品一区二区| 国产三级三级在线观看| 国产成人鲁色资源国产91色综| 91中文在线视频| 国产不卡精品视频| 国产精品一二三| 国产精品久久波多野结衣| 狠狠人妻久久久久久综合麻豆| 成人污污视频在线观看| 欧美一区二区久久久| 欧美成人在线网站| 国产一区二区精彩视频| 欧美高清一区| 久久久噜久噜久久综合| 日韩黄色在线播放| 青青草伊人久久| 91精品久久久久久久久青青| 国产aⅴ一区二区三区| 国产成都精品91一区二区三| 国产中文一区二区| 精品乱码一区二区三四区视频 | 乱码一区二区三区| 欧美18免费视频| 亚洲美女在线看| 新91视频在线观看| 精品少妇av| 久久成人精品一区二区三区| 久久久久久福利| 亚洲欧美日韩专区| 成人高清视频观看www| 亚洲精品免费在线观看视频| 久久亚洲一区二区三区明星换脸| 四虎永久国产精品| 欧美1234区| 色av综合在线| 免费在线观看日韩av| 欧美猛男男男激情videos| zzjj国产精品一区二区| 国产无遮挡裸体免费视频| 日韩国产欧美在线播放| 国产99在线免费| 国产成人天天5g影院在线观看| 亚洲女同一区二区| 熟妇人妻va精品中文字幕| www.成人| 亚洲人成电影网站色| 欧美极品aaaaabbbbb| 日韩精品免费视频人成| 91视频九色网站| 黄色片在线看| 亚洲五码中文字幕| 色综合色综合色综合色综合| 国产调教精品| 美女撒尿一区二区三区| 无码视频一区二区三区| a在线观看视频| 国产精品中文字幕日韩精品 | 亚洲成人77777| 国产日韩亚洲欧美综合| 国产美女在线一区| 成人51免费| 国产一区二区三区视频在线观看 | 成人国产亚洲精品a区天堂华泰| 北条麻妃一二三区| 国产精品成人一区二区艾草| 激情五月开心婷婷| 黄色美女久久久| 日韩一区视频在线| 羞羞色院91蜜桃| 26uuu欧美| 99色这里只有精品| 免费一级欧美片在线观看网站| 国产亚洲欧美视频| 成人午夜视频精品一区| 国产精品影视在线| 免费观看国产视频在线| 日本电影久久久| 国产亚洲欧美另类中文| 午夜婷婷在线观看| 91在线丨porny丨国产| 欧美午夜小视频| 国产精品极品在线观看| 欧美精品videosex牲欧美| 99久久久国产精品无码网爆| 国产精品久久福利| wwwwwxxxx日本| 99久久精品网| 成人精品在线视频| 国产区在线观看| 欧美一区二区三区在线视频| 蜜臀av午夜精品久久| 韩国一区二区三区| 一级特黄妇女高潮| 亚洲国产一区二区三区网站| 欧美大片欧美激情性色a∨久久| 国产视频一区二区三区四区五区| 亚洲桃色在线一区| 青青草原播放器| 欧美 日韩 国产一区二区在线视频 | av中文字幕播放| 亚洲人成小说网站色在线| 亚洲18在线看污www麻豆| 羞羞色午夜精品一区二区三区| 91久久久久久| 日本在线视频www鲁啊鲁| 精品三级在线看| 国产成人一级片| 中文字幕的久久| 日本在线观看视频一区| 亚洲欧美综合| 国产一区在线免费| 成人mm视频在线观看| 久久香蕉国产线看观看网| 性做久久久久久久| 色综合婷婷久久| 亚洲精品国产精品乱码在线观看| 国产精品资源网站| 六月丁香婷婷激情| 成人女性视频| 99国产视频在线| 三上悠亚激情av一区二区三区 | 三上悠亚影音先锋| 蜜臀av性久久久久蜜臀aⅴ | 久久夜色精品国产欧美乱极品| 人妻久久久一区二区三区| 国产夫绿帽单男3p精品视频| 试看120秒一区二区三区| 永久免费精品影视网站| 国产三级三级在线观看| 狠狠久久五月精品中文字幕| 亚洲精品国产91| 国产成人综合网| 日av中文字幕| 欧美日韩国产成人精品| 久久99国产精品99久久| 天天综合91| 91av视频在线| 黄色网页在线播放| 日韩毛片中文字幕| 国产美女明星三级做爰| 日韩欧美在线视频免费观看| 成年人网站在线观看视频| 成人av电影免费在线播放| 一区二区三区视频网| 国产字幕视频一区二区| 亚洲国产欧洲综合997久久| 好吊妞视频这里有精品| 国产精品一区二区三区免费视频 | 欧美激情精品久久久久久久变态 | 2020国产精品自拍| 涩多多在线观看| 久久国产精品久久久久久电车 | 在线观看av不卡| 日韩av一二三区| 亚洲免费观看视频| 人与嘼交av免费| heyzo一本久久综合| 欧美一级小视频| 日韩不卡手机在线v区| 欧美黑人在线观看| 91综合视频| 日韩久久在线| 欧美亚视频在线中文字幕免费| 91黄在线观看| 视频欧美精品| 国产精品扒开腿做爽爽爽男男 | 国产精品大陆在线观看| av影视在线| 色与欲影视天天看综合网| 在线观看免费网站黄| 亚洲人av在线影院| 色中色在线视频| 精品国产百合女同互慰| 国产女主播福利| 91.com视频| 一卡二卡三卡在线| 欧美视频精品在线| 国产在线一级片| 在线精品视频免费播放| 欧美一区二区三区久久久| 福利微拍一区二区| 欧美在线观看不卡| 精品毛片三在线观看| 日韩黄色在线视频| 精品magnet| 日韩欧美一级视频| 婷婷丁香久久五月婷婷| 成年人免费看毛片| 欧美人妖在线观看| 综合136福利视频在线| 噜噜噜在线观看播放视频| 国产视频精品va久久久久久| 黄色小视频免费在线观看| 日韩一区二区三区视频在线| 国产av无码专区亚洲a∨毛片| 欧美一区二区在线播放| 国产日韩免费视频| 日韩精品一区二区三区视频在线观看| 国产乱码精品一区二三区蜜臂 | 一区二区三区亚洲变态调教大结局 | 国产免费一区二区三区| 一区二区三区在线免费看| aa日韩免费精品视频一| 高清一区二区三区| 久久久久国产精品视频| 亚洲肉体裸体xxxx137| 欧美一区二视频在线免费观看| 欧美三级美国一级| 一区二区在线观看网站| 国一区二区在线观看| 18岁网站在线观看| 青娱乐精品在线视频| 两性午夜免费视频| jvid福利写真一区二区三区| 亚洲精品国产精品国自产网站| 中文字幕一区二区三区四区 | 亚洲欧洲中文字幕| 人妻夜夜添夜夜无码av| 丝袜美腿一区二区三区| 国产精品区在线| 国产不卡一区视频| 蜜桃传媒一区二区亚洲av| 国产精品久久久久影院| 91成人福利视频| 色婷婷精品久久二区二区蜜臂av| 亚洲一区 中文字幕| 欧美成人aa大片| 国产在线观看黄| 免费97视频在线精品国自产拍| 僵尸再翻生在线观看免费国语| 国产精品入口免费视频一| 亚洲91网站| 日本婷婷久久久久久久久一区二区| 羞羞答答成人影院www| 欧美三级一级片| 国产一区二区三区视频在线播放| 妖精视频一区二区| 国产精品久久久久影视| 天堂资源在线播放| 欧美区视频在线观看| 天堂av手机版| 久久综合久久八八| 日本综合久久| 国产精选一区二区| 91精品啪在线观看国产81旧版| 日日橹狠狠爱欧美超碰| 国产尤物一区二区在线| 这里只有久久精品| 午夜国产精品一区| 国产jzjzjz丝袜老师水多| 在线观看成人黄色| 国产在线观看www| 粉嫩精品一区二区三区在线观看| 猛男gaygay欧美视频| 波多野结衣av一区二区全免费观看| 蜜桃av一区二区在线观看| 亚洲一区二区三区综合| 有坂深雪av一区二区精品| 最近中文字幕免费在线观看| 亚洲精品国精品久久99热一| 青草视频在线免费直播| 成人网在线免费看| 第一会所sis001亚洲| 国产成人精品一区二| 亚洲午夜久久久久久久久| 亚洲三级在线观看| 一个人看的www日本高清视频| 亚洲欧美国产另类| av资源中文在线| 99电影在线观看| 欧美黄免费看| 伊人成人免费视频| 亚洲欧洲另类国产综合| 中文字幕免费视频观看| 亚洲视频一区二区| 免费电影日韩网站| 久久久久久久久久久久久9999| 激情偷拍久久| 人妻换人妻a片爽麻豆| 亚洲一区二区三区国产| 性一交一乱一色一视频麻豆| 久精品免费视频| 日韩在线观看一区二区三区| 久久最新免费视频| 国产乱妇无码大片在线观看| 农村黄色一级片| 日韩视频一区在线观看| 午夜激情在线| 国产精品18毛片一区二区| 亚洲特色特黄| 中文视频在线观看| 精品国产乱码久久久久久婷婷 | 国产精品996| 欧美成人一二三区| 欧美不卡一二三| 电影k8一区二区三区久久| 国产精品一区二区免费| 夜夜嗨一区二区| 无码h肉动漫在线观看| 91久久免费观看| 8888四色奇米在线观看| 成人a在线观看| 欧美视频导航| 国产精品久久久免费观看| 日韩人体视频一二区| 高清在线观看av| 成人免费看黄网站| 激情婷婷久久| 在线观看日本中文字幕| 欧美巨大另类极品videosbest | 国产 日韩 欧美 精品| 欧美激情一二三| 妖精视频一区二区三区免费观看| 99视频精品免费| 亚洲婷婷国产精品电影人久久| 精品人妻一区二区三区麻豆91| 韩国三级电影久久久久久| 国产精品一区高清| 不卡中文字幕在线观看| 亚洲午夜在线视频| 免费在线毛片| 成人黄色片网站| 亚洲日本欧美| 天堂av网手机版| 精品福利一区二区三区| 亚洲精品一区| 国产三级中文字幕| 成人国产精品免费观看| 波多野结衣电影在线播放| 美女精品视频一区| 亚洲小说图片| 亚洲欧美日韩一二三区| 疯狂做受xxxx欧美肥白少妇| 日本中文字幕伦在线观看| 狠狠色噜噜狠狠色综合久|