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.