日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

NoSQL Databases - CouchDB

發布時間:2025/3/19 数据库 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NoSQL Databases - CouchDB 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CouchDB還是蠻有意思的一個DB, 總結一下, 他重要的特點

1. 最大的特點就是他的file layout and commitment system, 并由此可以保證ACID特性, 在Nosql里面相當有特點, 參考5.1.6

2. 采用View機制, 這個很方便, 通過javascript就可以簡單的定義view, 并可以通過map/reduce邏輯生成view, 但要注意的是, 這是偽map/reduce, 因為只能在單機上運行, 只是使用了這種模型而已.

但存在一個問題, View是在讀時更新的, 所以如果有大量數據更新, View生成的速度就會很慢, 解決方法,

通過cron任務定時對View進行查詢,從而觸發定時的索引更新操作,以減少真正讀操作需要等待的時間.

在1.1.0版本中,添加了一個stale=update_after的指定,可以實現返回老數據后再在后臺更新的功能

3. 完備的備份機制

CouchDB提供了非常方便, 好用的備份機制. 在網絡斷開的時候, 你仍然可以在任意節點上進行讀寫操作, 而不受影響, 當網絡恢復后, 各個備份之間會自動的同步, 這也是couchDB的一大特色.

但是同時我個人覺得也暴露出他的一個弱點, 即scalability, 水平擴展性

CouchDB的水平擴展性, 只能通過備份, 但是不提供sharding的功能, 其實我個人覺得, 本質上根本沒有解決水平擴展問題, 因為所有讀寫操作都只能在單節點完成, 連map/reduce也是基于單節點的document的

所以CouchDB真是一個優點和缺點都很鮮明的, interesting DB, 尤其file layout和append-only模式非常值得借鑒.

?

雖然CouchDB和MongoDB都屬于Document DB, 但是兩者其實真的除了document這個抽象數據模型外, 沒有啥共同點...totally different

相對于MongoDB的中規中矩, 和主流的設計理念, CouchDB的設計似乎非常異類, 難以為廣大的傳統數據庫開發者所接收和理解.

在某些特定的場景下, CouchDB也會是一種不錯的選擇

數據量不是很大, 沒有強烈的sharding的需求

機器node不穩定, 會隨時增加減少, 而不想影響服務

讀操作相對比較固定

讀操作的一致性要求不高, 可以接受一定的寫和讀之間的延遲

重視寫效率和原子性

?

---------------------------------------------------------------------------------------------------------------------------------------------------------------

Document databases are considered by many as the next logical step from simple key-/value-stores to slightly more complex and meaningful data structures as they at least allow to encapsulate key-/value-pairs in documents. On the other hand there is no strict schema documents have to conform to which eliminates the need schema migration efforts (cf.[Ipp09]).

In this chapter Apache CouchDB and MongoDB as the two major representatives for the class of document databases will be investigated.

?

5.1. Apache CouchDB

5.1.1. Overview

CouchDB is a document database written in Erlang. The name CouchDB is nowadays sometimes referred to as “Cluster of unreliable commodity hardware” database.

CouchDB can be regarded as a descendant of Lotus Notes for which CouchDB’s main developer Damien Katz worked at IBM before he later initiated the CouchDB project on his own. A lot of concepts from Lotus Notes can be found in CouchDB: documents, views, distribution, and replication between servers and clients.

CouchDB can be briefly characterized as a document database which is accessible via a RESTful HTTPinterface, containing schema-free documents in a flat address space.

The most notable use of CouchDB in production is ubuntu one ([Can10a], 貌似ubuntu one已經放棄CouchDB) the cloud storage and replication service for Ubuntu Linux ([Can10b]). CouchDB is also part of the BBC’s new web application platform (cf. [Far09]). Furthermore some (less prominent) blogs, wikis, social networks, Facebook apps and smaller web sites use CouchDB as their datastore (cf. [C+10]).

http://wiki.apache.org/couchdb/

?

5.1.2. Data Model and Key Abstractions


Documents

The main abstraction and data structure in CouchDB is a document.

Documents consist of named fields that have a key/name and a value.

A fieldname has to be unique within a document and its assigned value may a string (of arbitrary length), number, boolean, date, an ordered list or an associative map (cf. [Apa10a]).

Documents may contain references to other documents (URIs, URLs) but these do not get checked or held consistent by the database (cf. [PLL09]).

A further limitation is that documents in CouchDB cannot be nested (cf. [Ipp09]).
A wiki article may be an example of such a document:


" Title " : " CouchDB ",
" Last editor " : "172.5.123.91" ,
" Last modified ": "9/23/2010" ,
" Categories ": [" Database ", " NoSQL ", " Document Database "],
" Body ": " CouchDB is a ..." ,
" Reviewed ": false

?

CouchDB considers itself as a semi-structured database.
While relational databases are designed for structured and interdependent data and key-/value-stores operate on uninterpreted, isolated key-/value-pairs
document databases like CouchDB pursue a third path: data is contained in documents which do not correspond to a fixed schema (schema-free) but have some inner structure known to applications as well as the database itself.

The advantages of this approach are that first there is no need for schema migrations which cause a lot of effort in the relational databases world; secondly compared to key-/value-stores data
can be evaluated more sophisticatedly (e. g. in the calculation of views).

In the web application field there are a lot of document-oriented applications which CouchDB addresses as its data model fits this class of applications and the possibility to iteratively extend or change documents can be done with a lot less effort compared to a relational database (cf. [Apa10a]).

介于關系型數據庫和KV數據庫之間, 即可以便于schema migrations , 又比KV能夠描述更負載的結構, 主要是在web application field, 有大量的適用的場景...

數據模型沒有嵌套, 沒有層次, 只有一層的flat namespace, 包含所有的documents

Each CouchDB database consists of exactly one flat/non-hierarchical namespace that contains all the documents which have a unique identifier (consisting of a document id and a revision number aka sequence id) calculated by CouchDB. 因為他不支持nested

Document indexing is done in B-Trees which are indexing the document’s id and revision number (sequence id; cf. [Apa10b]).

?

Views

CouchDBs way to query, present, aggregate and report the semi-structured document data are views (cf.[Apa10a], [Apa10b]).

這個概念應該很容易理解, 很多地方都用到, 無論你數據怎樣存儲, 可以按不同client的要求, 隨意生成各種view, 可以理解成, 關系數據庫里面一個select語句就會生成一個view

A typical example for views is to separate different types of documents (such as blog posts, comments, authors in a blog system) which are not distinguished by the database itself as all of them are just documents to it ([PLL09]).

?

View definitions are strictly virtual and only display the documents from the current database instance, making them separate from the data they display and compatible with replication. CouchDB views are defined inside special **design documents** and can replicate across database instances like regular documents, so that not only data replicates in CouchDB, but entire application designs replicate too.

Views are defined by JavaScript functions which neither change nor save or cache the underlying documents but only present them to the requesting user or client application.

As all documents of the database are processed by a view’s functions this can be time consuming and resource intensive for large databases. Therefore a view is not created and indexed when write operations occur but on demand (at the first request directed to it) and updated incrementally when it is requested again.

View Indexes

Views are a dynamic representation of the actual document contents of a database, and CouchDB makes it easy to create useful views of data. But generating a view of a database with hundreds of thousands or millions of documents is time and resource consuming, it's not something the system should do from scratch each time.

To keep view querying fast, the view engine maintains indexes of its views, and incrementally updates them to reflect changes in the database. CouchDB’s core design is largely optimized around the need for efficient, incremental creation of views and their indexes.

Views and their functions are defined inside special “design” documents, and a design document may contain any number of uniquely named view functions. When a user opens a view and its index is automatically updated, all the views in the same design document are indexed as a single group.

Why are all Views in a single Index

For example:

view1: {"map":"function(doc) {if (doc.type === 'foo') {emit(key, value);}}","reduce": "_count" } view2: {"map":"function(doc) {if (doc.type === 'foo') {emit(key, value);}}","reduce": "_sum" }

Here view1 and view2 have exactly the same map function. If they were in different design documents, there would be two b-trees (in two different index files) for exactly the same data.

View存儲在design Document中,請注意這里design Document和View Index是不同的。design Document保存的是view的定義,View Index保存的是針對某個Database進行View操作產生的結果。

To update a view, the component responsible for it (called view-builder) compares the sequence id of the whole database and checks if it has changed since the last refresh of the view.

While the view-builder is updating a view data from the view’s old state can be read by clients. It is also possible to present the old state of the view to one client and the new one to another client as view indexes are also written in an append-only manner and the compactation of view data does not omit an old index state while a client is still reading from it (more on that in subsection 5.1.7).

?

CouchDB View的特點是用map/reduce產生的, 當面對大數據, 要動態生成view, 這是必然選擇...但是這個m/r是單節點的

The JavaScript functions defining a view are called map and reduce which have similar responsibilities as in Google’s MapReduce approach (cf. [DG04]).

The map function gets a document as a parameter, can do any calculation and may emit arbitrary data for it if it matches the view’s criteria; if the given document
does not match these criteria the map function emits nothing.

The data structure emitted by the map function is a triple consisting of the document id, a key and a value which can be chosen by the map function.

After the map function has been executed it’s results get passed to an optional reduce function which is optional but can do some aggregation on the view (cf. [PLL09]).

?

5.1.3. Versioning

Documents are updated optimistically and update operations do not imply any locks.

If an update is issued by some client the contacted server creates a new document revisions in a copy-on-modify manner (see section 3.3) and a history of recent revisions is stored in CouchDB until the database gets compacted the next time.

If a document is updated, not only the current revision number is stored but also a list of revision numbers preceding it, to allow the database (when replicating with another node or
processing read requests) as well as client applications to reason on the revision history in the presence of conflicting versions (cf. [PLL09]).

看這小伙寫的學術論文, 讓我仿佛回到以前讀閱讀理解, 句子太長, 不認真看還真看不懂...

CouchDB寫策略, 稱為樂觀寫, 不用任何鎖, 和Dynamo一樣, 你可以隨便更新, 不用等lock

這樣必然會帶來conflict, 要解決conflict就需要了解更新之間的時間和因果關系, Dynamo是通過clock vector來記錄, 而CouchDB是通過記錄revisions.


CouchDB does not consider version conflicts as an exception but rather a normal case.

They can not only occur by different clients operating on the same CouchDB node but also due to clients operating on different replicas of the same database. It is not prohibited by the database to have an unlimited number of concurrent versions.

A CouchDB database can deterministically detect which versions of document succeed each other and which are in conflict and have to be resolved by the client application.

Conflict resolution may occur on any replica node of a database, as the node (which receiving the resolved version) transmits it to all replicas which have to accept this version as valid. It may occur that conflict resolution is issued on different nodes concurrently; the locally resolved versions on both nodes then are detected to be in conflict and get resolved just like all other version conflicts (cf. [Apa10b]).

CouchDB把conflict看作是正常的, 允許同時存在多個concurrent versions. 但CouchDB可以detect到哪些版本data是有conflict的

也和dynamo一樣, conflict resolution是由client來完成的, 因為client知道bussiness logic, 適合干這個

?

5.1.4. Distribution and Replication

CouchDB is designed for distributed setups that follows a peer-approach where each server has the same set of responsibilities and there are no distinguished roles (like in master/slave-setups, standby-clusters etc.).

類似于mongoDB的replica set, 但是所有節點都是peer to peer, 去中心化的設計

因為他不需要想mongoDB保持一致性, 所以去中心化的設計更簡單, 每個節點都是獨立的, 可以單獨處理r/w操作, 很強的分區容錯性和可用性

Different database nodes can by design operate completely independent and process read and write requests. Two database nodes can replicate databases (documents, document attachments, views) bilaterally if they reach each other via network.

The replication process works incrementally and can detect conflicting versions in simple manner. By the current revision number as well as the list of outdated revision number CouchDB can determine if are conflicting or not;

if there are version conflicts both nodes have a notion of them and can escalate the conflicting versions to clients for conflict resolution;

if there are no version conflicts the node not having the most recent version of the document updates it (cf. [Apa10a], [Apa10b], [PLL09])


The replication process operates incrementally and document-wise.

Incrementally means that only data changed since the last replication gets transmitted to another node and that not even whole documents are transferred but only changed fields and attachment-blobs;

document-wise means that each document successfully replicated does not have to be replicated again if a replication process crashes (cf. [Apa10b]).


Besides replicating whole databases CouchDB also allows for partial replicas. For these a JavaScript filter function can be defined which passes through the data for replication and rejects the rest of the database (cf. [Apa10b]). This partial replication mechanism can be used to shard data manually by defining different filters for each CouchDB node.

?

5.1.5. Interface

CouchDB databases are addressed via a RESTful HTTP interface that allows to read and update documents (cf. [Apa10b]).

?

5.1.6. ACID Properties

The CouchDB file layout and commitment system features all Atomic Consistent Isolated Durable properties.

File layout

On-disk, CouchDB never overwrites committed data or associated structures, ensuring the database file is always in a consistent state. This is a “crash-only" design where the CouchDB server does not go through a shut down process, it's simply terminated.

這個就是CouchDB最大的特點, 所有的更新操作(包括document的創建,修改和刪除)都是以在couch文件尾部追加的方式(即Append方式)進行, 這樣會產生(Multi-Version Concurrency Control )模型.

所以, 并發寫不用等, 不用鎖, 反正你不改原來的只是不斷的append新的版本, 而有對于crash, 也無所謂, 大不了丟失一些未更新完的數據, 但是不會影響老數據.

?

Document updates (add, edit, delete) are serialized, except for binary blobs which are written concurrently. Database readers are never locked out and never have to wait on writers or other readers. Any number of clients can be reading documents without being locked out or interrupted by concurrent updates, even on the same document. CouchDB read operations use a Multi-Version Concurrency Control (MVCC) model where each client sees a consistent snapshot of the database from the beginning to the end of the read operation.

更新操作是serialized的, 都是append, 必須一個append完, 才能繼續append.

讀完全不受影響, 就算同時有client在并發修改該文檔, 你照樣讀, 這個也是由append-only保證的

更牛的是, 還支持隔離性, each client sees a consistent snapshot of the database from the beginning to the end of the read operation. (對于append-only, 這個特性到很容易實現, 設個時間戳過濾, 新的更新都過濾掉就ok)

?

Documents are indexed in B-trees by their name (DocID) and a Sequence ID. Each update to a database instance generates a new sequential number. Sequence IDs are used later for incrementally finding changes in a database. These b-tree indexes are updated simultaneously when documents are saved or deleted. The index updates always occur at the end of the file (append-only updates).

??

理解這塊, 參考下面的資料, CouchDB database文件的結構圖.

Database文件分為header和body, body用來存documents和index

Document存儲時會建立兩個B-tree索引(基于DocID和SequenceID), 雖然B-tree的絕大部分數據是存在body里面的, 但是B-tree的root node是存儲在header中的

而document的更新是append方式的, document更新的同時, index也要一起更新, index的更新也是append方式的

這邊很重要的一點是, 你如果僅僅是不斷的append body, 這些數據對用戶是不可見的, why?

因為index的root是存在header里面的, 每次用戶讀數據的時候, 都是從root node開始遍歷B-tree, 所以如果header里面的root node不更新, 那么你訪問到的數據仍然是老的版本. 在CouchDB中, 所有更新都是append的, 唯獨對于header中的root node的更新是overwrite, 所以為了保證root node的更新正確性, 保存兩份一樣的header.

所以如上圖所示, 綠色的更新內容通過append的方式加到Body里面, 但如果root不更新, 用戶仍然只能看到黃色的舊內容, 只有完成header的更新, 用戶才能看到新的內容.

Commitment system

當CouchDB的文檔更新時,為了保證數據的一致性,Commit分為以下兩步:

  • Document數據和index數據首先寫入到disk數據庫文件
  • 生成兩個連續的頭信息(4kb),隨后寫入數據庫文件
  • 在上面兩個過程中,如果在過程1,發生異常(系統崩潰或斷電),那么couch文件的頭信息沒有發生變化,那么所有Append的數據都會被忽略;如果在過程2發生異常,此時Header可能會發生損壞,我們驗證第一個Header和第二個Header,如果任意一個Header可用,那么數據庫文件可用。

    CouchDB通過這種方式來保證更新的原子性.

    一般數據庫, 如果需要保證原子性, 必須有rollback機制, 因為一般數據庫都是overwrite, 所以你改了一半, crash了, 必須把已經改的改回來, 比較復雜.

    而CouchDB就簡單了, append機制, 只要我不改root node, 你新的數據就不會生效, 所以很容易就可以實現all done or nothing的機制

    為了防止在更新header是crash導致head數據被寫脹, 存了兩份header, 一個寫亂了, 還能用另一個恢復. 確實很方便

    ?

    5.1.7.Compaction

    Wasted space is recovered by occasional compaction. On schedule, or when the database file exceeds a certain amount of wasted space, the compaction process clones all the active data to a new file and then discards the old file. The database remains completely online the entire time and all updates and reads are allowed to complete successfully. The old file is deleted only when all the data has been copied and all users transitioned to the new file.

    因此采用追加的方式,所以在數據庫運行一段時間后,我們需要對其進行“瘦身”,情理那些舊的Document數據。這個過程成為 Compaction。在Compation的過程,數據庫仍然可用,只是請注意,在Compation的時候,是通過遍歷DBName.couch文件,將最新的數據拷貝到一個DBName.compat文件中,因此這個過程可能會耗費很大的存儲空間,如果您在系統繁忙(主要是write)的情況下進行Compation,可能會導致你的硬盤空間耗盡,一定注意哦!

    ?

    CouchDB讓人頭痛的十大問題

    http://blog.nosqlfan.com/html/3667.html

    CouchDB了解(-) 特性及實現

    http://www.iteye.com/topic/319839

    總結

    以上是生活随笔為你收集整理的NoSQL Databases - CouchDB的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    日日射av| 中文字幕av全部资源www中文字幕在线观看 | 国产精品久久久久国产精品日日 | 深爱婷婷激情 | 色噜噜狠狠色综合中国 | 中文字幕免费观看视频 | 久久久久电影 | 久久久首页 | 色婷婷国产 | 国产一区二区高清视频 | 久久看看 | av看片在线| 在线99热| 国产精久久久久久妇女av | 婷婷久久综合九色综合 | 黄色美女免费网站 | 天天激情综合网 | 中文字幕4 | 韩日精品在线 | 激情图片久久 | 中文字幕国产亚洲 | 国产精品精品国产婷婷这里av | 国内精品久久久久久久久久清纯 | 97视频入口免费观看 | 一区二区欧美激情 | 999久久国产精品免费观看网站 | 亚洲欧美乱综合图片区小说区 | 亚洲激情在线观看 | 午夜精品久久久久久久久久久 | 青青草国产成人99久久 | 精品a级片 | 久草网在线视频 | 午夜精品麻豆 | 国产成人久久精品77777 | 在线小视频你懂的 | 夜色资源站国产www在线视频 | 天天综合久久综合 | 激情欧美日韩一区二区 | 亚洲性少妇性猛交wwww乱大交 | 欧美日韩高清一区二区 国产亚洲免费看 | 成人综合免费 | 黄色片网站大全 | 国产99久久精品一区二区永久免费 | 色av男人的天堂免费在线 | av综合av| 国产精品成人久久久久 | 91新人在线观看 | 亚洲精品2区| 欧美一区二区三区免费观看 | 欧美日韩国产一区二 | 视频在线一区二区三区 | 国产一区高清在线观看 | 久久日韩精品 | 日韩av免费一区二区 | 9797在线看片亚洲精品 | 国产黄色大片 | 91av免费看 | www日| 日韩一二区在线 | 亚洲午夜av久久乱码 | 国产视频黄 | 九九九九精品 | 久久99热精品这里久久精品 | 精品a在线 | 黄色免费观看网址 | 国产中文字幕久久 | 天天干夜夜夜 | 国产一级黄 | 免费高清国产 | 久久激情视频 久久 | 久久综合五月天婷婷伊人 | 亚洲国产中文字幕 | 中文字幕电影网 | 久久免费精品 | 国产成人777777| 91精品视频网站 | 成人久久精品 | 国产又粗又猛又黄 | 欧美成人在线免费观看 | 免费av网站在线 | 天天草av | 精品久久久久久亚洲综合网 | 久久66热这里只有精品 | 91av短视频| 久久综合色天天久久综合图片 | 91私密视频 | 亚洲特级毛片 | 在线观看中文字幕亚洲 | 免费麻豆视频 | 激情影音| 日韩在线免费高清视频 | 性色av免费在线观看 | 亚洲欧美综合精品久久成人 | 国产又粗又猛又爽又黄的视频免费 | 日韩av成人在线观看 | 久久久久久久久久影视 | 久久成人午夜 | 久久久精选 | 久草剧场 | 最近中文字幕mv免费高清在线 | 西西444www大胆高清视频 | 在线欧美日韩 | 久久久久久久久久久网 | 日本午夜在线亚洲.国产 | 国产成人精品一区二区三区福利 | 精品视频在线免费观看 | 亚洲精品视频二区 | 深夜免费小视频 | 在线观看免费高清视频大全追剧 | 国产一区二区高清 | 综合伊人久久 | 精品久久一区二区三区 | 欧美aaaxxxx做受视频 | www..com黄色片 | 国产专区一 | 午夜精品久久久久久久99婷婷 | 亚洲小视频在线观看 | 国产少妇在线观看 | 麻豆国产在线视频 | av在线免费不卡 | 四虎8848免费高清在线观看 | 视频二区| 亚洲日本在线视频观看 | 在线视频一区二区 | 黄色免费看片网站 | 亚洲人视频在线 | 国内精品一区二区 | 婷婷色资源| 久久电影色 | 97视频资源 | 国产成人精品av在线 | 99热这里只有精品在线观看 | 国产精品99久久久久的智能播放 | 中文字幕电影一区 | 96看片| 丝袜美女在线 | 免费日韩高清 | 久久99国产精品二区护士 | 日韩亚洲欧美中文字幕 | 久草电影网 | 最新国产在线视频 | 蜜臀久久99精品久久久无需会员 | 在线视频久久 | 中文字幕91 | 免费成人av在线 | 在线观看电影av | 国产成人一区二区三区影院在线 | 日韩av中文字幕在线 | 日本中文乱码卡一卡二新区 | 一区二区不卡在线观看 | 国产成人久久av977小说 | 99精品在线 | 91黄色在线观看 | 欧美日韩性视频 | 免费观看国产精品视频 | 97超碰在| 99视频国产精品 | 色婷婷视频| 中文在线天堂资源 | 一个色综合网站 | 国产淫片免费看 | 国产精品高潮呻吟久久久久 | 久久高清精品 | 丁香花在线观看免费完整版视频 | 激情综合婷婷 | 91福利社在线观看 | 操操操干干干 | 中文字幕久久精品亚洲乱码 | 18女毛片 | 亚洲黄色在线免费观看 | 99色视频| 亚洲精品午夜久久久久久久 | 国产精品999久久久 久产久精国产品 | 天天人人 | 三级视频片 | 久久久国产99久久国产一 | 色狠狠综合天天综合综合 | 日韩精品综合在线 | 国产精品乱码久久久久 | 天天爽夜夜爽人人爽曰av | 中文字幕乱偷在线 | 欧美美女激情18p | 国产传媒一区在线 | 又黄又刺激 | 欧美精品免费在线观看 | 久久综合久久综合这里只有精品 | 中文字幕一区二区三区四区在线视频 | 美女黄频 | 久久99视频免费 | 人人干人人干人人干 | 国产精品系列在线播放 | 国产色女人 | 国产一卡久久电影永久 | 欧美精品乱码99久久影院 | 婷婷在线免费视频 | 国产一级免费在线 | 久久人人爽人人爽 | 国产黄免费 | 亚洲成人av免费 | 久久夜夜操 | 欧亚日韩精品一区二区在线 | 国产做aⅴ在线视频播放 | 精品久久久免费视频 | 国产午夜精品一区二区三区在线观看 | 日韩精品你懂的 | 日韩网站免费观看 | 精品在线二区 | 国产在线不卡一区 | 在线播放 日韩专区 | 欧美一区中文字幕 | 麻花传媒mv免费观看 | 国产福利一区二区三区视频 | 日日夜夜免费精品 | 久久久国产一区二区三区四区小说 | 欧美一级性 | 精品99999| 国产精品国产三级国产aⅴ无密码 | 99热最新精品 | 99精品国产在热久久 | 成人激情开心网 | 911香蕉视频| 97天天综合网| 精品国产成人在线 | 国产精品理论在线观看 | 亚洲综合日韩在线 | 人人操日日干 | 久久美女视频 | 日本在线视频一区二区三区 | 国产高清视频在线 | 免费看的黄色的网站 | 深爱开心激情 | 毛片网在线播放 | 亚洲国产欧美一区二区三区丁香婷 | 成人免费色 | 久久精品国产一区二区电影 | 久久亚洲美女 | 中国黄色一级大片 | 国产1级视频 | 国产麻豆成人传媒免费观看 | 日韩av不卡在线观看 | 精品亚洲视频在线观看 | 精品国产伦一区二区三区观看方式 | 色噜噜日韩精品欧美一区二区 | 久99久精品视频免费观看 | 久久精彩免费视频 | 在线观看亚洲精品视频 | 免费国产ww | 97超碰影视 | 97碰碰精品嫩模在线播放 | 92av视频 | 91成人精品国产刺激国语对白 | 99久久国产免费,99久久国产免费大片 | 黄色a大片| 激情婷婷亚洲 | 2019天天干天天色 | 玖玖精品在线 | 欧美精品免费视频 | 色婷婷激情网 | av动态图片| 国产精品久久久久久久久久久久久 | 免费久久久久久 | 日韩欧美视频一区二区 | 五月天,com | 免费看成年人 | 日韩视频中文字幕在线观看 | 欧美另类高清 videos | 亚洲欧美日韩精品久久奇米一区 | 日韩在线电影一区二区 | 在线观看av免费观看 | 超碰在线网 | 亚洲精品久久久久中文字幕m男 | 国内精品久久久久影院一蜜桃 | 久久久96| 色综合久久88色综合天天免费 | 不卡的av电影 | 亚洲视频一区二区三区在线观看 | 亚洲毛片视频 | av 一区二区三区 | 麻豆果冻剧传媒在线播放 | 欧美 另类 交| 久久综合婷婷国产二区高清 | 天天亚洲综合 | 久久免费视频8 | 国产精品激情 | 狠狠操天天操 | ww视频在线观看 | 久久久久久免费毛片精品 | 日日弄天天弄美女bbbb | 97成人在线观看 | 99精品国产99久久久久久福利 | 九九色在线 | 精品在线视频一区 | 欧美精品久久久久久久免费 | 91成人小视频 | 99久久精品国产毛片 | 久草在在线视频 | 91成人精品一区在线播放69 | 久草免费手机视频 | 色综合人人 | 黄色大全视频 | 亚洲欧美综合精品久久成人 | 天天天天天天天天操 | 日韩在线观看一区二区 | 91免费看片黄 | 久青草视频 | 在线观看麻豆av | av成人免费在线观看 | 国内精品视频在线 | 成年人电影免费看 | 久久www免费视频 | 超碰国产在线播放 | 精品久久久一区二区 | 中文亚洲欧美日韩 | 天天射天天射 | 狠狠的干狠狠的操 | 999成人精品 | 久久永久视频 | 日韩激情视频在线 | www.com在线观看 | 一区二区三区 中文字幕 | 日韩激情精品 | 亚洲成人xxx | 91视频3p| 国产真实精品久久二三区 | 日本狠狠色| 中文字幕色播 | 国产免费成人 | 人人爽人人插 | 97色资源 | 久草在线资源观看 | 国产二区电影 | 黄色av电影免费观看 | 日韩在线资源 | 亚洲精品福利视频 | 日韩黄色网络 | 中文字幕 91 | 天天爱综合 | 国产精品午夜8888 | 综合久久影院 | 精品在线观看一区二区 | 中文在线字幕免费观看 | 五月婷婷激情五月 | 青青河边草免费直播 | 中日韩在线视频 | 麻豆视频观看 | 伊人精品在线 | 国产精品美女在线观看 | 亚洲精品久久久蜜桃直播 | 国产亚洲免费的视频看 | 欧美影院久久 | 亚洲综合日韩在线 | 91九色在线视频 | 国产精品日韩在线 | 成人久久精品视频 | 国产在线播放一区二区 | 在线电影91 | 亚洲国产视频a | 久久久免费观看 | 日韩一二三区不卡 | 在线播放91 | 日韩欧美精品在线观看 | 日b黄色片| 又爽又黄在线观看 | 欧美成人猛片 | 在线黄av | 国产精品网址在线观看 | 色之综合网 | 黄色在线观看污 | 天天天天射 | 午夜三级大片 | 91精品国产91久久久久福利 | 国产在线999| 91亚洲国产成人久久精品网站 | 玖玖爱国产在线 | a天堂在线看 | 在线免费黄| 欧美最猛性xxxxx免费 | 波多野结衣久久资源 | 日韩免费不卡视频 | 精品一二三四在线 | 亚洲视频456| 在线免费看黄色 | 日韩电影在线一区二区 | 国产精品久久在线 | 成人在线观看免费 | 日本精品一二区 | 久久国产网站 | 国产成人一二三 | www.888av| 久久理伦片 | av在线免费在线观看 | 亚洲精品ww | 欧美成人性战久久 | 午夜视频日本 | 91麻豆精品久久久久久 | 免费福利影院 | 91尤物国产尤物福利在线播放 | 午夜在线看片 | 久久久黄视频 | 婷婷久久丁香 | 亚洲国产精品成人va在线观看 | 99精品福利 | 久久一及片 | 国产高清网站 | 日韩中文在线字幕 | 麻豆久久久久 | 99国产在线观看 | 超碰97人人干 | 中文字幕一区二区三区乱码不卡 | 国产精品对白一区二区三区 | 久久久久久久久久久久av | www.精选视频.com | 亚洲一片黄 | 97超碰免费 | 欧美疯狂性受xxxxx另类 | 一区二区三区免费播放 | 亚洲精品自在在线观看 | 久久经典国产 | 国产精品女同一区二区三区久久夜 | 午夜精品一区二区三区在线观看 | 天天操人 | 国产亚洲无 | 久久久久久久久久久久电影 | 国产精品男女啪啪 | 久草网视频| 日韩免费av在线 | 国产精品久久久久久影院 | 久青草国产在线 | 日日操夜夜操狠狠操 | 免费av福利 | 最近能播放的中文字幕 | 久久成人毛片 | 久99久精品视频免费观看 | 精品国产乱子伦一区二区 | 日韩精品免费 | 日韩精品国产一区 | 亚洲三级在线 | 国产高清视频在线观看 | a成人在线| 亚洲精品视频免费 | 国产男女爽爽爽免费视频 | 天堂在线一区二区三区 | 亚洲高清在线观看视频 | 97视频在线观看视频免费视频 | 在线观看深夜福利 | 亚洲人成免费 | 中国一区二区视频 | 国产999| 国产精品 国产精品 | 中文字幕第一 | av三级av| 亚洲精品国精品久久99热一 | 国产真实在线 | japanese黑人亚洲人4k | 中文字幕 婷婷 | 日韩精品最新在线观看 | 在线观看免费福利 | 玖玖精品在线 | av资源免费在线观看 | 午夜少妇一区二区三区 | 国产不卡免费 | 国精产品满18岁在线 | 99热国产在线 | 国产成人黄色 | 波多野结衣网址 | 国产一区二区三区免费观看视频 | 国产在线国偷精品产拍免费yy | 一级黄视频 | 国产精品观看在线亚洲人成网 | 久久在线精品视频 | 欧美日韩视频在线观看一区二区 | 黄色小说网站在线 | 六月激情久久 | 美女视频免费一区二区 | 婷婷在线综合 | 天天拍夜夜拍 | 黄色在线看网站 | 久久久精品国产一区二区三区 | 日韩电影在线视频 | 色在线免费 | 99re亚洲国产精品 | 91精品国产麻豆国产自产影视 | www.97视频 | 日韩精品短视频 | 免费人成网ww44kk44 | 黄色软件在线观看 | 成人av免费电影 | 国产精品9999| 午夜成人免费影院 | 美女免费视频一区二区 | 日韩在线视频不卡 | 欧美日韩二区三区 | 在线亚洲精品 | 日韩精品一区二区三区在线视频 | 日韩久久久久久久 | 精品91视频| 中文字幕久久精品亚洲乱码 | 亚洲精品资源在线观看 | 亚洲国内精品视频 | www.五月婷| 国产精品96久久久久久吹潮 | 伊色综合久久之综合久久 | av成人动漫 | 久草精品视频在线看网站免费 | 日本午夜在线观看 | 99久视频| 免费黄色a网站 | av免费观看网站 | 一区二区 不卡 | 亚洲国产成人精品久久 | a级国产乱理伦片在线播放 久久久久国产精品一区 | www黄com| 人人玩人人添人人 | 香蕉久草在线 | 最新国产福利 | 中文一区二区三区在线观看 | 天天人人综合 | 国产五月色婷婷六月丁香视频 | 国产999视频在线观看 | 午夜精品一区二区三区在线视频 | 在线观看完整版 | 久草在线99 | 婷婷在线色 | 亚洲精品国产精品久久99 | 日韩成人一级大片 | 成人av片免费观看app下载 | 在线观看岛国av | 久久在线免费观看视频 | 最近中文字幕久久 | 少妇bbbb揉bbbb日本 | 欧美在线视频一区二区三区 | av在线不卡观看 | 日韩有码第一页 | 日本成人黄色片 | 国产精品区二区三区日本 | 99视频播放 | 久久久久北条麻妃免费看 | 亚洲激情小视频 | 免费看av片网站 | av电影在线播放 | 黄色小说视频网站 | 色综合久久五月 | 天天综合五月天 | 久久久人人爽 | 久久av电影 | 成年人视频在线免费 | 日日综合网 | 国产麻豆果冻传媒在线观看 | a天堂最新版中文在线地址 久久99久久精品国产 | 丁香六月婷 | 91九色在线视频 | 午夜精品视频一区二区三区在线看 | 九九九九精品 | 精品国产免费一区二区三区五区 | av大全在线 | 亚洲伊人婷婷 | 久久精品国产免费看久久精品 | 亚洲免费专区 | 天天操天天干天天插 | 日日摸日日 | jizzjizzjizz亚洲 | 久久av一区二区三区亚洲 | 国产高清视频在线播放一区 | 激情五月激情综合网 | www.亚洲激情.com | 午夜精品一区二区三区免费 | 五月天色中色 | 亚洲美女免费视频 | 一区二区三区在线观看中文字幕 | 探花国产在线 | 免费成人在线网站 | 欧美日韩国产一二 | 精品一二三区 | 丁香久久婷婷 | 激情网站免费观看 | 狠狠干狠狠插 | 丁香亚洲 | 亚洲一级免费电影 | 免费高清在线视频一区· | 人人插人人搞 | av电影一区二区 | 国产精品久久久久久久电影 | 超碰个人在线 | 国产视频黄 | 亚洲精品视频在线观看免费视频 | 超碰在线人人 | 婷婷视频在线播放 | 久久久国产精品久久久 | 午夜av电影 | 五月婷婷综 | 中文字幕色播 | 国产欧美最新羞羞视频在线观看 | 91成人天堂久久成人 | 精品久久美女 | 国产一二三区在线观看 | 日韩视| 中文字幕在线播放视频 | 久久经典国产 | 国产视频在线观看一区 | 欧美亚洲另类在线视频 | 日本久久久影视 | 亚洲精品综合欧美二区变态 | 91大神免费视频 | 97在线观看视频免费 | 中文字幕网站视频在线 | 成 人 黄 色 视频 免费观看 | 在线欧美小视频 | 91香蕉国产在线观看软件 | 五月婷婷激情综合 | 日韩伦理一区二区三区av在线 | 不卡日韩av | 日韩黄色软件 | 国产日产欧美在线观看 | 欧美伦理一区 | 欧美日韩国产一区 | 欧美精品久久久久久久久久久 | 国产福利av在线 | 久久精品这里热有精品 | 国产精品999久久久 久产久精国产品 | av一区二区三区在线观看 | 精品久久国产精品 | 高清av中文在线字幕观看1 | 中文字幕网站 | 激情综合中文娱乐网 | 日韩av进入 | 中文字幕亚洲欧美日韩 | 国产精品欧美激情在线观看 | 激情久久综合网 | 久久激情综合 | 人人干网| 在线观看国产 | 精品影院一区二区久久久 | 五月天激情电影 | 久草在线一免费新视频 | 国产字幕在线观看 | 成人中文字幕在线 | 91漂亮少妇露脸在线播放 | 人人爽久久久噜噜噜电影 | 黄色av电影在线 | 91精品在线免费视频 | 97高清免费视频 | 伊人天堂网 | 美腿丝袜av | 少妇按摩av| 亚洲精品在线视频观看 | 国产精品久久久视频 | 成人毛片网 | 欧美大片大全 | 国产精品午夜久久 | 99亚洲天堂 | 在线观看精品一区 | 国产午夜三级一区二区三桃花影视 | 国产精品久久麻豆 | 国产高清视频免费在线观看 | 欧美日韩视频在线一区 | 久草在线91| 色在线中文字幕 | 麻花天美星空视频 | 亚洲国产精品久久久久 | 亚洲伊人天堂 | 91视视频在线直接观看在线看网页在线看 | 91桃色在线观看视频 | 国产精品久久电影观看 | 免费男女羞羞的视频网站中文字幕 | 麻豆av一区二区三区在线观看 | 91成人网在线| 午夜视频免费播放 | 国产精品高潮呻吟久久久久 | av韩国在线 | 久久国产精彩视频 | 久久久久久久久电影 | 色多多视频在线观看 | 中文字幕亚洲情99在线 | a视频在线 | 天天射天天射天天射 | 久久久免费视频播放 | 国产成人久久av免费高清密臂 | 中文字幕乱在线伦视频中文字幕乱码在线 | 四虎在线观看网址 | 国产污视频在线观看 | 一色屋精品视频在线观看 | 亚洲 成人 欧美 | 99久久久国产精品免费观看 | 在线看日韩 | 男女免费av | 国内免费久久久久久久久久久 | 最新av电影网址 | 日本久久视频 | 成人91在线 | 久久草在线免费 | 在线色亚洲 | 国产日韩中文在线 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产玖玖精品视频 | 丁香激情综合国产 | 色婷婷国产在线 | 天天干天天综合 | 欧美日在线观看 | 久久视频在线观看中文字幕 | 91手机视频在线 | 久久国产成人午夜av影院宅 | 天天天干天天天操 | 成人一级免费电影 | 麻豆激情电影 | 中文字幕亚洲情99在线 | 免费男女羞羞的视频网站中文字幕 | 欧美国产日韩一区二区 | 日本黄色免费在线 | 最近日本mv字幕免费观看 | 黄色小说网站在线 | 免费观看日韩av | 精品国产中文字幕 | 国产精品99久久久久久久久 | 高清国产午夜精品久久久久久 | 久久午夜国产 | 久久最新视频 | 在线免费高清一区二区三区 | 亚洲国产一区二区精品专区 | 国产精品福利视频 | 国产精品专区在线 | 亚洲精品黄色 | 五月天亚洲综合 | 日本黄色免费观看 | 中文伊人 | 9ⅰ精品久久久久久久久中文字幕 | 日本最新中文字幕 | 蜜臀久久99精品久久久久久网站 | 中文字幕 国产 一区 | 国产99久久久国产精品成人免费 | 久久试看 | 国产1区2区 | 9在线观看免费高清完整版 玖玖爱免费视频 | 一级一片免费观看 | 日韩欧美精品一区二区三区经典 | 久久久免费国产 | 999日韩| 视频直播国产精品 | 911久久香蕉国产线看观看 | 中文字幕在线播放日韩 | 欧美一级片在线播放 | 国产成人精品日本亚洲999 | 婷婷视频 | 欧美一级特黄aaaaaa大片在线观看 | 免费看的国产视频网站 | 国产午夜一级毛片 | 99久久精 | 久草免费手机视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产精品不卡在线观看 | 国产亚洲成人精品 | 国产99久久精品一区二区300 | 中文字幕色婷婷在线视频 | 波多野结衣在线播放视频 | 国产区网址 | 最新久久久 | 三级黄色三级 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 国产日韩视频在线播放 | 超碰.com | 91最新地址永久入口 | 91在线九色| 在线观看完整版 | 久久久综合 | 国产成人a亚洲精品v | 国产91影视 | 国产精品无av码在线观看 | 日韩精品在线视频 | 精品视频999| 97看片吧| 亚洲欧美日韩一区二区三区在线观看 | 丁香在线观看完整电影视频 | 久久久国际精品 | 午夜久久福利视频 | 91香蕉视频黄色 | 国产精品久久电影观看 | 日韩经典一区二区三区 | 91精品国产综合久久婷婷香蕉 | 天天插天天干天天操 | 色综合欧洲 | 日韩av电影一区 | 99久久久国产精品免费观看 | 在线看一区二区 | 婷婷亚洲五月 | 激情综合五月婷婷 | 亚洲成a人片77777kkkk1在线观看 | 91视频网址入口 | 久久人人爽人人爽人人片 | 成人中文字幕+乱码+中文字幕 | 国产电影黄色av | 又黄又色又爽 | 99re6热在线精品视频 | 黄色大全免费观看 | 色婷婷av国产精品 | 日韩精品一区二区三区电影 | 国产看片 色 | 久久五月婷婷综合 | 美女视频是黄的免费观看 | 精品久久九九 | 久久国产色 | 最新av在线网址 | 国产精品久久久久久久久软件 | 日韩精品第一区 | 精品v亚洲v欧美v高清v | 狂野欧美激情性xxxx欧美 | 国产黄色大片 | 免费在线观看91 | 中文字幕永久 | 精品96久久久久久中文字幕无 | 免费观看黄色12片一级视频 | 在线播放 日韩专区 | 开心激情五月网 | 国产香蕉av | 97天天干 | 欧美一级片免费观看 | 一区二区三区高清在线观看 | a久久免费视频 | 国产黄色av网站 | 欧美一二三视频 | 伊人官网 | 日日夜夜人人精品 | 国产一二区视频 | 国产精品夜夜夜一区二区三区尤 | 日韩特级片 | 成人黄色电影视频 | 午夜12点| 少妇性色午夜淫片aaaze | 国产91九色蝌蚪 | 久久乐九色婷婷综合色狠狠182 | 粉嫩一区二区三区粉嫩91 | 日韩在线视频网 | www.久久爱.cn | 欧美久久久久久久久久久久 | 亚洲一区二区天堂 | 精品视频免费观看 | 97香蕉超级碰碰久久免费软件 | 国产精品久久久777 成人手机在线视频 | 天天天操操操 | 欧美中文字幕第一页 | av理论电影 | 国产三级久久久 | 久草免费看 | 中文字幕在线日 | 91在线播| www.黄色片网站 | 黄色av免费 | 中文字幕在线观看完整版电影 | 99久e精品热线免费 99国产精品久久久久久久久久 | 久久这里精品视频 | 丁香5月婷婷久久 | 免费在线a | a√天堂中文在线 | 日韩免费av网址 | 四虎成人精品 | 99在线视频精品 | av 一区二区三区四区 | 在线免费视频你懂的 | 日日爱av | av高清免费在线 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 超碰人人在 | av电影中文字幕 | 久久久久成人精品免费播放动漫 | 五月香婷 | 在线a人片免费观看视频 | 久久欧美视频 | 久久免费看视频 | 欧美精品中文字幕亚洲专区 | 国产糖心vlog在线观看 | 五月婷在线观看 | 午夜在线免费观看视频 | 亚洲成人在线免费 | 日韩av一区二区三区在线观看 | 欧美精品一区二区三区一线天视频 | 国产91在线观 | 五月天婷亚洲天综合网精品偷 | 国产在线视频一区二区 | 国产资源在线免费观看 | 久久国产精品二国产精品中国洋人 | 亚洲精品午夜久久久久久久久久久 | 久久99亚洲网美利坚合众国 | 精品综合久久 | 亚洲精品综合一二三区在线观看 | 一级特黄aaa大片在线观看 | 在线播放 日韩专区 | 视频一区亚洲 | 精品99免费视频 | 国产一区二区在线观看免费 | 久产久精国产品 | 狠狠色伊人亚洲综合网站色 | 瑞典xxxx性hd极品 | 日本婷婷色 | 久久亚洲私人国产精品 | 国产免费叼嘿网站免费 | 日日色综合 | 久久爱影视i | 日韩视频中文字幕 | 国产高清在线免费 | 国产中文视频 | 337p日本欧洲亚洲大胆裸体艺术 | 国产精品一区二区av影院萌芽 | 99久久er热在这里只有精品66 | 99电影456麻豆 | 欧美日韩免费观看一区=区三区 | 91精品国产91久久久久久三级 | 成人免费观看电影 | 夜夜摸夜夜爽 | 最新中文字幕 | 精品国产电影一区二区 | 欧美在线日韩在线 | 日韩一区二区三区免费视频 | 97久久精品午夜一区二区 | 88av视频| 欧美一级性生活 | 精品久久久久久久久久国产 | 日韩欧美精品一区 | 免费不卡中文字幕视频 | 成人sm另类专区 | 丁香五月亚洲综合在线 | 国产成人精品一区二区三区网站观看 | 午夜少妇av | 天海翼一区二区三区免费 | 国产精品久久久久久久7电影 | 亚洲国产中文在线 | 久久久久久高潮国产精品视 | 国产男女爽爽爽免费视频 | 日韩av美女 | 日韩有色| 午夜精品久久 | 五月激情久久久 | 一区 在线观看 | 亚洲第一av在线播放 | 欧美日韩精品综合 | 91大神精品视频 | 一区二区三区免费在线观看 | 久爱综合 | 午夜久久久久久久 | 91插插插网站 | 顶级欧美色妇4khd | 美女国产免费 | 很黄很污的视频网站 | 欧美日韩国产页 | 丁香六月婷婷开心婷婷网 | 久久久www免费电影网 | 日本久久精 | 毛片一二区 | 久久久久黄色 | 国产97在线看 | 国产亚洲精品免费 | 丁香六月天 | 99久久精品日本一区二区免费 | 亚洲经典中文字幕 | 久久精品成人欧美大片古装 | 天天插天天干天天操 | 国产91精品一区二区绿帽 | 深爱五月激情五月 | av成人在线观看 | 人人爱夜夜操 | 久久免费福利视频 | 成人一级视频在线观看 | 五月婷视频 | 国产一区二区中文字幕 | 亚洲一二三久久 | 国产精品久久久久9999 | 超碰在线天天 | 天天躁天天躁天天躁婷 | 中文字幕电影网 | 欧美日韩性 | 国产精品中文字幕在线 | 成人av在线一区二区 | 亚洲第一区精品 | 欧美日韩中文国产一区发布 | 亚洲综合色丁香婷婷六月图片 | 国产乱码精品一区二区蜜臀 | 欧美不卡视频在线 | 久久精品女人毛片国产 | 午夜精品久久久久久99热明星 | 亚洲欧洲在线视频 | 久久国产片 | 久久久国产精品久久久 | 99 精品 在线 | 久草在线免费新视频 | 美女在线免费视频 | 丁香婷婷色月天 | 黄网站app在线观看免费视频 | 亚洲精品国产免费 | 91在线91拍拍在线91 | 人人擦| 久久精品国产成人 | 亚洲国产日韩欧美 | 超碰人人做 | 日韩毛片在线免费观看 | 草莓视频在线观看免费观看 | av高清网站在线观看 | 91麻豆产精品久久久久久 | 免费视频18| 97精品国产91久久久久久 | 成人黄色影片在线 | 韩日电影在线 |