Performance
As time is money, especially in a productive environment, response and operation time for users has been a key priority in the development of the edinn M2 platform, which has led to:
- The user experience, in terms of operating, opening windows or showing graphics or tables of data, is normally almost immediate (less than 1 or 2 seconds); meanwhile the edinn M2 servers are, in some installations:
- Reading or writing hundreds of records per second in real time.
- Updating hundreds of reports per minute.
- Showing dozens of dashboards, refreshed and updated once per minute of even more frequently.
- Storing hundreds of thousands of data records per day.
- Managing hundreds of millions of data records in the archive.
- Edinn M2 servers need to be comparatively much smaller, in CPU and RAM, than those of other market solutions covering some of edinn’s functionalities.
- Performance ratios are kept almost identical during years.
This is thanks to, among other characteristics:
- In memory database: as RAM memory is much faster than hard disk (typically up to 1000 times faster), all the data in the server runs in-memory, if the server has enough RAM. As data will grow with time, more RAM memory might be needed, although the edinn M2 system is clever enough so that un-used data will be replaced by needed data.
- Indexed data: all data is indexed so that searches are ultra-fast as they are binary.
- Reports shown instantly (less than 1 second) to users: favorite reports are automatically pre-cached by the edinn M2 Platform and therefore shown almost immediately to the user. In addition, this saves important server resources as the same report is never calculated more than once, unless manually requested by the user.
- Optimized source code: as a mature solution, the great majority of the edinn M2 Platform components have gone through multiple optimization iterations.
- Auto optimization: all systems degrade with time; therefore, auto optimizations must be performed periodically to keep performance. That is the case of the edinn M2 Platform, which periodically, and transparently for the users, performs tasks to improve performance, from archiving real time data to database optimization. For more information please read this document.
- Multithreaded and buffered: the edinn M2 Platform is composed of 64 software components running independently, not including the 2 external standard and very important components which are the APACHE web server and Oracle’s MySQL Database. Apache and MySQL are also multithreaded. All this combination of threads makes the system very powerful and flexible to use all the available CPU cores. This also applies to monitorization which, in addition, communicates with the rest of the system via buffers. Thanks to this, edinn M2 has succeeded in projects where it had to be able to capture signals changing many times per second from dozens of processes; not losing any signal change.
- Native executable files: all the software components, which are critical in terms of processing speed, are native executables, meaning that they are faster as they run directly on the CPU, without additional software layers like interpreters or engines. Functionalities which are depending on human response, might be served by components running on interpreters and engines (like PHP and others).
- Big Data: the system automatically, and transparently to the users, creates and maintains data cubes (requires the “edinn M2 Big Data Module”) to speed up the whole system, from dashboards and terminals to reporting.