成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析Oracle NoSQL Database

數(shù)據(jù)庫 Oracle
本文中,作者對甲骨文最新發(fā)布的Oracle NoSQL Database從數(shù)據(jù)模型、分區(qū)與架構、操作、數(shù)據(jù)一致性等方面進行了分析。

近日Oracle提供了不久前公布的NoSQL數(shù)據(jù)庫的下載,目前只有企業(yè)版,開源的社區(qū)版還沒提供,也就是說還看不到源碼。不過根據(jù)文檔也能大致了解這個NoSQL數(shù)據(jù)庫怎么樣??焖倏戳丝矗偨Y如下。

一、數(shù)據(jù)模型

key包含一到多個major key component和零到多個minor key component,組合起來唯一標準一條記錄。key component為Java String,按對應encoding排序。value則是字節(jié)流。key和value的大小都沒有嚴格限制。

記錄還有版本號,每次更新都產(chǎn)生唯一的新版本號。在put/delete/get操作時,都可以指定要版本號,其中get時用于指定要讀的版本,而 put/delete指定版本號是指當記錄的最新版本還是指定版本時才更新,用于實現(xiàn)原子Compare-and-Swap語義。版本號應該至少是在一個 partition內部是全局唯一的。

二、分區(qū)與架構

兩層架構,客戶端直接到存儲節(jié)點。核心架構是Replication Node和Replication Group,一個Replication Group包含一個可寫的Master Replication Node和多個只讀的replica。master失敗時會failover到某replica。現(xiàn)在發(fā)布的版本暫時還不能動態(tài)調整存儲節(jié)點個數(shù),以后會加。

數(shù)據(jù)按major key hash分區(qū)到partition。這樣擁有相同的major key僅僅minor key不同的多條記錄一定在同一partition,可以提供高效的多記錄操作,且系統(tǒng)還支持原子性的操作這樣的多條記錄。一個Replication Group一般負責多個partition,一個存儲節(jié)點一般負責一個Replication Node,如果調整存儲節(jié)點個數(shù),則以partition為單位來移動數(shù)據(jù)。為方便以后scale-out,應該一開始就多一些partition。

系統(tǒng)底層用的是Berkeley DB Java Edition,用Btree數(shù)據(jù)結構。緩存包含Berkeley DB的緩存和文件系統(tǒng)緩存,不用DIRECT_IO,文檔建議Berkeley DB緩存用于容納Btree的內部節(jié)點,葉節(jié)點用文件系統(tǒng)緩存。另外也提供單機版稱為KVLite。

三、操作

Oracle NoSQL提供的操作比較豐富,主要包括:

1、用于插入或更新記錄的put類操作,包括put/putIfAbsent/putIfPresent/putIfVersion,都要指定一個完整的Key。用途顧名思義就不說了,稍提一點是putIfVersion功能提供了Compare-and-Swap,在處理并發(fā)時很有用

2、用于刪除記錄的delete類操作,包括delete/deleteIfVersion/multiDelete。前兩者要指定完整Key,用途顧名思義。說一下multiDelete,這個操作最多可以指定三個參數(shù),一是必須指定完整的major key,二是可以指定一個由第一個minor key的上下限構成的KeyRange,三是可以指定是刪除子節(jié)點/子孫節(jié)點/父節(jié)點和子節(jié)點/父節(jié)點和子孫節(jié)點等多種Depth模式。

3、用于讀取記錄的get類操作,包括get/multiGet/multiGetIterator/storeIterator。multiGet和 multiDelete一樣可以指定KeyRange和Depth。multiGetIterator用于批量取一個完整major key下的大量記錄,防止占內存過多,可以指定遍歷方向,不保證數(shù)據(jù)是某時刻的一致視圖。storeIterator用于遍歷不完整major key下的大量記錄,甚至遍歷所有記錄。

4、用于批量原子更新多條記錄的execute操作。系統(tǒng)保證這批操作的原子性,限制是操作的記錄必須都擁有相同的major key,且同一條記錄不能操作多次。

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

Oracle NoSQL的數(shù)據(jù)一致性比較靈活精細。就讀取而言,可以指定只從master讀、不管replica是否落后都可以從replica讀、只在 replica落后master時間在某閾值之內時才能從replica讀、只在replica的版本號不小于某指定版本號時才讀。指定版本號的讀一致性可以用于實現(xiàn)read-your-own-write形式的一致性,即保證自己能讀到自己剛寫的數(shù)據(jù)。

就更新而言,可以指定兩方面的策略。一是master要不要等各個replica的應答,這里可以選要所有replica應答、要大多數(shù)replica應答和不等replica應答等3 種。二是數(shù)據(jù)要不要持久化到磁盤,這里可以選不要(更新到內存就可以了)、寫磁盤但不SYNC、寫磁盤且要SYNC等3種。持久化策略可以指定 master和replica分別指定。根據(jù)文檔看似乎沒有用到2PC。

五、系統(tǒng)管理及其它

系統(tǒng)提供命令行或WEB界面的管理工具,管理比較方便??梢詣?chuàng)建snapshot,snapshot只在partition內部一致,不保證全局一致。可以從snapshot恢復。提供將NoSQL Database數(shù)據(jù)導入到Hadoop功能??蛻舳蓑寗邮莏ar包。

六、小結與評價

優(yōu)點:

1、數(shù)據(jù)模型和操作強大。通過由多個key component來構成key并且設計操作時加以支持,Oracle NoSQL實際上不再是純平面的Key-Value模型,而經(jīng)常呈現(xiàn)為一種樹形模型。多一個key component后綴的記錄可以看作是子節(jié)點。系統(tǒng)提供了許多批量操作一個子樹的功能,對比關系模式可以看出這解決了一部分JOIN問題,提高了開發(fā)效率。

2、數(shù)據(jù)一致性靈活精細。讀取和更新都提供了很多一致性選項,可以實現(xiàn)不同的性能和一致性折衷。此外通過版本號,可以支持Compare-and-Swap、Read-your-own-write等語義,為實現(xiàn)并發(fā)正確性提供了便利。

3、支持多記錄原子性操作。

當前版本最主要的問題是不能加存儲節(jié)點,不過相信這個問題不久后會被解決。

原文出處:http://wangyuanzju.blog.163.com/blog/static/130292011919114541710/

【編輯推薦】

  1. Oracle發(fā)布NoSQL數(shù)據(jù)庫
  2. 微軟進軍NoSQL 發(fā)布Trinity數(shù)據(jù)庫
  3. 微軟研究人員:NoSQL需要標準化
  4. MySQL中的NoSQL插件
  5. SQL與NoSQL——MySQL與NoSQL的融合
責任編輯:艾婧 來源: wangyuanzju的博客
相關推薦

2011-11-21 11:19:19

Oracle NoSQ

2009-07-15 10:43:37

MyEclipse D

2013-05-03 00:41:57

大數(shù)據(jù)NoSQL

2010-04-13 17:10:59

Oracle Data

2010-10-21 08:45:19

NoSQL

2010-04-14 14:14:42

Oracle用戶解鎖

2011-10-09 09:38:03

OracleNoSQL

2009-06-09 13:21:32

Oracle Data實現(xiàn)

2009-07-17 16:49:18

iBATIS XML配

2010-04-16 14:39:54

ORACLE鎖

2010-04-16 12:57:20

Spatial數(shù)據(jù)加密

2013-03-26 10:33:50

SaaSNoSQLOracle

2014-04-09 09:55:46

Oracle NoSQ

2010-04-16 16:12:51

jdbc分頁

2009-07-22 08:54:32

Oracle恢復管理器

2009-03-16 13:30:55

腳本數(shù)據(jù)字典Oracle

2009-07-22 15:58:34

JDBC調用Oracl

2010-04-26 10:52:46

Oracle 數(shù)據(jù)庫

2014-06-12 08:48:38

Oracle數(shù)據(jù)庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产亚洲精品精品国产亚洲综合 | 99久久免费精品国产免费高清 | 视频在线观看一区 | 久久久人成影片免费观看 | 91日日| 国产999精品久久久久久绿帽 | 午夜一级做a爰片久久毛片 精品综合 | 欧美黄色免费网站 | 日韩在线播放一区 | 国产视频91在线 | 天天综合永久入口 | 毛片一区二区三区 | 岛国av免费在线观看 | 精品在线一区二区 | 丁香久久| 欧美精品 在线观看 | 国产精品美女www爽爽爽视频 | 日日噜噜噜夜夜爽爽狠狠视频, | 99热碰| 亚洲影视在线 | aacc678成免费人电影网站 | 91久久久久久久久久久久久 | 日韩三级免费观看 | 中文字幕国产一区 | 91成人小视频| 99在线免费观看视频 | 天天色天天射天天干 | 天天躁日日躁狠狠很躁 | 天天干天天操 | 国产成人99久久亚洲综合精品 | 日韩字幕一区 | 国产精品日日夜夜 | 中文字幕不卡在线观看 | 欧美成人猛片aaaaaaa | 中文字幕1区2区3区 日韩在线视频免费观看 | 成人影院av | 黑人巨大精品欧美一区二区免费 | 国产精品免费在线 | 一二区视频| 色888www视频在线观看 | 日韩精品一区二区三区四区视频 |