#!/usr/bin/perl use strict; use warnings; use Test::TempDir; use Path::Class; use Storable qw(nstore retrieve); use Scalar::Util qw(blessed); use KiokuDB; my $f = (require KiokuDB::Test::Fixture::ObjectGraph)->new; sub construct { $f->create; } sub run { my $dir = dir(tempdir); #my $files = KiokuDB->connect("files:dir=" . $dir->subdir("files"), create => 1, global_lock => 1 ); my $bdb = KiokuDB->connect("bdb:dir=" . $dir->subdir("bdb"), create => 1 ); #my $sqlite = KiokuDB->connect("dbi:SQLite:dbname=" . $dir->file("sqlite.db"), serializer => "storable" ); #$sqlite->backend->dbh->do("PRAGMA default_synchronous = OFF"); #$sqlite->backend->deploy; for ( my $i = 1; 1; $i++ ) { foreach my $b ( $bdb ) { $b->txn_do(sub { my $s = $b->new_scope; $b->insert(construct()) for 1 .. 20; }); } warn "iteration $i\n"; system("du -sh ${dir}/bdb/objects ${dir}/*"); } } run();