TyphonDL
The Polystore - and therefore the TyphonDL model - consists of the following components:
- Typhon API
- Typhon UI
- Typhon Metadata Database
- Typhon QL
- Optional Typhon Analytics
- The User Databases
The user is only able to edit the DL model for the user databases and the analytics component, the other configuration parameters are provided by the respective components and are not editable. To create a Polystore, the TyphonDL Tools generate a TyphonDL model from a given TyphonML model. After completing the TyphonDL model, scripts are generated and the Polystore is started. When the Polystore is started, the ML and DL model are uploaded to the Typhon Metadata Database automatically. The Typhon API parses the DL model and provides the other components with connection information about all Polystore components. This way the DL model contains “addresses” to all the Polystore components.
A TyphonDL model can be created with the help of the TyphonDL Creation Wizard from the ML model. The wizard uses the previously defined (default or use-case specific) Templates and creates a TyphonDL model file and additional model files for every database that can be edited with the textual editor. When the DL model is ready, the TyphonDL Script Generator can be used to generate technology dependent deployment scripts. For further usage details consult the wiki.
Installation
There are two possible ways to add the TyphonDL plugin to Eclipse:
- Using the Typhon Update Site in Eclipse -> Help -> Install New Software... -> http://typhon.clmsuk.com:8082/
- Cloning this repository and building the update site with
mvn clean package
, then installing with Eclipse -> Help -> Install New Software... -> Add... -> Archive... -> .../typhondl/typhondl-update-site/target/typhondl-update-site-1.0.0-SNAPSHOT.zip
Usage
Please consult the wiki.
Polystore Deployment
After generating the Scripts the Polystore can be deployed
Docker Compose
Start the polystore:
$ docker-compose up -d
Show all running containers:
$ docker-compose ps
Show logs of a specific service (e.g. the API):
$ docker-compose logs typhon-polystore-service
Stop and remove the polystore:
$ docker-compose down
Docker Swarm
If the deployment scripts contain a Resource definition or the replication of stateless polystore parts (i.e. API, QL server and Analytics.Kafka), Docker has to be run in Swarm Mode. Start the polystore:
$ docker stack deploy --compose-file docker-compose.yaml typhon
Show all running containers:
$ docker stack services typhon
Stop and delete all Polystore containers:
$ docker stack rm typhon
Kubernetes
Start the polystore:
$ sh deploy.sh
Stop and delete the Polystore deplyoment:
$ kubectl delete namespaces typhon
If the analytics component was started and also should be stopped and removed:
$ kubectl delete namespaces kafka
If logging was started and also should be stopped and removed:
$ kubectl delete namespaces logging