The topic of this thesis is to create a logging system based on a No-SQL database in order to gain better performance in comparison with the relational database logging systems. The document has four parts: researches on the topic, application design, application implementation and performance measurement.
The first part starts with general ideas about logs and logging. It is followed by market research on currently available logging systems. The final part of this session compares the most popular No-SQL databases available nowadays.
The application design and implementation parts are overlapped, because designing of each module is followed by implementation. When the next step of implementation was clear I passed over the design part (for example code-generation steps).
The architecture of application consists of three layers including database, business logic and presentation layer. The database layer is built up from Hypertable (No-SQL database) and MySQL (relational database). The first one is responsible for storing logs while the purpose of the second database is to store user and corresponding information. This layer is responsible for handling inserts and selects, dong the authentication and creating data objects for the presentation layer. It also contains both available communication interfaces: servlet (higher level, slower) and thrift (lower level, faster). The presentation layer is responsible for displaying data in web-browsers. Its presentation technology is GWT and the IneForm application framework was used to create the web-application.
In many cases code-generation is applied (databases entities, data access objects, presentation objects etc…). VTL was applied as template language.
The last section contains functionality tests and performance measurements. In order to execute the performance measurements, I created logger clients to both the logger servlets and thrift.