Download the thesis
Transcript
3.11. WHAT HAPPENS AFTER CLICKING THE COMPUTE BUTTON 55 There will be many relations between data anyway and manual handling of these not well defined references, which are in addition very likely to change is very hard to implement in filesystem, even harder to debug. A schema, which could handle this, was to be designed with a lot of effort, but it was cut off because of the decision that some technology, which is established for handling the data needed is a better and much more flexible choice. • Use some kind of non-relational database – Nowadays, these databases compete with the relational ones. As their name says, they do not have relations, which was recognized in the project design so far though. There is a possibility to mix relational and non-relational databases together, but this would perhaps need lots of time to manage for the first time and lots of skills to fine-tune and debug. On top of that, more servers would be needed to install and administer. We concentrated especially on MongoDB [10] during the initial research. Other possibilities can be found at [28], where the systems are also compared. Non-relational databases are extraordinary technology, and certainly will be considered next time, but finally the idea of using them was rejected for the application. • Use relational database – The purity of relational databases and the fact that they are on the market for many years make them to be used very often even in new projects which would be even beter suited with another kind of storage. PostgreSQL [13] and MySQL [11] are (amongst others) an outstanding technology, both of these incredibly available for free. The final decision is to use the relational database only. We have been already familiar with PostgreSQL an SQL at the time the project started and one more for the relational database: the framework chosen – Django – was designed with the idea that it will be used with such a database and the idea is grown throughout the whole framework. There are some packages for Django, which introduce other kinds of database. Specifically for MongoDB, there is a project Django MongoDB Engine [5], which according to its documentation does quite a nice job, nevertheless it have not convinced us to use it. This is a final choice for the application storage, because we know the technology, we are quite used to think its way and it can in fact handle all needs of the application, to specify some: storing the application state, storing simulations, storing results, task queue, data repository. 3.11 What happens after clicking the Compute button For a reader to become familiar with the core of the system, it is sketched, what happens with the simulation form, when the user clicks the Compute button.