3. ・okuyama is Implemented in Java
>Started development in December 2009
Now Version 0.8.2
・Made from scratch
>Persistence mechanism, Network mechanism,
Replication mechanism
okuyama Overview
4. ・Whole composition
・Client → Master Node → Data Node(×3)
Master Node
Data Node Data Node
Data Node Data Node
Client
Client
Master NodeClient
okuyama Overview
Data Node
Data Node
Data Node Data NodeData Node
Data Node Data NodeData Node
5. okuyama feature list
・Feature List
Persistent Type
Redundancy
Data Maintenance
Memory, Disk, Disk + Memory
Consists of multiple servers
Server can be added non-disruptively
All data is stored multiplexed
All components can be multiplexed
No okuyama signle point of failure
If servers are added or server failure
occur, data dynamic reconstruction are
automatically executed
Support Protocol Original, memcached, HTTP
Availability
6. okuyama feature list
・Persistece Mechanism
・Memory
The fastest
・Disk
Persistent and big data
Key and Value Management in a separate file
・Disk + Memory
The fast and persistent
Type1: After recoding file stored in memory
Type2: After recoding a file, Key only stored in
memory
7. okuyama feature list
・Network Mechanism
Accept
Queue
ConnectClient
Accept Queue
Worker
I/O Read
Queue
Write
Client
I/O Read Queue
Worker
Main Job
Queue
Client
Main Job Queue
Worker
Respond to
8. okuyama feature list
・Network Mechanism
In addition to multiplexing
Accept
Queue
ConnectClient
I/O Read
Queue
Write
Client
Main Job
Queue
Client
Respond to
Main Job
Queue
Main Job
Queue
I/O Read
Queue
I/O Read
Queue
Accept
Queue
Accept
Queue
10. okuyama unique features
・Feature 1.
Key Value
Hibari
MySQL
okuyama
“The world‟s most popular open source database”
“Hibari is implemented in Erlang”
“okuyama is implemented in Java”
Tags can be added to the data
11. okuyama unique features
・Feature 1.
Key Value
Hibari
MySQL
okuyama
“The world‟s most popular open source database”
“Hibari is implemented in Erlang”
“okuyama is implemented in Java”
Key Value
Hibari
MySQL
okuyama
“The world‟s most popular open source database”
“Hibari is implemented in Erlang”
“okuyama is implemented in Java”
Tag
NOSQL
RDBMS
NOSQL
Tags can be added to the data
12. okuyama unique features
・Feature 1.
Tags can be added to the data
Key Value
Hibari
MySQL
okuyama
“The world‟s most popular open source database”
“Hibari is implemented in Erlang”
“okuyama is implemented in Java”
Tag
NOSQL
RDBMS
NOSQL
If you specify a tag …
13. okuyama unique features
・Feature 1.
Key Value
Hibari
MySQL
okuyama
“The world‟s most popular open source database”
“Hibari is implemented in Erlang”
“okuyama is implemented in Java”
Tag
NOSQL
RDBMS
NOSQL
If you specify a tag …
{“Hibari”, “okuyama”}
You can get the keys at once
Tags can be added to the data
15. okuyama unique features
・Feature 2.
Sent from the client JavaScript
can run in DataNode
Main
Data Node
Client Master Node
Request
Key=“okuyama”
JavaScript=”if (dataValue == „nosql‟) { …..”
16. okuyama unique features
・Feature 2.
Sent from the client JavaScript
can run in DataNode
Client Master Node
Main
Data Node
Key=“okuyama”
JavaScript=”if (dataValue == „nosql‟) { …..”
Request
Key=okuyama
Value=“nosql”
Execute JavaScript
17. okuyama unique features
・Feature 2.
Sent from the client JavaScript
can run in DataNode
Client Master Node
Main
Data Node
Key=“okuyama”
JavaScript=”if (dataValue == „nosql‟) { …..”
Request
Key=okuyama
Value=“nosql”
Execute JavaScript
The execution result is returned
19. okuyama unique features
・Feature 3.
Data lock function
Key Value
Hibari
MySQL
okuyama
“The world‟s most popular open …..
“Hibari is implemented in Erlang”
“okuyama is implemented in Java”
Client
A
Lock
Success
Lock request
20. okuyama unique features
・Feature 3.
Data lock function
Key Value
Hibari
MySQL
okuyama
“The world‟s most popular open …..
“Hibari is implemented in Erlang”
“Change Value”
Client
A
Error
Set Request
“Change
Value”
Client
B
Set Request
Success