SysDB is still in early development but it already provides unique features. The following list describes the most important features of SysDB:
Hostname canonicalization: Before storing host-names in the internal data store, they may be canonicalized. This way, different names provided by different backends may be mapped to the same object in SysDB.
Transparent access to time-series data: Backend data-stores (e.g. RRD files) may be queried through SysDB without having to worry about details except for the time-series's identifier.
Simple, yet flexible object-types: Each object (host, service, attribute) stored in SysDB is automatically attributed with last-update and interval information allowing for detecting out-of-date entries. Host and service attributes support different types: integer, decimal, string, date-time, binary.
Simple query language: (Not to be confused with SQL, the Structured Query Language used by relational databases.) Objects in SysDB may be queried and retrieved using a simple, domain-specific query language.
Client/server architecture: The server runs as a daemon in the background, handling all data collection and processing. A terminal-based, interactive client program may be used to connect to a running server instance and retrieve any of the stored data.
Multi-threaded, event-based architecture: Client connections are handled using an event-driven design allowing for handling many connections with low resource footprint. The SysDB core is multi-threaded allowing for good use of processing resources.
Modular, configurable architecture: Most functionality in SysDB is provided by plugins. All support for data backends is implemented that way and may dynamically be loaded and (re)configured at runtime. The core functionality may be extended using various hooks.
Custom extensions: Through its plugin architecture, SysDB may easily be extended for any special use-case.