Fix/mip 732/monet db memory error handling
Created by: KFilippopolitis
Changelog: https://team-1617704806227.atlassian.net/browse/MIP-732. I implemented a first attempt to fix most of the problem with the monetdb. https://team-1617704806227.atlassian.net/browse/MIP-731.
Refactored monet_db_facade.py.
- Removed the many functionality from pymonetdb, because the is not compatible with the idempotent queries.
- Added the case of 'insert into' to the idempotent queries.
- Removed the _MonetDBConnectionPool.
- Now for each query execution we create and close a connection.
- Now monetdb facede will retry(x amount of times) to execute a query in case the error "table not found" is thrown. This fixes the MIP-731.
Added Monitoring tool 'Monit' to the monetdb configuration.
- Now monit will monitor the monetdb resource allocation.
- Added two actions on the monit 'hard memory limit' and 'soft memory limit'
- Soft/Hard memory limit will trigger once the memory of the system is above 70%/85%.
- Once soft limit is trigger, the monit will check if in the following 10 the memory usage drops below 70%, in case it does not the monit will lock, restart and then release again the database.
- Once hard limit is trigger monit will instantly lock, restart and then release again the database.