Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.02.2007, 15:56
|
|||
|---|---|---|---|
Исследуем анатомию Informix |
|||
|
#18+
Все вопросы и тонкие моменты, связанные с архитектурой СУБД Informix , обсуждаем здесь. К модераторам: тему можно закрепить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.02.2007, 18:11
|
|||
|---|---|---|---|
|
|||
Исследуем анатомию Informix |
|||
|
#18+
2Onstat: Я бы так не утвержадл, что нити Informix полностью все всебе и ничего общего с OS не имеют. Я помню баг на солярке когда реализации некоторых функций связанных с pthread находились в разных библиотеках в разных директориях. И в зависимости от того какой путь был высавлен в переменных окружения informix типа /usr/lib:/usr/share/lib или /usr/share/lib:/usr/lib разница в производительности составляла 20% Это правда косяк Solaris был. По поводу количества C и C++ кода в Informix и DB2. Я говорил только за DB2. У информикса C++ лежит только в поддержке работы с UNICODE (порядка 1 млн. строк, так же IMHO нверняка будет LBAC на C++ реализован.) P.S. Я читал guide line для разработчиков DB2 что можно использовать из C++, тамошний не далеко от C ушел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.02.2007, 20:18
|
|||
|---|---|---|---|
Исследуем анатомию Informix |
|||
|
#18+
nkulikov2Onstat: Я бы так не утвержадл, что нити Informix полностью все всебе и ничего общего с OS не имеют. Я помню баг на солярке когда реализации некоторых функций связанных с pthread находились в разных библиотеках в разных директориях. И в зависимости от того какой путь был высавлен в переменных окружения informix типа /usr/lib:/usr/share/lib или /usr/share/lib:/usr/lib разница в производительности составляла 20% Это правда косяк Solaris был. Таки да, нити сервера информикса реализованы собственной библиотекой и ничего общего с pthreads не имеют. На вопрос "почему ?" говорили - чтобы не зависеть от пятнадцати производителей OS и не ждать, пока они соизволят пофиксить несовместимости и баги. В приложениях , разработанных с informix SDK - там, действительно, можно использовать OS pthreads. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.02.2007, 21:37
|
|||
|---|---|---|---|
Исследуем анатомию Informix |
|||
|
#18+
nkulikov2Onstat: Я бы так не утвержадл, что нити Informix полностью все всебе и ничего общего с OS не имеют. Я этого не утверждал, я имел ИМХО относительно целесообразности использования асеблера в коде связаном с переключением нитей. nkulikov Я помню баг на солярке когда реализации некоторых функций связанных с pthread находились в разных библиотеках в разных директориях. И в зависимости от того какой путь был высавлен в переменных окружения informix типа /usr/lib:/usr/share/lib или /usr/share/lib:/usr/lib разница в производительности составляла 20% Это правда косяк Solaris был. В Linux разделяемых библитеках есть такое понятие как soname. Эта штука позволяет однозначно определить версии и совместимось разделяемых библиотек. Незнаю как с этим в Solaris. Если есть, то это обоюдная недоработка разработчиков базы и ОС. Солярка в этом смысле, неприятная платформа, с точки зрения совместимости патчей между собой. nkulikov По поводу количества C и C++ кода в Informix и DB2. Я говорил только за DB2. У информикса C++ лежит только в поддержке работы с UNICODE (порядка 1 млн. строк, так же IMHO нверняка будет LBAC на C++ реализован.) Очень сомневаюсь, что там миллион. nkulikov P.S. Я читал guide line для разработчиков DB2 что можно использовать из C++, тамошний не далеко от C ушел... По моему опыту програмирования на С и С++ , само наличие возможности использовать классы и защищать доступ к данным через методы, сокращает скорость наступления бардака в коде программы приблизительно в 3 раза. Код более читабельный и понятный, обработчики описаны и реализованы там же где и данные. И побочных эфектов меньше. Все прочее рюшеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.02.2007, 13:14
|
|||
|---|---|---|---|
|
|||
Исследуем анатомию Informix |
|||
|
#18+
Уважаемые коллеги, насколько я помню, есть всего три способа реализации потоков для разных операционных сред: 1. Реализация потоков в пространстве пользовательского процесса. В данном случае, ядро ОС о потоках ничего не знает и управляет обычными, однопоточными процессами. Управление потоками на себя берет прикладной процесс (INFORMIX). Именно такая модель реализации потоков, использовалась в ранних версиях INFORMIX для операционных сред, которые не использовали реализацию потоков на уровне ядра системы (или где потоков не было по определению) - SCO UNIX, ранний LINUX и т. д. Поэтому, инженеры INFORMIX, реализовали, собственную систему управления потоками внутри пользовательского процесса. Для использовались разные языки программирования. Как правило – это язык С, который включал для различных платформ ассемблерные вставки, которые использовались для эффективного управления потоками и mutex на аппаратном уровне процессора. Далее, кроме языка С, использовался язык Yacс … для реализации Syntax Parser SQL и т.д. 2. Реализация потоков на уровне ядра операционной системы. Понятно, что в данном случае, планировщик ОС управляет потоками по требованию прикладного процесса. Данный подход, позволяет достаточно просто реализовать многопоточное приложение, но требует значительных накладных расходов на системные вызовы и т.д. Ошибка в реализации системных функций (в системных библиотеках), могут прямо или косвенно повлиять на функциональность работы всего приложения (INFORMIX) и т.д. 3. Смешанная реализация – мультплексирование потоков пользовательского процесса из потоков ядра. По всей видимости, данный подход реализован для INFORMIX на платформе WINDOWS, и возможно SUN SOLARIS. Где потоки процесса ядра INFORMIX отображаются на системные потоки ОС и т.д. В этом случае, ошибки могут быть где угодно ... Теперь о языках программирования. Так как средства компиляции достигли значительных результатов .... компиляторы стали умнее .. а вести разработку удобнее на OO- языке, то в качестве основного языка, по всей видимости, был выбран C++. Хотя никто не отменял многоуровневую архитектуру, модульность в реализации проекта с элементами оптимизации (некоторые модули могут быть реализованы на C и ассемблер , другие на C++ - SQLI-протокол , поддержка UNICODE и т.д.). С уважением, Вадим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.02.2007, 22:19
|
|||
|---|---|---|---|
Исследуем анатомию Informix |
|||
|
#18+
GVF112GVFУважаемые коллеги, насколько я помню, есть всего три способа реализации потоков для разных операционных сред: 1. Реализация потоков в пространстве пользовательского процесса. В данном случае, ядро ОС о потоках ничего не знает и управляет обычными, однопоточными процессами. Управление потоками на себя берет прикладной процесс (INFORMIX). Именно такая модель реализации потоков, использовалась в ранних версиях INFORMIX для операционных сред, которые не использовали реализацию потоков на уровне ядра системы (или где потоков не было по определению) - SCO UNIX, ранний LINUX и т. д. Поэтому, инженеры INFORMIX, реализовали, собственную систему управления потоками внутри пользовательского процесса. Для использовались разные языки программирования. Как правило – это язык С, который включал для различных платформ ассемблерные вставки, которые использовались для эффективного управления потоками и mutex на аппаратном уровне процессора. Далее, кроме языка С, использовался язык Yacс … для реализации Syntax Parser SQL и т.д. 2. Реализация потоков на уровне ядра операционной системы. Понятно, что в данном случае, планировщик ОС управляет потоками по требованию прикладного процесса. Данный подход, позволяет достаточно просто реализовать многопоточное приложение, но требует значительных накладных расходов на системные вызовы и т.д. Ошибка в реализации системных функций (в системных библиотеках), могут прямо или косвенно повлиять на функциональность работы всего приложения (INFORMIX) и т.д. 3. Смешанная реализация – мультплексирование потоков пользовательского процесса из потоков ядра. По всей видимости, данный подход реализован для INFORMIX на платформе WINDOWS, и возможно SUN SOLARIS. Где потоки процесса ядра INFORMIX отображаются на системные потоки ОС и т.д. В этом случае, ошибки могут быть где угодно ... Теперь о языках программирования. Так как средства компиляции достигли значительных результатов .... компиляторы стали умнее .. а вести разработку удобнее на OO- языке, то в качестве основного языка, по всей видимости, был выбран C++. Хотя никто не отменял многоуровневую архитектуру, модульность в реализации проекта с элементами оптимизации (некоторые модули могут быть реализованы на C и ассемблер , другие на C++ - SQLI-протокол , поддержка UNICODE и т.д.). С уважением, Вадим. Уважаемый коллега, вы, конечно, можете как археолог восстанавливать "методы, принятые в ранних версиях", и "основной язык, по всей видимости выбранный" :-) - но я в свое время этот информикс немножко компилировал и баги фиксил. Нет там в ядре никакого C++. И нити реализованы собственной библиотекой, без помощи ОС. В таком вот аксепте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.02.2007, 10:07
|
|||
|---|---|---|---|
|
|||
Исследуем анатомию Informix |
|||
|
#18+
2 Выбегалло: Этот баг был пару лет назад. Надо порыскать в своем архиве. Но там тормозил именно сервер (9.3) из-за разных путей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.02.2007, 11:08
|
|||
|---|---|---|---|
|
|||
Исследуем анатомию Informix |
|||
|
#18+
Уважаемый коллега, вы, конечно, можете как археолог восстанавливать "методы, принятые в ранних версиях", и "основной язык, по всей видимости выбранный" :-) - но я в свое время этот информикс немножко компилировал и баги фиксил. Нет там в ядре никакого C++. И нити реализованы собственной библиотекой, без помощи ОС. В таком вот аксепте. Уважаемый коллега, не Вы один немножко компилировали INFORMIX ... думаю, этак версия 7.30.x ... :) С тех пор - много воды утекло. Так например, новый протокол SQLI -реализован с помощью библиотек на С++ и т.д. С уважением, Вадим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.02.2007, 11:26
|
|||
|---|---|---|---|
Исследуем анатомию Informix |
|||
|
#18+
GVF112GVF 3. Смешанная реализация – мультплексирование потоков пользовательского процесса из потоков ядра. По всей видимости, данный подход реализован для INFORMIX на платформе WINDOWS, и возможно SUN SOLARIS. Где потоки процесса ядра INFORMIX отображаются на системные потоки ОС и т.д. В этом случае, ошибки могут быть где угодно ... По поводу WINDOWS согласен там подругому никак. А вот по поводу SUN SOLARIS у меня есть сомнения вызванные следующим. Насколько я знаю SUN SOLARIS была основной платформой разарботки, Кстате под чем Informix пишут сейчас? Существовала отдельная команда портирования на WINDOWS, хотя небыло команд портирования на SCO, AIX, Linux и прочие платформы( это по моим данным, я могу быть в невединии). Исходя из этого можно зделать вывод, что код для Unix систем был платформонезависимым на 99% . GVF112GVF Теперь о языках программирования. Так как средства компиляции достигли значительных результатов .... компиляторы стали умнее .. а вести разработку удобнее на OO- языке, то в качестве основного языка, по всей видимости, был выбран C++. Хотя никто не отменял многоуровневую архитектуру, модульность в реализации проекта с элементами оптимизации (некоторые модули могут быть реализованы на C и ассемблер , другие на C++ - SQLI-протокол , поддержка UNICODE и т.д.). С уважением, Вадим. Когдато давно я пытался вникать в Datablade API, и не видел там возможности использовать С++ на стороне сервера, Может пропустил чего. Есть одна большая техническая проблема C++. Заключается она в вызове методов, особенно виртуальных. Если обьекты классов созданы в разделяемой памяти Unix, то в процессах, порожденных не через fork(onstat, onmode ...etc) таблицы виртуальных методов могут указвать в мировой океан. Если стандартное решение и существует, то оно очень сильно платформо-зависимо, но я и такого пока не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.02.2007, 13:40
|
|||
|---|---|---|---|
|
|||
Исследуем анатомию Informix |
|||
|
#18+
Т что, многие модули в INFORMIX, реализованны на "C" - сомнений не вызывает. Это действительно так. Другое дело, что некоторые из них могут быть реализованы и на "C++". Далее, насколько Я помню, еще для версии 9.21 можно было написать на сервер функцию на C++. The new SAPI features in 9.21 allow blades to retrieve VP information, fork external processes, and prevent modules from being arbitrarily unloaded. These features will be undocumented in 9.21. // UDR C++ wrapper functions for the 9.21 SAPI calls // .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.02.2007, 22:44
|
|||
|---|---|---|---|
Исследуем анатомию Informix |
|||
|
#18+
onstat-К модераторам: тему можно закрепить? Этой возможности у местных модераторов нет - есть только у хозяина SQL.RU :) Но в данном случае, как мне кажется, это и не нужно - трафик у нас тут небольшой, тема не успевает за день куда то упасть (или пропасть из первой страницы списка тем), а для поднятия темы наверх достаточно сделать новое сообщение в тему, хотя бы типа "Up" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=44&mobile=1&tid=1608460]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 419ms |

| 0 / 0 |
