#! perl use strict; use AnyEvent; use BDB; our $FH; open $FH, "<&=" . BDB::poll_fileno; our $WATCHER = AnyEvent->io (fh => $FH, poll => 'r', cb => \&BDB::poll_cb); my $env = db_env_create; my $db; warn "i3\n";#d# mkdir "bdtest", 0700; BDB::min_parallel 8; db_env_open $env, "bdtest", BDB::INIT_LOCK | BDB::INIT_LOG | BDB::INIT_MPOOL | BDB::INIT_TXN | BDB::RECOVER | BDB::USE_ENVIRON | BDB::CREATE, 0600; $env->set_flags (BDB::AUTO_COMMIT | BDB::TXN_NOSYNC, 1); $db = db_create $env; db_open $db, undef, "table", undef, BDB::BTREE, BDB::AUTO_COMMIT | BDB::CREATE | BDB::READ_UNCOMMITTED, 0600; for (1..1000) { db_put $db, undef, "key[$_]", "data[$_]"; db_key_range $db, undef, "key[$_]", my $keyrange; my ($lt, $eq, $gt) = @$keyrange; } my $c = $db->cursor; my @del; for (;;) { db_c_get $c, my $key, my $data, BDB::NEXT; warn "<$!,$key,$data>"; last if $!; push @del, $key if rand > 0.9; } { my $seq = $db->sequence; db_sequence_open $seq, undef, "seq", BDB::CREATE; db_sequence_get $seq, undef, 1, my $value; warn "next sequence value: $value\n"; } db_c_close $c, sub { }; undef $c; db_del $db, undef, $_ for @del; db_sync $db;