RRDtool refers to round robin database tool. Round robin databases have
a fixed number of data points in them and contain a pointer to the
current element. Since the databases have a fixed number of data points
the database size doesn't change after creation. RRDtool allows you to
define a set of archives which consolidate the primary data points in
higher granularity. RRDtool is specialized for time series data and can
be used to create RRD files, update RRDs, retreive data from RRDs, and
generate graphs from the databases. This module provides a POE wrapper
around the rrdtool command line interface.
HyperSQL
HSQLDB is the leading SQL relational database engine written in Java. It has a
JDBC driver and supports a rich subset of ANSI-92 SQL (BNF tree format) plus
SQL 99 and 2003 enhancements. It offers a small (less than 100k in one version
for applets), fast database engine which offers both in-memory and disk-based
tables and supports embedded and server modes. Additionally, it includes tools
such as a minimal web server, in-memory query and management tools (can be run
as applets) and a number of demonstration examples.
CFFI, the Common Foreign Function Interface, purports to be a
portable foreign function interface for Common Lisp. The CFFI library
is composed of a Lisp-implementation-specific backend in the CFFI-SYS
package, and a portable frontend in the CFFI package.
The CFFI-SYS backend package defines a low-level interface to the
native FFI support in the Lisp implementation. It offers operators
for allocating and dereferencing foreign memory, calling foreign
functions, and loading shared libraries. The CFFI frontend provides
a declarative interface for defining foreign functions, structures,
typedefs, enumerated types, etc. It is implemented in portable ANSI
CL making use of the low-level operators exported by CFFI-SYS.
Log::Dispatch is a suite of OO modules for logging messages to multiple
outputs, each of which can have a minimum and maximum log level. It is
designed to be easily subclassed, both for creating a new dispatcher
object and particularly for creating new outputs.
It also allows both global (dispatcher level) and local (logging object)
message formatting callbacks which allows greater flexibility and should
reduce the need for subclassing.
Subclassing is only needed to send a message to a different output, not
to change the message format.
This driver uses a database table to store the cache for CHI.
The newest versions of MySQL and SQLite are known to work.
Other RDBMSes should work.
Why cache things in a database? Isn't the database what people are trying to
avoid with caches? This is often true, but a simple primary key lookup is
extremely fast in many databases and this provides a shared cache that can be
used when less reliable storage like memcached is not appropriate. Also, the
speed of simple lookups on MySQL when accessed over a local socket is very hard
to beat. DBI is fast.
The Carp routines are useful in your own modules because they act like die() or
warn(), but with a message which is more likely to be useful to a user of your
module. In the case of cluck, confess, and longmess that context is a summary of
every call in the call-stack. For a shorter message you can use carp or croak
which report the error as being from where your module was called. There is no
guarantee that that is where the error was, but it is a good educated guess.
Minilla is a CPAN module authoring tool. Minilla provides 'minil' command for
authorizing a CPAN distribution. The repository created and managed by Minilla
is git install ready, and cpan of course. Minilla is built on only few small
libraries. You can install Minilla without a huge list of dependencies to
heavy modules. Conventions: module written in Pure Perl are located in lib/;
executable file is in script/ directory, if any; module is maintained with
Git and git ls-files matches with what you will release; module has a static
list of prerequisites that can be described in cpanfile; has a Changes file.
Consistent hashing is a scheme that provides hash table functionality
in a way that the addition or removal of one slot does not
significantly change the mapping of keys to slots. In contrast, in
most traditional hash tables, a change in the number of array slots
causes nearly all keys to be remapped.
Consistent hashing was introduced in 1997 as a way of distributing
requests among a changing population of web servers. More recently, it
and similar techniques have been employed in distributed hash tables.
librelp is an easy to use library for the RELP protocol. RELP in turn
provides reliable event logging over the network (and consequently
RELP stands for Reliable Event Logging Protocol).
RELP (and hence) librelp assures that no message is lost, not even
when connections break and a peer becomes unavailable. The current
version of RELP has a minimal window of opportunity for message
duplication after a session has been broken due to network problems.
In this case, a few messages may be duplicated (a problem that also
exists with plain TCP syslog). Future versions of RELP will address
this shortcoming.
A patch to Perl 5.005_55 by the author implements a core API for
weak references. This module is a Perl-level interface to that API,
allowing weak references to be created in Perl.
A weak reference is just like an ordinary Perl reference except
that it isn't included in the reference count of the thing referred
to. This means that once all references to a particular piece of
data are weak, the piece of data is freed and all the weak references
are set to undef. This is particularly useful for implementing
circular data structures without memory leaks or caches of objects.