In this month, we have been doing huge work to improve even more the internals, resulting now in a code that is much faster, allows for more complicated queris, and is more friendly for developers of new plugins.
Moreover, a lot of effort is being spent to have a working REST API interface, not only to browse data but also to query it and modify content of the database.
- REST API First working verison of a REST API for AiiDA. Includes authentication, authorization. It already provides authenticated access and editing of computers.
- AWI First version of the AWI (AiiDA Web Interface), that provides interactive graphical access to the database content via the REST API with modern technologies like HTML5, jQuery and AJAX.
- DB Back-imcompatible change to the database, that however makes the structure of the database easier to understand, and moreover much more efficient for queries: now the DbAttribute and DbExtra tables are two different tables, and dictionaries and lists are “unpacked” in their components so that we can now query for a specific subkey/subitem. Also some table names have been changed for increased consistency.
- INTERNALS Partially rewritten the __new__ and __init__ methods of nodes (and their relevant subclasses), and the Folder wrapper class. This provides almost two orders of magnitude speedup in node access and storage thanks to a smarter database and disk access pattern, and moreover makes it much easier to write a plugin, since it is not needed anymore to redefine the __init__ method for each subclass. Moreover, it is now transparent how to set internal parameters of a new node directly at its creation, my making use of the set_ functions. Also increased the sharding level to two, to support seamlessly up to millions of nodes. Many tests added.
- EXECMANAGER Upon submission, calculations are not directly submitted but simply put in a TOSUBMIT status. It is then the daemon that takes care of the actual submission. Better management of disabled computers.
- FIXES Various user interface improvements (e.g. it is now possible to refer to a code either with the name or with its PK, similarly to computers; improved filters for verdi calculation list; …). Various bugfixes (some nodes were created in the database even before storing; …)
- PARSERS Significant improvements to the Quantum ESPRESSO parsers to make them more efficient, to use the new ArrayData objects for more efficient data storage, to better manage symmetries, and to fix some minor bugs.
- RESULTS Improved the calculation.res ResultManager; it is now much faster, and moreover TAB completion works in ipython to get the list of all results stored in the DB.