Forum Webscript.Ru

Программирование => Perl => Тема начата: frenky от 08 Января 2005, 00:40:08

Название: File too large
Отправлено: frenky от 08 Января 2005, 00:40:08
ВОбщем создаю 2 DBM файла



get_lock();
dbmopen(%za,"kgames",0666) || die;
get_lock();
dbmopen(%zaz,"kgames1s",0666) || die;



for($i=0;$i<15;$i++)
{

for ($j=$i+1; $j<=15;$j++)        
{

$value="$es[$i],$es[$j]";
$za{$value}=$ba;
#$zaz{$value}=$ba;
print "$value
";


$value="$es[$j],$es[$i]";
$za{$value}=$ba;
#$zaz{$value}=$ba;
print "$value
";

print "$i   eee   $j
";
print "$!";

}

}

dbmclose(%za);
relase_lock();
dbmclose(%zaz);
relase_lock();



и полсе токо как в DBM файле создаеться 188 ключ выдает что File too large  как с этим бороться?????


у меня были DBM и с 324 ключами ,по идее колличество ключей в хеше не ограничено но главное чтоб размер ключа и значения біл меньше  1024 символа
Название: File too large
Отправлено: Green Kakadu от 08 Января 2005, 01:32:52
Цитировать
frenky:
ключа и значения біл меньше 1024 символа

а какой DBM администратор ты используешь?
В BerkeleyDB нет ограничения на размер  одной записи (т.е. ключ/значение), по умолчанию где то около 4Гб, ну а на кол-во ключей вроде бы ни у кого ограничений нет, хотя у некоторых есть воз-ть указать предполагаемое кол-во записей, для лучшей оптимизации, но если кол-во оказывается бОльшим, чем указанное ранее кол-во - проблем тоже происходить не должно
Название: File too large
Отправлено: frenky от 08 Января 2005, 02:21:14
А как узнать  какой DBM администратор я использую?
Название: File too large
Отправлено: Green Kakadu от 08 Января 2005, 15:00:50
Цитировать
frenky:
А как узнать какой DBM администратор я использую?

лучше работать с DBM с указанием явного dbm администратора.
Наиболее быстрый BerkeleyDB (на всех *nix системах присутствует, http://sleepycat.com )
Минимальный функционал к этой БД можно получить через модуль DB_File

use DB_File;
#связываем
tie (%dbm, \'DB_File\', $file, O_RDWR, 0666, $DB_HASH)||die($!);

#работаем с %dbm

#закрываем
untie %dbm;

http://search.cpan.org/~pmqs/DB_File-1.810/DB_File.pm

Или если все равно какой администратор, то использовать
AnyDBM_File (стандартный перл модуль) - можно там указать какой-нибудь конкретный администратор, либо использовать любой имеющийся.
Название: File too large
Отправлено: frenky от 08 Января 2005, 20:36:01
спасибки :О)