Enviar pesquisa
Carregar
Solaris 用 Twitterファイルシステムのご紹介
•
1 gostou
•
2,246 visualizações
Kazuyoshi Aizawa
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 46
Baixar agora
Baixar para ler offline
Recomendados
LinuxでZFSを使ってみた
LinuxでZFSを使ってみた
nvsofts
Sphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメント
Go Yamada
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
Hiro H.
The pitch version 2.0
The pitch version 2.0
kevracs
Nota kepada pengarang
Nota kepada pengarang
Swady Guliling
не
не
NataliaSu
Multiple sclerosis
Multiple sclerosis
Vidya Kollu
Manzetoveknofliky.cz
Manzetoveknofliky.cz
Lumír Štěpán
Recomendados
LinuxでZFSを使ってみた
LinuxでZFSを使ってみた
nvsofts
Sphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメント
Go Yamada
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
Hiro H.
The pitch version 2.0
The pitch version 2.0
kevracs
Nota kepada pengarang
Nota kepada pengarang
Swady Guliling
не
не
NataliaSu
Multiple sclerosis
Multiple sclerosis
Vidya Kollu
Manzetoveknofliky.cz
Manzetoveknofliky.cz
Lumír Štěpán
Suplantació de perfils, treball Uatic, Grup raxajoca
Suplantació de perfils, treball Uatic, Grup raxajoca
raxajoca
10. vapor
10. vapor
Sidiane Iltchenco
Government handbook by Juan
Government handbook by Juan
frincine
Lakmini& yasiru wedding
Lakmini& yasiru wedding
Asanka Wijetissa
Key Elements for Building an Engaging, Useful and Sustainable Website
Key Elements for Building an Engaging, Useful and Sustainable Website
Michael Vaughn
Risk assessment
Risk assessment
kevracs
Trotu
Trotu
levanhien
Production sch draft 1 zoe
Production sch draft 1 zoe
kevracs
Hidroclimatologia colombiana
Hidroclimatologia colombiana
KARENANDREINAMOGROVEJO
Music video pitch
Music video pitch
kevracs
The Story of Elias & the Prophets of Baal
The Story of Elias & the Prophets of Baal
AlyiannaBaggins
Presentation1
Presentation1
kevracs
Com realitzar un conte
Com realitzar un conte
Silvia Garcia Fornes
Evaluation question 2
Evaluation question 2
kevracs
Updated Promotion
Updated Promotion
Ying Peach
Survey results
Survey results
kevracs
Angeline-BSc2- Integration with Design Studio 5
Angeline-BSc2- Integration with Design Studio 5
Angeline KH
Keputsn3
Keputsn3
Andre Rian
THEORIES OF ARCHITECTURE & URBANISM [ARC61303] [ARC2224]-Project 1A: Ar. Lum ...
THEORIES OF ARCHITECTURE & URBANISM [ARC61303] [ARC2224]-Project 1A: Ar. Lum ...
Angeline KH
libya
libya
Roze Baida
Fluentdcasual 02-haikanko
Fluentdcasual 02-haikanko
Naotoshi Seo
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
mosa siru
Mais conteúdo relacionado
Destaque
Suplantació de perfils, treball Uatic, Grup raxajoca
Suplantació de perfils, treball Uatic, Grup raxajoca
raxajoca
10. vapor
10. vapor
Sidiane Iltchenco
Government handbook by Juan
Government handbook by Juan
frincine
Lakmini& yasiru wedding
Lakmini& yasiru wedding
Asanka Wijetissa
Key Elements for Building an Engaging, Useful and Sustainable Website
Key Elements for Building an Engaging, Useful and Sustainable Website
Michael Vaughn
Risk assessment
Risk assessment
kevracs
Trotu
Trotu
levanhien
Production sch draft 1 zoe
Production sch draft 1 zoe
kevracs
Hidroclimatologia colombiana
Hidroclimatologia colombiana
KARENANDREINAMOGROVEJO
Music video pitch
Music video pitch
kevracs
The Story of Elias & the Prophets of Baal
The Story of Elias & the Prophets of Baal
AlyiannaBaggins
Presentation1
Presentation1
kevracs
Com realitzar un conte
Com realitzar un conte
Silvia Garcia Fornes
Evaluation question 2
Evaluation question 2
kevracs
Updated Promotion
Updated Promotion
Ying Peach
Survey results
Survey results
kevracs
Angeline-BSc2- Integration with Design Studio 5
Angeline-BSc2- Integration with Design Studio 5
Angeline KH
Keputsn3
Keputsn3
Andre Rian
THEORIES OF ARCHITECTURE & URBANISM [ARC61303] [ARC2224]-Project 1A: Ar. Lum ...
THEORIES OF ARCHITECTURE & URBANISM [ARC61303] [ARC2224]-Project 1A: Ar. Lum ...
Angeline KH
libya
libya
Roze Baida
Destaque
(20)
Suplantació de perfils, treball Uatic, Grup raxajoca
Suplantació de perfils, treball Uatic, Grup raxajoca
10. vapor
10. vapor
Government handbook by Juan
Government handbook by Juan
Lakmini& yasiru wedding
Lakmini& yasiru wedding
Key Elements for Building an Engaging, Useful and Sustainable Website
Key Elements for Building an Engaging, Useful and Sustainable Website
Risk assessment
Risk assessment
Trotu
Trotu
Production sch draft 1 zoe
Production sch draft 1 zoe
Hidroclimatologia colombiana
Hidroclimatologia colombiana
Music video pitch
Music video pitch
The Story of Elias & the Prophets of Baal
The Story of Elias & the Prophets of Baal
Presentation1
Presentation1
Com realitzar un conte
Com realitzar un conte
Evaluation question 2
Evaluation question 2
Updated Promotion
Updated Promotion
Survey results
Survey results
Angeline-BSc2- Integration with Design Studio 5
Angeline-BSc2- Integration with Design Studio 5
Keputsn3
Keputsn3
THEORIES OF ARCHITECTURE & URBANISM [ARC61303] [ARC2224]-Project 1A: Ar. Lum ...
THEORIES OF ARCHITECTURE & URBANISM [ARC61303] [ARC2224]-Project 1A: Ar. Lum ...
libya
libya
Semelhante a Solaris 用 Twitterファイルシステムのご紹介
Fluentdcasual 02-haikanko
Fluentdcasual 02-haikanko
Naotoshi Seo
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
mosa siru
Arukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
Shuji Yamada
Twitterのデータを取得する準備
Twitterのデータを取得する準備
Takeshi Arabiki
オフィスに1台!全文検索Fess
オフィスに1台!全文検索Fess
Shinsuke Sugaya
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
Yuta Kashino
DOO-013_Docker 最新動向と Azure Container Service 入門
DOO-013_Docker 最新動向と Azure Container Service 入門
decode2016
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
Ryutaro YOSHIBA
CloudStack Overview(OSC2012Kansai@Kyoto)
CloudStack Overview(OSC2012Kansai@Kyoto)
Satoshi Shimazaki
Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用
Shinya Nakajima
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
Hiroshi Hayakawa
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Android 開発, 運用時に使いたいライブラリやサービスの紹介
健一 辰濱
クラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニング
Shin Matsumoto
コミュニティ運営とレンタルサーバ
コミュニティ運営とレンタルサーバ
法林浩之
Vagrantでwindows仮想環境を構築しよう
Vagrantでwindows仮想環境を構築しよう
Yuta Matsumura
2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)
Naoki Okino
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
Sotaro Kimura
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
Kazumi IWANAGA
みんなのTerraformで AWSをテラフォーミングさせるぜ
みんなのTerraformで AWSをテラフォーミングさせるぜ
Takamasa Sakai
Semelhante a Solaris 用 Twitterファイルシステムのご紹介
(20)
Fluentdcasual 02-haikanko
Fluentdcasual 02-haikanko
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
Arukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
Twitterのデータを取得する準備
Twitterのデータを取得する準備
オフィスに1台!全文検索Fess
オフィスに1台!全文検索Fess
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
DOO-013_Docker 最新動向と Azure Container Service 入門
DOO-013_Docker 最新動向と Azure Container Service 入門
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
CloudStack Overview(OSC2012Kansai@Kyoto)
CloudStack Overview(OSC2012Kansai@Kyoto)
Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Android 開発, 運用時に使いたいライブラリやサービスの紹介
クラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニング
コミュニティ運営とレンタルサーバ
コミュニティ運営とレンタルサーバ
Vagrantでwindows仮想環境を構築しよう
Vagrantでwindows仮想環境を構築しよう
2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
みんなのTerraformで AWSをテラフォーミングさせるぜ
みんなのTerraformで AWSをテラフォーミングさせるぜ
Solaris 用 Twitterファイルシステムのご紹介
1.
Solaris 用 Twitter
ファイルシステム Kazuyoshi Aizawa (@kaizawa2)
2.
自己紹介 •名前:相澤一賀 @kaizawa2 •お仕事:ソフトウェア開発 •趣味:プログラミング •普段使っている言語: •Java、C •好きなもの •Solaris:特にカーネル周り。ネットワークモジュール、 ドライバ、ファイルシステムなどが好き •Java: 最近
JavaFX 始めました ※この発表内容と私が所属する会社とは関係ありません 2
3.
Twitter ファイルシステムって何すんの?
4.
一言で言うと 「ツイッターのタイムラインを tail コマンドで見たい」 ってことです
5.
つまり。。。 http://youtu.be/4pUrlR4g8eA
6.
Twitter FS の構成 tiwitterfsd • • • ユーザ・プログラム twitter4j
を使ってTwitterと の通信を行う 擬似ファイルのデータ生成 ユーザ空間 /dev/iumfscntl • • カーネル空間 IUMFS カーネル・モジュール ファイルシステムの動作を エミュレート • VFSとユーザ・プログラム の仲介 実際の動作はユーザ・プロ グラムに投げる •
7.
$ > cat
home ユ | ザ 空 間 twitter4j open64("home", O_RDONLY) = 0 … read(0, .., 512) = 512 twitterfsd AbstractTimelineFile.read() ReadRequestHandler.getResponse() カ Solaris 仮想ファイルシステム (VFS) | ネ IUMFS ファイルシステム ル 空 iumfs_lookup() iumfs_read() 間 iumfs_getpage() IUMFS ドライバ iumfscntl_read() iumfs_request_read()
8.
$ > cat
home ユ | ザ 空 間 twitter4j open64("home", O_RDONLY) = 0 … read(0, .., 512) = 512 twitterfsd AbstractTimelineFile.read() ReadRequestHandler.getResponse() カ FD#0 から 512バイトちょ Solaris 仮想ファイルシステム (VFS) | ネ IUMFS ファイルシステム ル 空 iumfs_lookup() iumfs_read() 間 iumfs_getpage() うだい IUMFS ドライバ iumfscntl_read() iumfs_request_read()
9.
$ > cat
home ユ | ザ 空 間 twitter4j open64("home", O_RDONLY) = 0 … read(0, .., 512) = 512 twitterfsd AbstractTimelineFile.read() ReadRequestHandler.getResponse() カ “/kaizawa2test/home” の Solaris 仮想ファイルシステム (VFS) | vnode 教えて! ネ IUMFS ファイルシステム IUMFS ドライバ ル 空 iumfs_lookup() iumfscntl_read() iumfs_read() 間 iumfs_request_read() iumfs_getpage()
10.
$ > cat
home ユ | ザ 空 間 twitter4j open64("home", O_RDONLY) = 0 … read(0, .., 512) = 512 twitterfsd AbstractTimelineFile.read() ReadRequestHandler.getResponse() カ Solaris 仮想ファイルシステム (VFS) この vnode の offset 0 から | ネ 512 バイトちょうだい! ドライバ IUMFS ファイルシステム IUMFS ル 空 iumfs_lookup() iumfscntl_read() iumfs_read() 間 iumfs_request_read() iumfs_getpage()
11.
$ > cat
home ユ | ザ 空 間 twitter4j open64("home", O_RDONLY) = 0 … read(0, .., 512) = 512 twitterfsd AbstractTimelineFile.read() ReadRequestHandler.getResponse() カ Solaris 仮想ファイルシステム (VFS) | ネ この vnode の offset 0 の IUMFS ファイルシステム IUMFS ドライバ ル ページのデータ読んで! 空 iumfs_lookup() iumfscntl_read() iumfs_read() 間 iumfs_request_read() iumfs_getpage()
12.
$ > cat
home ユ | ザ 空 間 twitter4j open64("home", O_RDONLY) = 0 … read(0, .., 512) = 512 twitterfsd AbstractTimelineFile.read() ReadRequestHandler.getResponse() カ Solaris 仮想ファイルシステム (VFS) | ネ readリクエスト置いとくか IUMFS ら読んで∼! ファイルシステム IUMFS ドライバ ル 空 iumfs_lookup() iumfscntl_read() iumfs_read() 間 iumfs_request_read() iumfs_getpage()
13.
$ > cat
home ユ | ザ 空 間 twitter4j open64("home", O_RDONLY) = 0 … read(0, .., 512) = 512 twitterfsd AbstractTimelineFile.read() ReadRequestHandler.getResponse() ドライバからリクエスト来た! カ /kaizawa2test/home の offset 0 Solaris 仮想ファイルシステム (VFS) | から 4KB ちょうだい! ネ IUMFS ファイルシステム IUMFS ドライバ ル 空 iumfs_lookup() iumfscntl_read() iumfs_read() 間 iumfs_request_read() iumfs_getpage()
14.
$ > cat
home ユ kaizawa2test の | ザ Status データちょうだい! 空 open64("home", O_RDONLY) = 0 … 間 read(0, .., 512) = 512 twitter4j twitterfsd AbstractTimelineFile.read() ReadRequestHandler.getResponse() カ Solaris 仮想ファイルシステム (VFS) | ネ IUMFS ファイルシステム ル 空 iumfs_lookup() iumfs_read() 間 iumfs_getpage() IUMFS ドライバ iumfscntl_read() iumfs_request_read()
15.
$ > cat
home ユ | ザ 空 間 twitter4j open64("home", O_RDONLY) = 0 … read(0, .., 512) = 512 twitterfsd AbstractTimelineFile.read() ReadRequestHandler.getResponse() カ 擬似ファイル作成! Solaris 仮想ファイルシステム (VFS) | ネ IUMFS ファイルシステム ル 空 iumfs_lookup() iumfs_read() 間 iumfs_getpage() IUMFS ドライバ iumfscntl_read() iumfs_request_read()
16.
Solaris/illmosでしか動きません。 念のため。。。
17.
超簡単セットアップ • ファイルシステム・モジュール - • wget https://github.com/kaizawa/iumfs/archive/master.zip ./configure make sudo make
install ! ユーザ・プログラム - wget https://github.com/kaizawa/iumfs-twitterfs/archive/master.zip - sudo ./setup_autofs - ./start-twitterfsd ※ 開発パッケージが入っていること前提です # pkg install gcc-45
18.
オートマウントで簡単アカウント管理 オートマウントを使えば、 管理者いらずで Twitter ファイルシステムの アカウント管理ができますよ!!
19.
オートマウントでアカウント設定 http://youtu.be/ijnePVWDiB0
20.
もちろん マニュアルでのマウントもできます。 # /usr/sbin/mount -F
iumfs -o user=kaizawa2test twitterfs://twitter.com /mnt ただし、root ユーザーで。
21.
余談ですが。。。 Solaris では ファイルシステム毎に専用の mount
コマ ンドが用意されています。 /user/share/lib/<ファイルシステム名>/mount
22.
使い方 ー タイムラインを見る home user followers/<アカウント> ホームタイムライン・ファイル 自分の投稿のタイムライン・ファイル フォロワーのタイムライン・ファイルが格納されたデ ィレクトリ フォローしているアカウントのタイムライン・ファイ friends/<アカウント> ルが格納されたディレクトリ retweet_of_me リツイートされた自分の投稿のタイムライン
23.
home タイムライン http://youtu.be/53NYTtGhwLw
24.
friends/followers タイムライン http://youtu.be/OP6w0EJ3EKw
25.
使い方 ー ツイートする post 投稿用ファイル。 replies/<アカウント> リプライ専用投稿ファイル
26.
ツイート投稿 http://youtu.be/Jh0ZrSHc9dg
27.
リプライ投稿 http://youtu.be/Sej-fOZg5S8
28.
実装について
29.
実装について • タイムライン・ファイルの共有 • タイムライン・データのディスクへの書き出し
30.
なぜタイムラインファイル の共有が必要なのか?
31.
• 複数のユーザが同じTwitterアカウントをフォローし ている可能性がある • 自分がフォローしていて、かつ相手からもフォロー してもらっている(両思い) Twitterアカウントがある 可能性がある どちらの場合も、同一のTwitterアカウントの タイムラインデータを保持してしまう Java ヒープの無駄遣い!
32.
さらに。。。 1ユーザの Twitter ログインアカウントだけで 全てのフォロワー/フォローのタイムラインを 取得するのは難しい・・・
33.
https://dev.twitter.com/docs/rate-limiting/1.1/limits … 15分で180 アカウント分取得 一万人フォローしている場合の更新間隔 (10,000 /
180) * 15 = 832分 = 約14時間!
34.
でも、100人のログインユーザがいれば・・・ ・・・・ (10,000 / 180)
* 15 / 100 = 8分 に1回更新される!! かも。(未検証)
35.
※ home タイムラインは Stream
API を使っているので、ほぼリアルタイ ムにツイートを取得できます。 念のため。
36.
なぜタイムラインデータの ディスクへの書き出しが必要なのか?
37.
ユーザモードデーモン Java VM twitterfsd Java Heap タイムラインデータ タイムラインデータ タイムラインデータ タイムラインデータ OutOfMemoryError タイムラインデータ
38.
ユーザモードデーモン Java VM twitterfsd Java Heap タイムラインデータ タイムラインデータ タイムラインデータ タイムラインデータ タイムラインデータ
39.
ユーザモードデーモン Java VM twitterfsd Java Heap タイムラインデータ タイムラインデータ タイムラインデータ タイムラインデータ タイムラインデータ
40.
このバックアップによって、 デーモン再起動時に 以前のタイムラインデータを ディスクから読み込むこともできます
41.
利用アイデア
42.
利用アイデア 1 • syslog 出力先 システム・エラーをメンションで通知 /etc/syslog.conf *.err /twitter/ichiga2test/replies/kaizawa2test!
43.
利用アイデア 2 • cron/at で通知 毎時0分に自分にメンション 0
* * * * echo "時間だよ" > ! /twitter/kaizawa2test/replies/kaizawa2test
44.
ToDo • • • Twitter フォルダのアクセス権 アカのタイムラインの読み取り制限 フォロワーの追加 • echo コマンド、touch
コマンド フォロワーの削除 • (つまりまだできない) rm コマンド タイムライン・ファイルのフォーマットの変更
45.
ご興味いただけたら solaris + twitterfs で検索してみてください。 http://kaizawa2.hatenablog.jp/entry/2014/01/03/201222
46.
Solaris 用 Twitter
ファイルシステム ご清聴ありがとうございました
Baixar agora