[Moscow.pm] А кто с berkeleyDB работает?
Ivan Petrov
i.petro.77.00 на gmail.com
Вт Июн 14 06:44:48 PDT 2011
On 16:23 Tue 14 Jun , Oleg Alistratov wrote:
> On 14.06.2011 15:51, Ivan Petrov wrote:
>> я думал локи нужны когда мы делаем чтение-модификацию-запись
>> а чистая запись поля атомарна
> С какими флагами базу открываете?
my $env = BerkeleyDB::Env->new(
-Home => dirname($file),
-Flags => BerkeleyDB::DB_CREATE()
| BerkeleyDB::DB_INIT_CDB()
| BerkeleyDB::DB_INIT_MPOOL()
);
my $db = BerkeleyDB::Hash->new(
-Filename => $file,
-Env => $env,
);
блокировки в коде (как в екзамлах) используются только когда крутим в
БД какие-то счетчики (вообще в одном месте, не особо и нужно).
Запись происходит так
$db->db_put('some', Dumper({ a => 'что-то', b => 'что-то'}));
строго в одном месте.
однако натыкаемся на то что иногда в случае сбоя записанный хеш не
содержит a или b, либо содержит какой-то микс
Подробная информация о списке рассылки Moscow-pm