NAME

Net::Cassandra - Interface to Cassandra

SYNOPSIS

my $cassandra = Net::Cassandra->new( hostname => 'localhost' );
my $client    = $cassandra->client;

my $key       = '123';
my $timestamp = time;

eval {
    $client->insert(
        'Keyspace1',
        $key,
        Net::Cassandra::Backend::ColumnPath->new(
            { column_family => 'Standard1', column => 'name' }
        ),
        'Leon Brocard',
        $timestamp,
        Net::Cassandra::Backend::ConsistencyLevel::ZERO
    );
};
die $@->why if $@;

eval {
    my $what = $client->get(
        'Keyspace1',
        $key,
        Net::Cassandra::Backend::ColumnPath->new(
            { column_family => 'Standard1', column => 'name' }
        ),
        Net::Cassandra::Backend::ConsistencyLevel::QUORUM
    );
    my $value     = $what->column->value;
    my $timestamp = $what->column->timestamp;
    warn "$value / $timestamp";
};
die $@->why if $@;

eval {
    $client->remove(
        'Keyspace1',
        $key,
        Net::Cassandra::Backend::ColumnPath->new(
            { column_family => 'Standard1', column => 'name' }
        ),
        $timestamp
    );
};
die $@->why if $@;

DESCRIPTION

This module provides an interface the to Cassandra distributed database. It uses the Thrift interface. This is changing rapidly and supports version 0.5.0 of Cassandra.

AUTHOR

Leon Brocard <acme@astray.com>.

COPYRIGHT

Copyright (C) 2009-2010, Leon Brocard

LICENSE

This module is free software; you can redistribute it or modify it under the same terms as Perl itself.