Today I have released kiskadee 0.2.2. This minor release brings some
architecture improvements, fix some bugs in the plugins and improve the
log messages format. Initially, lets take a look in the kiskadee architecture
implemented on the 0.2 release.
In this architecture we have two queues. One used by plugins, called
packages_queue, to queue
packages that should be analyzed. This queue is consumed by monitor
component, to check if the enqueued package was not analyzed.
The other queue, called analysis_queue,
is consumed by the runner component, in order to receive
from monitor, packages that must be analyzed. If a dequeued package
not exists in the database, the monitor component will save it, and enqueue
it in the analysis_queue queue.
When a analysis is made, the runner component updates
the package analysis in the database. Currently, kiskadee only generate
analysis for projects implemented in C/C++, and this was a scope decision
made by the kiskadee community. Analyze only projects implemented in this
languages, makes several monitored packages
not be analyzed, and this behavior, with the architecture 0.2, lead us to
a serious problem: A package is saved in the database even if a analysis
is not generated for it. This was making our database storing several packages
without a static analysis of source code, turning on kiskadee
a less useful tool for the ones that want to continuously check
the quality of some projects.
The release 0.2.2 fix this architecture issue, creating a new queue used by
runner component to send back to monitor, packages that was successfully
analyzed. In these implementation, we remove from the runner source code
all database operations,
centering in monitor the responsibility of interact with the
database. Only packages enqueued in the results_queue, will be saved in the
database by the monitor component.
We also add a limit to all kiskadee queues, once that the rate that a plugin
enqueue a package, is greater than the rate the runner run a analysis. With
this limit, all queues will always have at most ten elements. This will
make the volume of monitored projects proportional to the analyzed projects.
The log messages was also improved, facilitating the tool debug. Some
bug fix in Debian plugin was also made, and now some packages that were been
missed, are been properly monitored. This architecture improvements make the
behavior of kiskadee more stable, and this release is already running in a
Source From: fedoraplanet.org.
Original article title: David Carlos: GSoC: Improvements in kiskadee architecture.
This full article can be read at: David Carlos: GSoC: Improvements in kiskadee architecture.