ошибки в классике
перешел с неделю назад на классик (думал разгрузить при длительных операциях сборки мусора сервер - чтобы клиенты могли работать одновременно). Стали практически каждый день в лог сыпаться такие записи SW Thu Sep 25 07:52:35 2008 INET/inet_error: read errno = 10054 SW Thu Sep 25 07:52:35 2008 INET/inet_error: read errno = 10054 SW Thu Sep 25 07:52:35 2008 Shutting down the server with 1 active connection(s) to 1 database(s) SW Thu Sep 25 07:52:35 2008 Shutting down the server with 1 active connection(s) to 1 database(s) SW Thu Sep 25 07:52:35 2008 INET/inet_error: send errno = 10054 SW Thu Sep 25 07:52:35 2008 SERVER/process_packet: broken port, server exiting Что посоветуете? Сервер 2.5 из снапшотов.
Re: фрагментация бд
Для таких задач нужен что то типа hard delete, когда специальный оператор производит удаление без использования транзакционного механизма. Т.е. тупо не создаёт новую версию, а сностит все существующии без оглядки на работающие транзакции. Ну и индекс правит. Т.е. аналог сегментирования, но адаптированный к FB. --
Re[2]: unavailable database
Приветствую Вас, 25.09.2008 в 8:50, Вы писали: КЕ Доброго времени суток! КЕ On 24 сент, 17:22, Dmitry Kotelnikov wrote: Если не сложно растолкуйте как это права клиенту, пользователю Windows что-ли? Делаю все под админом, не лимитед юзер. КЕ Да. КЕ Какие возможны варианты: КЕ 1) Не хватает прав сервису Firebird. Но он обычно запускается под КЕ учетной записью SYSTEM, КЕ так что это маловероятно. КЕ Впрочем, под Vista права на запись в Program Files могли ужесточить, КЕ тут вроде пробегало, что приложения должны осуществлять запись в КЕ Application Data КЕ 2) Возможно, что требуются права пользователю, под которым запущено КЕ клиентское приложение. И уж точно требуются, если fbserver запускается КЕ пользователем как приложение. КЕ В общем, лучше переместить базу куда-нибудь в D:\Bases и проверить все КЕ варианты. База кончено сохраняется в Application Data если идет установка программы в Program Files, также пробовал устанавливать в отдельный каталог и результат ноль, не помогает. fbserver запускается как приложение из под админа и раббота идет из под админа и ничего. У меня уже башка кипит незнаю что придумать уже смотрел и TcpView и ProcessMonitor ничего особенного не нарыл, выдает ошибку хоть ты тресни а на TCP соединении минутная задержка и капец :( -- С Уважением, Дмитрий Котельников
Re: фрагментация бд
On 25.09.2008 10:03, Alexey Popov wrote: Для таких задач нужен что то типа hard delete, когда специальный оператор производит удаление без использования транзакционного +1 но все равно каким то образом надо использовать место которое было выделено под эту запись в файле бд. я бы тут скорее голосовал за программу дефрагментации для файла бд которая работает одновременно с клиентами (не бэкап\ресторе)
OFF: к пятнце
не сочтите за рекламу, может здесь есть, кто любит играться на мобильном телефоне, или у кого имеются спиногрызы, которые регулярно пристают папа дай телефончик поиграться. воопсчем в связи со 9-ым днем рождения у нас сегодня и завтра можно будет скачать игрушки к мобильнику бесплатно (за трафик платите сами :) ). Подробнее вот здесь http://kosht.com/?cmd=docdid=4536 . А в двух словах - надо с мобильника зайти на сайт games.kosht.com - ну а там уже согласно инструкции :). правда, одно НО. там есть какое то разделение по странам, не знаю какие игрушки будут (и будут ли бесплатные), если пользователь будет не из Беларуси -- С уважением Качановский Дмитрий ООО КОШТпроект
Re: фрагментация бд
On 25.09.2008 10:15, Качановский Дмитрий wrote: причем обрати внимание что удаление записи на самом деле это удаление миллионов записей единомоментно, задача стоит ночью, но у человека система 24х7, другими словами, что ночью что днем - нагрузка абсолютно на запись нагрузка идентичная, на чтение ночью конечно же намного легче. сидит только несколько диспетчеров.
Re: фрагментация бд
Alexey Popov wrote: не создаёт новую версию, а сностит все существующии без оглядки на работающие транзакции. Бред-с, иззиняюсь. -- Regards. Ded.
RE: Re[2]: unavailable database
ProcessMonitor ничего особенного не нарыл, выдает ошибку хоть ты тресни а на TCP соединении минутная задержка и капец :( А у тебя DNS случайно не в небо указывает? Что-то такое смутно припоминается. WBR, Dmitry Beloshistov AKA [-=BDS=-] __ Eioi?iaoey io ESET NOD32 Antivirus, aa?ney aacu aaiiuo neaiaoo? ae?onia 3469 (20080924) __ Niiauaiea i?iaa?aii i?ia?aiiie ESET NOD32 Antivirus. http://www.esetnod32.ru
RE: фрагментация бд
Привет! Для таких задач нужен что то типа hard delete, когда специальный оператор производит удаление без использования транзакционного механизма. Т.е. Пробежаться по страницам таблицы и пометить записи как свободное место теоретически можно (типа как IB хирург делает при лечении). Но вот операцию это нужно делать над файлом БД, отложенном в сторону (т.е. никаких юзверей, никаких транзакций, вообще ничего). Иначе вообще непонятно что получишь. Скорее всего - мусор ;) WBR, Dmitry Beloshistov AKA [-=BDS=-] __ Èíôîðìàöèÿ îò ESET NOD32 Antivirus, âåðñèÿ áàçû äàííûõ ñèãíàòóð âèðóñîâ 3469 (20080924) __ Ñîîáùåíèå ïðîâåðåíî ïðîãðàììîé ESET NOD32 Antivirus. http://www.esetnod32.ru
Re: фрагментация бд
Доброго времени суток! On 25 сент, 11:15, Качановский Дмитрий wrote: Вариант I 1. вставляем запись 2. удаляем запись (создаем версию) 3. убираем старую версию Вариант II 1. изменяем запись (создаем версию) 2. убираем старую версию Все равно, сомневаюсь, что II однозначно быстрее - вставка идет достаточно шустро, а при UPDATE, сервер еще должен вычислить разницу между измененной записью и исходной. Убираем старую версию вряд ли тоже одинаково по временным затратам. Тестировать надо. -- С уважением, Евгений
Re[4]: unavailable database
Приветствую Вас, 25.09.2008 в 11:20, Вы писали: ProcessMonitor ничего особенного не нарыл, выдает ошибку хоть ты тресни а на TCP соединении минутная задержка и капец :( DAB А у тебя DNS случайно не в небо указывает? Что-то такое смутно припоминается. Если указывать localhost или по IP то тоже тормоза. -- С Уважением, Дмитрий Котельников
Re: unavailable database
Доброго времени суток! On 25 сент, 11:00, Dmitry Kotelnikov wrote: База кончено сохраняется в Application Data если идет установка программы в Program Files, также пробовал устанавливать в отдельный каталог и результат ноль, не помогает. fbserver запускается как приложение из под админа и раббота идет из под админа и ничего. У меня уже башка кипит незнаю что придумать уже смотрел и TcpView и ProcessMonitor ничего особенного не нарыл, выдает ошибку хоть ты тресни а на TCP соединении минутная задержка и капец :( А причем здесь это? Я о возможных причинах unavailable database при локальном соединении говорил. -- С уважением, Евгений
Re: фрагментация бд
Alexey Voytsehovich сообщил/сообщила в новостях следующее: Всем доброго дня. Наверное всех уже достал, но вопрос все равно пока еще не решен. Есть БД, в ней таблица величиной около 7 гигабайт. Внутри хранятся данные обратным сроком на 7 дней назад. Такой формат обусловлен ТЗ, изменить ничего не получится - уже пробовали. В течение дня в базу добавляется данных примерно на 1 гигабайт, и тот же самый 1 Гб удаляется ночью (все данные старше 7 дней) Господа какой-то ***нёй страдают. В постановке 2 раза в минуту получаем 2880 раз в сутки. Берём unsigned short, делим: 65536/2880 ~ 22,76 суток, что примерно втрое превышает требуемую глубину истории. Организуем циклический буфер: Вместо даты-времени считаем номер момента записи: (unixtime_момента/30)%0x1 И апдейтим записи с таким номером момента. Для уверенности можно делать апдейт таблички с одной-единственной записью - время последнего обновления. И не надо ничего останавливать ни на какой maintenance, всё работает 24*7*365. Если 0x1 заменить на 20160, получим кольцевой буфер глубиной ровно в 7 дней. Запросы на выборку данных за период придётся писать не в тупую, да. С минимальными преобразованиями по той же формуле дата-время - номер записи. В заданном темпе (200 записей в секунду) - я не знаю такой СУБД, чтобы не справилась... Да и СУБД-то тут нужна исключительно для D изо всей ACID... ЗЫ: под звёздочками скрываются буквы г, и, ф. ЗЗЫ: приму материальные благодарности за идею. -- Alexander. shura.skvortsov на gmail.com
Re: фрагментация бд
Ded wrote: Бред-с, иззиняюсь. Предлогай лучше. Пока это давно известный факт что FB дохнет как муха при массовых удалениях большого количества данных. Все способы которые тут предлагали - говно. Сегментирование не зря придумано. --
Re: фрагментация бд
Доброго времени суток! On 25 сент, 13:03, Alexey Popov [EMAIL PROTECTED] wrote: Пока это давно известный факт что FB дохнет как муха при массовых удалениях большого количества данных. Все способы которые тут предлагали - говно. Сегментирование не зря придумано. А каким образом связано сегментирование и внетранзакционный Hard delete? Тут же тем более предложили сегментирование средствами FB - с разделением по БД. А Вам, похоже, просто блокировочник нужен, а не версионник. -- С уважением, Евгений
Re: unavailable database
Может антивирус, мать их ети? --
Re: к пятнце
кстати вот еще одна забавная новость: http://kosht.com/?cmd=docdid=4534 Нажми на грудь - получишь результат Несмотря на то, что офисная работы не связана с большими физическими нагрузками, она представляет собой большой стресс. На снижение офисного напряжения работает целая индустрия забавных аксессуаров для USB. Следующий набор эксплуатирует популярный в интернет культ женской груды. Ортопедический коврик для мыши стилизован под женское тело. Особенное внимание уделено молочным железами. Рука программиста должна чувствовать себя довольной. -- С уважением Качановский Дмитрий ООО КОШТпроект
Re: фрагментация бд
Alexander V. Skvortsov wrote: Запросы на выборку данных за период придётся писать не в тупую, да. В том то и фишка что если запросы писать не в тупую то проще и надёжнее сделать своё хранилище в плоском файле. --
FB 1.5 и vista
Редактировать сообщениеПожаловаться на это сообщениеОтветить с цитатой vista и FB 1.5.5 AndrewVL Чт сен 25, 2008 9:40 am Привет. Переездаю на ноут и столкнулся с такой проблемой. Поставил IBExpert. В строке коннекта указал localhost:base_name. Пробую открыть базу - все ок. В дельфе в компоненте pFibdatabase указываю туже строку коннекта. выставляю свойство connected:=true. Все ок. Запускаю прогу. Там таже строка коннекта берется из файла. Доходит до непосредственно коннекта и говорит - Сделана попытка доступа к сокету методом запрещенным правами доступа А в Эксперте все ок. протестировал соединение в Эксперте. Все ок. А в проге не коннектится. В чем может быть проблема? Vista Home Basic Thanks
Re: фрагментация бд
Dmitriy A. Beloshistov wrote: Пробежаться по страницам таблицы и пометить записи как свободное место теоретически можно (типа как IB хирург делает при лечении). Но вот операцию это нужно делать над файлом БД, отложенном в сторону (т.е. никаких юзверей, никаких транзакций, вообще ничего). Иначе вообще непонятно что получишь. Скорее всего - мусор ;) Почему мусор то? Естественно эта операция будет черевата при неверном применении, но это именно то что прописал дохтор при текущем состоянии дел с ядром FB. --
RE: FB 1.5 и vista
Привет! А в проге не коннектится. В чем может быть проблема? Vista Home Basic Windows Defender, Firewall смотри - они скорее всего... WBR, Dmitry Beloshistov AKA [-=BDS=-] __ Eioi?iaoey io ESET NOD32 Antivirus, aa?ney aacu aaiiuo neaiaoo? ae?onia 3469 (20080924) __ Niiauaiea i?iaa?aii i?ia?aiiie ESET NOD32 Antivirus. http://www.esetnod32.ru
Re: FB 1.5 и vista
Доброго времени суток! On 25 сент, 12:57, Andrew wrote: Сделана попытка доступа к сокету методом запрещенным правами доступа А в Эксперте все ок. протестировал соединение в Эксперте. Все ок. А в проге не коннектится. В чем может быть проблема? Vista Home Basic UAC, наверное -- С уважением, Евгений
Re[2]: unavailable database
Приветствую Вас, 25.09.2008 в 12:09, Вы писали: AP Может антивирус, мать их ети? Да нет :( выключал и фаерволы и антивирусы и клиенту говорил все отключать и на виртуалке пробовал есть проблема, да и думаю filemon показал бы, тем более что задержка ровно на одну минуту. -- С Уважением, Дмитрий Котельников
Re[2]: unavailable database
Приветствую Вас, 25.09.2008 в 11:34, Вы писали: КЕ Доброго времени суток! КЕ On 25 сент, 11:00, Dmitry Kotelnikov wrote: База кончено сохраняется в Application Data если идет установка программы в Program Files, также пробовал устанавливать в отдельный каталог и результат ноль, не помогает. fbserver запускается как приложение из под админа и раббота идет из под админа и ничего. У меня уже башка кипит незнаю что придумать уже смотрел и TcpView и ProcessMonitor ничего особенного не нарыл, выдает ошибку хоть ты тресни а на TCP соединении минутная задержка и капец :( КЕ А причем здесь это? Я о возможных причинах unavailable database при КЕ локальном соединении говорил. Так и я про unavailable database все что сказано при локальном соединении делается, про TCP только последняя строка. Я просто уточнил еще раз что делается при локальном только потому что при сетевом задержки, мне бы любую из этих проблем решить либо задержку на TCP либо unavailable database при локальном. -- С Уважением, Дмитрий Котельников
RE: фрагментация бд
никаких юзверей, никаких транзакций, вообще ничего). Иначе вообще непонятно что получишь. Скорее всего - мусор ;) Почему мусор то? Естественно эта операция будет черевата при неверном применении, но это именно то что прописал дохтор при текущем состоянии дел с ядром FB. Транзакции плодят версии. Разные транзакции заинтересованы в разных версиях. В обход транзакционного механизма ты не сможешь определить, а нужна ли удаляемая запись какой-нить транзакции и можно ли запись пометить как свободное место. WBR, Dmitry Beloshistov AKA [-=BDS=-] __ Èíôîðìàöèÿ îò ESET NOD32 Antivirus, âåðñèÿ áàçû äàííûõ ñèãíàòóð âèðóñîâ 3469 (20080924) __ Ñîîáùåíèå ïðîâåðåíî ïðîãðàììîé ESET NOD32 Antivirus. http://www.esetnod32.ru
Re: FB 1.5 и vista
Windows Defender, Firewall смотри - они скорее всего... Все отключено. Интересно тогда почему в ИБЭксперте все работает а в проге нет?
Re: FB 1.5 и vista
Приветствую Вас, 25.09.2008 в 11:57, Вы писали: A Сделана попытка доступа к сокету методом запрещенным правами доступа A А в Эксперте все ок. A протестировал соединение в Эксперте. Все ок. UAC, фаервол -- С Уважением, Дмитрий Котельников
Re[2]: FB 1.5 и vista
Приветствую Вас, 25.09.2008 в 12:08, Вы писали: A Интересно тогда почему в ИБЭксперте все работает а в проге нет? 1. Попробуй запустить от админа. 2. Попробуй указать через IP. 3. Приведи свой путь к базе? -- С Уважением, Дмитрий Котельников
Re: фрагментация бд
On Thu, 25 Sep 2008 13:22:46 +0400, Alexey Popov [EMAIL PROTECTED] wrote: Ты пишешь из будущего... Поправь там у себя... -- With best regards, Vladimir A.Bakhvaloff. E-mail: bobgavbakhdotspbdotru
Re: unavailable database
On 25 сент, 13:06, Dmitry Kotelnikov wrote: Так и я про unavailable database все что сказано при локальном соединении делается, про TCP только последняя строка. Да, кстати, может пробел в пути к БД криво в 1.5 обрабатывается или компоненты кавычками путь не обрамляют? -- С уважением, Евгений
Re: фрагментация бд
Кузнецов Евгений wrote: А каким образом связано сегментирование и внетранзакционный Hard delete? Тем что то и то можно применить к эффективному удалению большого количества записей. Тут же тем более предложили сегментирование средствами FB - с разделением по БД. Но запросы... --
Re[2]: unavailable database
Приветствую Вас, 25.09.2008 в 12:18, Вы писали: КЕ On 25 сент, 13:06, Dmitry Kotelnikov wrote: Так и я про unavailable database все что сказано при локальном соединении делается, про TCP только последняя строка. КЕ Да, кстати, может пробел в пути к БД криво в 1.5 обрабатывается КЕ или компоненты кавычками путь не обрамляют? Длинные имена? тоже пробовал ставить на диск D в простой путь без пробелов в формате 8.3 и без русских букв, ошибка есть, блин полтергейст просто. Ну вот есть все-таки особенность какая-то в Винде скорей всего, что на одной нормально отрабатывает на другой ошибку выдает, только вот задача какое отличие, как найти? -- С Уважением, Дмитрий Котельников
Re: фрагментация бд
Alexey Popov сообщил/сообщила в новостях следующее: Alexander V. Skvortsov wrote: Запросы на выборку данных за период придётся писать не в тупую, да. В том то и фишка что если запросы писать не в тупую то проще и надёжнее сделать своё хранилище в плоском файле. Втупую (псевдокод): sql-ParamByName(preiod_begin)-Value=Now()-3.5; sql-ParamByName(preiod_end)-Value =Now(); Не втупую (псевдокод): sql-ParamByName(preiod_index_begin)-Value=((int)( ow()-3.5 )*86400) /30 % 20160; sql-ParamByName(preiod_index_end)-Value =((int)( Now() )*86400) /30 % 20160; Остальное одинаковое. Конечно, можно подобрать такую пару разработчиков (X и Y), что затраты на мозговую деятельность для X по переходу от втупую к не втупую будут сравнимы с затратами на мозговую деятельность для Y по созднию своего хранилища в плоском файле. Но таки плоский файл не очень обеспечивает ту самую D из ACID при сбоях. Или становится не очень плоским. ЗЫ: не, не буду упрощать арифметику. А то может и не найтись таких X и Y... (кажется, здесь принято отмечать такие места, как usus? :-) ) -- Alexander. shura.skvortsov на gmail.com
RE: фрагментация бд
Привет! Вся ответственность за содеянное - на том кто применил этот оператор. Ну пропадёт в снапшоте запись - если удалять неиспользуемые данные, как обычно и нужно то никто и не заменит. Ну я тут попытаюсь пофантазировать... 1) 2 приложения. Одно делает SELECT ..., второе - FORCE удаление. Если сделать fetchall/refresh из первого приложения, получим облом по идее (ошибку, варнинг или еще чего). А если еще попытаемся проапдейтить запись (уже удаленную вторым) из первого 2) В процессе длинного FORCE удаления пытаемся писать в базу в ту же таблицу. Серверу не поплохеет страницы лопатить? 3) запускаем 10-20-30 клиентов, которые что-то активно делают с таблицей, где идет удаление. Кучка граблей обеспечена. 4) начинаем менять параметры транзакций, пытаться сделать блокировки (тот же холостой апдейт) и т.п. Получается, что FORCE DELETE можно делать только в эксклюзивном режиме и лучше вообще какой-нить внешней тузлой. Как оператор для повседневной работы такое врядли пригодно. WBR, Dmitry Beloshistov AKA [-=BDS=-] __ Èíôîðìàöèÿ îò ESET NOD32 Antivirus, âåðñèÿ áàçû äàííûõ ñèãíàòóð âèðóñîâ 3469 (20080924) __ Ñîîáùåíèå ïðîâåðåíî ïðîãðàììîé ESET NOD32 Antivirus. http://www.esetnod32.ru
Re: FB 1.5 и vista
1. Попробуй запустить от админа. тоже самое ругательство 2. Попробуй указать через IP. тоже самое ругательство 3. Приведи свой путь к базе? localhost:c:\bases\base.fdb Такая же как и в Эксперте -- С Уважением, Дмитрий Котельников
Re: фрагментация бд
On 25.09.2008 11:42, Alexander V. Skvortsov wrote: Alexey Voytsehovich сообщил/сообщила в новостях следующее: Всем доброго дня. Наверное всех уже достал, но вопрос все равно пока еще не решен. Есть БД, в ней таблица величиной около 7 гигабайт. Внутри хранятся данные обратным сроком на 7 дней назад. Такой формат обусловлен ТЗ, изменить ничего не получится - уже пробовали. В течение дня в базу добавляется данных примерно на 1 гигабайт, и тот же самый 1 Гб удаляется ночью (все данные старше 7 дней) Господа какой-то ***нёй страдают. В постановке 2 раза в минуту получаем 2880 раз в сутки. Берём unsigned short, делим: 65536/2880 ~ 22,76 суток, что примерно втрое превышает требуемую глубину истории. Организуем циклический буфер: Вместо даты-времени считаем номер момента записи: (unixtime_момента/30)%0x1 И апдейтим записи с таким номером момента. а сборка мусора? файл будет рости оч быстро.
Re: FB 1.5 и vista
UAC отключит - таже ерунда
Re: FB 1.5 и vista
Windows Defender, Firewall смотри - они скорее всего... Все отключено. Интересно тогда почему в ИБЭксперте все работает а в проге нет? Может мне конечно это навеяло... где то я видел в Висте информацию, что программы расположенные в Program Files типа обладают большими правами. Патамучто типа правильно установлены... Но может это мне показалось Коваленко Дмитрий. PS. У самого Виста x64 (UAC, Firewall _включены_ ). Правда на ней стоит FB 2.x. Все работает. PSS. Кроме, мазафака, DTC.
Re: FB 1.5 и vista
Создал в Program Files папку. туда прогу скопировал. не помогло On 25 сент, 13:59, Kovalenko Dmitry [EMAIL PROTECTED] wrote: Windows Defender, Firewall смотри - они скорее всего... Все отключено. Интересно тогда почему в ИБЭксперте все работает а в проге нет? Может мне конечно это навеяло... где то я видел в Висте информацию, что программы расположенные в Program Files типа обладают большими правами. Патамучто типа правильно установлены... Но может это мне показалось Коваленко Дмитрий. PS. У самого Виста x64 (UAC, Firewall _включены_ ). Правда на ней стоит FB 2.x. Все работает. PSS. Кроме, мазафака, DTC.
Re: фрагментация бд
On 25.09.2008 10:03, Alexey Popov wrote: Для таких задач нужен что то типа hard delete, когда специальный оператор производит удаление без использования транзакционного +1 но все равно каким то образом надо использовать место которое было выделено под эту запись в файле бд. я бы тут скорее голосовал за программу дефрагментации для файла бд которая работает одновременно с клиентами (не бэкап\ресторе)
Re: фрагментация бд
On 25 сент, 13:22, Alexey Popov wrote: Тем что то и то можно применить к эффективному удалению большого количества записей. Но если сегментирование - это нормальный инструмент для VLDB, то по сравнению с hard delete все предложенное в этой ветке просто меркнет. -- С уважением, Евгений
Re[2]: FB 1.5 и vista
Приветствую Вас, 25.09.2008 в 12:51, Вы писали: A localhost:c:\bases\base.fdb A Такая же как и в Эксперте А попробуй по локальному протоколу, просто путь укажи. -- С Уважением, Дмитрий Котельников
Re: фрагментация бд
On Thu, 25 Sep 2008 11:07:25 +0400, Alexey Voytsehovich [EMAIL PROTECTED] wrote: я бы тут скорее голосовал за программу дефрагментации для файла бд которая работает одновременно с клиентами (не бэкап\ресторе) GFIX -SWEEP ? -- Сергей Смирнов.
Re: FB 1.5 и vista
A Такая же как и в Эксперте А попробуй по локальному протоколу, просто путь укажи. -- Подключилось локально из проги. Хотя в ЭКСПЕРТЕ удаленно подключается не вопрос. Почему интересно понять.
Re: фрагментация бд
это именно то что прописал дохтор при текущем состоянии дел с ядром FB. Вам не нравятся мои стихи? Вот вам моя клава - пишите сами! (с) Байрон Гы. Меня чего веселит в этом флейме, что аффтар топика _своей_ истины здесь все равно не найдет. И, в конечном итоге, все равно будет делать так, как позволит ему его проф. уровень. Коваленко Дмитрий.
Re: фрагментация бд
Dmitriy A. Beloshistov wrote: Ну я тут попытаюсь пофантазировать... 1) 2 приложения. Одно делает SELECT ..., второе - FORCE удаление. Если сделать fetchall/refresh из первого приложения, получим облом по идее (ошибку, варнинг или еще чего). А если еще попытаемся проапдейтить запись (уже удаленную вторым) из первого Никаких обломов не будет. Сейчас аналогичная фигня может произойти в read commited транзакциях. Просто стапшоты станут вести себя как RC по отношению к удаляемым таким образам данным. 2) В процессе длинного FORCE удаления пытаемся писать в базу в ту же таблицу. Серверу не поплохеет страницы лопатить? Удаление как и все остальные операции просто лочит последовательно страницы которые модифицирует. Insert будет проходить параллельно т.е. с большой вероятностью в другие страницы. Если нарвётся на лок, то подождёт пока delete обработает эту страницу и всё. 3) запускаем 10-20-30 клиентов, которые что-то активно делают с таблицей, где идет удаление. Кучка граблей обеспечена. Не должно. --
Re: фрагментация бд
On 25.09.2008 13:45, WildSery wrote: On Thu, 25 Sep 2008 11:07:25 +0400, Alexey Voytsehovich[EMAIL PROTECTED] wrote: я бы тут скорее голосовал за программу дефрагментации для файла бд которая работает одновременно с клиентами (не бэкап\ресторе) GFIX -SWEEP ? это сборка мусора, которая не отменяет того факта что при удалении данных и сборке мусора освобождается страница которую сервер потом заиспользует под данные любой таблицы. и получится что первая страница хранит данные табл1, вторая табл2 а третья опять табл1 что и называется фрагментацией. Верно?
Re: фрагментация бд
Alexey Voytsehovich wrote: но все равно каким то образом надо использовать место которое было выделено под эту запись в файле бд. Если удалять по времени, то большенство страниц будет получаться пустыми после удаления и будут помечаться как свободные. --
Re: фрагментация бд
Kovalenko Dmitry wrote: Вам не нравятся мои стихи? Вот вам моя клава - пишите сами! (с) Байрон Я бы с удовольствием, но увы, сейчас деньги плотят только за всякое УГ. Меня чего веселит в этом флейме, что аффтар топика _своей_ истины здесь все равно не найдет. И, в конечном итоге, все равно будет делать так, как позволит ему его проф. уровень. Афтору надо двигать на оракл, имхо. --
Re: фрагментация бд
On 25.09.2008 14:14, Alexey Popov wrote: Афтору надо двигать на оракл, имхо. та уже склоняемся к варианту решения проблемы как уход от ФБ. куда - еще не известно, и покажут только жесточайшие тесты.
Re: фрагментация бд
On Thu, 25 Sep 2008 14:50:52 +0400, Alexey Voytsehovich [EMAIL PROTECTED] wrote: получится что первая страница хранит данные табл1, вторая табл2 а третья опять табл1 У меня RAID5 из шести SAS-дисков, и большинство секторов/блоков в кеше ОС (порядка 12Гб кеша) в памяти. Как они там со страницами БД соотносятся я тоже не знаю. Какая из страниц первая, какая вторая, а какая третья? -- Сергей Смирнов.
Re: фрагментация бд
Alexander V. Skvortsov wrote: Втупую (псевдокод): sql-ParamByName(preiod_begin)-Value=Now()-3.5; sql-ParamByName(preiod_end)-Value =Now(); Это если запросы совсем простые. Если же интервал идет из гуя, плюс вычисляем некие средние/агрегаты, делаем джойны, то попотеть придётся. Конечно, можно подобрать такую пару разработчиков (X и Y), что затраты на мозговую деятельность для X по переходу от втупую к не втупую будут сравнимы с затратами на мозговую деятельность для Y по созднию своего хранилища в плоском файле. Но таки плоский файл не очень обеспечивает ту самую D из ACID при сбоях. Или становится не очень плоским. Плоский файл в данном случае почти идеальное решение: - нет update - insert в хронологическом порядке (автоматически получаем кластерный индекс по времени). - delete тоже в хронологическом порядке - не будет дырок. - все данные числовые фиксированного размера. Размер файлов будет существенно меньше за счёт отсутствия какого либо оверхэда. Я бы подумал на такой схемой. Если считать что каждый клиент затрагивает только небольшой диапазон данных, то можно по запросу вливать в БД некий интервал времени, который ему нужен, из плоского файла. А потом уже строить отчёт. Или даже лучше - прямо по сети на комп клиента сливать. --
Re: фрагментация бд
Alexey Popov wrote: Плоский файл в данном случае почти идеальное решение: - нет update - insert в хронологическом порядке (автоматически получаем кластерный индекс по времени). - delete тоже в хронологическом порядке - не будет дырок. - все данные числовые фиксированного размера. Размер файлов будет существенно меньше за счёт отсутствия какого либо оверхэда. Ещё надо добавить: - Исключительная устойчивость к сбоям. В файле нет никаких ссылок и размеров. - Простейший и быстрый backup/restore который по сути тупое копирование. --
Re: фрагментация бд
On 25.09.2008 15:05, Alexey Popov wrote: Alexey Popov wrote: Плоский файл в данном случае почти идеальное решение: - нет update - insert в хронологическом порядке (автоматически получаем кластерный индекс по времени). - delete тоже в хронологическом порядке - не будет дырок. - все данные числовые фиксированного размера. Размер файлов будет существенно меньше за счёт отсутствия какого либо оверхэда. Ещё надо добавить: - Исключительная устойчивость к сбоям. В файле нет никаких ссылок и размеров. - Простейший и быстрый backup/restore который по сути тупое копирование. а вообще достаточно интересная мысль, надо будет её в голове покрутить. спасибо :)
Re: фрагментация бд
On 25.09.2008 14:25, WildSery wrote: On Thu, 25 Sep 2008 14:50:52 +0400, Alexey Voytsehovich[EMAIL PROTECTED] wrote: получится что первая страница хранит данные табл1, вторая табл2 а третья опять табл1 У меня RAID5 из шести SAS-дисков, и большинство секторов/блоков в кеше ОС (порядка 12Гб кеша) в памяти. Как они там со страницами БД соотносятся я тоже не знаю. Какая из страниц первая, какая вторая, а какая третья? демагог? но в общем то подожду разработчиков, пусть они скажут.
Re: FB 1.5 и vista
Hello, Andrew! You wrote on Thu, 25 Sep 2008 01:57:59 -0700 (PDT): A Запускаю прогу. Там таже строка коннекта берется из файла Нужно проверить что считывается из файла и на всякий случай: // Подключение к базе Firebird function TDM1.ConnectToFB(FIBDataBase:TFIBDatabase; Path: String): Boolean; begin try with FIBDataBase do begin Close; DBParams.Clear; DBName:=Path; with ConnectParams do begin UserName:='SYSDBA'; Password:='masterkey'; CharSet:='WIN1251'; end; //with Open; end; Result:=True; except Result:=False; end; end; With best regards, Oleg Prosvetov.
Re: FB 1.5 и vista
проверял. localhost:c:\xxx.fdb Ладно. буду работать с локальным коннектом :-) On 25 сент, 16:01, Oleg Prosvetov [EMAIL PROTECTED] wrote: Hello, Andrew! You wrote on Thu, 25 Sep 2008 01:57:59 -0700 (PDT): A Запускаю прогу. Там таже строка коннекта берется из файла Нужно проверить что считывается из файла и на всякий случай: // Подключение к базе Firebird function TDM1.ConnectToFB(FIBDataBase:TFIBDatabase; Path: String): Boolean; begin try with FIBDataBase do begin Close; DBParams.Clear; DBName:=Path; with ConnectParams do begin UserName:='SYSDBA'; Password:='masterkey'; CharSet:='WIN1251'; end; //with Open; end; Result:=True; except Result:=False; end; end; With best regards, Oleg Prosvetov.
Re: фрагментация бд
Что при удалении, что при обновлении будет создана новая версия записи. Для DELETE эта версия будет пустой, для UPDATE - содержать отличия от предыдущей (которые надо еще определить). Соответственно, при сборке мусора для измененной записи, сервер должен будет склеить все изменения с исходной версией - вряд ли это быстрее, чем сборка мусора для удаленной записи. Вариант I 1. вставляем запись 2. удаляем запись (создаем версию) 3. убираем старую версию Вариант II 1. изменяем запись (создаем версию) 2. убираем старую версию причем обрати внимание что удаление записи на самом деле это удаление миллионов записей единомоментно, задача стоит ночью, но у человека система 24х7, другими словами, что ночью что днем - нагрузка абсолютно идентичная
Re: фрагментация бд
On Thu, 25 Sep 2008 15:56:55 +0400, Alexey Voytsehovich [EMAIL PROTECTED] wrote: демагог? Вот сразу оскорблять. Нет, не демагог. Демагогия есть искажение истины в современном языке. Я же показал, что в современной БД определять, фрагментирована она или нет - тяжёлое занятие, и начинать нужно с дефиниций фрагментации, а не сразу как бороться неизвестно с чем. -- Сергей Смирнов.
Re: фрагментация бд
On 25 сент, 13:06, Alexey Popov wrote: Почему мусор то? Естественно эта операция будет черевата при неверном применении, Т.е. в 99,% случаев но это именно то что прописал дохтор при текущем состоянии дел с ядром FB. Фамилию доктора не назовете :) ? -- С уважением, Евгений
Re: FB 1.5 и vista
On Thu, 25 Sep 2008 14:37:08 +0400, Andrew [EMAIL PROTECTED] wrote: Хотя в ЭКСПЕРТЕ удаленно подключается не вопрос. А у меня в Висте Експерт даже не запустить нормально... %))) -- With best regards, Vladimir A.Bakhvaloff. E-mail: bobgavbakhdotspbdotru
Re[2]: FB 1.5 и vista
Приветствую Вас, 25.09.2008 в 15:32, Вы писали: Хотя в ЭКСПЕРТЕ удаленно подключается не вопрос. Даж и не знаю у меня на висте сервер 1.5, и приложения с FIB и с IBX по TCP подключались. Откуда ты запускаешь программу, запусти с диска D и базу размести на диске D. -- С Уважением, Дмитрий Котельников
Re: фрагментация бд
On 25 сент, 13:55, Alexey Voytsehovich wrote: +1 но все равно каким то образом надо использовать место которое было выделено под эту запись в файле бд. я бы тут скорее голосовал за программу дефрагментации для файла бд которая работает одновременно с клиентами (не бэкап\ресторе) Алексей, а чем не подходит идея РЕАКТОРА? Это ведь уже сделано в FB, и не так уж сложно реализовать. А чем Вам понравилась hard delete, я просто не понимаю. -- С уважением, Евгений
Re: фрагментация бд
On 25.09.2008 13:24, Кузнецов Евгений wrote: On 25 сент, 13:55, Alexey Voytsehovich wrote: +1 но все равно каким то образом надо использовать место которое было выделено под эту запись в файле бд. я бы тут скорее голосовал за программу дефрагментации для файла бд которая работает одновременно с клиентами (не бэкап\ресторе) Алексей, а чем не подходит идея РЕАКТОРА? Это ведь уже сделано в FB, и не так уж всё с его идеей нормально. в данный момент мы тестируем скорость сборки мусора с удалением и последующим созданием индексов. вроде бы с 11 часов время (общее с учетом удаления и создания) стало 1,5 часа. но это был синтетический тест, завтра утром будут данные с проекта. если данная операция не поможет то будет выбор либо делать на внешних таблицах (теряя в скорости доступа по чтению) либо на отдельных бд (удаляя целиком бд а не таблицу) либо еще что-то. Что. ещё не знаю.
Re: фрагментация бд
Доброго времени суток! On 25 сент, 15:06, Alexey Popov wrote: Никаких обломов не будет. Сейчас аналогичная фигня может произойти в read commited транзакциях. Просто стапшоты станут вести себя как RC по отношению к удаляемым таким образам данным. И это будут уже не snapshots. Очень интересно, что будет, если у записи будет несколько версий, а в данный момент создается еще одна? Мы пробежимся по всем и грохнем? Также любопытно, если во время выполнения оператора произойдет сбой, как будет выполнен откат? Мы восстановим все записи со всеми версиями? В общем, предлагаемое настолько расходится со архитектурой FB и всей идеей версионности, что не имеет шансов на реализацию. К счастью. -- С уважением, Евгений
Re: FB 1.5 и vista
Andrew wrote: В чем может быть проблема? Vista Home Basic format c: -- Кочмин Александр
RE: FB 1.5 и vista
Привет! В чем может быть проблема? Vista Home Basic Может именно в Home Basic и проблема. format c: хз. У меня Vista Bussines c FB 2.x отлично дружит. WBR, Dmitry Beloshistov AKA [-=BDS=-] __ Eioi?iaoey io ESET NOD32 Antivirus, aa?ney aacu aaiiuo neaiaoo? ae?onia 3471 (20080925) __ Niiauaiea i?iaa?aii i?ia?aiiie ESET NOD32 Antivirus. http://www.esetnod32.ru
Re: фрагментация бд
Alexey Voytsehovich wrote: демагог? но в общем то подожду разработчиков, пусть они скажут. Нет, ламер. И не он, а ты. В смысле - фрагментация/дефрагментация к твоим проблемам вообще никакого отношения не имеет. И чего ты именно в это слово упёрся, известно только тебе. Так почти всегда бывает, когда человек строит теории, опираясь на представления о внутренностях инструмента, которые сам же и придумал неизвестно с какого перепугу, а не на те, которые имеют место быть в действительности. -- Regards. Ded.
Re: фрагментация бд
Alexander V. Skvortsov wrote: Господа какой-то ***нёй страдают. Да и СУБД-то тут нужна исключительно для D изо всей ACID... Тоже +1. -- Regards. Ded.
Re: фрагментация бд
Alexey Popov wrote: В том то и фишка что если запросы писать не в тупую то проще и надёжнее сделать своё хранилище в плоском файле. А вот тут +1. -- Regards. Ded.
Re: фрагментация бд
Кузнецов Евгений wrote: И это будут уже не snapshots. Да, именно. Очень интересно, что будет, если у записи будет несколько версий, а в данный момент создается еще одна? Мы пробежимся по всем и грохнем? Именно. Для той транзакции будет выглядить как исесзновение записи. Также любопытно, если во время выполнения оператора произойдет сбой, как будет выполнен откат? Мы восстановим все записи со всеми версиями? Откат естественно будет невозможен. Так же как и у операции drop table. Если сбой, то всё оставляем как есть. В общем, предлагаемое настолько расходится со архитектурой FB и всей идеей версионности, что не имеет шансов на реализацию. К счастью. Это намного лучше чем предлагавшиеся тут решения-косытыли. В результате опять - мыши кололись, плакали но продолжали жрать кактус. --
Re: ��������� �����
например http://www.ib-aid.com/video/FBScannerVS10054.avi
Re: unavailable database
Доброго времени суток! Dmitry Kotelnikov пишет: Длинные имена? тоже пробовал ставить на диск D в простой путь без пробелов в формате 8.3 и без русских букв, ошибка есть, блин полтергейст просто. Ну вот есть все-таки особенность какая-то в Винде скорей всего, что на одной нормально отрабатывает на другой ошибку выдает, только вот задача какое отличие, как найти? Давайте еще раз для локального протокола 0) Антивирус\firewall\UAC (для Висты) отключены 1) Сервер 1.5.3.4870 SS под Windows и клиент той же версии, и на ПК нет других gds32.dll/fbclient.dll (1.5.5, кстати, не пробовали?) 2) Сервер запущен как приложение под учетной записью текущего пользователя 3) Firebird.conf - стандартный, при коннекте указывается полный путь к БД 4) В пути к БД нет пробелов, русских символов, имя файла БД - в формате 8.3. 5) Сервер установлен инсталлятором и в реестре содержится правильный путь к корневому каталогу FB 6) Пользователь обладает правом чтения/записи на файл БД 7) Пользователь обладает правом чтения/записи на корневой каталог FB (дабы создался lck-файл). 8) Согласно журналу filemon, клиентская программа находит файл базы 9) У файла БД расширение не GDB (Дабы избежать System Restore под Windows XP). 10) Имя ПК - английское, без пробелов и спец. символов (уже из области предположений) Так? -- С уважением, Евгений
Re: фрагментация бд
On 25.09.2008 18:28, Ded wrote: Alexey Voytsehovich wrote: демагог? но в общем то подожду разработчиков, пусть они скажут. Нет, ламер. И не он, а ты. В смысле - фрагментация/дефрагментация к понял. значит буду искать проблему в другом месте :) спасибо.
Re: фрагментация бд
On 25.09.2008 22:40, Кузнецов Евгений wrote: Чтобы избежать сборки мусора, автору нужно или сегментирование, или блокировочник (вполне подойдет MyISAM в MySQL). Первого в FB пока нет, второе там вряд ли появится вообще :) Хранилище данных - вообще не очень родная для FB задача. та в принципе тоже примерно так и решили. так что скорее всего либо уйдем на другую БД (полностью или в части хранения данных с приборов), либо попробуем сделать сегментирование (жалкое подобие), либо плюнем и забудем :) ЗюЫю получил итоги тестирования когда перед сборкой мусора удаляем индексы, а потом создаем. echo delete index 26/09/08 1:20:53.04 - начало удаления индексов sweep 26/09/08 1:22:48.00 - удалили индексы, начали сборку мусора echo create index 26/09/08 1:37:06.64 - собрали мусор, создаем индексы echo all ok 26/09/08 2:12:25.39 - создали индексы итого - мне нравится. пусть так и остается. :) всем спасибо. 2разработчики - может как то посмотрите на оптимизацию сборки мусора в части работы с индексами? так как с ними 10-11 часов, без них 15 минут на той же машине.
Re: фрагментация бд
2разработчики - может как то посмотрите на оптимизацию сборки мусора в части работы с индексами? так как с ними 10-11 часов, без них 15 минут на той же машине. А сколько, если не секрет, у тебя памяти на сервере? Вообще конфигурацию машины приведи. И размер базы. Чего-то я этой информации в этой ветке не нашел. Коваленко Дмитрий.