blob: 8d76fc563c11a4b393974de966c018ea3d849e6c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
@startuml system-overview
!theme plain
title Domino System Overview
package "Client Interfaces" {
[XML Server\n(TCP/IP Port 8080)] as XML
[REPL\n(Interactive Shell)] as REPL
[Direct API\n(Erlang Apps)] as API
}
package "Query Processing Layer" {
package "Query Planner" {
[DSL Parser] as Parser
[Plan Validation\n& Compilation] as Validator
}
package "Volcano Iterator Model" {
[Scan Iterator] as Scan
[Select Iterator] as Select
[Project Iterator] as Project
[Sort Iterator] as Sort
[Take Iterator] as Take
[Join Iterators] as Join
}
}
package "Operations Layer (API)" {
[Database Management] as DBMgmt
[Relation Operations] as RelOps
[Tuple Operations] as TupleOps
[Iterator Management] as IterMgmt
}
package "Data Model Layer" {
[Core Abstractions\nattribute, tuple,\nrelation, database_state] as CoreAbs
[Finite Relations\n(Merkle Trees)] as Finite
[Infinite Relations\n(Generators)] as Infinite
}
package "Content-Addressed Storage" {
database "Mnesia" {
[attribute table] as AttrTable
[tuple table] as TupleTable
[relation table] as RelTable
[database_state table] as DBTable
}
}
XML --> Parser
REPL --> Parser
API --> Parser
Parser --> Validator
Validator --> Scan
Scan --> Select
Select --> Project
Project --> Sort
Sort --> Take
Join --> Take
Scan --> TupleOps
Select --> IterMgmt
Project --> IterMgmt
DBMgmt --> CoreAbs
RelOps --> CoreAbs
TupleOps --> CoreAbs
IterMgmt --> CoreAbs
CoreAbs --> Finite
CoreAbs --> Infinite
Finite --> AttrTable
Finite --> TupleTable
Finite --> RelTable
Finite --> DBTable
Infinite --> AttrTable
@enduml
|