Started to create SQL on remote nodes
Today, Jan 29th 2017, I've created the CREATE TABLE SQL statement. Before that, I have been creating main framework of the distributed database.
It takes a lot of time, but finally, I come to be able to implement actual SQL functions.
Building Distributed Database Framework
The software framework is very important, especially, on making distributed database.
That is because it has a lot of bottle neck in performance.
- Network access to synchronize node's status
- Locking for distributed transaction
- The role of distributed database components, and when to work
MySQL's storage engine is like this database software, but mine has region manager to support TABLE LOCK between SQL Transaction Engine and Storage Nodes.
Following picture is one of distributed node mapping.
(Alinous Elastic DB can configure the scalability, so there are some patterns to map nodes in the network.)
The framework needs following functions.
- Detect change of node structure & schema, by using the version.(Do not access monitor node every time)
- Execute conditional queries on the storage node to filter unmatched records, before send them via network
- Lock table on the Storage Region component, lock records on the storage engine
- Report the change of nodes status to Trx Monitor by least network access
I'll write about how to make distribute database faster, in the near future.
Current Status of Development
Currently I've implemented "CREATE TABLE" DDL statement. This function is convenient in checking the framework's design.
After that, now I'm going to make "INSERT INTO" statement. After that, SELECT statment.