Enviar pesquisa
Carregar
Datomic&datalog紹介
•
Transferir como PPT, PDF
•
6 gostaram
•
3,073 visualizações
あしたのオープンソース研究所
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 23
Baixar agora
Recomendados
Software-company Transformation
Software-company Transformation
Yasuharu Nishi
KafkaとPulsar
KafkaとPulsar
Yahoo!デベロッパーネットワーク
Blazor WebAssembly と Windows Forms でのロジック共有例
Blazor WebAssembly と Windows Forms でのロジック共有例
Koichi Ota
Paradigm shifts in QA for AI products
Paradigm shifts in QA for AI products
Yasuharu Nishi
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
Developers Summit
継続的インテグレーションとテストの話
継続的インテグレーションとテストの話
Preferred Networks
Docker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
次世代ゲームにおける自動生成技術
次世代ゲームにおける自動生成技術
Youichiro Miyake
Recomendados
Software-company Transformation
Software-company Transformation
Yasuharu Nishi
KafkaとPulsar
KafkaとPulsar
Yahoo!デベロッパーネットワーク
Blazor WebAssembly と Windows Forms でのロジック共有例
Blazor WebAssembly と Windows Forms でのロジック共有例
Koichi Ota
Paradigm shifts in QA for AI products
Paradigm shifts in QA for AI products
Yasuharu Nishi
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
Developers Summit
継続的インテグレーションとテストの話
継続的インテグレーションとテストの話
Preferred Networks
Docker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
次世代ゲームにおける自動生成技術
次世代ゲームにおける自動生成技術
Youichiro Miyake
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
Shuntaro Saiba
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
Makoto Nonaka
なぜアジャイルなのですか?改めて考察するウォーターフォールとの違い
なぜアジャイルなのですか?改めて考察するウォーターフォールとの違い
Yoichi Tamamaki
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
Developers Summit
PHPの今とこれから2022
PHPの今とこれから2022
Rui Hirokawa
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
Kohei Tokunaga
.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発
Fujio Kojima
クラウドを取り巻くリニア配信技術
クラウドを取り巻くリニア配信技術
Masashi Ito
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
Yusuke Suzuki
RancherとGitOps的な話
RancherとGitOps的な話
YASUKAZU NAGATOMI
C#とILとネイティブと
C#とILとネイティブと
信之 岩永
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
infinite_loop
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
Jenkinsfileのlintで救える命がある
Jenkinsfileのlintで救える命がある
Jumpei Miyata
Red5
Red5
あしたのオープンソース研究所
Mongo db + xsd:xml(20130219)
Mongo db + xsd:xml(20130219)
Michael Nguyen
Mais conteúdo relacionado
Mais procurados
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
Shuntaro Saiba
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
Makoto Nonaka
なぜアジャイルなのですか?改めて考察するウォーターフォールとの違い
なぜアジャイルなのですか?改めて考察するウォーターフォールとの違い
Yoichi Tamamaki
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
Developers Summit
PHPの今とこれから2022
PHPの今とこれから2022
Rui Hirokawa
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
Kohei Tokunaga
.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発
Fujio Kojima
クラウドを取り巻くリニア配信技術
クラウドを取り巻くリニア配信技術
Masashi Ito
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
Yusuke Suzuki
RancherとGitOps的な話
RancherとGitOps的な話
YASUKAZU NAGATOMI
C#とILとネイティブと
C#とILとネイティブと
信之 岩永
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
infinite_loop
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
Jenkinsfileのlintで救える命がある
Jenkinsfileのlintで救える命がある
Jumpei Miyata
Mais procurados
(20)
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
なぜアジャイルなのですか?改めて考察するウォーターフォールとの違い
なぜアジャイルなのですか?改めて考察するウォーターフォールとの違い
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
PHPの今とこれから2022
PHPの今とこれから2022
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発
クラウドを取り巻くリニア配信技術
クラウドを取り巻くリニア配信技術
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
イベント・ソーシングを知る
イベント・ソーシングを知る
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
RancherとGitOps的な話
RancherとGitOps的な話
C#とILとネイティブと
C#とILとネイティブと
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
Twitterのsnowflakeについて
Twitterのsnowflakeについて
Jenkinsfileのlintで救える命がある
Jenkinsfileのlintで救える命がある
Destaque
Red5
Red5
あしたのオープンソース研究所
Mongo db + xsd:xml(20130219)
Mongo db + xsd:xml(20130219)
Michael Nguyen
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
Insight Technology, Inc.
MongoDB インサイド SaaS型業務アプリケーション
MongoDB インサイド SaaS型業務アプリケーション
Yuki Ishikawa
OpenStack Congress Deep Dive
OpenStack Congress Deep Dive
masahito12
Kadecot概要
Kadecot概要
sonycsl
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
Yoshitaka Mori
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
Co-graph Inc.
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会
Yu Shibatsuji
解題:私がJavaからCsharpに乗り換えた10の理由
解題:私がJavaからCsharpに乗り換えた10の理由
Kentaro Inomata
Apache Hive 紹介
Apache Hive 紹介
あしたのオープンソース研究所
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
AdvancedTechNight
Meteor js
Meteor js
VinayRamappa
Redis at Moovit
Redis at Moovit
Redis Labs
ReactJS Mixins
ReactJS Mixins
Bradley Gore
KeyNote Connecting Up Conference
KeyNote Connecting Up Conference
Beth Kanter
NHS presentation
NHS presentation
Sajed Hussain
Integrating Social Media into Your Communications Strategy
Integrating Social Media into Your Communications Strategy
Beth Kanter
The Case for React.js and ClojureScript
The Case for React.js and ClojureScript
Murilo Pereira
Destaque
(20)
Red5
Red5
Mongo db + xsd:xml(20130219)
Mongo db + xsd:xml(20130219)
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
MongoDB インサイド SaaS型業務アプリケーション
MongoDB インサイド SaaS型業務アプリケーション
OpenStack Congress Deep Dive
OpenStack Congress Deep Dive
Kadecot概要
Kadecot概要
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会
解題:私がJavaからCsharpに乗り換えた10の理由
解題:私がJavaからCsharpに乗り換えた10の理由
Apache Hive 紹介
Apache Hive 紹介
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
Meteor js
Meteor js
Redis at Moovit
Redis at Moovit
ReactJS Mixins
ReactJS Mixins
KeyNote Connecting Up Conference
KeyNote Connecting Up Conference
NHS presentation
NHS presentation
Integrating Social Media into Your Communications Strategy
Integrating Social Media into Your Communications Strategy
The Case for React.js and ClojureScript
The Case for React.js and ClojureScript
Semelhante a Datomic&datalog紹介
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Chihiro Ito
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
オラクルエンジニア通信
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
じゅん なかざ
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
terurou
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
Recruit Technologies
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
Recruit Technologies
flow による型のある世界入門
flow による型のある世界入門
sairoutine
Lithium Labo #1
Lithium Labo #1
Yusuke Ando
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
David Buck
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
Insight Technology, Inc.
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
Nginx
Nginx
Soichi Takamura
BPStudy20121221
BPStudy20121221
Shinichiro Takezaki
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
Insight Technology, Inc.
Japan it week_アプリケーション開発に最適なクラウド
Japan it week_アプリケーション開発に最適なクラウド
オラクルエンジニア通信
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
Shumpei Shiraishi
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
NilOne Ltd.
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
dstn
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
Insight Technology, Inc.
Semelhante a Datomic&datalog紹介
(20)
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
flow による型のある世界入門
flow による型のある世界入門
Lithium Labo #1
Lithium Labo #1
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Nginx
Nginx
BPStudy20121221
BPStudy20121221
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
Japan it week_アプリケーション開発に最適なクラウド
Japan it week_アプリケーション開発に最適なクラウド
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
Mais de あしたのオープンソース研究所
Friendica_28th_AshitanoKen
Friendica_28th_AshitanoKen
あしたのオープンソース研究所
Apache UIMA
Apache UIMA
あしたのオープンソース研究所
Flume
Flume
あしたのオープンソース研究所
Gephi Quick Start (Japanese)
Gephi Quick Start (Japanese)
あしたのオープンソース研究所
Gephi Tutorial Visualization (Japanese)
Gephi Tutorial Visualization (Japanese)
あしたのオープンソース研究所
Cassandra v0.6-siryou
Cassandra v0.6-siryou
あしたのオープンソース研究所
MongoDB
MongoDB
あしたのオープンソース研究所
Rails.20110405
Rails.20110405
あしたのオープンソース研究所
S4
S4
あしたのオープンソース研究所
machine learning & apache mahout
machine learning & apache mahout
あしたのオープンソース研究所
20100831.あしたの研第14回座談会moses.スライド
20100831.あしたの研第14回座談会moses.スライド
あしたのオープンソース研究所
Cassandra 分散データベース
Cassandra 分散データベース
あしたのオープンソース研究所
Mais de あしたのオープンソース研究所
(12)
Friendica_28th_AshitanoKen
Friendica_28th_AshitanoKen
Apache UIMA
Apache UIMA
Flume
Flume
Gephi Quick Start (Japanese)
Gephi Quick Start (Japanese)
Gephi Tutorial Visualization (Japanese)
Gephi Tutorial Visualization (Japanese)
Cassandra v0.6-siryou
Cassandra v0.6-siryou
MongoDB
MongoDB
Rails.20110405
Rails.20110405
S4
S4
machine learning & apache mahout
machine learning & apache mahout
20100831.あしたの研第14回座談会moses.スライド
20100831.あしたの研第14回座談会moses.スライド
Cassandra 分散データベース
Cassandra 分散データベース
Datomic&datalog紹介
1.
Copyright © Infoscience
Corporation. All rights reserved. Datomic と Datalog インフォサイエンス株式会社 永江 哲朗
2.
Copyright © Infoscience Corporation.
All rights Datomic, Datalog Datomic はオープンソースではありませんが、技術的に面白そうでしたので今回取 り上げました。 また、 Datomic で使われている Datalog は Prolog の流れをくむクエリ言語です。
3.
Copyright © Infoscience Corporation.
All rights Datomic とは ● Datomic の目標 ・堅牢な情報モデルの提供。 ・冗長でスケーラブルなストレージシステムの利用 ・ ACID トランザクションと一貫性の提供 ・アプリケーションでの宣言的なデータプログラミング 【比較】 従来の RDBMS (MySQL, PostgreSQL 等 ) → 関係モデルにある種の更新のセマンティックを組み合わせたモデルをサポー トする。 NoSQL (HBase, Amazon Dynamo DB, Cassandra 等 ) → 自らが扱う情報についてほとんど何も知らず、キーによって BLOB を保持す るだけで、結果の一貫性を保証する。
4.
Copyright © Infoscience Corporation.
All rights Datomic とは 設計者: Rich Hickey さん Clojure(JVM 上で動く Lisp 系言語) の作者
5.
Copyright © Infoscience Corporation.
All rights 設計のコンセプト ● Datomic の設計のコンセプト (1) 単純さと合成。 システムはひとつのことを行うサービスを複数組み合わせて構成するべきであり、サービスは 互いを知っているべきでない。ストレージやキャッシュのような領域には良く考えられたシンプ ルなコンポーネントがすでにあり、統合可能である。 (2) ストレージと問い合わせのスケーラビリティと弾力性。 事前の構成なしで動的にマシンを追加したり削除したりすることでストレージや問い合わせの能 力を大きくしたり小さくしたりできるべき。 (3) 配置場所の柔軟性。 あるコンポーネントは別のコンポーネントのある場所を気にしない。 (4) 全般的な不変性。 プログラミングで更新をするというのは時間が経過したということを表す。ほとんどのプログラ ミングは不変値を使って行われるべき。 (5) インターフェイスとしてのデータ。 システムはプログラミング可能であるべき。そのためには主要なインターフェイスはデータ駆動 であるべきで、複雑な構文であってはならない。
6.
Copyright © Infoscience Corporation.
All rights Datomic の論理モデル ・ Datomic の論理モデル ・ストレージ ・トランザクション コーディネータはトランザクションをシリ アライズして、 ACID 特性を保証し、情報を ストレージに書き込みます。 ・インデキシング ・アプリケーションデータモデルと問い合わせ アプリケーションサーバ層から見ると Datomic はメモリ内の値のように見えます。 データベースはエンティティとその属性が形 成するグラフのように見えます。 ・キャッシュ Datomic 自体がキャッシュを管理してイン デックスセグメントをキャッシュして、イン デックスセグメントをストレージからメモリ やアプリケーションのプロセスに展開します。
7.
Copyright © Infoscience Corporation.
All rights Datomic のアーキテクチャー ・ Datomic のアーキテクチャー ・ピア REST サーバー ・ピアライブラリ ・トランザクター ・ memchache (optional) ・ストレージサービス ストレージとトランザクション を分けているところ、インデッ クスとキャッシュをピアにもた せていることが面白いと思いま す。
8.
Copyright © Infoscience Corporation.
All rights ストレージ ● Datomic で使えるストレージサービス (1) インプロセスのメモリ ( ストレージではない ) 。 Datomic は完全にメモリ 内で動かすことができます。 free 版はこれしか使えないので、 Datomic を 実質的に商用で使えるのは有料の Pro 版のみとなります。 (2) SQL 。 JDBC が使える SQL データベースであればストレージとして利用 できます。 ( Pro edition)※ PostgreSQL, MySQL, Oracle (3) キー / バリューストア。 DynamoDB のような次世代分散キー / バリュース トアは Datomic に向いています。 ( Pro edition)※ DynamoDB, Riak, couchbase (4) メモリグリッド。冗長メモリが十分丈夫であれば Infinispan のような分散 データグリッドで利用できます。 ( Pro edition)※ ( データグリッド : 複数サーバにまたがって存在するデータ・オブジェク トを単一物理メモリ上で効率的に処理するためのミドルウェア ( はてな キーワードより ) 。 Infinispan: JbossAS の内部で使用されるデータグリッドプラットフォー ムです )
9.
Copyright © Infoscience Corporation.
All rights ピアライブラリ ● ピアライブラリ データベースの値を表すコードや接続のコード、メモリインデックスや問い合 ‘ ’わせエンジンは ピア と呼ばれる JVM のライブラリで提供されます。このライ ブラリが動作するアプリケーションサーバはデータベースサーバーと同等の機 能を持つようになるので、ピアと名付られました。 このライブラリは Java 、 Clojure 、 Scala 、 JRuby 、 Groovy など JVM 言語 で利用できる Java API を持ちます。ピアは直接 ( 読み取り専用で ) ストレージ にアクセスします。 また、インデックスセグメントのキャッシュを持ちます。このキャッシュの中 でインデックスセグメントは JVM オブジェクトに展開されています。
10.
Copyright © Infoscience Corporation.
All rights トランザクター ● トランザクター トランザクターはトランザクションのコーディネーション専用のプロセスです。 アプリケーションサーバのピアから接続を受け付けます。 これらの接続からトランザクションを受け付け、シリアライズして、ストレー ジにログセグメントをコミットし、接続しているすべてのピアに新情報をブロ ードキャストします。
11.
Copyright © Infoscience Corporation.
All rights 構造と表現 ・データベースは、リレーション、列とドキュメント等、そのモデルの下部に ある基本ユニットを持ちます。 Datomic のユニットは、 Datom と呼ばれます 。 Datom は以下のコンポーネントを持ちます。 ・ Entity ( エンティティ ; データの単位 ) ・ Attribute ( 属性 ) ・ Value ( 値 ) ・ Transaction ( データベース時間 ) ・ Add/Retract ( 追加 / 取り消し ) ※ RDF(Resource Description Framework ( リソース・ディスクリプション・ フレームワーク ) ステートメントの Subject/Predicate/Object データモデルと 明らかに似ています。ただし、時間の経過を表す概念や取り消しの表現が Datomic では追加になっています。
12.
Copyright © Infoscience Corporation.
All rights エンティティと属性 Datomic ではエンティティに対して以下のような属性を与えます。 ・名前 ・値のデータ型 ・カーディナリティ ( 属性が 1 個 or 複数個の値を持つ ) ・一意性 ・インデックスプロパティ ・ドキュメンテーション など。。。
13.
Copyright © Infoscience Corporation.
All rights ・エンティティ :person/name ・属性 : {:db/ident :person/name, :db/valueType :db.type/string, :db/cardinality :db.cardinality/one, :db/doc "A person's name"} エンティティと属性の例 エンティティの ID 値の型 カーディナリティ ( この場合は1 ) ドキュメンテーション
14.
Copyright © Infoscience Corporation.
All rights スキーマの例 以下の 2 つの定義で neighborhood を定義します。 {:db/id #db/id[:db.part/db] :db/ident :neighborhood/name :db/valueType :db.type/string :db/cardinality :db.cardinality/one :db/unique :db.unique/identity :db/doc "A unique neighborhood name (upsertable)" :db.install/_attribute :db.part/db} {:db/id #db/id[:db.part/db] :db/ident :neighborhood/district :db/valueType :db.type/ref :db/cardinality :db.cardinality/one :db/doc "A neighborhood's district" :db.install/_attribute :db.part/db} パーティション名 neiborhood Name District Taro Shinjuku < イメージ >
15.
Copyright © Infoscience Corporation.
All rights Datalog Datomic ピアライブラリには Datalog に基づくクエリエンジンが付属していま す。 ● Datalog の特徴 ・宣言的なクエリ言語 ・再帰的なクエリ ・暗黙的なジョイン
16.
Copyright © Infoscience Corporation.
All rights Datalog の歴史 1977 年に考案されてから、 2000 年代になるまでほとんど日の目を見ることは ありませんでしたが、現在では以下のような分野で使えそうということで注目 を集めているようです。 ・ Data Integration ( データ統合 ) ・ Program Analysis ( プログラム解析 ) BDDBDDB, Semmle, Doop ・ Declarative Networking ( 宣言的ネットワーク )
17.
Copyright © Infoscience Corporation.
All rights ;;who is 42? (42 歳の人は誰 ?) [:find ?e :where [?e :age 42]] ;;which 42-year-olds like what? (42 歳の人で、その人は何が好き ?) [:find ?e ?x :where [?e :age 42] [?e :likes ?x] :find → 値を返すことを指示します。 :where → 制約を示します。 :age, :likes → 属性を示します。 ?e, ?x → 変数を表します。 Datalog のクエリーの例 AND 条件になります。
18.
Copyright © Infoscience Corporation.
All rights ルール [[(lang-anchor ?name ?url) [?language :lang/website ?url] [?language :lang/name ?name]]] [:find ?name ?url :where [lang-anchor ?name ?url]] ルールの head ルールの body ここに上で定義された lang-anchor のルールが入ります
19.
Copyright © Infoscience Corporation.
All rights 再帰的なルール [[(direct-influence ?old ?new) [?old :influenced ?new]] [(remote-influence ?old ?new) (direct-influence ?old ?new)] [(remote-influence ?old ?new) (direct-influence ?old ?intermediate) (remote-influence ?intermediate ?new)]]
20.
Copyright © Infoscience Corporation.
All rights 再帰的なクエリー [:find ?influence :where [?new :lang "Dart"] (remote-influence ?old ?new) [?old :lang ?influence]] ⇒ {["LISP"] ["Smalltalk"] ["Simula"]} Simula LISP Smalltalk Dart ルールが再帰的に適用されます [[(direct-influence ?old ?new) [?old :influenced ?new]] [(remote-influence ?old ?new) (direct-influence ?old ?new)] [(remote-influence ?old ?new) (direct-influence ?old ?intermediate) (remote-influence ?intermediate ?new)]]
21.
Copyright © Infoscience Corporation.
All rights 時間の入ったクエリー (Datomic 拡張 ) ・ Datomic の Datalog では過去のある時点のデータに対してクエリーできます 。 例 . ( 以下の例はモデルです。 ) [john :favorite/food :pizza <last week>] ("2013-09-09T00:00:00.000-00:00“) [john :favorite/food :pho <now>] ("2013-09-16T00:00:00.000-00:00“) クエリ (q ‘[:find ?food :where [?person :person/name “John”] [?person :favorite/food ?food]] (d/as-of database #inst “2013-09-09T00:00:00.000-00:00“)) ⇒ [[:pizza]] を返します。 d/as-of はその時点を指します。
22.
Copyright © Infoscience Corporation.
All rights まとめ ・ RDB, KVS, データグリッドから選択可能なストレージ ・トランザクターによるトランザクション。 ・ピアライブラリ ・過去のデータの履歴をすべて残していく。 ・ Datalog ・時間の入ったクエリー。 ・ RDB の関係性と、 KVS のストレージの柔軟性のいいとこどり ?
23.
Copyright © Infoscience Corporation.
All rights 参考文献 ”・ The Reemergence of Datalog” by Michael Fogus, InfoQ (http://www.infoq.com/presentations/Datalog) ”・ Datomic ”情報モデル by Rich Hickey,InfoQ (http://www.infoq.com/jp/articles/Datomic-Information-Model) ”・ Datomic ”のアーキテクチャ by Rich Hickey,InfoQ (http://www.infoq.com/jp/articles/Architecture-Datomic) ・ Datomic Tutorial (http://docs.datomic.com/tutorial.html) ”・ Datalog and Emerging Applications: an Interactive Tutorial” by Shan Shan Huan, et al. (http://www.cs.ucdavis.edu/~green/papers/sigmod906t-huang-slides.pdf) ・ "Datomic" by Takahiro Hozumi (https://speakerdeck.com/t_hozumi/datomicnituite)
Baixar agora