SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
2.0

pre5

Shunichi Shinohara	

Basho Japan KK	

2013-11-06
	

Riak Meetup Tokyo #3
	

@ Yahoo!JAPAN セミナールーム
	

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
2.0

pre5

=	
  Riak	
  1.x	
  
	
  	
  	
  	
  	
  +	
  アプリ向け機能強化	
  
	
  	
  	
  	
  	
  +	
  さらなる運用の容易さ	
  

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
設計ポリシー
• 運用の容易さ
• 高可用性
• 水平拡張性
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
Riak 1.x
•  Riak	
  1.0	
  
	
  
クラスタ管理	
  
Bitcask	
  /	
  LevelDB	
  
2i	
  /	
  MapReduce	
  

node	
  

node	
  

node	
  

node	
  

node	
  

•  Riak	
  1.x	
  
	
  
クラスタ操作の改善	
  
各種バックプレッシャー	
  
Capability	
  ネゴシエーション	
  

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
Riak 2.0
アプリ向け
機能強化

さらなる
運用の容易さ

全文検索

バケットタイプ

データ型 (CRDT)

セキュリティ

強い整合性

設定ファイル刷新

・・・

・・・

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
注意
• 

Tech	
  Preview	
  (2.0pre5)	
  をベースにしています	
  

• 

2.0	
  正式リリース時には色々変わるかも

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
バケットタイプ
• 

動機	
  
•  キーの名前空間としてのバケット
•  カスタム設定が個別のバケットごとに必要
•  O(1000)のバケットのカスタム設定はネットワークを圧迫

• 

解決策
•  同種のバケットをまとめて管理
•  効率的なクラスタ内情報共有

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
バケットタイプ
• 

明示的に作成し、有効化する

$ riak-admin bucket-type <sub-command>
list
status <type>
activate <type>
create <type> <json>
update <type> <json>
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
バケットタイプ
# 設定を取得
$ curl http://127.0.0.1:8098/types/my-type/props
# タイプ/バケット/キーの3段階でアクセス
$ curl http://127.0.0.1:10018/types/my-type/
buckets/my-bucket/keys/my-key

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
データ型 (CRDT)
• 

動機
•  並列アクセス、並列更新をアプリで考慮、対処する必要があった
•  単純な後勝ち	
  または Vector	
  Clocks	
  以外の対処はアプリの責任	
  

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
データ型 (CRDT)
• 

例:	
  フォローしている人	
  
•  ユーザーの集合、(簡単のため)	
  追加しかできない	
  
•  フォローの追加で並列更新が発生	
  

太郎, 花子	

次郎
太郎

太郎, 花子 更新の衝突
太郎, 花子	

三郎
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.	


太郎, 花子	

????
データ型 (CRDT)
• 

例:	
  フォローしている人	
  
•  ユーザーの集合、(簡単のため)	
  追加しかできない	
  
•  フォローの追加で並列更新が発生	
  
•  衝突の解決はほぼ自明	
  

太郎, 花子	

次郎
太郎

太郎, 花子 更新の衝突
太郎, 花子	

三郎
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.	


太郎, 花子	

次郎, 三郎
アプリの擬似コード
class User
def initialize(following=Set.new):
@following = following
def follow(user):
@following.add(user)
def self.resolve(user1, user2):
merged = user1.following.union(user2.following)
User.new(merged)
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
データ型 (CRDT)
• 

解決策
•  データ型を指定するだけで自動的に衝突解決	
  
カウンター、フラグ(Boolean)、セット、レジスター、	
  
およびそれらの入れ子 (マップ)
•  アプリの設計+開発を簡単にする	
  
•  設計で考慮すること:	
  ライフサイクル、データの肥大化、効率	
  

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
アプリの擬似コード CRDT
class User
def initialize(following=Set.new):
@following = following
def follow(user):
@following.add(user)
def self.resolve(user1, user2):
merged = user1.following.union(user2.following)
User.new(merged)
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
Set データ型を使う
# バケットタイプの設定
$ riak-admin bucket-type create bt-sets
'{"props": {"datatype": "set"}}'
$ riak-admin bucket-type activate bt-sets
# コード (Eralng)
riakc_pb_socket:modify_type(Riakc,
fun(Set) ->
riakc_set:add_element(NewElement, Set)
end, {<<"bt-sets">>, <<"b">>}, <<"k">>, []);
サンプルコード:	
  hKps://gist.github.com/shino/a8da9791926976122b8a	
  
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
セキュリティ: 認証/認可
• 

動機
•  セキュリティでは「穴」がひとつでもあると全体が弱くなる	
  
•  Riak	
  でしか対応出来ないことは Riak	
  で対応する

• 

解決策
•  AuthenScate:	
  誰がアクセスしてきたか	
  
(ユーザ名のみ、ユーザ名+パスワード、ユーザ名+証明書、PAM)
•  Authorize:	
  なににアクセスできるのか
•  Audit:	
  だれがどうアクセスしたか (pre5	
  には入っていない)
•  EncrypSon:	
  MITM	
  排除 (PKI,	
  TLS)	
  

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
セキュリティ: 認証/認可
# 設定
$ riak attach
> application:set_env(riak_core, security, true).
# ユーザ追加
$ riak-admin security add-user andrew
# 経路の追加
$ riak-admin security add-source
all 127.0.0.1/32 trust
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
セキュリティ: 認証/認可
# GET => エラー "401 Unauthorized"
$ curl -k -i --user andrew:foo
https://127.0.0.1:11018/buckets/b/keys/k
# 権限追加 GET+PUT
$ riak-admin security grant
riak_kv.get ON ANY TO andrew
$ riak-admin security grant
riak_kv.put ON ANY TO andrew

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
セキュリティ: 認証/認可
# PUT, GET => 成功
$ curl -X PUT --data 'val' -k -i --user andrew:foo
https://127.0.0.1:11018/buckets/b/keys/k
$ curl -k -i --user andrew:foo
https://127.0.0.1:11018/buckets/b/keys/k
# PUT 権限取り消し
$ riak-admin security revoke
riak_kv.put ON ANY FROM andrew
# GET => 成功, PUT => エラー [コマンド省略]
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
強い整合性
• 

動機
•  これまでは結果整合性の参照+更新のみ、可用性が第一	
  
•  強い整合性が欲しいデータもあり得る (在庫数の管理)	
  

• 

解決策
•  レプリカごとにリーダーを選出、整合性を課す	
  
•  条件付き更新(CAS)、単一レコード、アトミック
•  並列更新は失敗する、部分更新は発生しない	
  
•  	
  参照では最新が見えることを保証 (ダーティーリードがない)	
  
•  「強い」≠「良い」、Riak	
  内で結果整合性とトレードオフ可能になった

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
強い整合性
1.  設定:	
  riak.conf	
  
enable_consensus = true

キーなし (最初の状態)	


2.  設定:	
  bucket	
  type	
  
'{"props": {"consistent": true}}'

3. PUT成功

3.  PUT	
  =>	
  成功	
  
4.  GET	
  せずにもう一度 PUT	
  =>	
  エラー	
  
5.  GET	
  してから	
  PUT	
  =>	
  成功	
  

ReadModify-Put	


4. PUTエラー

6.  古い GET	
  を元に PUT	
  する =>	
  エラー

5. PUT成功

6. PUTエラー
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
設定ファイル刷新
• 

動機
•  あまり一般的ではない設定ファイル書式	
  
•  複数に分かれていた	
  

• 

解決策
•  1ファイルに統合	
  
•  1行に1項目	
  
•  grep,	
  sed	
  などとの親和性が高い

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
設定ファイル刷新
{riak_kv, [
{anti_entropy, {on, []}},
{anti_entropy_build_limit, {1, 3600000}},
{anti_entropy_expire, 604800000}
]},
anti_entropy = on
anti_entropy.build_limit.number = 1
anti_entropy.build_limit.per_timespan = 1h
anti_entropy.expire = 1w
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
参考
• 

全般	
  
•  ブログ	
  [日本語]	
  
hKp://basho.co.jp/introducing-­‐riak-­‐2-­‐0-­‐data-­‐types-­‐strong-­‐consistency-­‐full-­‐text-­‐search-­‐
and-­‐much-­‐more/	
  
•  ブログ	
  [英語]	
  hKp://basho.com/introducing-­‐riak-­‐2-­‐0/	
  
•  RICON	
  West	
  2013	
  ビデオ hKp://ricon.io/west2013.html	
  
•  ビルド済みパッケージ:	
  hKp://docs.basho.com/riak/2.0.0pre5/downloads/	
  

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
参考
• 

バケットタイプ	
  
•  RICON	
  スライド:	
  
hKps://speakerdeck.com/jrwest/controlled-­‐epidemics-­‐riaks-­‐new-­‐gossip-­‐protocol-­‐and-­‐
metadata-­‐store	
  
•  提案+議論:	
  hKps://github.com/basho/riak/issues/362	
  

• 

データ型 (CRDT)	
  
•  RICON	
  スライド:	
  hKps://speakerdeck.com/lenary/crdts-­‐an-­‐update-­‐or-­‐just-­‐a-­‐put	
  
•  いろいろな型:	
  hKps://gist.github.com/russelldb/7316f83ddd38965d9f76	
  
•  さらに詳細:	
  hKps://gist.github.com/russelldb/f92f44bdg619e089a4d	
  

	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
参考
• 

セキュリティ:	
  認証/認可	
  
•  提案+議論:	
  hKps://github.com/basho/riak/issues/355	
  
•  HTTP	
  の例:	
  hKps://gist.github.com/Vagabond/05b7dc8ae6d3ca4af6c2	
  
•  PB	
  の例:	
  hKps://gist.github.com/Vagabond/6222793a1d352f1ccdd2	
  

• 

強い整合性	
  
•  RICON	
  スライド:	
  
hKps://speakerdeck.com/jtuple/ricon-­‐west-­‐2012-­‐bringing-­‐consistency-­‐to-­‐riak-­‐part-­‐2	
  
•  開発ブランチ:	
  hKps://github.com/basho/riak_ensemble/tree/jdb-­‐wip-­‐2.0	
  

• 

設定ファイル刷新	
  
•  Wiki:	
  hKps://github.com/basho/cuKlefish/wiki	
  
•  hKps://github.com/joedevivo/ricon/blob/master/cuKlefish.md	
  
	

©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
Basho Technologies

2013-11-06

Riak Meetup #3

Mais conteúdo relacionado

Mais procurados

[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...Insight Technology, Inc.
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQLyoyamasaki
 
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten Group, Inc.
 
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料yoyamasaki
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)Shinya Sugiyama
 
Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL ServiceShinya Sugiyama
 
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi MiyachiInsight Technology, Inc.
 
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...Masahiro Tomisugi
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性Ohyama Masanori
 
MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月yoyamasaki
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアShinya Sugiyama
 
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama [D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama Insight Technology, Inc.
 
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018Toru Makabe
 
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...Insight Technology, Inc.
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQLRyusuke Kajiyama
 

Mais procurados (20)

[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQL
 
Riakを利用したパーソナライズ事例
Riakを利用したパーソナライズ事例Riakを利用したパーソナライズ事例
Riakを利用したパーソナライズ事例
 
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With Xtrabackup
 
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
 
DataGuard体験記
DataGuard体験記DataGuard体験記
DataGuard体験記
 
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみるOracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
 
Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL Service
 
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
 
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
 
MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストア
 
Riak事始め&デモ
Riak事始め&デモRiak事始め&デモ
Riak事始め&デモ
 
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama [D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
 
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
 
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
 
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 

Semelhante a Riak 2.0 pre5 @ Riak Meetup #3

Autonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションAutonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションオラクルエンジニア通信
 
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji ShinkuboD22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji ShinkuboInsight Technology, Inc.
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかChihiro Ito
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...Insight Technology, Inc.
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報dstn
 
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版Makoto Sato
 
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかたTomoyuki Oota
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーMasaya Ishikawa
 
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~griddb
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとInsight Technology, Inc.
 
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...Insight Technology, Inc.
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要yoyamasaki
 
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama Insight Technology, Inc.
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2オラクルエンジニア通信
 

Semelhante a Riak 2.0 pre5 @ Riak Meetup #3 (20)

Autonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションAutonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーション
 
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji ShinkuboD22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
 
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
 
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
 
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
 
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
 
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
 
Oracle Database Applianceのご紹介(詳細)
Oracle Database Applianceのご紹介(詳細)Oracle Database Applianceのご紹介(詳細)
Oracle Database Applianceのご紹介(詳細)
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要
 
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
 
Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 

Riak 2.0 pre5 @ Riak Meetup #3

  • 1. 2.0 pre5 Shunichi Shinohara Basho Japan KK 2013-11-06 Riak Meetup Tokyo #3 @ Yahoo!JAPAN セミナールーム ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 2. 2.0 pre5 =  Riak  1.x            +  アプリ向け機能強化            +  さらなる運用の容易さ   ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 4. Riak 1.x •  Riak  1.0     クラスタ管理   Bitcask  /  LevelDB   2i  /  MapReduce   node   node   node   node   node   •  Riak  1.x     クラスタ操作の改善   各種バックプレッシャー   Capability  ネゴシエーション   ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 6. 注意 •  Tech  Preview  (2.0pre5)  をベースにしています   •  2.0  正式リリース時には色々変わるかも ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 7. バケットタイプ •  動機   •  キーの名前空間としてのバケット •  カスタム設定が個別のバケットごとに必要 •  O(1000)のバケットのカスタム設定はネットワークを圧迫 •  解決策 •  同種のバケットをまとめて管理 •  効率的なクラスタ内情報共有 ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 8. バケットタイプ •  明示的に作成し、有効化する $ riak-admin bucket-type <sub-command> list status <type> activate <type> create <type> <json> update <type> <json> ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 9. バケットタイプ # 設定を取得 $ curl http://127.0.0.1:8098/types/my-type/props # タイプ/バケット/キーの3段階でアクセス $ curl http://127.0.0.1:10018/types/my-type/ buckets/my-bucket/keys/my-key ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 10. データ型 (CRDT) •  動機 •  並列アクセス、並列更新をアプリで考慮、対処する必要があった •  単純な後勝ち  または Vector  Clocks  以外の対処はアプリの責任   ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 11. データ型 (CRDT) •  例:  フォローしている人   •  ユーザーの集合、(簡単のため)  追加しかできない   •  フォローの追加で並列更新が発生   太郎, 花子 次郎 太郎 太郎, 花子 更新の衝突 太郎, 花子 三郎 ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED. 太郎, 花子 ????
  • 12. データ型 (CRDT) •  例:  フォローしている人   •  ユーザーの集合、(簡単のため)  追加しかできない   •  フォローの追加で並列更新が発生   •  衝突の解決はほぼ自明   太郎, 花子 次郎 太郎 太郎, 花子 更新の衝突 太郎, 花子 三郎 ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED. 太郎, 花子 次郎, 三郎
  • 13. アプリの擬似コード class User def initialize(following=Set.new): @following = following def follow(user): @following.add(user) def self.resolve(user1, user2): merged = user1.following.union(user2.following) User.new(merged) ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 14. データ型 (CRDT) •  解決策 •  データ型を指定するだけで自動的に衝突解決   カウンター、フラグ(Boolean)、セット、レジスター、   およびそれらの入れ子 (マップ) •  アプリの設計+開発を簡単にする   •  設計で考慮すること:  ライフサイクル、データの肥大化、効率   ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 15. アプリの擬似コード CRDT class User def initialize(following=Set.new): @following = following def follow(user): @following.add(user) def self.resolve(user1, user2): merged = user1.following.union(user2.following) User.new(merged) ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 16. Set データ型を使う # バケットタイプの設定 $ riak-admin bucket-type create bt-sets '{"props": {"datatype": "set"}}' $ riak-admin bucket-type activate bt-sets # コード (Eralng) riakc_pb_socket:modify_type(Riakc, fun(Set) -> riakc_set:add_element(NewElement, Set) end, {<<"bt-sets">>, <<"b">>}, <<"k">>, []); サンプルコード:  hKps://gist.github.com/shino/a8da9791926976122b8a   ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 17. セキュリティ: 認証/認可 •  動機 •  セキュリティでは「穴」がひとつでもあると全体が弱くなる   •  Riak  でしか対応出来ないことは Riak  で対応する •  解決策 •  AuthenScate:  誰がアクセスしてきたか   (ユーザ名のみ、ユーザ名+パスワード、ユーザ名+証明書、PAM) •  Authorize:  なににアクセスできるのか •  Audit:  だれがどうアクセスしたか (pre5  には入っていない) •  EncrypSon:  MITM  排除 (PKI,  TLS)   ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 18. セキュリティ: 認証/認可 # 設定 $ riak attach > application:set_env(riak_core, security, true). # ユーザ追加 $ riak-admin security add-user andrew # 経路の追加 $ riak-admin security add-source all 127.0.0.1/32 trust ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 19. セキュリティ: 認証/認可 # GET => エラー "401 Unauthorized" $ curl -k -i --user andrew:foo https://127.0.0.1:11018/buckets/b/keys/k # 権限追加 GET+PUT $ riak-admin security grant riak_kv.get ON ANY TO andrew $ riak-admin security grant riak_kv.put ON ANY TO andrew ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 20. セキュリティ: 認証/認可 # PUT, GET => 成功 $ curl -X PUT --data 'val' -k -i --user andrew:foo https://127.0.0.1:11018/buckets/b/keys/k $ curl -k -i --user andrew:foo https://127.0.0.1:11018/buckets/b/keys/k # PUT 権限取り消し $ riak-admin security revoke riak_kv.put ON ANY FROM andrew # GET => 成功, PUT => エラー [コマンド省略] ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 21. 強い整合性 •  動機 •  これまでは結果整合性の参照+更新のみ、可用性が第一   •  強い整合性が欲しいデータもあり得る (在庫数の管理)   •  解決策 •  レプリカごとにリーダーを選出、整合性を課す   •  条件付き更新(CAS)、単一レコード、アトミック •  並列更新は失敗する、部分更新は発生しない   •   参照では最新が見えることを保証 (ダーティーリードがない)   •  「強い」≠「良い」、Riak  内で結果整合性とトレードオフ可能になった ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 22. 強い整合性 1.  設定:  riak.conf   enable_consensus = true キーなし (最初の状態) 2.  設定:  bucket  type   '{"props": {"consistent": true}}' 3. PUT成功 3.  PUT  =>  成功   4.  GET  せずにもう一度 PUT  =>  エラー   5.  GET  してから  PUT  =>  成功   ReadModify-Put 4. PUTエラー 6.  古い GET  を元に PUT  する =>  エラー 5. PUT成功 6. PUTエラー ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 23. 設定ファイル刷新 •  動機 •  あまり一般的ではない設定ファイル書式   •  複数に分かれていた   •  解決策 •  1ファイルに統合   •  1行に1項目   •  grep,  sed  などとの親和性が高い ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 24. 設定ファイル刷新 {riak_kv, [ {anti_entropy, {on, []}}, {anti_entropy_build_limit, {1, 3600000}}, {anti_entropy_expire, 604800000} ]}, anti_entropy = on anti_entropy.build_limit.number = 1 anti_entropy.build_limit.per_timespan = 1h anti_entropy.expire = 1w ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 25. 参考 •  全般   •  ブログ  [日本語]   hKp://basho.co.jp/introducing-­‐riak-­‐2-­‐0-­‐data-­‐types-­‐strong-­‐consistency-­‐full-­‐text-­‐search-­‐ and-­‐much-­‐more/   •  ブログ  [英語]  hKp://basho.com/introducing-­‐riak-­‐2-­‐0/   •  RICON  West  2013  ビデオ hKp://ricon.io/west2013.html   •  ビルド済みパッケージ:  hKp://docs.basho.com/riak/2.0.0pre5/downloads/   ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 26. 参考 •  バケットタイプ   •  RICON  スライド:   hKps://speakerdeck.com/jrwest/controlled-­‐epidemics-­‐riaks-­‐new-­‐gossip-­‐protocol-­‐and-­‐ metadata-­‐store   •  提案+議論:  hKps://github.com/basho/riak/issues/362   •  データ型 (CRDT)   •  RICON  スライド:  hKps://speakerdeck.com/lenary/crdts-­‐an-­‐update-­‐or-­‐just-­‐a-­‐put   •  いろいろな型:  hKps://gist.github.com/russelldb/7316f83ddd38965d9f76   •  さらに詳細:  hKps://gist.github.com/russelldb/f92f44bdg619e089a4d   ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.
  • 27. 参考 •  セキュリティ:  認証/認可   •  提案+議論:  hKps://github.com/basho/riak/issues/355   •  HTTP  の例:  hKps://gist.github.com/Vagabond/05b7dc8ae6d3ca4af6c2   •  PB  の例:  hKps://gist.github.com/Vagabond/6222793a1d352f1ccdd2   •  強い整合性   •  RICON  スライド:   hKps://speakerdeck.com/jtuple/ricon-­‐west-­‐2012-­‐bringing-­‐consistency-­‐to-­‐riak-­‐part-­‐2   •  開発ブランチ:  hKps://github.com/basho/riak_ensemble/tree/jdb-­‐wip-­‐2.0   •  設定ファイル刷新   •  Wiki:  hKps://github.com/basho/cuKlefish/wiki   •  hKps://github.com/joedevivo/ricon/blob/master/cuKlefish.md   ©2013 BASHO TECHNOLOGIES INC. ALL RIGHTS RESERVED.