Re: Различия версий снапшотов

2012-03-05 Пенетрантность Khorsun Vlad

reshetnyakvkt ...

Здравствуйте. Решил обновить версию сервера. Так вот, чем принципиально
отличается снэпшоты выложеные здесь http://www.dqteam.com/fb2/; и здесь
http://web.firebirdsql.org/download/snapshot_builds/linux/fb2.5/; ?


   А кто вообще надоумил ставить снапшот на боевой сервер ? Или есть реальная
необходимость, например наступил на баг, исправленный в снапшоте ?


Догадываюсь что они собраны разными людьми, и в разное время. Т.е. содержат
разные изменения, и по сути представляют разные версии.


   Changelog читай.


Что же мне ставить в производство, чему отдать предпочтение?


   Официальную релизную сборку.

--
Хорсун Влад 





Re: Различия версий снапшотов

2012-03-05 Пенетрантность Khorsun Vlad

Alex Cherednichenko ...


Кто эти люди?
Из http://www.dqteam.com/about.html нихрена не понял.
Как они связаны с Firebird Development ?


   Конкретно DQTeam - делали новый сайт firebirdsql.org.

   Когда у нас не было возможности (по техническим причинам)
собирать ежедневные снапшоты, Сергей Мереуца предложил свою
помощь и линуксовые снапшоты от dqteam до сих пор живы.

   Не вижу ни единой проблемы или недоразумения в этом.

--
Хорсун Влад 





Re: печалька для тестеров execute block+STATEMENT+ON EXTERNAL

2012-03-03 Пенетрантность Khorsun Vlad

Boltik Evgeny ...

Добрый день.

(время мин:сек) Задача подключится на локальной машине к соседней базе и 
скопировать записи таблицы.
В надежде ускорить вставку был в недоумении.
Думая что execute block+STATEMENT к другой базе даст прирост при вставке 
переписал код.
Но каково было удивление, что прирост был не велик


   Коннект локальный\сетевой ? На таблице-приёмнике есть триггеры\индексы ?
С чем вообще сравниваешь ? И какого прироста ты ожидал ? :-D


теряем возможность получить ошибку и продолжить вставку, если надо продолжить.


   С чего бы это ?

--
Хорсун Влад 





Re: Глюки в рекурсивном запросе

2011-12-12 Пенетрантность Khorsun Vlad

Tonal ...

Наткнулся на такую глючу.
В запросе ниже


   Хорошо бы, чтобы DLL мог выполниться. На новой пустой БД.

--
Хорсун Влад

PS http://tracker.firebirdsql.org/browse/CORE-3683 - не оно ? 





Re: delete from MON$ATTACHMENTS where MON$ATTACHMENTS.MON$ATTACHMENT_IDCURRENT_CONNECTION

2011-12-02 Пенетрантность Khorsun Vlad

reshetnyakvkt ...


Сама ось не висит, выполняет команды и т.д. А к серверу firebird не
присоединится, все соединения уходят в никуда, т.е. висят без ответа на
ошибку коннекта или другое.


   Бектрейс висячего процесса и копия лок-таблицы могут пролить свет
на эту тайну

--
Хорсун Влад 





Re: Проблема с уникальным индексом на 2.5.1

2011-11-28 Пенетрантность Khorsun Vlad

A K ...

В базе есть уникальный индекс по двум строковым полям.


   Тип данных какой ? И чарсет.


База перестала восстанавливаться из архива.


   А когда восстанавливалась ?
На 2.5.0 восстанавливается ?


Восстанавливаем без индексов.
Пытаемся воссоздать этот индекс -- ругается на наличие повторяющихся строк. Но,

1) запрос с группировкой показывает что повторяющихся строк НЕТ.
2) более того, первое поле в индексе содержит только уникальные значения.


   Откуда это известно ? На первое поле уникальный индекс даёт создать ?


3) была идея, что наличие NULL в некоторых строках во второй колонке
индекса приводит к такому эффекту, но замена NULL на пустые строки
все равно не дает создать индекс.

Что за проблема? Если что, базу могу на какой ФТП залить.


   Сначала на вопросы ответь :)

--
Хорсун Влад 





Re: new / delete в UDF

2011-11-28 Пенетрантность Khorsun Vlad

Vladimir ...

Спасибо за совет.
Очень было похоже, что это может помочь, но никакие опции редактора не
изменили ситуацию.


   Какого-такого редактора ?


Пробовал --no-export-dynamic  --exclude-libs, никакого эффекта.


   Какая версия Firebird ?

   Есть возможность пройтись отладчиком по коду UDF и посмотреть - что
за delete он вызывает?

--
Хорсун Влад 





Re: Проблема с уникальным индексом на 2.5.1

2011-11-28 Пенетрантность Khorsun Vlad

A K ...

   Ок, пакуй БД и выкладывай куда-нить для ознакомления.
Если там ценные данные или их просто много, можно дропнуть не
нужные таблицы и выложить бекап.

--
Влад 





Re: new / delete в UDF

2011-11-28 Пенетрантность Khorsun Vlad

Vladimir ...

   А каким образом проверяется работоспособность UDF ?
Запросы выполняются в isql с локальным коннектом ?
Сетевой коннект не пробовал ?

--
Хорсун Влад 





Re: new / delete в UDF

2011-11-17 Пенетрантность Khorsun Vlad

Vladimir ...

Здравствуйте!

При попытке в Linux использовать UDF, собранную в gcc, столкнулся со
следующим:

 long* aTestItem = new long;
 delete aTestItem;

вызывает ошибку Segmentation fault на операторе delete.


   Насколько я помню, нужно явно сказать линкеру не экспортировать
из .so всё подряд.

--
Хорсун Влад




Re: Тозмоза простейших запросов

2011-11-11 Пенетрантность Khorsun Vlad

Alexey Popov ...

Ранее я писал:


Есть БД под FB2.0.3 SS. С ней постоянно работают несколько служебных
программ и периодически пользователи. В служебных программах
происходят только простейшие select/insert, которые выполняются
обычно мгновенно. Там так же сделана сигнализация (вывод в лог) если
какой то запрос будет выполняться слишком долго. И иногда в
попадаются единичные записи о слишком долгом выполнении таких
примитивных sql запросов - до 44 секунд! Время суток - уже когда
пользователи ушли домой, серьёзной нагрузки нет. Запись о замедлении
есть с разных клиентов в одно и тоже время, один из клиентов
находится там где и сервер БД, поэтому проблемы с сетью как бы
отметаются.


Виноват оказался sweep.


   Откуда это видно ?


Вот наиболее важные свойства базы:

Database size : 1409 Mb
Page size 8192
ODS version 11.0
Oldest transaction 67773710
Oldest active 67773711
Oldest snapshot 67773711
Next transaction 67786537
Sweep interval: 2

Как вижно разница скоро достигнет 2 и сработает sweep. Почему транзацкции застревают - это отдельный вопрос, ранее такого не 
было.

Может быть rollback виноват???


   OIT застревает или от роллбека, или от лимбо. Это азы.
Но в данном случае я не вижу застрявшего OIT, ибо OAT = OIT + 1, т.е.
есть долгоиграющая тр-ция с номером 67773711. С ней и разбирайся.


Основной вопрос в том, почему sweep полностью блокирует работу сервера даже на 
запросе
execute block as begin post_event 'my_event'; end
?


   Дисковая никакая ? gstat -r давно смотрел ? Сколько памяти в наличии ?

--
Хорсун Влад 





Re: Тозмоза простейших запросов

2011-11-11 Пенетрантность Khorsun Vlad

Alexey Popov ...


   OIT застревает или от роллбека, или от лимбо. Это азы.
Но в данном случае я не вижу застрявшего OIT, ибо OAT = OIT + 1, т.е.
есть долгоиграющая тр-ция с номером 67773711. С ней и разбирайся.


Сама по себе долгоиграющая может появится штатно, т.к. юзеры днём там пасутся.


   Ну и что ?


Основной вопрос в том, почему sweep полностью блокирует работу сервера даже на 
запросе
execute block as begin post_event 'my_event'; end


   Дисковая никакая ? gstat -r давно смотрел ? Сколько памяти в наличии ?


Памяти 2Гб, диск один SATA2. Но и база то мелкая, зато реалтайм.


   Если ты хочешь кешировать БД целиком, то по памяти ты на грани. Добавить
её не помешает. Если реалтайм, то почему авто-свип не запрещён ? Далее.
Свип может много писать на диск (если мусора много). Т.к. диск один, то
запросы на чтение будут сильно проседать во время такой записи. С другой
стороны, если добиться полного кеширования БД в файловом кеше, то запросов
на чтение просто не станет.

   Так что я бы попробвал добить память до 3GB и тянуть всю БД в кеш при
старте системы. Например, с помощью того же gstat -r, читающего всё, кроме
разве что блобов.

--
Хорсун Влад 





Re: buffer overflow detected при вызове udf в isql

2011-10-28 Пенетрантность Khorsun Vlad

Vladimir wrote in message ...

Здравствуйте!

При попытке вызова udf в isql получаю сообщение
*** buffer overflow detected ***: /usr/lib/firebird/2.1/bin/isql
terminated
Далее выводится Backtrace и Memory map


   Коннект локальный ?

--
Хорсун Влад 





Re: перестают поступать события

2011-10-17 Пенетрантность Khorsun Vlad

Alexey Popov ...

Есть FB2.0


   Нет такой версии

--
Хорсун Влад 





Re: перестают поступать события

2011-10-17 Пенетрантность Khorsun Vlad

Alexey Popov ...

Khorsun Vlad wrote:


Есть FB2.0


   Нет такой версии


А вот и есть! 2.0.3.12981


   Такая есть. Но есть и 2.0.6, в которой что-то могло быть исправлено.
Есть релизноты и трекер для поиска этого чего-то.

--
Хорсун Влад 





Re: перестают поступать события

2011-10-17 Пенетрантность Khorsun Vlad

Alexey Popov ...

Khorsun Vlad wrote:


   Такая есть. Но есть и 2.0.6, в которой что-то могло быть исправлено.
Есть релизноты и трекер для поиска этого чего-то.


На круглосуточной боевой базе стрёмно как то обновление делать.
Проблема наблюдается на одном инстансе из многих.


   Тогда чего же ты хочешь ? Чтобы оно само прошло ? :-D

--
Хорсун Влад

PS Ты багу-то хоть в трекере нашёл ? А искал ?
PPS Я не искал. Но с ивентами многое исправлялось. 





Re: round

2011-10-14 Пенетрантность Khorsun Vlad

Dmitry Lendel ...

День добрый,
round возвращает кучу нулей после знака

Скачем select round(1.,2) from rdb$database
вернет 1.3300

Так должно быть?


   Если подумать (иногда это помогает), то станет ясно,
что не round форматирует число в строку...

--
Хорсун Влад

PS RTFM: datatype, CAST, TRIM 





Re: round

2011-10-14 Пенетрантность Khorsun Vlad

Dmitry Lendel ...

   Если подумать (иногда это помогает), то станет ясно,
что не round форматирует число в строку...

А причем тут строка?


   А ты на экране что видишь ? Бинарное представление числа с плавающей точкой ?

--
Хорсун Влад

PS Т.е. думать таки не хочется. Понимаю - пятница... :-D 





Re: Обновление View

2011-09-23 Пенетрантность Khorsun Vlad

Андрей Кручинин ...

Хотя, пока писал пришла бешеная мысль в голову :-) Сделать запрос через ХП, в которой определять откуда забирать данные. А уж 
метку откуда можно и в генераторе держать.


   Можно и так. Или научить программу пользоваться актуальной таблицей.
Чтобы не замучать сервер пересозданием таблиц, можно подумать над такой
схемой:
а) есть две таблицы с идентичной стр-рой, одна актуальна, вторая - нет
б) программа (или sp) работает только с актуальной таблицей
в) есть признак (имя) актуальной таблицы
г) заливка происходит в неактуальную таблицу, в которой отключаются
  индексы и триггеры и делается сборка мусора
д) после заливки таблицы меняются ролями


   Или можно к данным добавить метку, инкрементируемую перед каждой
заливкой. Она же входит первым полем в каждый индекс и обязательно
участвует во всех пользовательских запросах. Есс-но, пользователь
всегда читает самые свежие данные. Удаление старых данных делать в
технологическом окне (ночью) с отключением индексов и т.п.

--
Хорсун Влад 





Re: ИндексЫ

2011-09-19 Пенетрантность Khorsun Vlad

Михаил Викторович ...

Подскажите можно сделать индекс не полю а например на основании udf, которая
будет обрабатывать блоб?


   Да.


Можно сделать так что бы не все записи добавлялась в индекс?


   Нет.

--
Хорсун Влад 





Re: Битая база и торомоза

2011-09-16 Пенетрантность Khorsun Vlad

Андрей Кручинин ...

Таки барабашки продолжаются. Опять подлегла.

Unsuccessful execution caused by a system error that precludes successful 
execution of subsequent statements.
database file appears corrupt (BaseName).
wrong page type.
page 302478 is of wrong type (expected 7, found 5).


   Это лечилось после 2.1.3, насколько я помню

--
Хорсун Влад 





Re: Битая база и торомоза

2011-09-16 Пенетрантность Khorsun Vlad

Андрей Кручинин ...

16.09.2011 11:45, Андрей Кручинин пишет:

отрыли в логах такую запись:

[ 2472.739221] fb_inet_server.[16184] general protection ip:7f8fd867c7b8 sp:7fff7d078e58 error:0 in 
libfbembed.so.2.1.3[7f8fd85c+323000]


Я не спец в нуксах, можно разжевать данную ошибку?


general protection [fault] == access violation
ip, sp - регистры

   Нужно ставить .pdb файлы и анализировать бектрейс, извлекаемый из
coredump :

   http://www.ibphoenix.com/resources/documents/search/doc_36

--
Хорсун Влад




Re: Тозмоза простейших запросов

2011-09-16 Пенетрантность Khorsun Vlad

Alexey Popov ...
...

Частота появления таких записей примерно стабильна и составляет 1 раз в 24-25 
часов.


   Я бы начал с настройки PerfMon'а и сопоставления его логов.
Свип можно отследить, мониторя OIT и OAT.

--
Хорсун Влад 





Re: Битая база и торомоза

2011-09-09 Пенетрантность Khorsun Vlad

Андрей Кручинин ...


Есть битая база, 50 Гб


   Так что битое-то ? Есть хоть что-то осязаемое - ошибка в программе,
сообщение в логе, проблемы при валидации ?

--
Хорсун Влад 





Re: странная фича с паролем для SYSDBA

2011-09-05 Пенетрантность Khorsun Vlad

plasmorf ...

Доброе время суток.
У меня возникли вопросы:


   Все ответы есть в релизнотах.


1. Пользователь имеющий права роли RDB$ADMIN почему-то может менять
пароль SYSDBA - это так и задуманно?!!


   Да, потому что он и есть SYSDBA, который может менять пароль любого
пользователя.


2. Почему SYSDBA не может снять права назначенные пользователем с
правами роли RDB$ADMIN?


   RTFM, GRANTED BY

--
Хорсун Влад 





Re: странная фича с паролем для SYSDBA

2011-09-05 Пенетрантность Khorsun Vlad

plasmorf ...



On 5 сен, 13:25, Khorsun Vlad wrote:
Нет, любой пользователь (НЕ SYSDBA), имеющий права RDB$ADMIN может
сменить пароль SYSDBA.


   Релизноты кто читать будет ? Что означает роль RDB$ADMIN, по-твоему ?


RTFM, GRANTED BY


Это понятно, однако как быть с ситуацией, когда один из пользователей
с правами RDB$ADMIN нараздавал прав, как нужных так и не очень и уехал
в тайгу, и теперь чтобы снять часть прав (а не все что он раздал)
розданных этим пользователем требуется менять ему пароль, заходить под
его логином и уже работать... как-то замучено получается, или я
ошибаюсь?


   ЧИТАЙ РЕЛИЗНОТЫ, сколько можно повторять ?

REVOKE ... GRANTED BY, REVOKE ALL для кого делали ?

--
Хорсун Влад

PS Ну как можно это не увидеть ??? 





Re: Вопрос про FB 2.5 + клиент от FB 1.5

2011-08-26 Пенетрантность Khorsun Vlad

Ovchinnikov Vasily ...


Я достаточно параноидален, чтобы таки продолжать чувствовать какой-то подвох в 
связке клиент 1.5 + база 2.5 в своем случае?..


   Могут быть проблемы с отображением новых видов ошибок. Локальный протокол не
совместим. В остальном проблем быть не должно.

--
Хорсун Влад 





Re: Хранениетелеметрии

2011-08-22 Пенетрантность Khorsun Vlad

Alexey Popov ...

Vlad Khorsun wrote:


Не, экономить номера транзакций тут нет никакого желания.


   Если ты собрался каждое показание сохранять в отдельной тр-ции, то я такое 
не лечу,
это в другое учреждение :)


А зачем оприори делать через жопу?


   Во-первых *а*приори. Во-вторых - писать из датчика напрямую в БД
это и есть через жопу. Впрочем я выше написал что такое не лечу :)

Если датчик допустим даёт показания раз в 10 сек (или даже тупо регистрирует события), то почему надо обязательно экономить 
транзакции. Писателей в БД скорее всего будет много, не в одном коннекте.

Я уж и не говорю про транзакции на анализ данных (в автоматическом режиме).


   Угу, 2^31 анализов за полгода... Сам понял, что написал ?
Ну тогда и нам объясни :)


Это уже новая ОДС.


   Да. И ?


Это значит будет не скоро.


   А у тебя уже всё готово ? Значит нужно пользоваться тем, что есть.


   Вставляй показания пакетами в небольшие блобы. Да, усложнится прикладное
приложение, я знаю. А кому сейчас легко ? (ц)


Дык я и говорю что FB пока не очень для таких задач.


   А кто - очень ? NTFS ? Ну так я же не заставляю мучать ФБ, у меня
другой интерес, но ты его не удовлетворяешь (алгоритмы, алгоритмы...).


И чем это принципиально отличается
от плоских файлов в файловой системе ?


В случае файлов всё значительно упрощается.


   А ну да - вот оно принципиальное отличие, как я разу не увидел :-D


Измения каждого датчика пишутся в отельный файл. 8 байт на измерение (4 - 
время, 4-значение)
Миллиард измерений всего 8Гб будет. Индексов не надо.
Выборку данных делает сервер приложений.


   Ну сделай выборку за последний день с 20 датчиков. Читая 8x20GB в
сервере приложений :) А, ты будешь каждый день новый файл создавать ?
А ведь в одном каталоге 100500 файлов хранить - очень плохо, придётся
ещё и схему разброса по [суб]каталогам придумывать. И сервер приложения
от этого гораздо проще станет (см. выше про усложнения прикладного ПО) ?
:)

   А ведь при наличии СУБД (любой, не обязательно ФБ) апп-сервер
становится не нужен.

   Я позволю себе ещё раз повторить, что хрен редьки не слаще...

--
Хорсун Влад 





Re: Хранениетелеметрии

2011-08-22 Пенетрантность Khorsun Vlad

Alexey Popov ...

Khorsun Vlad wrote:


   Во-первых *а*приори. Во-вторых - писать из датчика напрямую в БД
это и есть через жопу. Впрочем я выше написал что такое не лечу :)


Буфер есть, но только для нештатных ситуаций.
Я так и не понял, как ты предлагаешь вставлять записи, идущие от датчика например раз в 1 сек? Ждать 10штук, потом оптом 
вставлять? Только не это.


   Если тебе нужно отражать показания сотен датчиков *немедленно*, то никакая
СУБД тебе не подойдёт. И тысячи файлов тоже, кстати (покажите мне систему,
которая опрашивает одновременно тысячи файлов, часть из которых ещё не создана).
Тебе *придётся* писать агентов, которые будут получать данные с датчиков,
хранить локальную историю показаний, реагировать на мгновенные отклонения и
передавать эти данные в центральный апп-сервер, который уже будет раздавать
их клиентам для отображения. Ну и потом уже спокойно, не торопясь писать данные
в центральную БД для менее срочных отчётов и истории. Но, в первую очередь,
сохранять полученные данные в *локальный* лог, причём без кеширования и иной
буферизации в системе.

   Это если ты действительно хочешь постороить *надёжную* *и* *оперативную*
систему. Есс-но, я не претендую на истину в последней инстанции, но поработать
тебе всё равно придётся, и схема хранения данных будет не самым острым вопросом.


   Угу, 2^31 анализов за полгода... Сам понял, что написал ?
Ну тогда и нам объясни :)


Вставка И анализы вместе. В распределённой системе (много клиентов и писателей) будет очень непросто контролировать расход номеров 
транзакций.


   См. выше.


   А кто - очень ? NTFS ? Ну так я же не заставляю мучать ФБ, у меня
другой интерес, но ты его не удовлетворяешь (алгоритмы, алгоритмы...).


Для начала нужен всего лишь кластерный индекс по паре (id датчика, время).


   Подумай о скорости его обновления, особенно при конкурентном доступе...


   Ну сделай выборку за последний день с 20 датчиков. Читая 8x20GB в
сервере приложений :) А, ты будешь каждый день новый файл создавать ?


Внутри файла с показаниями датчика измерения будут лежать в порядке времени. Поэтому полное чтение файла не нужно при выборке по 
интервалу времени.


   А, массив в файле. Да, можно выкрутиться. Но ты всё равно попробуй.
Создай десяток тысяч скажем мегабайтных файлов и почитай по 1КБ из середины
нескольких десятков. И так - много раз.


   А ведь при наличии СУБД (любой, не обязательно ФБ) апп-сервер
становится не нужен.


Мы уже тут очертили основные проблемы на этом пути. Есть три метода:
1) Свалить все измения в одну таблицу.
2) Партиционировать по разным таблицам
3) Аналогично по разным БД
Я приемлю только первый способ. Но его сервер не осилит.


   Я приемлю - это не аргумент. Думать нужно. И считать. И опять думать.
Впрочем, я твои задачи решать не хочу, тебе жить, да и голова у тебя своя.
Расскажешь потом к чему пришёл и какие хар-ки получил, будет интересно ;)

--
Хорсун Влад. 





Re: Sum() null и я в жару на лыжах

2011-07-29 Пенетрантность Khorsun Vlad

Dmitry Lendel ...

Я замечал и не раз, что если вставить константу в качестве поля и использовать агрегат с группировкой по этой константе, то такие 
чудеса бывают.

Нужна помощь.


   В трекере это давно есть и исправлено, iirc

--
Хорсун Влад 





Re: Lock in transaction

2011-07-22 Пенетрантность Khorsun Vlad

Dmitry Lendel ...

Привет
Столкнулся с такой проблемой
Есть сеть. В несколько компьютеров.
Есть транзакция с параметром Lock write
Ситуация такая. Одни из пользователей запускает такую транзакцию, другой лезет менять что-то. Обычно выкидывает Lock conflict, а 
тут компьютер уходит в ступор.


   Там после lock conflict есть ещё буквы в сообщении.

--
Хорсун Влад 





Re: Lock in transaction

2011-07-22 Пенетрантность Khorsun Vlad

Dmitry Lendel ...


Dmitry Lendel ...

Привет
Столкнулся с такой проблемой
Есть сеть. В несколько компьютеров.
Есть транзакция с параметром Lock write
Ситуация такая. Одни из пользователей запускает такую транзакцию, другой
лезет менять что-то. Обычно выкидывает Lock conflict, а тут компьютер
уходит в ступор.


   Там после lock conflict есть ещё буквы в сообщении.

Обычно что-то вроде этого см картинку


   Вот нафига тут картинки ???


Запускается холостой update c параметрами
read_committed
rec_version
lock_write=REMAINDER
nowait


   Это параметры тр-ции, а не апдейта.


Программа по коду ошибки определяет что случилось пример
if ErrorValue.IBErrorCode=335544345 then ErrorValue.Message:='Другой
пользователь редактирует документ.';

Если код не тот. то пользователь видит оригинальное сообщение сервера
В данном случае, вообще ничего не приходит и висит (или ждет чего-то)


   Значит у тр-ции НЕТ опции nowait. Смотри в мониторинг и\или в трейс.
Выясняй что у тебя висит - старт тр-ции или сам апдейт. Если первое -
проверяй параметры тр-ции. Если второе - проверяй параметры той тр-ции,
в которой выполняется апдейт, а не той, на которую ты думаешь.

   Либо давай воспроизводимый пример.

--
Хорсун Влад 





Re: Железо сервера БД

2011-07-15 Пенетрантность Khorsun Vlad

Dmitri Kuzmenko ...


С IB вообще интереснее в том плане, что если ему кэша не хватает,
то он его увеличивает, это можно отследить, пишет в логи сообщения типа


   Это есть и в IB6. Только в лог не пишется.

--
Хорсун Влад 





Re: EXECUTE STATEMENT к другой базе в рамках установленного коннекта

2011-07-08 Пенетрантность Khorsun Vlad

Михаил Викторович wrote ...


Подскажите в IB была такая фигня,  если в индексе низкая селективность, то
вставка начинала очень сильно тормозить, получалось что при вставке IB
просматривает все одинаковые значения ключа и только потом делает вставку в
конце, для борьбы с этим делали составные ключи добавляя в них первичный
ключ (код).

За FB подобного не замечал. Подскажите в FB на уровне базы это решено?


   Как уже сказал DY, при вставке никаких тормозов не было. Правда я не
могу знать за IB5 и ниже, но не думаю что там было такое. Тормоза были при
удалении ключей из низкоселективных индексов и эта проблема полностью
решена в ODS11, введённой в FB2.0.

   Могу только предположить, что тормоза были при апдейте, который собирал
мусор после предыдущего апдейта и, соответственно, удалял старые ключи из
индекса.

--
Хорсун Влад 





Re: EXECUTE STATEMENT к другой базе в рамках установленного коннекта

2011-07-01 Пенетрантность Khorsun Vlad

A K wrote ...

Добрый день!

Возможность выполнять EXECUTE STATEMENT на другой базе
позволяет легко реализовать надежную схему односторонней
онлайн репликации.

Но, вся засада в том, что коннект к базе открывается
каждый раз при выполнении оператора. Мы собрали у себя тестовый пример.
Изменения без репликации проходят на базе за 20 сек.
А те же изменения, но с их репликацией на другую базу в триггерах
уже за 4 мин 22 сек. Т.е. замедление в 13 раз.


   Попробуйте выталкивать изменения не по каждому I\U\D а по коммиту
тр-ции. Накапливать изменения можно в GTT. Если же полная синхронность
не требуется, то можно выталкивать изменения ещё реже.


Базы идентичны по структуре. Лежат на одном и том же сервере.
Используется суперсервер.


   Какой протокол для внешнего коннекта используется ? Для локального
сервера лучше всего локальный протокол.


Такое предложение: чтобы можно было открыть из одной БД
(например, внутри триггера на подключение к базе) коннект к другой
базе и затем использовать его для выполнения операций
EXECUTE STATEMENT.


   Внешние соединения кешироваться будут, но точно не в 2.5.1

--
Хорсун Влад





Re: Рекурсивные EB

2011-06-24 Пенетрантность Khorsun Vlad

Tonal wrote in message ...

23.06.2011 20:58, Vlad Khorsun пишет:

   Пиши процедуры для таких задач. По-хорошему советую :)

EB вполне устраивает.

   Он не будет рекурсивным.


Этому есть какие-то причины теоретического плана или технического?


   Нет конечно, это мой каприз.


Но без возможности рекурсии работа с деревом из него сильно ограничена.

   Таки есть более другие инстурменты.


По факту единственным универсальным инструментом для работы с деревьями
на сервере остаются рекурсивные сохранёнки. :(


   Не вижу в этом ничего плохого. Ну и это утверждение ничем не доказано.


Либо тащить всё на клиента.


   Глупости какие-то


Даже с применением СТЕ еще удаление решается, а копирование и слияние
уже нет.

   Чёй-та ? (ц)


Про удаление мы вроде бы выяснили:
delete from ... where id in (with recursive...)
отвалится, если связь без каскадного удаления, т. к. невозможно задать
порядок удаления.


   Нет, мы выяснили что есть for with recursive который позволяет не
писать процедуру (А ЧЕМ ПЛОХО ПИСАТЬ ПРОЦЕДУРУ ???)и обойтись без
несуществующего рекурсивного EB


Так же в СТЕ невозможно указать порядок детей. Т. е. в случае его
важности придётся применять рекурсивную процедуру.


   Порядок детей ? В этом обсуждении первый раз слышу об этом.
В более широком стандартном синтаксисе *есть* возможность указать
сортировку на каждом уровне рекурсии отдельно. Но что-то я пока не
встречал более 2-3 просьб это реализовать...


Нельзя сделать поиск по путям.


   Ты с кем разговариваешь ? Я тебя уже потерял :)


Опять же, такой запрос как посчитать количество дочек для каждого узла в
указанной ветке будет отставать по скорости примерно на степень от
прямой рекурсивной реализации (как O(n) от O(n^2) или больше).


   Опять бездоказательное утверждение. И опять не вижу причин отказываться
от процедур.


Т. е. даже простые вычисления на дереве с использованием СТЕ
использовать не получится. :(


   Вот несчатье-то... И ряды Фурье на SQL сложно считать...


Так же нет возможности организовать копирование веток, их слияние - т.
е. модификацию дерева.


   Опять без доказательства.


В сухом остатке получается, что СТЕ - это базовый, но очень ограниченный
механизм. Для нормальной работы придётся либо использовать сохранёнки на
каждый чих, либо проделывать все манипуляции на клиенте...


   Ну, похоже это твой путь, раз ты другого не нашёл


Да есть вроде ещё один путь: использовать ЕБ и реализовать рекурсию
руками, используя GTT как стек (пока не пробовал).
Но всё же было бы удобнее/проще/надёжнее/производительнее если бы
рекурсию в ЕБ можно было использовать напрямую.


   Можно. В процедурах.


П. С. Ну а если бы механизм СТЕ развился, чтобы покрывать хотя бы часть
этих задач, было бы просто нереально круто! :)


   А может ты просто не нашёл решения для части этих задач ?

--
Хорсун Влад

PS Не удивлюсь, если ты окажешься фанатом новомодных лямбда ф-ций (чи как
их там - когда тело ф-ции пишут в месте её вызова, без объявления) :-D 





Re: Рекурсивные EB

2011-06-24 Пенетрантность Khorsun Vlad

Arioch ...

В письме от Fri, 24 Jun 2011 10:49:38 +0400, Khorsun Vlad  сообщал:


   Нет, мы выяснили что есть for with recursive который позволяет не
писать процедуру (А ЧЕМ ПЛОХО ПИСАТЬ ПРОЦЕДУРУ ???)


stack overflow :-)


   Пальцем в небо. Давай не будем делать предположений за других.

--
Хорсун Влад 





Re: Рекурсивные EB

2011-06-24 Пенетрантность Khorsun Vlad

A K ...




PS Не удивлюсь, если ты окажешься фанатом новомодных лямбда ф-ций (чи как
их там - когда тело ф-ции пишут в месте её вызова, без объявления) :-D



а чем плохо? лямбда функции (в виде рекурсивных EB) стали бы
конкурентным преимуществом сервера и замечательной темой для
рекламы.


   Отвратительная возможность, провоцирующая написание нечитаемого
и несопровождаемого спагетти-кода, созданная на пустом месте чисто в
маркетинговых целях.

   Вот такое моё частное мнение о лямбда-функциях.

--
Хорсун Влад

PS EXECUTE STATEMENT, часто ругаемый некоторыми ортодоксами - невинное
  дитя, по сравнениею с этой порно-бомбой. 





Re: Рекурсивные EB

2011-06-24 Пенетрантность Khorsun Vlad

Yurij ...


А как вы относитесь к функциональному программированию и около него
вообще? Ну там функции высшего порядка, всякая там строгая типизация,
вариантные типы данных и прочее тому подобное?


   Когда-то давно, лет 8 назад, что-то читал на эту тему, ни ничего не
пробовал. Да тогда и не было почти ничего конкретного. Было интересно, но
не более того. Сейчас нет особого желания в это вникать. Если это не мода,
т.е. если оно не исчезнет через год-два-три, возможно посмотрю пристальнее.
Или если жизнь заставит :)

   Опять-же - это моё частное мнение.

--
Хорсун Влад




Re: Рекурсивные EB

2011-06-24 Пенетрантность Khorsun Vlad

Alex Cherednichenko ...

24.06.2011 17:28, A K пишет:


современные тенденции -- сближение технологий.
LINQ, всяческие ОО


ихний LINQ - жалкое подобие нашего GPRE!


   +100500

--
Хорсун Влад 





Re: Рекурсивные EB

2011-06-24 Пенетрантность Khorsun Vlad

Yurij ...



On Jun 24, 3:36 pm, Alex Cherednichenko wrote:

24.06.2011 17:28, A K :

современные тенденции -- сближение технологий.
LINQ, всяческие ОО

ихний LINQ - жалкое подобие нашего GPRE!


В GPRE строгая типизация


   Да


и монады есть?:)


   Понятия не имею.

--
Хорсун Влад




Re: Как отключить -USE_(ALL_SPACE) ?

2011-06-03 Пенетрантность Khorsun Vlad

Konstantin R. Beliaev ...

Khorsun Vlad wrote:

Ты вообще пытался хоть какую-нибудь документацию читать ? Прости, но
за много лет пребывания на этом форуме твои вопросы заставляют меня
считать обратное, и лучше не становится...


Извини, Влад :)
отвечу анекдотом:
- Почему так мало людей умеют устанавливать UNIX ?
- Потому что его один раз поставил - и он стоит...

Так и с птицей: когда необходимость в GFIX возникает раз в год, о его 
существовании как-то забываешь :)))


   Ладно, отмазка принимается :) Но в след раз ты уж загляни в доку :)

--
Хорсун Влад 





Re: Как отключить -USE_(ALL_SPACE) ?

2011-05-27 Пенетрантность Khorsun Vlad

Konstantin R. Beliaev ...

Vlad Khorsun wrote:

Konstantin R.Beliaev ...


Когда-то сдуру при ресторе включил опцию gbak
-USE_(ALL_SPACE)  do not reserve space for record versions

Теперь в свойствах базы вижу
Attributes  force write, no reserve

Несколько раз бэкап-ресторил уже без этой опции, но в свойствах no
reserve сохраняется.
Как его теперь отключить-то? :)
FB 2.5



   gfix -use тебе всё скажет


Блин, ни за что б не догадался, что надо GFIX смотреть :((


   Ты знаешь другую утилиту, которая изменяет флаги на header page ?
Ты вообще пытался хоть какую-нибудь документацию читать ? Прости, но
за много лет пребывания на этом форуме твои вопросы заставляют меня
считать обратное, и лучше не становится...

--
Хорсун Влад 





Re: Бэкап через сервисы

2011-05-27 Пенетрантность Khorsun Vlad

Konstantin R. Beliaev ...

Vlad Khorsun wrote:

Cannot perform operation -- service is not attached.


   isc_service_start вызван без вызова isc_service_attach, или 
isc_service_attach завершился с ошибкой.


Не, ну разница-то только в пути к файлу бэкапа!
Если я укажу несуществующий диск или каталог, например: H:\blabla\123.fbk
то у меня программа дает сообщение о неправильном файле,
а у клиента не подключается сервис! :(


   Отлаживайся. Волшебного заклинания нет. Что-то где-то как-то не так
работает...


gbak через сервисы дает нормальную диагностику про неправильный файл,


   Ну так в где бобина ?


хотя пока игрался, нашел что вот такая ошибочная команда:
gbak -b localhost:d:\base\multi.fdb h:\base\multi_meta.gbk -g -m -se
приводит к падению процесса классика (Firebird-2.5.1.26166-0_Win32) :
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.


   Если воспроизводится - в трекер её.

--
Хорсун Влад 





Re: FB 3.0 snapshot

2011-05-13 Пенетрантность Khorsun Vlad

Andrei ...


чистый снэпшот от 11-го мая. порт 3054 в конфиге.


   Попробуй сегодняшний снапшот, он уже с VC10 собран.
По идее можно сказать прощай проблемам с рантаймом.

--
Хорсун Влад 





Re: FB 3.0 snapshot

2011-05-13 Пенетрантность Khorsun Vlad

PEAKTOP ...

Попробуй сегодняшний снапшот, он уже с VC10 собран.


Можно считать, что теперь официальный сборщик VC10 ?


   Да


По идее можно сказать прощай проблемам с рантаймом.


Не прошло и трех версий... =


   Я бы не стал драматизировать :)

--
Хорсун Влад 





Re: FB 3.0 snapshot

2011-05-10 Пенетрантность Khorsun Vlad

Andrei ...

ок. значит все файлы теперь в одном каталоге -- в корне.
папки UDF, INTL остались, так?

делаю:

1) все в одну папку перенес
2) перехожу в нее
3) instsvc i -s -a -n fb30
  успешно
4) instsvc start -n fb30
  ошибка!

заглядываю с список сервисов. fb30
прописан как:

c:\program files\firebird 3.0\bin\fbserver.exe

т.е. в утилите instsvc ошибка?


   А то я не писал об этом надцать раз ?

--
Хорсун Влад 





Re: FB 3.0 snapshot

2011-05-10 Пенетрантность Khorsun Vlad

Andrei ...

1) запущены Yaffil, FB 2.0, FB 2.1, FB 2.5 на портах 3050-3053. Для FB
3.0
в конф файле прописан порт 3054.


   IpcName забыл сменить, или укажи ключ -i 3054 в строке запуска
firebird.exe - это отключит XNET и WNET


2) Переименовываю security3.fdb из снэпшота.


   Не надо этого. И не надо этот снапшот накладывать на предыдущий.

--
Хорсун Влад 





Re: FB 3.0 snapshot

2011-05-10 Пенетрантность Khorsun Vlad

т.е. в утилите instsvc ошибка?


   А то я не писал об этом надцать раз ?


   Поправил там всё на эту тему, след. снапшот должен работать.

--
Хорсун Влад 





Re: Представление GUID в Fb и .Net

2011-04-18 Пенетрантность Khorsun Vlad

Евгений Виноградный ...

Доброго времени суток!

Может не совсем по теме пишу. Но есть следующая проблема, касающаяся стыковки Firebird  и .Net. Кратко ее суть - строковое 
представление одних и тех же данных полученное через встроенную функцию Firebird - UUID_TO_CHAR() отличается от представления 
возвращаемого экземпляром класса .Net framework Guid.ToString(). Естественно я имею в виду экземпляр класса полученный от .Net 
Data Provider из поля БД. Т.е. в результате выходит, что данные полученные посредством .Net Data Provider и UUID_TO_CHAR() из 
отдних и тех же данных визульно (в виде строк) будут отличаться. Подробности здесь - 
http://tracker.firebirdsql.org/browse/DNET-376 . Бага закрыта как не воспроизводимая, хотя тест показывает суть проблемы.


   Ну так в провайдере нечего воспроизводить. Хотя он должен был закрыть
тикет с Wan't Fix :)

   Похоже, бага в UUID_TO_CHAR, точнее не бага, а не соответствие UUID_TO_CHAR
представлению в .Net. Если есть стандарт на текстовое представление guid'ов
(rfc4122 ?), рекомендую открыть новый тикет именно про UUID_TO_CHAR.

--
Хорсун Влад

PS Формально говоря, UUID - это не GUID :) 





Re: Представление GUID в Fb и .Net

2011-04-18 Пенетрантность Khorsun Vlad

   Похоже, бага в UUID_TO_CHAR, точнее не бага, а не соответствие UUID_TO_CHAR
представлению в .Net. Если есть стандарт на текстовое представление guid'ов
(rfc4122 ?), рекомендую открыть новый тикет именно про UUID_TO_CHAR.


   Или прокомментировать CORE-3238, чтобы добавить ему вес.

--
Хорсун Влад 





Re: Шуточки :(

2011-04-04 Пенетрантность Khorsun Vlad

Dmitry Lendel ...

Влад, Можно менять тип поля как я писал ниже или выше


   Нельзя конечно. Нет, если БД для тестов - делай что угодно, но
зачем тогда спрашивать разрешение ? :)

--
Хорсун Влад 





Re: Шуточки :(

2011-04-01 Пенетрантность Khorsun Vlad

Andrei wrote in message ...

Установил снэпшот от 1 апреля ФБ 2.5. Перестали разбэкапливаться базы.
Выдает сообщение:

gbak: ERROR:invalid request BLR at offset 105
gbak: ERROR:exception GD_E_INVALIDUSERUPDATE not defined
gbak:Exiting before completion due to errors


На исходной базе такое исключение есть. gfix ничего не выдает.

Взял более раннюю версию сервера 2.5 -- все работает ок.


   Проверяешь на бекапе метаданных. Если воспроизводится -
бекап в трекер/

--
Хорсун Влад

PS Нет такого слова - разбэкапливаться 





Re: Firebird-2.5.1.26240-0_Win32 CS кушает много памяти на Win2008 R2 SP1

2011-03-21 Пенетрантность Khorsun Vlad

Короткий Олег wrote in message ...
Поставили 64-битную ось вместо win2003 x86 на сервер с 8GB RAM, firebird  оставили 32-битный из-за отсутствия 64-битных UDF, в 
ходе работы  выяснилось, что потребление памяти к концу рабочего дня составляет порядка  6,5-7 гигабайт (в диспетчере задач 
потребление каждого процесса намного  скромней, порядка 40-60МБ на ~30процессов классика), причём на это никак  не влияет параметр 
FileSystemCacheSize, его поставил равным 40.


   Он не работает, когда 32-битный ФБ запущен на системе с 4GB памяти.


Память  освобождается только при отключении последнего клиента(серверный 
процесс  остаётся запущенным).


   Память используется файловым кешем. В чём проблемы ?

--
Хорсун Влад

PS Одни жалуются, что память не используется. Другие - что используется.
О времена, о нравы... (ц) 





Re: Изменения в isql FB 2.5 и виртуализация ФС Vista/Win7

2011-03-18 Пенетрантность Khorsun Vlad

Nikolay Ponomarenko ...

Hello, All!

В силу обстоятельств вынуждены мы работать, вкушая все прелести механизма UAC от Microsoft по виртуализации (а по сути запрету) 
записи в Program Files.


Много мы с эим получаем проблем, полностью осознавая неправильность подхода. Но 
пока работали.

Обновление метаданных у нас делается такой вот командой:

isql.exe -ch WIN1251 -s 3 -q -b -n -i ..\sql-mdo\020\update.sql -u SYSDBA -p masterkey C:\Program 
Files\Morion\MDS3050\2.0\fdb\mdo.fdb -o ..\log\\meta020error.txt -m


Все работало, пока не перешли на 2.5.0, для isql.exe которого не срабатывает 
эта самая виртуализация.

Причиной оказалось явное указание requestedExecutionLevel в манифесте 
requestedExecutionLevel level=asInvoker
Что, по документации, отключает эту самую виртуализацию, хотя для вызывающего 
приложения она есть.
http://msdn.microsoft.com/en-us/library/bb756929.aspx


   А при чём тут вызывающее приложение ? На виртуализацию оно никак не влияет.

И в общем сейчас стою перед диллемой - перевести пользователей c включенным UAC на нормальную работу  в ближайшее время не 
получится (нужно обеспечить сохранность данных, которые уже завиртуализировались), а обновить их в ближайший релиз нужно.


Похоже что единственным выходом будет включение в дистрибутив патченной isql :-/


а) не держать базу в Program Files (правильно), или
б) подсовывать isql'у уже виртуализованный путь (маразм), или
в) взять isql от FB 2.1

--
Хорсун Влад




Re: Изменения в isql FB 2.5 и виртуализация ФС Vista/Win7

2011-03-18 Пенетрантность Khorsun Vlad

Nikolay Ponomarenko ...


KV в) взять isql от FB 2.1

Пока почти так и сделал - поправил ресурс у isql от 2.5.


   Это самое худшее, что можно было сделать.
Впрочем - тебе с этим жить.

--
Хорсун Влад 





Re: Изменения в isql FB 2.5 и виртуализация ФС Vista/Win7

2011-03-18 Пенетрантность Khorsun Vlad

Nikolay Ponomarenko ...

Hello, Vlad!
You wrote  on Fri, 18 Mar 2011 15:26:24 +0200:

KV в) взять isql от FB 2.1
 Пока почти так и сделал - поправил ресурс у isql от 2.5.
KV Это самое худшее, что можно было сделать.
KV Впрочем - тебе с этим жить.

Э, я встревожен :)
Чем это может грозить? (я только убрал ноду с правами из манифеста, депенденси 
оставил нетронутыми)
Т.е. в итоге получилось тоже, что было в 2.1. Мне казалось это самое аккуратное 
будет.


   Аккуратнее было бы изменить имя, ибо с настоящим isql это теперь
не совпадает. И какие там будут побочные эффекты - я даже думать не
хочу. Короче, будь я твоим саппортером - снял бы с поддержки моментально.

--
Хорсун Влад 





Re: Тормоза без загрузки винта или проца - как так?

2011-03-18 Пенетрантность Khorsun Vlad

Nikolay Ponomarenko ...

Hello, All!

Показали на днях фокус, когда процедура, которая обычно выполняется час-два, работала 9 часов, после чего ее пришлось срубить. И 
повторные запуски так же приводили к неспешной работе при отсутствии отслеживаемой загрузки железа.


По всяческим мониторам - нагрузка проца 1-2 процента, винт 3-6мб обмен (в пике 
дает сотни).


   Очередь диска смотри

--
Хорсун Влад 





Re: мониторинг активности

2011-03-18 Пенетрантность Khorsun Vlad

Alexey Voychehovich ...

Доброго дня

возможно ли в ФБ 2,5 мониторить с каким именно базами данных он сейчас
работает, кто к ним присоединился итд? как то централизовано. Для
случаев когда по факту одной бд нет,  они создаются и удаляются
динамически по мере необходимости.


   Трассировка. Или аудит - по вкусу.

--
Хорсун Влад 





Re: Firebird TCP/IP протокол и Don`t fragment флаг

2011-02-24 Пенетрантность Khorsun Vlad

On Feb 24, 9:59 pm, Vlad Khorsun wrote:

Firebird не управляет и не может управлять этими флагами.

Да, судя по всему, TCP стек пытается PMTUD использовать.

Тогда второй вопрос: чем чревата установка TcpRemoteBufferSize = 1448
в конфиге?


   Дополнительными roundtrip'ами и снижением производительности
сетевого протокола.


И с чем связано нижнее ограничение в 1448 на этот параметр?


   Думаю что-то древне-историческое. Не проверял никогда. Может
у какого-либо из ныне мёртвых транспортных протоколов было такое
ограничение снизу.


Судя по логу, оно в таком случае шлет пакеты уменьшенного размера,
которые, скорее всего, пройдут через затык в сети. Но насколько
это костыль и чем он чреват?


   Думаю проверить это можно только экспериментально...

--
Хорсун Влад 





Re: Множественные апдейты одной записи

2011-02-10 Пенетрантность Khorsun Vlad

Vlad Khorsun ...

Александр Свириденков ...



Как-то многовато?


   Сравни с 2.1, раскажи


   Как я это люблю - кто-то вылез из подполья раз в 2 года,
рассказал страшилку, и - опять в подполье на 2 года...

--
Хорсун Влад 





Re: Внешние процедуры и триггеры в ФБ 3.0

2011-01-31 Пенетрантность Khorsun Vlad

Andrei wrote ...
на последних снэпшотах уже можно потрогать? если нет, то когда
планируется появление?


   Давно уже можно.

--
Хорсун Влад 





Re: Внешние процедуры и триггеры в ФБ 3.0

2011-01-31 Пенетрантность Khorsun Vlad

Andrei wrote ...
а какая-то документация есть, как триггер например написать внешний? или 
селектэйбл процедуру?


   Документацию лучше спросить у Адриано (напрямую или через fb-devel).
Кроме того, есть пример для C++ в src\plugins\udr_engine и, возможно,
для Java в недрах Jaybird - не могу сказать наверняка.

--
Хорсун Влад 





Re: Тормоза nbackup

2011-01-14 Пенетрантность Khorsun Vlad

Viktor Belzetskiy ...


Расклад user\kernel не смотрел ?
Да, 99% кернел. Замечено что загрузка ядра нбекапом возвостает при росте файлового кеша и составляем практически 100% при 
забивании всей доступной памяти файловым кешем.


   Странно это. При использовании -D ON (FILE_FLAG_NO_BUFFERING) кеш ФС
никак не должен забиваться данными, прочитанными nbackup'ом...
Правда он ещё и пишет сам бекап, и не использует FILE_FLAG_NO_BUFFERING,
независимо от -D... Но последовательная запись *нового* файла на моей
памяти ещё не приводила к его полному кешированию и забиванию кеша.

Потому возникло подозрение что это связано с операционкой и я провел тест на немного другом оборудовании (Core 2 duo, 3.2ГГц, 
RAID0-4HDD) c 32-х битной Win2003.


   Тоже intel raid matrix ?


nbackup.exe -u sysdba -p masterkey -B 0 
localhost:d:\test_db\retail_m_2010_2.fdb d:\test_db\retail_0_2.nbk
С удалением в параллельном коннекте тех-же 100млн записей.


При этом выяснилось следующее:
Доступная физицеская память не забивается файловым кешем и


   Очень хорошо, так и должно быть. Соответственно проблема или внутри
Win2008 R2 x64, или внутри какого-либо её драйвера (intel raid matrix ?)


соответственно нбекап не грузит ядро на 100%


   Я бы не торопился говорить соответственно в данном месте. Прямая связь
между забитым кешем ФС и 100% загрузкой ядра пока не доказана.


и все по прежнему тормозит.


   Не понято. Раньше nbackup грузил ядро на 100% и всё тормозило.
Теперь - нбекап не грузит ядро на 100% и все по прежнему тормозит.
Тут нет описки ?

   Да, должен заметить, что скорость чтения\записи с FILE_FLAG_NO_BUFFERING
может (и должна) быть в несколько раз меньше, чем через файловый кеш. Может
эти тормоза имеются в виду ? Так они вполне ожидаемы.


+ получил удар по голове в виде
==
RASCHET3 Thu Jan 13 17:52:08 2011
I/O error during WriteFile operation for file 
D:\TEST_DB\RETAIL_M_2010_2.FDB.delta
Error while trying to write to file
Недостаточно места на диске.


RASCHET3 Thu Jan 13 17:52:08 2011
Database: D:\TEST_DB\RETAIL_M_2010_2.FDB
I/O error during WriteFile operation for file 
D:\TEST_DB\RETAIL_M_2010_2.FDB.delta
Error while trying to write to file
Недостаточно места на диске.
internal Firebird consistency check (error during savepoint backout (290), 
file: exe.cpp line: 4129)


RASCHET3 Thu Jan 13 17:52:10 2011
I/O error during WriteFile operation for file 
D:\TEST_DB\RETAIL_M_2010_2.FDB.delta
Error while trying to write to file
Недостаточно места на диске.
==

Где-то в конце удаления данных ибо розмер дельтафайла 9гиг.


   А как смотрится размер дельтафайла ? Винда редко обновляет на диске
размер быстрорастущего файла и добиться от неё правды во время этого процесса
не так просто.


При этом на диске с базой свободно 70Гб, на диске с IBTemp 260Гб.


   FB не придумал описание ошибки, его дала ОС.

Это все естественно на V2.5.0.26074 CS. Гугль подсказал что на тему backout 290 что-то правилось или будет справлено, но в каких 
версиях пока не разобрался.


   Конкретно этот случай вряд ли исправлялся.


А если взять xcopy, а не FAR ?

Использовался FAR x64 с включенной функцией системного копирования. Но если 
нужно проверю и с xcopy.


   Вообще говоря интересует утилита копирования, которая не использует
файловый кеш (т.е. работает с FILE_FLAG_NO_BUFFERING).

--
Хорсун Влад

PS Кстати, на Win2008 R2 x64 - какой разрядности был FB и какие опции в конфиге
были изменены ? 





Re: Тормоза nbackup

2011-01-14 Пенетрантность Khorsun Vlad

Viktor Belzetskiy ...

Khorsun Vlad пишет:

Странно это. При использовании -D ON (FILE_FLAG_NO_BUFFERING) кеш ФС
никак не должен забиваться данными, прочитанными nbackup'ом...
Правда он ещё и пишет сам бекап, и не использует FILE_FLAG_NO_BUFFERING,
независимо от -D... Но последовательная запись *нового* файла на моей
памяти ещё не приводила к его полному кешированию и забиванию кеша.


Справедливости ради я не знаю кто забивает файловый кеш. Ибо не вижу его в разрезе процессов. Подозреваю что забивает его 
FB-процесс удаления данных.



Тоже intel raid matrix ?

Да.


Доступная физицеская память не забивается файловым кешем и


Очень хорошо, так и должно быть. Соответственно проблема или внутри
Win2008 R2 x64, или внутри какого-либо её драйвера (intel raid matrix ?)

А это не связано с битностью винды, и невозможностью в 32 адресовать больше 
3Гб, вроде бы это касается и файлового кэша?
Якобы в 64 битной винде 1 файловый кеш, а в 32 битной можество (VST?) но с ограничением в 3Г для каждого. В крайнем случае так 
объяснили админы.


   Это был бы очень большой маразм. Файловый кеш не может быть per-process,
иначе в нём нет никакого смысла и возникнет огромная пробема синхронизации
частных кешей. На своей W2K3 R2 x64 8GB я спокойно забиваю файловый кеш под
завязку используя 32-битный FB и большую БД. Так что админы пусть поищут другие
объяснения :) Может они virtual address space имели в виду ? И что такое VST ?


Это кстати подтверждают показатели того-же таскинфо на боевом сервере Win2008 
32бита не R2!!!
Там сейчас работает 91 FB-процесс но
RAM Usage 55%
File Cache 5%
Windows end programs 50%


   Я не знаю, что такое таскинфо, какие показатели он имеет в виду, и что
делает 91 FB-процесс (может select * from rdb$database ?) :)

   Process Explorer более привычный для меня инструмент...


При 16Г оперативки и отсутствии свопа.


   Что имеется в виду под отсутствии свопа ? Нет своп-файла или нет
своп-активности ?


Правда там никакой нбекап не запущен.


Не понято. Раньше nbackup грузил ядро на 100% и всё тормозило.
Теперь - нбекап не грузит ядро на 100% и все по прежнему тормозит.
Тут нет описки ?


Под торммозами я имею ввиду очень низкий файловый I/O и длительность создания 
бекапа (соизмерим с показателем на Win x64)


   А можно исключить inter raid matrix из рассмотрения ? Для сравнения.
И, кстати, у него есть свои настройки кеширования дисков\массивов...


Да, должен заметить, что скорость чтения\записи с FILE_FLAG_NO_BUFFERING
может (и должна) быть в несколько раз меньше, чем через файловый кеш. Может
эти тормоза имеются в виду ? Так они вполне ожидаемы.


Я не увидел принцыпиальной разныцы в скорости создание бекапа с ключем (-D ON) на разных операционках с соизмеримым железом (т.е. 
на одном и на другом сервере мы не упираемся в потолок.) Хотя на x64 забивается вся доступная память файловым кешем и загрузка 
ядра процессом nbackup достигает 100%


   Давай тут определимся : т.к. было выяснено, что загрузка именно *ядра ОС*,
то сам nbackup можно не обвинять в *загрузке* процессора - это делает 
системный
обработчик, вызываемый nbackup'ом.


Недостаточно места на диске.

А как смотрится размер дельтафайла ? Винда редко обновляет на диске
размер быстрорастущего файла и добиться от неё правды во время этого
процесса
не так просто.


Серией тестов проверено что удаление 100 млн записей приводит к созданию дельтафайла в размере ~9Гб. Ты абсолютно прав что в 
некорых случая в Фаре/проводнике я видел размер не корректируемый с показаниями таскинфо.


   Обычно просмотр свойств файла в проводнике форсирует сброс кеша каталога
операционкой и обновление р-ра файла.

Размер этого файла контролируется мной с помощью таскнифо. В ряде случаев перемещение по нему имеет линейный характер. + после 
отвала этого процесса остался файл такого размера.


   Какое перемещение ? Что за таскинфо такое ? :)


FB не придумал описание ошибки, его дала ОС.

Я понимаю что FB сложно отдать ошибку с текстом Недостаточно места на диске. 
И это мое утверждение выглядит как бред но...
База размером 56Гб, свободное место 70Гб. Размер дельты 9Гб.

Ладно, давай этот момент временно упустим. Если текущее состояние (с ошибкой) не понадобиться, то я потом повторю тест ничего не 
меняя.


   Странно это. Или система выдаёт кривой код ошибки (маловероятно), или FB
выдаёт не совсем корректное сообщение (тоже верится слабо, но всё возможно)...


PS Кстати, на Win2008 R2 x64 - какой разрядности был FB и какие опции в
конфиге
были изменены ?


FB в обеих случаях 32битный. Опции изменены следующие
DefaultDbCachePages = 4096
TempCacheLimit = 268435456
OldSetClauseSemantics = 1
RelaxedAliasChecking = 1


   Дело в том, что FB 2.5 пытается ограничить размер файлового кеша до 30% от
имеющегося размера RAM (см. FileSystemCacheSize). Но, если в системе установлено
более 4GB памяти, то 32-битный FB не сможет применить это ограничие. Или если у
процесса нет прав. Посему было бы интересно попробовать FB x64.


Напомню это все на тестовых серверах. На

Re: Request depth exceeded. Recursive definition?

2011-01-04 Пенетрантность Khorsun Vlad

Nikolay Ponomarenko ...

Hello, All!

Встретился сегодня странный баг, на 2.1.3 EmbedWin2003


   2.1.4 и\или 2.5 не проверял ?

Добавил в скрипт создания базы очередной индекс(вида COMPUTED BY (IIF(ID_MORION=0, NULL, ID_MORION))) и сборка отваливается с ниже 
приведенной ошибкой.

Комментирование этого добавленного(или предыдущего индекса ситуацию исправляет)
Добавление коммита - не помогает. Сборка идет через isql.

Перенос его в другое место(подальше от однотипных) проблему решает :-/


   Интересно


Особенности:
- создание кучи однотипных индексов по выражению подряд
- большое кол-во изменений метаданных во время сборки базы(последовательно нактываются скрипты 19 версий базы - т.е. и дроп, и 
альтеры и т.п.)


Это что-то известное? Вроде с таким текстом баги к другому относятся? Нужно ли 
пытаться сделать пример?


   Нужно


И что может значить Recursive definition? ? :)


   Превышен лимит клонов запроса. Обычно запрос клонируется при рекурсивном
выполнении (триггер, процедура), и при одновременном выполнении нескольких
экземпляров запроса. Может какой системный запрос не закрывается внутри...

   Давай пример, разберёмся.

--
Хорсун Влад 





Re: Ошибка при ресторе

2010-12-10 Пенетрантность Khorsun Vlad

Но интересен вопрос плана - откуда могло вылезти в принципе?


   Мне тоже это интересно. Если говорить о в принципе, то
gbak до версии 2.5 не знает о существовании системных ролей,
и пишет в бекап все роли.

--
Хорсун Влад 





Re: Ошибка при ресторе

2010-12-09 Пенетрантность Khorsun Vlad

09.12.2010 22:19, Dmitry Yemanov пишет:


RDB$ADMIN - владелец SYSDBA.


Причем тут владелец? Значение RDB$SYSTEM_FLAG чему равно?


4


   Это в БД до я ее через embedded прогнал через b/r, или
уже после ?

Влад 





Re: FB 2.5 и C#

2010-10-29 Пенетрантность Khorsun Vlad

sasha ...

Что-то я не вижу в трекере, чтобы он был критическим.


Ну так а кто приоритеты назначает? Он же и назначает, или человек, который не особо осознаёт. Этот баг не позволяет работать с 
провайдером и не имеет путей обхода. Какой он как не критический?


   Автор тикета может назначить приоритет. Если тебе не доступна эта
опция - как минимум нужно написать в комментариях, что оно критично.

   Я вот посмотрел в трекер и увидел, что никто не в состоянии внятно
описать проблему и вообще не факт что она в провайдере, а не в приложениях.
Problems with reproduction.
Повторю - это если судить по описанию в трекере.

   Поставьте уровень blocker или critical и, если Jiri с этим не согласен,
то он снизит уровень с *объяснением*. почему он это сделал. Не можешь там
поставить этот уровень - создай свой тикет со своим описанием проблемы и
уровнем критичности. А ещё лучше - как воспроизвести проблему. Если сидеть
и ждать что оно само попустит - ничё не дождёшься.

--
Хорсун Влад 





Re: Переподключение к БД при создании ме таданных

2010-10-25 Пенетрантность Khorsun Vlad

Dmitri Kuzmenko ...

Hello, Vadim!

Vadim Mescheryakov wrote:


Вот про это сравнительно недавно писал в конференцию: Сервер с FB работает
под Linux. Все пользователи подключаются к серверу FB с указывая IP адрес в
строке соединения. Администратор сервера меняет имя хоста через WebMin.
После этого работа сервера FB нарушается - клиенты подключенные ранее и
подключенные после переименования получают одни и те же последовательности
генераторов.


насколько я понимаю, это глюк lock manager, потому что после изменения имени хоста процессы CS фактически они работают с разными 
базами, хотя файл один.


   С разными лок-таблицами. В 2.5 такого быть уже не должно, т.к. имя хоста
больше не участвует в имени файла лок-таблицы.

--
Хорсун Влад 





Re: FB 1.5 - 2.5 долгое удаление/пересо здание вьюх

2010-10-08 Пенетрантность Khorsun Vlad

Rashid Abzalov ...


Очень хотелось бы узнать, чем так долго занимается сервер?


   Тестовый пример, очень хотелось бы узнать - где он ?

--
Хорсун Влад 





Re: Анонсы докладов 3-й конференции по F irebird

2010-10-08 Пенетрантность Khorsun Vlad

Alexey Popov wrote ...

Khorsun Vlad wrote:


Ну написать клиента на какую либо платформу.


   Каких платформ тебе не хватает ? Где *масса* применений ?


Как ты думаешь, почему ява и нет клиенты не хотят использовать gds32.dll и 
ходят напрямую по сокетам? Почему? Зачем им этот секс?


а) они прекрасно умеют использовать fbclient\fbembed
б) тормоза при вызове нативного кода из управляемого

Сейчас эти клиенты на птичьих правах т.к. используют реверс-инженеринг недокументирванного протокола. А пользуют эти клиенты 
тысячи. Вот тебе и ответ на вопрос о количестве заинтересованных лиц.


   Сам придумал про права ?


Если им это надо, то можешь поверить что и многим другим это надо.


   ГДЕ ЭТИ МНОГИЕ ДРУГИЕ ? И какого чёрта они ничего не делают, раз им
ТАК СИЛЬНО это всё надо ?


Да ну? В существующее api асинхронные возможности встроить практически 
невозможно, не перелопатив его всего.


   Конечно, лучше писать новый велосипед, не вникая в старый.


Тут уже плакались что старое API не позволяет ввести длинные идентификаторы для объектов в БД. Наверняка аналогичный косяк кстати 
может всплыть и на уровне протокола.


   Уровень аргументации просто фантастический


  Совместимость со старыми клиентами никто не отменял.


Клянёшься?


   Что ещё изволите ? На блюдечке ничё принесть не надо ?


А то тут уже намудрили, когда переход от F1.0 и выше происходит с большим 
скрипом из за проблем с обратной совместимостью.


а) что такое 1.0 ?
б) о чём ты вообще ? всё ещё о протоколе ?


Потом, хоп, скажут, что для работы с FB X.Y  клиент от FB 1.0 уже не прокатит и 
нужно обновить клиента.


   Будет нужно - скажем. А что - есть возражения ?

--
Хорсун Влад

PS Наглость просто выше крыши. Так были бы ещё для неё основания... 





Re: Анонсы докладов 3-й конференции по F irebird

2010-10-04 Пенетрантность Khorsun Vlad

Alexey Popov wrote ...

Khorsun Vlad wrote:


   Я же вижу ситуацию так - *он хочет* непонятно чего и зачем,


Применений масса.


   Да ну ? Где ?


Я уже давно плачу что необходимо асинхронное взаимодействие с сервером.


   Кому нужно ? Почему ты один об этом плачешь ?


Чтобы поток не тупо ждал ответа сервера в блокирующем режиме, а мог в это время 
заниматься другими делами.


   Почему нельзя это реализовать уровнем выше, в DAL ?


Допиливать текущее api для этого уже практически невозможно - пациент уже мёртв.


   Несколько смелое утверждение, не имеющее под собой ни какого обоснования.


Проще всего, имея сокетный протокол, работать с сокетами асинхронно, что 
технически уже давно стало нормой.


   Я сейчас тоже начну ссылаться на существующие только в моём воображении
вещи. Продуктивнейший диалог получится.


PS Ещё раз - я не против создания описания текущего протокола.


Вот примерно это я и хотел услышать.


Но я не хочу
  этим заниматься, в том числе и потому, что это не нужно не только мне, но
  и никому другому. Если кто-то хочет этим заняться - буду рад помочь.


Кто сказал что лично тебе этим надо заниматься сию минуту? Этим мог бы заняться 
и кто другой, хоть и я.


   А к чему тогда этот топик ? Займись, раз оно тебе надо, я же за руки
не держу :)


Но при условии что этот документ будет принят в качестве стандарта и протокол 
будет поддерживаться вплоть до конца Вселенной.


   Это ты не по адресу. Пиши письма в IEEE, SQL Standard Commitee, EC,
UN, etc...

:-D

--
Хорсун Влад 





Re: Анонсы докладов 3-й конференции по F irebird

2010-10-04 Пенетрантность Khorsun Vlad

Alexey Popov wrote ...

Khorsun Vlad wrote:


Применений масса.


   Да ну ? Где ?


Ну написать клиента на какую либо платформу.


   Каких платформ тебе не хватает ? Где *масса* применений ?


Я уже давно плачу что необходимо асинхронное взаимодействие с сервером.


   Кому нужно ? Почему ты один об этом плачешь ?


Меня можно считать за десятерых :)


   И спрашивать, как с десятерых ? :)


Не надо идти на поводу у большенства. В результате имеем попсу с стиле МС и до 
сих пор не работающий SMP в супере.


   Давай ты не будешь меня провоцировать...


Народ тупо не понимает что это такое. В оракле кстати есть асинхронность в API.


   И в MSSQL есть. Спроси меня - сколько раз с 98-го года я ей пользовался.


Чтобы поток не тупо ждал ответа сервера в блокирующем режиме, а мог в это время 
заниматься другими делами.


   Почему нельзя это реализовать уровнем выше, в DAL ?


А кто этот DAL писать/проектировать будет? Для каждого проекта новый?


   А кто имеющиеся DAL'ы научит пользовать твоё асинхронное АПИ ? :)


Надо тупо асинхронно послать sql запрос и получить ответ.
Сейчас, да, есть костыли в виде выноса взаимодействия с БД в отдельный поток, 
но это даёт много проблем и ограничений.


   Ходим по кругу.


Допиливать текущее api для этого уже практически невозможно - пациент уже мёртв.


   Несколько смелое утверждение, не имеющее под собой ни какого обоснования.


Да ну? В существующее api асинхронные возможности встроить практически 
невозможно, не перелопатив его всего.


   Конечно, лучше писать новый велосипед, не вникая в старый.


Но при условии что этот документ будет принят в качестве стандарта и протокол 
будет поддерживаться вплоть до конца Вселенной.


   Это ты не по адресу. Пиши письма в IEEE, SQL Standard Commitee, EC,
UN, etc...


Стандарта в среде FB, канонизации. Неужели не понятно о чём речь?


   Не будет никакой канонизации. Для нафига ? Совместимость со старыми
клиентами никто не отменял. Но канонизацию протокола - нафига она нам ?

   Делай описание того, что сейчас есть - и оно будет действительным ещё
лет 5, как минимум, пока используют FB 2.x (думаю больше на самом деле).
Тем более что планов менять протокол в 3.0 пока тоже нет.

--
Хорсун Влад 





Re: Анонсы докладов 3-й конференции по F irebird

2010-10-01 Пенетрантность Khorsun Vlad

Alexey Popov ...

Khorsun Vlad wrote:



   Диалог не получился... или ты меня не слышишь, или я тебя не понимаю.


 Попробуем разжевать ещё раз. Предположим у нас есть некая гипотетическая 
платформа, которая имеет доступ в сеть по TCP. На другом


   И где тут свой транспорт ???


компе крутится FB и слушает порт 3050. Надо сделать следующие вещи:
Законнектится на порт FB.
Сделать attach к базе.
Стартануть транзакцию.
Аллоцировать статемент.
Препарировать его.
Запросить инфу о параметрах.
Присвоить параметры.
Выполнить.
Зафетчить результат.
Закрыть запрос.
Закоммитить транзакцию.
Отсоединиться от базы.
Закрыть сокет.


   Это годится только для приложения вроде hello firebird.


Теперь внимание вопрос - что мне надо писать в сокет, чтобы выполнить эту 
последовательность операций???


   Описание всех пакетов и их потрохов живут в protocol + xdr. Какие пакеты
требуются для каких АПИ функций - см. interface.

   Имеющему глаза не нужно ничего другого, кроме этих файлов. Да, авторы
.net и java драйверов не имели глаз, когда начинали писать свои реализации
протокола обмена. И сейчас часто не имеют, увы.

--
Хорсун Влад 





Re: Проблемка с сообщениями об ошибках

2010-10-01 Пенетрантность Khorsun Vlad

Konstantin R. Beliaev ...

Alex Cherednichenko wrote:


старый клиент и/или firebird.msg


   Старый клиент и новый firebird.msg


А без firebird.msg нельзя? Вроде на 1.5 без него все прекрасно работало.


   Та ты шо ! Ну, запусти isql, без firebird.msg :)

--
Хорсун Влад

PS Убедись, что у тебя в реестре не прописан старый клиент, и что его нет в путях. 





Re: MON$STATE в MON$STATEMENTS что означает?

2010-10-01 Пенетрантность Khorsun Vlad

Andrei wrote in message ...

ок. тогда между 0 и 2, между IDLE и STALLED какая разница?


   IDLE - нет вообще никакой активности.

   STALLED - есть живой запрос и\или курсор, но в данный момент
он не выполняется (клиент задумался).

--
Хорсун Влад 





Re: Анонсы докладов 3-й конференции по F irebird

2010-10-01 Пенетрантность Khorsun Vlad

Alexey Popov wrote ...

Khorsun Vlad wrote:


   И где тут свой транспорт ???


Про транспорт это другая, более далёкая, хотелка.


   Так ты же с неё начал ? Нельзя ли в одной теме обсуждать ОДНУ вещь ?
Я теперь вообще не понимаю - чего тебе надобно...


   Это годится только для приложения вроде hello firebird.


Это только пример, реализовав который можно постепенно доработать функционал до 
желаемого уровня.


   И называться он будет - новое АПИ. И для текущего набора типов пакетов
ты не сделаешь ничего кардинально другого, ибо оно взаимосвязано.


   Описание всех пакетов и их потрохов живут в protocol + xdr. Какие пакеты
требуются для каких АПИ функций - см. interface.


Дык я знаю где они живут. Вопрос в том, чтобы специфицировать это на уровне 
документов аля RFC.


   Займись, это не сложно. Но и ненужно.


   Имеющему глаза не нужно ничего другого, кроме этих файлов.


Это задаёт слишком высокий ценз для желающих достучаться до FB.


   Конечно, если человек не в состоянии прочитать и понять простые структуры,
он нашет новое гениальное АПИ которого ждёт от него весь мир.

   На землю спустись :) И посмотри таки на protocol.cpp *открытыми* глазами.
Если оно тебе вообще надо.

--
Хорсун Влад




Re: Анонсы докладов 3-й конференции по F irebird

2010-10-01 Пенетрантность Khorsun Vlad

Alexey Popov ...


Это только пример, реализовав который можно постепенно доработать функционал до 
желаемого уровня.


   И называться он будет - новое АПИ. И для текущего набора типов пакетов
ты не сделаешь ничего кардинально другого, ибо оно взаимосвязано.


Это само собой. Просто это даст новое качество в портировании. Одно дело пытаться портировать устаревший gds32.dll куда попало. А 
совсем другое дело имплиментировать задокументированный сетевой протокол.


   Имплиментируй. Документируй. Чего ты от меня хочешь-то ?


   На землю спустись :) И посмотри таки на protocol.cpp *открытыми* глазами.


Это не наши методы. Точнее не методы для промышленного ПО. Каждый кто хочет 
использовать это не должен ковыряться в исходниках.


   Толпы жаждущих использовать это стоят на пороге, а подлый hvlad
не пущает.


Если оно тебе вообще надо.


Мне нада не protocol.cpp, а стандартизация того что там написано.
Чуешь разницу?


   Чую демагогию и очередное бла-бла. Было бы оно тебе НАДО - давно
бы сделал. Чуешь разницу ?

--
Хорсун Влад 





Re: Анонсы докладов 3-й конференции по F irebird

2010-10-01 Пенетрантность Khorsun Vlad

Arioch ...

В письме от Fri, 01 Oct 2010 15:26:39 +0400, Khorsun Vlad сообщал:



Мне нада не protocol.cpp, а стандартизация того что там написано.
Чуешь разницу?


Чую демагогию и очередное бла-бла. Было бы оно тебе НАДО - давно
бы сделал. Чуешь разницу ?



Мммм а вы потом будете соответствовать?


   А зачем оно... НАМ ?


Захочется вам немножко поменять в этих форматах/пакетах - а нельзя. Типа  Алекс 
уже стандарт принял


   А кто он такой, что он стандарт принял ? :)


Или на каждый чих вводить новую, нестандартную версию протокола тщательно  
поддерживая совместимость со стандартом Алекса?


   См. выше


Стандарт разработчики вроде бы сами на себе навешивают, добровольно.


   Именно. В тех случаях, когда это нужно проекту. Да - и не нужно путать
документирование со стандартизацией. На всякий случай говорю.

Либо задним числом документируют то, что уже лет за 10 окостенело и не  изменится. Но тогда зачастую стандарт получается неполный 
или даже не  полностью корректный. Что-то типа документаций протокола ICQ, формата  DBF-and-all, недокументированных функций 
MS-DOS...

И кто использует этот стандарт знает, что в принципе всё может легко  
поменяться в любой день.


   Если бы Алекс предлагал что-то нужное и полезное - нет проблем
поддерживать совместимость или, как минимум, информировать его *до*
внесения каких-либо изменений.

   Я же вижу ситуацию так - *он хочет* непонятно чего и зачем, но *требует
от нас* каких-то действий. У нас все, кто работает с протоколом, не имеют
проблем заглянуть в исходник и понять что к чему.

   Делать какую-то документацию (актуальную для 5-10 человек на планете)
ради неё самой - извините, нет ни ресурса, ни интереса. Отсюда очень простой
вывод - кому нужно, тот сделает. Отдаст назад в проект - хорошо. Будет
поддерживать в актуальном виде - совсем хорошо.

--
Хорсун Влад

PS Ещё раз - я не против создания описания текущего протокола. Но я не хочу
  этим заниматься, в том числе и потому, что это не нужно не только мне, но
  и никому другому. Если кто-то хочет этим заняться - буду рад помочь. 





Re: Анонсы докладов 3-й конференции по F irebird

2010-09-27 Пенетрантность Khorsun Vlad

Alexey Popov ...


Тут всего то надо нормально специфицировать транспортный протокол на уровне 
сокета.


   Протокол - и всё ? Ты или оптимист, или бла-бла-бол :)


Сделать один раз это нормально и написание клиента для любой платформы будет 
очень простым.


   Займёшься ?


А сейчас, например, ява и нет клиенты сделаны через одно место с применением 
реверс инженеринга.

В идеале надо бы ещё в gds32.dll транспортный уровень абстрагировать с целью 
дать возможность задавить свой транспорт.


   Задавить мы и так могём :) Вопрос в другом, как обычно - смысл где ?
Или ради красоты всё ? :) А, ещё мелочь забыл - сетевой сервер сам поднимет
твой новый транспорт ?

--
Хорсун Влад 





Re: Анонсы докладов 3-й конференции по F irebird

2010-09-27 Пенетрантность Khorsun Vlad

Dmitry Lendel wrote ...

Привет.


   В ближайшее время - я его однозначно не покажу. Но я не единственный
кинооператор в этом городе :)


Я крутил вертел тему КПК и так и сяк. Рассмотрел все доступные варианты.
То что я напишу ниже - это просто мое мнение - не больше и не меньше.

1 Отбрасывать тему КПК - это глупо. Рынок устройств развивается очень динамично. И довольно перспективный. Чего только подачи 
Гугла в это сфере стоят.


   Тебе не кажется, что 4 активных разработчика не могут заниматься всем
и сразу ? И что полноценная СУБД на КПК не самый востребованный продукт ?

2 Что касается Птицы. Как на меня - в идеале  портированная СУБД. Но для начала - портированный клиент. Я смотрю на задачи. Можно 
использовать MSSQL или LiteSQL. Решене от Майкрософта - это следование линии партии как тут Саша писал. Для локального доступа 
LiteSQL вполне годится. Врядли на маленьком экране и со слабым процессором кто-то будет городить CRM или ERP. Скорее всего будут 
делать информационную базу для просмотра с пометками (аля торговый агент, инвентаризация и т.п.) или как в моем случае 
примитивного клиента on-line. Понятно, что можно использовать и другие технологии, Java например.  Но не хочется микроскопом 
гвозди забивать.


   Есть ещё .Net провайдер, если говорить о клиенте.

Про спонсора. Я, примером, не потяну по деньгам такую разработку, но могу внести лепту в общий котел в размере 1000 USD налом и 
раза в три больше безналом с НДС в грн. В девиз давайте скинемся я не верю. Тут нужно находить заинтересованных. Один есть . 
:-))


   Это уже конструктивный подход. Но, опять же, деньги не решают всё.
Они лишь сдвигают приоритеты.

--
Хорсун Влад 





Re: Анонсы докладов 3-й конференции по F irebird

2010-09-27 Пенетрантность Khorsun Vlad

Alexey Popov wrote ...

Khorsun Vlad wrote:


Тут всего то надо нормально специфицировать транспортный протокол на уровне 
сокета.


   Протокол - и всё ? Ты или оптимист, или бла-бла-бол :)


Давай конкретнее. Например, net клиент юзает напрямую сокет. При этом он 
придерживается некоторого протокола. Так?
Что ещё надо кроме спецификации протокола?


   Почитай src/remote/interface.cpp и src/jrd/why.cpp. На пальцах - клиент
поддерживает свои списки аттачей\тр-ций\запросов\курсоров\блобов, кеширует
результаты выборки, поддерживает представление XSQLDA\XSQLVAR и т.п.


Сделать один раз это нормально и написание клиента для любой платформы будет 
очень простым.


   Займёшься ?


Если говорить о новой платформе, что смысла реализовывать ib api нет. Достаточно написать датасеты, которые напрямую будут 
работать по сокету с сервером. Это вполне посильная задача для тех, кому это действительно понадобится.


   Это ключевые слова кому это действительно понадобится.
Есть такие ? Ау, где вы ?!


В идеале надо бы ещё в gds32.dll транспортный уровень абстрагировать с целью 
дать возможность задавить свой транспорт.


   Задавить мы и так могём :) Вопрос в другом, как обычно - смысл где ?
Или ради красоты всё ? :)


Смысл в том что в современном мире хочется больших извращений. Голый TCP, предоставляемый стандартно, не всегда подходит. 
Например, FB, как часть большого програмно-аппаратного комплекса, хотелось бы больше интегрировать и адаптировать к обстановке. 
Люди бывают юзают SSH, но это покрывает лишь малую часть всех задач.


   Ничё не понял. О каком конкретном транспорте идёт речь ?


А, ещё мелочь забыл - сетевой сервер сам поднимет
твой новый транспорт ?


Естественно на сервере должна ответная сторона стоять. Например HTTP сервер, 
транслирующий запросы по локальному протоколу к FB.


   См выше про ау.

   Я вот чего не пойму - ты просто пофантазировать вышел (я совсем не
против, сам грешен) или для чего это всё было написано ?

--
Хорсун Влад 





Re: Анонсы докладов 3-й конференции по F irebird

2010-09-27 Пенетрантность Khorsun Vlad

Alexey Popov ...

Khorsun Vlad wrote:



   Почитай src/remote/interface.cpp и src/jrd/why.cpp. На пальцах - клиент
поддерживает свои списки аттачей\тр-ций\запросов\курсоров\блобов, кеширует
результаты выборки, поддерживает представление XSQLDA\XSQLVAR и т.п.



Дык и что?


   Диалог не получился... или ты меня не слышишь, или я тебя не понимаю.

--
Хорсун Влад 





Re: OFF

2010-09-13 Пенетрантность Khorsun Vlad

Oleg Matveyev ...

   Что-то тихо тут...

Всех с праздником профессиональным!


   А чего это - OFF ? Очень даже ON, imo :)

   Поздравляю !

--
Хорсун Влад 





Re: В каких случая может не работать rand?

2010-09-03 Пенетрантность Khorsun Vlad

Nikolay Ponomarenko ...



Коллеги показали, на 2.1, когда запрос вида


   *Точная* версия сервера где ? SS\CS где ?

//как дети малые, сколько можно повторять...


select rand() from small_table

возвращает одинаковые(по меньшей до 3-х знаков) значения.
Повторяется только на одной машине - боевом сервере. От чего так может быть?


   А там какой rand ? Built-in или из ib_udf ?

--
Хорсун Влад 





Re: FB 3

2010-08-30 Пенетрантность Khorsun Vlad

sasha wrote ...

Вкусного там то, что он хорошо интегрирован с остальным комплексом технологий от майкрософта, т.е. ты поставил студию и MSSQL и 
работаешь со всем этим сразу и оно сразу из коробки работает. А если его использовать так, как его планировали для использования в 
микрософте, то он даже очень хорошо работает.


Второе его преимущество - скорость. Он быстрый. Он по скорости выборки через .NET Provider делает фаербёд почти в два раза - сам 
проверял.


   А не через .NET Provider ? Т.е. проблема в провайдере или в самом ФБ ?


Ну и при этом всём у него есть бесплатная версия, которой с головой хватает.


   Ну, тогда и говорить не о чем.

Или есть о чём ? :)

Вот честно, щас хотели перейти на FB - сразу куча проблем. Причём это не сервера касается, а интеграции с .NET Framework. Даже 
интегрировать провайдер в студию не просто.
В самом провайдере куча недоработок. Начиная с того, что ещё карлос неправильно IDisposable в некоторых классах реализовал и он у 
меня просто падает иногда. Я скачал исходники, полез смотреть, поправил на то, что грешил - не помогло. Своими силами эту проблему 
исправить мне затруднительно. Потом там есть ещё целый ряд недоработок, которые превращают процесс разработки в ад. Например то, 
что при затягивании в модель игнорируются представления. От этого джири добиться ничего нельзя. Он справедливо говорит что ему 
некогда и если надо - делайте сами. Я его прекрасно понимаю - оно ему триста лет не надо.


   Тут ты не прав. Оно ему надо хотя бы потому, что он официально
поддерживает провайдер. И на записи в трекере ему не наплевать.


Вот это обратная сторона бесплатных продуктов.


   Западные компании в таких случаях обычно считают деньги и очень часто
им выгодно выделить ресурсы и, или таки самим реализовать то, чего не
хватает в продукте, или нанять того, кто может это сделать (того же Jiri,
например). Выигрывают все - и сама компания, которой не нужно осваивать
новый продукт и переводить на него свои, и остальные пользователи, т.к.
исходный продукт улучшается.

Опять же я полез сомтреть исходники - там с ходу не разрулишь всё это. Надо сидеть разбираться, а тут сроки по своему проекту. Это 
если нехрен делать, тогда да, можно ковыряться. Только как тогда деньги зарабатывать?


   См. выше.


Ну короче связка FB + EntityFramework мало пригодна для практической 
разработки. Никому не советую.


   Ты можешь формально (и корректно) изложить причины ? Лучше всего в виде
тикетов в трекере. Иначе оно так и останется...

--
Хорсун Влад 





Re: Firebird-2.0.6.13266_0_win32 Исклю чение C0000005 ACCESS_VIOLATION

2010-08-09 Пенетрантность Khorsun Vlad

Arioch wrote ...

В письме от Fri, 06 Aug 2010 10:58:31 +0400, Khorsun Vlad  сообщал:



Хорсун Влад

PS Опять мне вносить ?..



посмотри plz http://comments.gmane.org/gmane.comp.db.firebird.russian/38389

я на rc3 ещё не проверял

но по-моему - то тоже баг, как думаешь (вариант без type of)

согласен? заносить стоит ?


   Я глубоко не вникал.

   Если оно отличается от http://tracker.firebirdsql.org/browse/CORE-2204,
то заноси. Адриано ответит.

--
Хорсун Влад 





Re: Firebird-2.0.6.13266_0_win32 Исклю чение C0000005 ACCESS_VIOLATION

2010-08-06 Пенетрантность Khorsun Vlad

Arioch ...

В письме от Thu, 05 Aug 2010 16:31:05 +0400, arxange1  сообщал:


скорее всего действительно похоже на переполнение, длина строка  составляла
52КБ.
Вот запрос, который роняет сервер даже в IBExpert'е:


а FB 2.5 он роняет ?
и классику и сервер роняет ?

нехорошо :-)


   Нет в трекере - нет баги.

--
Хорсун Влад

PS Опять мне вносить ?.. 





Re: Скорость инсертов

2010-07-26 Пенетрантность Khorsun Vlad

Tonal ...

23.07.2010 14:00, Khorsun Vlad пишет:

А в чём прикол? Вроде EVENT-ы это простые счётчики. В любом случае после
комита бросится только 2 штуки, откуда такое замедление?

   Внутренняя очередь с отложенными до коммита заданиями (DFW) используется
криво - каждый раз POST_EVENT добавляет туда новый элемент, а не
увеличивает счётчик для имеющегося. Соответственно к коммиту мы имеем
гигантскую очередь из одинаковых ивентов.

Так и подумалось.
Там по идее хешик напрашивается - и проблем бы не было. :)


   Не, там другая бага :) Но в том же месте :)


Напишешь трекеру ?

CORE-3079


   Исправлю сегодня-завтра. Во только не уверен, что это войдёт в 2.5.0,
делать RC4 из-за этого наверное не стоит.

--
Хорсун Влад

PS Там ещё счётчик у event'ов неправильный должен быть, 1 скоре всего.
  Можешь проверить ?




Re: Скорость инсертов

2010-07-23 Пенетрантность Khorsun Vlad

Tonal ...

07.07.2010 14:32, Vlad Khorsun пишет:

Наткнулся на странную вещь: при массовой загрузки данных в базу скорость
последовательности инсертов уменьшается на 1/6 если все они в одной
транзакции.

...

На обоих таблицах триггера генерят ID и VERS и бросают EVENT:

   А если без EVENT ?

Да, при отключении триггера скорость остаётся постоянной.

А в чём прикол? Вроде EVENT-ы это простые счётчики. В любом случае после
комита бросится только 2 штуки, откуда такое замедление?


   Внутренняя очередь с отложенными до коммита заданиями (DFW) используется
криво - каждый раз POST_EVENT добавляет туда новый элемент, а не увеличивает
счётчик для имеющегося. Соответственно к коммиту мы имеем гигантскую очередь
из одинаковых ивентов. Напишешь трекеру ?

--
Хорсун Влад 





Re: Windows7 Ultimate 64 and Firebird 2.5 64

2010-07-02 Пенетрантность Khorsun Vlad

Arioch ...

В письме от Tue, 29 Jun 2010 15:19:08 +0400, Khorsun Vlad сообщал:


ммм... есть, но это не очень хорошо ложится на стандартную структуру   
каталогов Win x64


???


Для 32-битных бинарников отдельные папки, параллельные.
В частности вместо Program files - Program Files (x86)


   Какой Program files ??? Речь о подкаталоге в установленном FB.
Если Wow64 для тебя ничего не означает, то мы тут при чём ?


Трекер тоже есть.


в трекере самое близкое - проект database engine core
вешать *туда* жалобы на инсталлятор - некомильфо


   И в нём есть компонент Installation

...

Что документировать ? Содержимое снапшота ? Где его документировать  ? О 
чём ты ?


Какая разница, снапшот или релиз. Я думаю, от этого не зависит какие файлы
внутрь попадут.


   Свои соображения на эту тему пиши в трекер. Если хочешь, что бы что-то
изменилось.


PS Всё это выглядит примерно так : я сам у себя под носом не нашёл.  Ткнули - 
увидел.


С одни отличием. Не под носом.
Под носом было бы \Program Files (x86) и возможно даже \Program Files  
(x86)\Common Files


   С какой стати ???


Как бы принесли письмо, и не в почтовый ящик бросили, а под половичок  перед 
дверью.
И ведь не поспоришь - правда под носом. Но догадаться глянуть туа - только  
если заранее знать логику почтальона.


   Вот и не спорь :-D


Но я вам не скажу, как мне нужно, догадайтесь сами.

Наверное я тебя чем-то обидел. Потому что это, ну вообще не правда.


   Если бы я обижался на письма в форумах, давно жил бы в психушке :) Так что -
перечитай ещё раз свои письма, но с моей точки зрения. И учитывай, что вас 
много,
а нас - мало. Оно помогает понять, почему ответ был дан именно такой, а не тот,
что тебе хотелось бы.

--
Хорсун Влад 





Re: Windows7 Ultimate 64 and Firebird 2.5 64

2010-07-02 Пенетрантность Khorsun Vlad

Arioch wrote in message ...


Под носом было бы \Program Files (x86) и возможно даже \Program Files   
(x86)\Common Files


С какой стати ???


1) с той что туда падают 32-битные бинарники в 64-битной Win


   Та ты шо ! А я *никогда* не ставлю программы в Program Files, кроме самых
мелких, ай-яй-яй...

2) клиент, который потенциально будут испоьлзовать разные аппликухи (и  даже м.б. инсталлировать каждая свой) как раз хорошо 
падают в Common Files


   Ага, каждая свой - друг на друга, спасибо...


Еще лучше, правда, в WinSxS. Тут надо будет подумать.


   Напиши уже свой инсталлятор, а ?

...

PS: в трекер в любом случае если и заносить - то то, что кристаллизуется в  ъоде обсуждения на форуме. Так что даже лучше что меня 
трекер отпугнул.


   Честно - надоело мне эту воду в ступе толочь. Напиши в трекер, пусть
Ривз дальше объясняется, может с ним найдёшь общий язык.

--
Хорсун Влад 





Re: Windows7 Ultimate 64 and Firebird 2.5 64

2010-06-29 Пенетрантность Khorsun Vlad
Получается для работы сервер-64 + приложение-32 нужно устанавливать два  сервера (о ручной установке не говорим - это намного 
сложнее чем уяснить  разницу между 32 и 64).


А если бы был отдельный дистр клиента,


   А смысл ?


или оба клиента в дистре сервер-64


   Их там таки оба

--
Хорсун Влад 





Re: Windows7 Ultimate 64 and Firebird 2.5 64

2010-06-29 Пенетрантность Khorsun Vlad

Arioch ...

В письме от Tue, 29 Jun 2010 10:59:14 +0400, Khorsun Vlad сообщал:


или оба клиента в дистре сервер-64


Их там таки оба


хорошо бы, но вроде как только один. С чего и ветка началась.

в частности в процессе установки :

Destination location:
  C:\Program Files\Firebird\Firebird_2_5

Selected components:
  Server components
 Super Server binary
  Developer and admin tools components
  Client components
=

Был бы 32-битный клиент - была бы другая папка.


   И что - там даже нет подкаталогов ?


Скачал так же Firebird-2.5.0.25920-0_x64_RC2.zip
Не вижу внутри 32-битного клиента


   Там и не должно быть

--
Хорсун Влад 





Re: Windows7 Ultimate 64 and Firebird 2.5 64

2010-06-29 Пенетрантность Khorsun Vlad

Arioch ...

В письме от Tue, 29 Jun 2010 12:56:33 +0400, Khorsun Vlad  сообщал:


Был бы 32-битный клиент - была бы другая папка.


И что - там даже нет подкаталогов ?


ммм... есть, но это не очень хорошо ложится на стандартную структуру  каталогов 
Win x64


   ???


и в %PATH% видимо не добавляется.


   Никогда не добавлялось и не будет добавляться.

   Не устраивает стандартный инталлятор ? Исходники открыты. Трекер тоже есть.
В чём проблемы ?


Скачал так же Firebird-2.5.0.25920-0_x64_RC2.zip
Не вижу внутри 32-битного клиента


Там и не должно быть


Получается угадайка, в каком розливе сервера клиент есть, в каком нет :-)
Логика в этом выборе есть (тоже есть), но документировать его где-то стоит  всё 
же.


   Что документировать ? Содержимое снапшота ? Где его документировать ? О чём 
ты ?

--
Хорсун Влад

PS Всё это выглядит примерно так : я сам у себя под носом не нашёл. Ткнули - 
увидел.
  Но мне всё равно это не нравится. Нужно чтобы было всё так, как мне нужно. Но 
я
  вам не скажу, как мне нужно, догадайтесь сами. Но оно всё равно должно быть
  документированно. Не знаю что, где и как - но должно быть. Вчера ! 





Re: Windows7 Ultimate 64 and Firebird 2.5 64

2010-06-25 Пенетрантность Khorsun Vlad

то есть нельзя с 64 битного клиента подключится к 32 битному серверу?


   Можно.

--
Хорсун Влад 





Re: Windows7 Ultimate 64 and Firebird 2.5 64

2010-06-25 Пенетрантность Khorsun Vlad

Vinogradniy Eugeny ...


Есть только проблемы при использовании embeded Firebird сервера. Т.к.
его дистрибутив конкретен x32 или x64. Вот в таких вариантах и
приходится либо привязывать .net приложение к конкретному процессору
x86(x64) (так мы и сделали). Либо в дистрибутиве поставлять оба
варианта embeded Firebird и определять выбор в строке подключения на
момент соединения в зависимости от типа исполнения приложения x32/x64,
но в таком случае наверное (это вопрос? к тем кто знает/пробовал)
возможны чудеса с ODS БД.


   С какой стати ? Никаких чудес.

--
Хорсун Влад 





Re: метасимволы ^ и $ в регулярных выражениях

2010-06-04 Пенетрантность Khorsun Vlad

Andrei ...

Добрый день,

Задача: есть одна или несколько строк, хранящихся в БЛОБе (поле
field). Если строк несколько, то разделены они символами возврат
каретки + перевод строки. Дана некоторая строка (string). Надо
определить, присутствует ли она в этом поле.

Существует ли более красивое решение, чем:

ASCII_CHAR(13) || ASCII_CHAR(10) || field || ASCII_CHAR(13) ||
ASCII_CHAR(10) SIMILAR TO
 '[[:WHITESPACE:]^[:SPACE:]]+string[[:WHITESPACE:]^[:SPACE:]]+'

так и хочется просто написать:

field SIMILAR TO '^string$'

но, метасимволы ^ и $ не поддерживаются.


   Ибо их нет в стандарте, да и ^ имеет свой смысл в SIMILAR TO.

Попробуй

   field SIMILAR TO
   x'0D' || '*' || x'0A' || '*' || string || x'0D' || '*' || x'0A' || '*'

Я сам не проверял

--
Хорсун Влад 





Re: метасимволы ^ и $ в регулярных выражениях

2010-06-04 Пенетрантность Khorsun Vlad

Andrei ...

тут * нельзя использовать. Иначе, на заданное слово Минск проверка
пройдет успешно, если, скажем,
в списке находится слово Минский.


   Ты синтаксис SIMILAR TO читал ?

Matches zero or more occurrences of regular primary:
regular primary asterisk
   '' SIMILAR TO 'a*' -- true
   'a' SIMILAR TO 'a*'-- true
   'aaa' SIMILAR TO 'a*'  -- true

--
Хорсун Влад 





  1   2   3   4   >