• 検索結果がありません。

分散フレームワーク Christie と分散木構造データベースJungle

N/A
N/A
Protected

Academic year: 2021

シェア "分散フレームワーク Christie と分散木構造データベースJungle"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

Christie

Jungle

†1

Jungle Jungle

Log Alice1) Jungle

Jungle Alice

Jungle Alice Alice API

Alice Jungle

Jungle Christie Christie

Data Gear Java

Jungle Christie Christie Data Gear

Shinji KONO

†1

1.

Internet ad-hoc HTTP MySQL Postgress HTTP HTTPS HTTP WebDAV CORBA KVS Cassandra HDFS OS An-drew File System

Alice Jungle

†1

Information Engineering, University of the Ryukyus.

2.

Alice

( ) 2) • • • Alice

Code Segment Data Segment

Code Segment

Data Segment Data

Segment key Data Segment

Manager

Remote Data

Segment Manager key

take/put Linda Tuple space

Linda Tuple space

(2)

TopologyManager KeepAlive Heart-beat

3.

Jungle

Web Web URI URI RDB Web Jungle Jungle RDB XML Json Jungle Atomic URI log Alice Jungle NodePath NodePath -1 NodePath <-1,0,2,3 > ( 1) root -1 0 1 ... n 0 1 2 3 0 1 2 3 編集対象

NodePath<-1,1,2,3>

tree_name 1 NodePath Index Jungle Index Index Index

Red Black Tree Java

Jungle O(n) O(1) PushPop API O(1) PushPop Log Differential

Jungle Tree Differential Jungle

Tree

Sub Tree Commit

Sub Tree Append

Jungle Red Black Tree

O(log n)

Jungle RDB

Reb Black Jungle Tree Node

Path

4. Jungle

Jungle Alice

(3)

(Split Horizon) Merge Merge Merge Merge SNS Alice Jungle

Alice Toplogy Manager

Server node 0 Server node 1 Server node 2 Server

node 3 node 4Server Merge ① ① ② ③ ③ ④ ④ 2 ( 2 ( 1 ) servernode 1, servernode 2 servernode 0 ( 2 ) Merge

( 3 ) Merge servernode 1,servernode

2

( 4 ) servernode1 Merge

servern-ode 3 servernservern-ode 4

5. Jungle

Alice

Jungle Alice

Jungle Alice Alice

Jungle Jungle Alice Alice DataSegment DataSegment CodeSegment DataSegment Jungle DB ByteBuffer Jungle Either

Alice DataSegment Singleton

Alice NAT Alice

6. CodeSegment

CS CodeSegment ( 1 , 2)

Code Segment Data Segment

API Alice Start CS ( 1 ) C main CS Start CS DS Input DS CS main new execute

public class StartCodeSegment extends CodeSegment { @Override

public void run() { new TestCodeSegment(); int count = 0; ods.put("local", "cnt", count); } } Code 1 StartCodeSegment

public class TestCodeSegment extends CodeSegment { private Receiver input1 = ids.create(CommandType.

(4)

public TestCodeSegment() { input1.setKey("local", "cnt"); }

@Override

public void run() {

int count = input1.asInteger(); System.out.println("data␣=␣" + count); count++; if (count == 10){ System.exit(0); } new TestCodeSegment(); ods.put("local", "cnt", count); } } Code 2 CodeSegment 1 5 CS( 2 ) 8

Out-put DS API Local DSM DS put

Output DS API CS ods

ods put update

flip TestCodeSegment

”cnt” key 8

put TestCodeSegment

CS Input DS CS

CommandType(PEEK TAKE)

DSM key Input DS API

CS ids

Output DS ods put/update/flip

Input DS

ids peek/take create/setKey

CommandType

2 0 9

2 Input DS API

create Input DS

(Re-ceiver) PEEK TAKE

• Receiver create(CommandType type)

4 6 TestCodeSegment ( 1 ) CS Receiver input ids.create(CommandType.TAKE) input ( 2 ) 5 TestCodeSegment TAKE 5 2 create Receiver setKey Local DSM DS

• void setKey(String managerKey, String key)

setKey peek/take

DSM key peek take

(5)

run ( 1 ) 10 DS Integer count ( 2 ) 12 count ( 3 ) 16 CS run CS CS CS Input DS

( 4 ) 17 count Local DSM put

In-put DS CS ( 5 ) 13 count 10 1. asInteger() asClass asClass take/peek DS Object API • <T> T asClass(Class<T> clazz) CS DS asClass InputDS

Receiver create Reveiver

setKey key

key setKey

DS CS

( 3)

public class StartCodeSegment extends CodeSegment { @Override

public void run() {

TestCodeSegment cs = new TestCodeSegment(); cs.input.setKey("data");

ods.put("local", "data", 1); }

}

Code 3 setKey

public class TestCodeSegment extends CodeSegment { private Receiver input = ids.create(CommandType.

TAKE); @Override public void run(){

System.out.println("data␣=␣" + input.asInteger ()); } } Code 4 Seprated setKey CS key setKey key CS CS setKey CS key put key Alice CS setKey setKey CS key key put

inputDS Receiver Object

CS inputDS key DS put flip DS put key CS key key DS Receiver key input DS

7.

Christie

Christie Christie • create/setKey API • •

(6)

• • • Chirstie CodeSegment/DataSegment CodeGear/DataGear Gears OS Alice API DataGear Java Annoation API

Alice Singleton

Refac-toring Christie

Jungle Alice Jungle

Jungle Alice

Jungle

Alice

Jungle Alice Tuple

Jungle Alice Data Segment Data Segment Data Seg-ment Jungle

Jungle Data Segment

Alice Jungle Jungle ID Alice 2 Jungle URI Jungle Jungle Christie Gears OS

8.

InputAPI Alice Take Peek

Christie Input DG

Java

Meta Computation @

Alice Input Receiver

key Christie Input

key

Take Peek ( 5)

@Take

public String name;

Code 5 Take InputDG CG CodeGear.class Java reflectionAPI key Christie key Take/Peek Alice CS key Alice key key key Take/Peek TakeFrom/PeekFrom ( 6) @TakeFrom("remote") public String name;

Code 6 TakeFrom

Meta Computation Alice

DGM compressed

( 7)

@TakeFrom("compressedremote") public String name;

(7)

Code 7 Remote

OutputAPI put/flip

Alice Christie put/flip

CodeGear.class

CodeGear.class CG put

( 8)

put("remote", "count", 1);

Code 8 put

Christie Alice ODS

ODS DGM put Alice DGM compressed Christie Receiver CG Alice asClass 9 InputDG

public class GetData extends CodeGear{ @Take

public String name; @Override

protected void run(CodeGearManager cgm) { System.out.println("this␣name␣is␣:␣" + name); } } Code 9 InputDG InputDG reflection-API LocalDSM put DG 10

public class StartTest extends StartCodeGear{ public StartTest(CodeGearManager cgm) {

super(cgm); }

public static void main(String args[]){ StartTest start = new StartTest(createCGM

(10000)); }

@Override

protected void run(CodeGearManager cgm) { cgm.setup(new TestCodeGear()); put("count", 1);

} }

Code 10 StartCodeGear

public class TestCodeGear extends CodeGear { @Take

public count;

public void run(CodeGearManager cgm){ System.out.println(hoge.getData()); if (count != 10){ cgm.setup(new TestCodeGear()); put("count", count + 1); } } } Code 11 CodeGear

Alice Christie InputDG

StartCG StartCG

Start-CodeGear.class Alice StartCS CodeSegment.class StartCS Christie StartCG createCGM CGM 10 8 createCGM CGM LocalDGM Daemon CG setup 10 13 11 10 new CG CGM setup Alice new CG Christie CG new new setup CG

(8)

CGM run CGM StartCG setup new run

9. Unix

Christie Unix Christie Unix Unix Christie Christie Unix i B-Tree Christie Unix i Christie Unix read/write Christie read-/write get/put Christie

10.

Jungle Alice Christie Christie Alice Jungle Christie

Christie Data Gear

Data Gear

Christie Data Gear

Gears OS Christie DataGear 1) Al-ice PC 57 (2016). 2) and Fed-erated Linda 22 (2005).

参照

関連したドキュメント

Thus, starting with a bivariate function which is a tensor- product of finitely supported totally positive refinable functions, the new functions are obtained by using the

The class of SWKA Banach spaces extends the known class of strongly weakly compactly generated (SWCG) Banach spaces (and their subspaces) and it is related to that in the same way

Since the majorant minimization problem discretized by RT0 elements is about 3 times larger than the Poisson problem discretized by linear nodal elements, the other error

IMO/ITU EG 11、NCSR 3 及び通信会合(CG)への対応案の検討を行うとともに、現行 GMDSS 機器の国内 市場調査、次世代

×10 8 ~2.4×10 8 Bq、当該ノッチタンク(南側)が約 4.6×10 7 ~9.7×10 7 Bq であ り、漏えいした水の放射能量(Sr-90)は約 1.7×10 8 ~3.3×10 8

「1 つでも、2 つでも、世界を変えるような 事柄について考えましょう。素晴らしいアイデ

2017 年 12 月には、 CMA CGM は、 Total の子会社 Total Marine Fuels Global Solutions と、 2020 年以降 10 年間に年間 300,000 トンの LNG

3号機使用済燃料プールにおいて、平成27年10月15日にCUWF/D