blob: 90985ba7b05207e118f93c86833584568d472343 (
plain) (
tree)
|
|
@startuml
allowmixing
package Client {
object "Query Interface" as query_interface
}
package Algebra {
object "Unifier" as unifier
object "Bytecode Builder" as bytecode_builder
object "Parser" as parser
object "Lexer" as lexer
}
query_interface --> lexer
lexer --> parser
parser --> unifier
unifier --> bytecode_builder
package Query {
object "Schema Builder" as schema_builder
object "Facts Builder" as facts_builder
object "Optimizer" as optimizer
object "Commands Generator" as commands_generator
object "B+ Tree" as b_plus_tree
}
bytecode_builder --> optimizer
optimizer --> commands_generator
facts_builder --> commands_generator
schema_builder --> commands_generator
commands_generator --> b_plus_tree
b_plus_tree --> query_interface
package Coordinator {
object "File Historical Hashes" as file_historical_hashes
object "Location Hashes" as location_hashes
object "Command Parser" as command_parser
object "Curator" as curator
}
commands_generator <-- command_parser
package Disk {
object "Merkle Tree Root Generator" as merkle_tree
object "WAL Reader" as wal_reader
object "WAL Writer" as wal_writer
object "ARIES" as aries
object "SHA256 Hasher" as sha
object "Executor" as executor
map storage {
write => +λ
read => +λ
}
object "Courier" as courier
database Wal
}
executor *--> merkle_tree
executor *--> sha
curator --> command_parser
command_parser --> executor
location_hashes *--> curator
file_historical_hashes *--> curator
executor --> aries
aries --> wal_reader
aries --> wal_writer
wal_writer --> Wal
wal_reader --> Wal
courier <-- wal_reader
courier --> storage
@enduml
|