Не удается получить доступ к файлу BDB в Linux с помощью Perl - PullRequest
2 голосов
/ 21 февраля 2011

У меня есть программа, которая читает очень большой файл данных из Berkeley DB [который смонтирован в SAN Storage].Это прекрасно работает на машине с солярисом, использующей версию perl5.6.0.

Однако та же программа возвращает меньше значений, прочитанных из одного и того же файла на машине с Linux.Это проблема с размером файла данных?

Любые указатели для разгадки этой тайны приветствуются.

Спасибо, Шобха Дипти

edit , чтобы включить репродуктора Шобхи (из комментариев):

#!/usr/cisco/bin/perl5.6
use strict;
use DB_File qw($DB_HASH);
my $db_file = "/vws/aak/qddts/data/value_cache/To-be-fixed";
my $db_ref;
my %db;

if (tie(%db, 'DB_File', $db_file, O_RDONLY, 0444, $DB_HASH)) {
    $db_ref = \%db;
    print Dumper($db_ref);
}
1;

1 Ответ

0 голосов
/ 17 марта 2011

Это звучит как проблема файловой системы для меня.Каков твой тип?Да, и какие версии / distros / archs являются вашими ОС?

Что нужно проверить:

  • Работает ли скрипт на linux, когда файл находится в локальном хранилище?
  • Ваши версии Perl, BDB и DB_File одинаковы для обеих систем?

[еще одно редактирование] Я бы также запустил в вашем Linux strace для проверки, происходит ли что-нибудь странное вокругзапись 12000

...