|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Привет, Всем! Наверно, тут будет интересно https://www.youtube.com/watch?v=gemRHJ2cDAQ&t=10817s ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2021, 12:25 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana, после слова dinamic на слайде смотреть не стал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 10:37 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
kdv, в топике всё равно прикольнее написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 12:21 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana, я может чего недопонял, но не уловил какой-то новизны идеи. В бытность работы с ДИАМС 3 на СМ1420 (1990-92) некоторые наши программисты делали "динамические отчеты" - запихивали куски кода в глобали, а программа потом в зависимости от данных вытаскивала тот или иной кусок кода, который потом интерпретировался на ходу. И это был не просто какой-то "хранимый кусок отчета", а там прям код конструировался мелкими кусками, по частям. И вот отлаживать ЭТО был полный звездец, нихрена непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 12:37 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
kdv, спасибо за указанную ошибку в грамматике. Обязательно исправлю. kdv artemana, И вот отлаживать ЭТО был полный звездец, нихрена непонятно. Наоборот, это намного легче отлаживать. Об этом говориться после неправильного слова dynamic, и как ты написал, было тобой пропущено. )) В проекте есть два режима работы, в первом режиме программа динамически генерирует и компилирует код непосредственно в Runtime под каждую пришедшую SQL команду. Это ее основной рабочий режим, в нем при необходимости целесообразно отлаживать только сам процесс кода генерации. Если же необходимо отладить или проанализировать с точки зрения производительности тот или иной участок сгенерированного кода, то программ запускается в так называемом статическом режиме. В нем участки кода (файлы на C#) сгенерированные ранее включаются, в программу как обычные. В этом случае сервер становиться жестким (hard coding program), как бы замирает в своем развитии, и не может воспринимать новых SQL команд, только старые, к которым он создал код находясь в рабочем режиме. Что может быть проще отладки программы написанной в стиле hard coding? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 13:03 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
kdv artemana, я может чего недопонял, но не уловил какой-то новизны идеи. ...интерпретировался на ходу. ..... Может отличие в этом. Нет никакой интрепритации на ходу. Никакого промежуточного языка между SQL и C# . Есть SQL команда, под нее создается код (такой же файл cs, как будто его написал руками программист). В нем реализуется SQL команда, только не с нуля, а отталкиваясь от библиотеки базовых классов. Этот файл компилируется в dll и исполняется. Если такая SQL команда приходит повторно, используется ранее созданная dll. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 13:14 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
kdv artemana, после слова dinamic на слайде смотреть не стал. dinamic - это болельщик одесского Динамо ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 13:48 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
softwarer, там еще дальше на слайдах - "data leek". "Данные лук-порей"? Я не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 14:45 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Может отличие в этом. Нет никакой интрепритации на ходу. Никакого промежуточного языка между SQL и C# . Есть SQL команда, под нее создается код (такой же файл cs, как будто его написал руками программист). В нем реализуется SQL команда, только не с нуля, а отталкиваясь от библиотеки базовых классов. Этот файл компилируется в dll и исполняется. Если такая SQL команда приходит повторно, используется ранее созданная dll. Вы изобрели универсальный построитель плана SQL-запроса с прибитием его гвоздями в DLL? Видос не смотрел, бо мову не розумию. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 15:35 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Alexander A. Sak, там на русском (с надписями на неправильном английском))). я думаю поймете. попробуйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 15:43 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana kdv artemana, И вот отлаживать ЭТО был полный звездец, нихрена непонятно. Что может быть проще отладки программы написанной в стиле hard coding? kdv писал про вполне определённую систему, а не про Вашу, и вот именно в ней разбираться, и в частности отлаживать код, было непросто. На рынке уже давно есть как минимум одна система, в которой классы, SQL команды и т.д. компилируются в промежуточный код на встроенном языке этой системы (ObjectScript), который в свою очередь - в P-code (байт-код), а уже этот p-code выполняется виртуальной машиной этой СУБД. Конечно, никто не мешает разработчику написать код сразу на ObjectScript (а скоро и на Python), если возможности/производительность SQL-автокода его не устраивают. Ещё там есть методы-генераторы, цель которых состоит в генерации другого кода, который и будет в итоге выполняться. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 10:58 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
servit kdv писал про вполне определённую систему, а не про Вашу, и вот именно в ней разбираться, и в частности отлаживать код, было непросто. Он поставил их рядом, сказав что ничего нового, и соответственно его критика относилась к подходу в целом. И если не смотреть в детали, она может показаться справедливой. Мой ответ, как мне кажется, просто отвечает на вопрос, почему к нашей конкретной системе этот недостаток не относиться. А то, что в той системе было сложно, я и не сомневаюсь. ;) servit На рынке уже давно есть как минимум одна система, в которой классы, SQL команды и т.д. компилируются Отлично! Значит мы не одиноки. Как называется система? Какие прикладные продукты на ней сделаны? Как Вы лично оцениваете такой подход в принципе? Мне это очень интересно! servit в промежуточный код на встроенном языке этой системы (ObjectScript), который в свою очередь - в P-code (байт-код), а уже этот p-code выполняется виртуальной машиной этой СУБД. Наше отличие заключается в том, что нет промежуточного языка, SQL сразу превращается в код на C#. То есть в язык на котором и написана сама система. Этот промежуточный язык нам не нужен! C# и VS со всеми своими возможностями, покрывают все потребности(производительность и наглядность кода, удобство отладки) я не языковед, и тут не место для священных войн по языкам и средам, но лично оцениваю их очень высоко. servit Конечно, никто не мешает разработчику написать код сразу на ObjectScript (а скоро и на Python), если возможности/производительность SQL-автокода его не устраивают. Ещё там есть методы-генераторы, цель которых состоит в генерации другого кода, который и будет в итоге выполняться. У нас тоже есть аналогичные механизмы. То что мы не первые, с одной стороны огорчает, а с другой стороны радует, так указывает на то, что мы не сделали нечто с квадратными колесами, а вполне себе с овальными ;) Но для нашей конечной задачи (BI-система), это штука подходит идеально. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 11:39 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Наше отличие заключается в том..., servit, я наверно не правильно понял Вас, меня смутило слово "встроенный". Если та система написана на ObjectScript и SQL команду она превращает в программу ObjectScript, то отличия нет. Разница только в языке. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 12:04 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Как называется система? Какие прикладные продукты на ней сделаны? Много каких, в частности в области здравоохранения. artemana Наше отличие заключается в том, что нет промежуточного языка, SQL сразу превращается в код на C#. То есть в язык на котором и написана сама система. Этот промежуточный язык нам не нужен! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 12:12 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Если та система написана на ObjectScript и SQL команду она превращает в программу ObjectScript, то отличия нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 12:16 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Разница только в языке. В сравнении производительности программ, написанных на С# и ObjectScript. Есть, как мне кажеться, непреодолимый барьер - байт код, исполняемый на виртуальной машине, проиграет нативному коду. Для big data разница может быть заметной. И еще, в ObjectScript есть многопоточность? Нам она позволяет разделить отдельные фазы в исполнения одной команды на несколько потоков, тем самым добиться ускорении ее выполнения в разы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 12:30 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Такое ощущение что он объяснял схему разделения секрета Шамира школьникам 1-го класса. Кто вообще аудитория? Кто вообще пойдет на лекции с такой агендой? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 12:43 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
А это - вообще фейерия. Я позволю себе процитировать. ...программа донаписывается... ...и программа от этого только выиграет... ...например доступ к значению поля всегда сопряжен с вычислением его адреса исходя из адреса записи смещения поля относительно предшествующих полей с полседующим жостким приведением содержимого памяти по этому адресу к нужному типу данных... ...при НАШЕМ подходе :).... Но при чем здесь черт возьми базы данных и безопасность? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 12:50 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
servit artemana Если та система написана на ObjectScript и SQL команду она превращает в программу ObjectScript, то отличия нет. На чем написан C# не так важно. Значимым в данной вопросе является то, что мы превращаем SQL команду в программу на родном языке системы, а там, в программу на суррогатном. А он априори бедней. Или вообще представляет собой ад, как в воспоминаниях kdv. Этому, как мне кажется, есть простое историческое объяснение. Раньше не было выхода. Средства кода генерации во время исполнения появились недавно. В С# это рослин, что в С++ не знаю, наверно что то тоже есть, но появилось скорее всего недавно. В тоже время в языках со слабой типизацией, JavaScript, ObjectScript они были намного раньше, если не изначально. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 12:50 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana В сравнении производительности программ, написанных на С# и ObjectScript. Есть, как мне кажеться, непреодолимый барьер - байт код, исполняемый на виртуальной машине, проиграет нативному коду. Для big data разница может быть заметной. Можно, конечно, код вместо ObjectScript/Python написать на С/С++ или вообще на ассемблере, но вряд ли скорость существенно возрастёт. artemana И еще, в ObjectScript есть многопоточность? Конечно есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 12:54 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
mayton Но при чем здесь черт возьми базы данных и безо? 1. Что Вы означает "безо"? 2. В ролике, в том месте куда дана ссылка, рассматривается отличительный от классического подход к созданию движка базы данных. Тем специалистам, которые представляют как устроен движок РСУБД, управляемой посредством SQL, вроде все должно быть понятно, черт возьми! ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 13:08 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Значимым в данной вопросе является то, что мы превращаем SQL команду в программу на родном языке системы, а там, в программу на суррогатном. А он априори бедней. Или вообще представляет собой ад, как в воспоминаниях kdv. Дело не в языке, а в алгоритмах, оптимизации библиотек и драйверов под ОС и железо, и кривизне рук тех, кто всё это использует. Например, здесь Python и Fortran "почему-то" уделали C++. Недавно на нашем форуме тоже попытались сравнить скорости чтения CSV-файла на Python и ObjectScript. Результат плачевный. Для автора плачевный.. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 13:25 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
servit, конечно, все нужно сравнивать на реальных экспериментах, но у Вас же не BI, а у меня не медицина. Плюс надо помнить, что у нас не совсем SQL, а язык только принципиально на него похожий. Сравнить на одинаковом примере не получиться. Жаль, но еще не вечер. Может судя заглянут люди из раздела OLAP и DWH и предложат посоревноваться. Вы не сказали свое отношение к такому подходу в принципе. Какая Ваше оценка? Мы сразу приступили к жесткой внутривидовой конкуренции (детали внутри одной концепции), в то время как некоторые вообще не поняли о чем речь! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 13:42 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana servit, конечно, все нужно сравнивать на реальных экспериментах, но у Вас же не BI, а у меня не медицина. artemana Может судя заглянут люди из раздела OLAP и DWH и предложат посоревноваться. artemana Вы не сказали свое отношение к такому подходу в принципе. Какая Ваше оценка? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 14:10 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
servit Здесь уже было много соревнований всего со всем, которые ни к чему хорошему не привели, не приводят и вряд ли приведут. ... Это пять! servit Моё отношение простое - это уже было и есть. Оценка положительная. Спасибо, если что, буду на это ссылаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 14:47 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana mayton Но при чем здесь черт возьми базы данных и безо? 1. Что Вы означает "безо"? 2. В ролике, в том месте куда дана ссылка, рассматривается отличительный от классического подход к созданию движка базы данных. Тем специалистам, которые представляют как устроен движок РСУБД, управляемой посредством SQL, вроде все должно быть понятно, черт возьми! ;) Но ты согласен что это попытка объяснять доступ к сырой памяти была полной фейерической хренью. С таким-же успехом без контекста можно было говорить про черные дыры и квазары. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:06 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
servit Почитал. Смешно! Производительность C++ просто "утопили", заставив читать большой файл отдельными операциями по 8 байт (или сколько там float в нем занимает) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:11 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
mayton Но ты согласен что это попытка объяснять доступ к сырой памяти была полной фейерической хренью. С таким-же успехом без контекста можно было говорить про черные дыры и квазары. Какая еще сырая память, Вы о чем вообще!? Вы программист? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:13 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemanaВ ролике, в том месте куда дана ссылка, рассматривается отличительный от классического подход к созданию *движка базы данных.* А в чём он "отличный"-то? Embedded SQL, то бишь препроцессоры с SQL в нативные языки появились одновременно с самим SQL. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:30 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А в чём он "отличный"-то? Embedded SQL, то бишь препроцессоры с SQL в нативные языки появились одновременно с самим SQL. Совершать новые открытия очень помогает незнание старых. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:31 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana mayton Но ты согласен что это попытка объяснять доступ к сырой памяти была полной фейерической хренью. С таким-же успехом без контекста можно было говорить про черные дыры и квазары. Какая еще сырая память, Вы о чем вообще!? Вы программист? Извини если я тебя обидел. Я видел много конференций. И хочу отметить что форма подачи материала напоминает хаос. Так делать нельзя. Должна быть последовательность. Я конечно понимаю что автор ограничен регламентом в несколько минут. Но лучше ничего не говорить чем выдавать такую тиарду которую я цитировал. Это - неструктуность изложения. Если ты продвиаешь его идеи - то я тебя пойму. Но меня интересует мнение других мемберов топика. Поняли ли они зачем было это пояснение? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:33 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov artemanaВ ролике, в том месте куда дана ссылка, рассматривается отличительный от классического подход к созданию *движка базы данных.* А в чём он "отличный"-то? Embedded SQL, то бишь препроцессоры с SQL в нативные языки появились одновременно с самим SQL. я нигде не употреблял слова "изобрел", "новое", "революция' и тому подобное. Говорил что мы сделали вот так, и это отличается от того, как делают в классике. Возьмем 5 первых In memory database, они будут устроены не так как наша. Если есть те, кто делают похоже ,и они были раньше, я буду только рад. Значит мы не одни и схема жизнеспособна. В связи с этим, озвучь, пожалуйста, конкретно. Какие СУБД (In memory или дисковые) работают с использованием этого принципа.? То есть превращают SQL в нативные язык, с последующей компиляций и исполнением в эффективном машинном коде. Мне это нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:46 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
softwarer Dimitry Sibiryakov А в чём он "отличный"-то? Embedded SQL, то бишь препроцессоры с SQL в нативные языки появились одновременно с самим SQL. Совершать новые открытия очень помогает незнание старых. Вы видите то, чего нет. я не говорил об открытии. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:50 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemanaГоворил что мы сделали вот так, и это отличается от того, как делают в классике. Наоборот, ESQL это классика, от которой все уже давно отказались. Из известных мне СУБД полуживые препроцессоры есть у Oracle и IB/FB. Вики добавляет ещё пачку: https://en.wikipedia.org/wiki/Embedded_SQL Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:53 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana То есть превращают SQL в нативные язык, с последующей компиляций и исполнением в эффективном машинном коде. Мне это нужно. А как-же они это могут сделать не зная профиль оборудования и статистику таблиц? Суть SQL машины как раз в том что она динамически подстраивается под изменяющиеся условия. А вы что? Сделали хеш-джойн хардкодом? А если данные поменяются? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:59 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana В связи с этим, озвучь, пожалуйста, конкретно. Какие СУБД (In memory или дисковые) работают с использованием этого принципа.? То есть превращают SQL в нативные язык, с последующей компиляций и исполнением в эффективном машинном коде. Мне это нужно. да любая. вы базы совсем не видели? SQL это строка, она парсится, оптимизатор на базе статистики строит план. это эффективный машинный код. для сторед процедур у оракла, к примеру, тоже есть понятие native compilation, сторед процедура компилируется в нативный машинный код. я послушал минут 10, там какая-то охинея. с чего вдруг интерпритатор .net стал эффективным. с чего вдруг скопиленный класс .net станет хоть в чем то быстрее работать с памятью. что за ерунда про указатели ? кто-то считает что внизу .net без указателей обходиться ? и почитайте про Spark. там оптимизатор catalyst составляет план для экзекьютеров, компилирует джарники и рассылает джарники на экзекьютеры. экзекьютеры, зачастую на других узлах кластера в параллель эти джарники выполняют. со стороны звучит это то что вы пытаетесь воспроизвести. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 15:59 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
mayton Если ты продвиаешь его идеи - то я тебя пойму. Дык, это я есть. ;) Вы тоже извините меня, просто все программисты, кому я показывал этот материал, оценивали его по разному. В качестве критики, оспаривали ценность озвученных преимуществ, или указывали на то, что подход не нов. Разные были оценки, но ни у кого я не встречал, такого глубокого не понимания материала и претензий к его подаче. Это ваше право, но я реально не понимаю, что Вам так критично не зашло. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:02 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana mayton Если ты продвиаешь его идеи - то я тебя пойму. Дык, это я есть. ;) Вы тоже извините меня, просто все программисты, кому я показывал этот материал, оценивали его по разному. В качестве критики, оспаривали ценность озвученных преимуществ, или указывали на то, что подход не нов. Разные были оценки, но ни у кого я не встречал, такого глубокого не понимания материала и претензий к его подаче. Это ваше право, но я реально не понимаю, что Вам так критично не зашло. Вот чаще приходи сюда и советуйся. Сорцы показывай. Бенчмарки. Самая правильная правда ... она всегда идет от критики. Не слушай своих коллег по проекту. Они тебе нальют в уши сахарный сироп. Коньюнктура. Нас - слушай. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:05 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
mayton Суть SQL машины как раз в том что она динамически подстраивается под изменяющиеся условия. А вы что? Сделали хеш-джойн хардкодом? А если данные поменяются? У нас нет джойнов, я вообще то говорил, что наш язык это не совсем SQL. Но подход, можно обсуждать пренебрегая разницей. Как вы думаете, если в СУБД поступает одна и та же команда select много раз, план для нее строиться каждый раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:09 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
H5N1 да любая. вы базы совсем не видели? SQL это строка, она парсится, оптимизатор на базе статистики строит план. это эффективный машинный код. для сторед процедур у оракла, к примеру, тоже есть понятие native compilation, сторед процедура компилируется в нативный машинный код. Вот в этом и отличие, Вы просто не хотите его увидит, а хотите оскорбить, спрашивая видел ли я базы данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:13 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemanaУ нас нет джойнов, я вообще то говорил, что наш язык это не совсем SQL. А зря. Был бы SQL - было бы проще искать специалистов по использованию. А так это некий препроцессор с некоего псевдоязыка для FvMas. Ну или просто ещё один MUMPS. artemanaКак вы думаете, если в СУБД поступает одна и та же команда select много раз, план для нее строиться каждый раз? У нормальных людей одна и та же команда несколько раз не поступает. В API функции препарирования запроса и его выполнения разделены. И таки да, некоторые СУБД кэшируют планы именно на такой случай. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:18 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana H5N1 да любая. вы базы совсем не видели? SQL это строка, она парсится, оптимизатор на базе статистики строит план. это эффективный машинный код. для сторед процедур у оракла, к примеру, тоже есть понятие native compilation, сторед процедура компилируется в нативный машинный код. Вот в этом и отличие, Вы просто не хотите его увидит, а хотите оскорбить, спрашивая видел ли я базы данных. ну да, а чего вы ожидали приходя сюда и расписываясь, что не понимаете что такое интерпритатор, накладные расходы .net машины, ее расходы на управление памятью и без даже близкого представления как работает cost based optimizer, что он генерит и когда инвалидирует планы и статистики. да черт, я не верю что вы код писали, если заподозрили .net в эффективной работой с памятью ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:19 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana У нас нет джойнов, я вообще то говорил, что наш язык это не совсем SQL. Но подход, можно обсуждать пренебрегая разницей. Это очень печально конечно. Это очень ограничивает ваши разработки. А как у вас с транзакциями и консистентностью? Это обычно - главный вопрос. Или последний патрон который добивает горе-создателей. Обычно они заканчивают на атомарности и говорят - здесь всё. Мы закончили. Как вы думаете, если в СУБД поступает одна и та же команда select много раз, план для нее строиться каждый раз? Стоп-стоп. Не хитри. Ты пришел в этот форум с позиции доказующего. И задавать вопросы - это наша задача. Это ты должен собрать сведенья и принести их сюда о том как работают хотябы TOP-3 DBMS, как строит планы и какие бывают виды гистограмм на колонках. И как можно быстро сделать comparison двух планов не выполняя их. І на сам кінець... Як каже мій колега Петро - ТС має працювати більше усіх. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:28 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
H5N1, Ваши познания по работе в дотнете (с памятью и про интерпретацию)наверно устарели. Или вы не умеете их готовить. (С) В любом случае Вы можете представить реализацию обсуждаемого подхода, если Вы все таки поняли в чем он состоит, для любого языка, чья производительность, лично у Вас, не вызывает сомнения. Вот раньше здесь говорили, что на ObjectiveScrip все летает. Меня ;t в C# все более чем устраивает! Ваш выбор за Вами. И главное! Вы с одной стороны приводите схему спарк, которая чем то похоже, с другой стороны говорите что все фигня. Вы уж определитесь. И да, мы то же планируем делать распределенную обработку сверх больших данных, примерно так, как Вы описали работает в спарк. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:33 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
mayton А как у вас с транзакциями и консистентностью? Это обычно - главный вопрос. Или последний патрон который добивает горе-создателей. Обычно они заканчивают на атомарности и говорят - здесь всё. Мы закончили. Это OLAP система. Обеспечивает консистентность уровня repeatableRead для свои пользователей. То есть во время формирования отчета, они видят либо все новые данные, уже залитые экстрактором, либо ни видят никаких изменений, если процесс извлечения не закончен (находиться середине). Разумеется сам экстрактор обращается к исходной базе в режиме repeatableRead, если это возможно, чтобы тоже выполнить извлечение согласованных данных. mayton Ты пришел в этот форум с позиции доказующего. Нет, мне интересно было услышать мнения. Обоснованную критику. Узнать об аналогах. Отчасти, благодаря в частности servit, я эту задачу решил. Все остальное, такая ерунда, особено ваши первые посты, что не приведи господи. mayton И задавать вопросы - это наша задача. Это ваше право mayton Это ты должен я ничего не должен. Будут конструктив (про транзакции Ваш первый нормальный вопрос), постараюсь в меру сил ответить, ну а если поток сознания, то извините. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:48 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana H5N1, Ваши познания по работе в дотнете (с памятью и про интерпретацию)наверно устарели. Или вы не умеете их готовить. (С) В любом случае Вы можете представить реализацию обсуждаемого подхода, если Вы все таки поняли в чем он состоит, для любого языка, чья производительность, лично у Вас, не вызывает сомнения. Вот раньше здесь говорили, что на ObjectiveScrip все летает. Меня ;t в C# все более чем устраивает! Ваш выбор за Вами. мой выбор поиздеваться над свиду взрослым дятькой, несущем откровенно нубские вбросы. .net (как впрочем и java) интерпретатор с гарбадж коллектором, программы там в принципе не способны работать напрямую с памятью. вообще никак. это не устаревшая информация, это факт, который известен любому джунеору. вы понимаете на сколько порядков это медленее, чем то как это делает оракл, написанный на голом C и обращающийся прямиком в shared memory ? artemana И главное! Вы с одной стороны приводите схему спарк, которая чем то похоже, с другой стороны говорите что все фигня. Вы уж определитесь. И да, мы то же планируем делать распределенную обработку сверх больших данных, примерно так, как Вы описали работает в спарк. спарк выигрывает исключительно за счет чудовищной параллельности. сам экзекьютор ресурсы использует очень не эффективно, во многом потому как все происходит в jvm. но это же его преимущество в том плане, что на java можно написать очень сложную систему и не напортачить с указателями, мемори ликами и прочим. на языках, без GC, которые эффективно работают с памятью, хреновину уровня спарк попросту не написать. это первое, второе - спарк признает, что джава тормоз в работе с памятью и уже года полтора продвигает off-heap кеш, куда складываются данные датафреймов и где не властен GC. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:52 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov artemanaКак вы думаете, если в СУБД поступает одна и та же команда select много раз, план для нее строиться каждый раз? У нормальных людей одна и та же команда несколько раз не поступает. В API функции препарирования запроса и его выполнения разделены. И таки да, некоторые СУБД кэшируют планы именно на такой случай. Прелестно. Вот, и обсудите с mayton "А если данные поменяются? и планы нужно перестроит" ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 16:55 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Это OLAP система. Обеспечивает консистентность уровня repeatableRead для свои пользователей. То есть во время формирования отчета, они видят либо все новые данные, уже залитые экстрактором, либо ни видят никаких изменений, если процесс извлечения не закончен (находиться середине). Разумеется сам экстрактор обращается к исходной базе в режиме repeatableRead, если это возможно, чтобы тоже выполнить извлечение согласованных данных. Вот с этого надо было начинать. Мы дескыть строим ОЛАП на дотнете. Вот класс системы. Вот бенчмарки. Вот сравнение с аналогами. Последнее важно. Т.к. заинтересованные лица всё равно у вас будут требовать сравнений с аналогами. По классам - посмотрите https://db-engines.com/en/ranking Каждая DBMS тегирована. Лежит на своей полочке. Описаны ее потребительские характеристики. А то что вы говорите про SQL - это тоже такое себе. Вторично. Мой опыт показывает что ущербный SQL обычно никому не нужен если рядом есть альтернативный API. Сильная сторона SQL - joins и если их нету то зачем тратить время? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:02 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemanaВот, и обсудите с mayton "А если данные поменяются? и планы нужно перестроит" Да нам-то что обсуждать, всё уже обсуждено за годы. Это Вам стоит обратить внимание на намёк Ё относительно момента инвалидации планов и статистик. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:04 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
H5N1 программы там в принципе не способны работать напрямую с памятью. вообще никак. это не устаревшая информация, это факт, Это факт только в Вашем сознании. В реальном мире это не факт, а неправда. С# обеспечивает такую возможность, и при необходимости мы могли бы этим пользоваться, но нам, как правило, это не нужно. Я вам уже сказал, не нравиться С# возьмите свой императивный язык, если конечно, что то, кроме как раздавать ярлыки, умеете. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:25 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
mayton Вот с этого надо было начинать. Мы дескыть строим ОЛАП на дотнете. Вот как раз с этого доклад и начинался, надо же, если не понятно о чем речь, либо посмотреть доклад с начала, либо спросить нормально. Я вот какой вопрос хотел бы для себя прояснить, есть общепризнанные, независимые бенчмарки для BI или OLAP систем? Где фигурировали бы такие системы как qlickView, Microsoft Power BI и другие лидеры рынка. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:31 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov artemanaВот, и обсудите с mayton "А если данные поменяются? и планы нужно перестроит" Да нам-то что обсуждать, всё уже обсуждено за годы. Это Вам стоит обратить внимание на намёк Ё относительно момента инвалидации планов и статистик. Это не Ё, но maytom обратил. В Olap системах, нет такой потребности. И джойнов, таких как в SQL, там нет. Они построены по схеме звезда. Таблицы фактов в центре, лепестки - таблицы координат. Таблицы фактов - очень большие, чье физика хранения предполагает основной метод первичного чтения - natural. С быстрым отсечением записей не прошедших фильтр. Здесь и помогает многопоточность и разделение на кластеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:42 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemanaТаблицы фактов - очень большие, чье физика хранения предполагает основной метод первичного чтения - natural. "Эва оно как, Михалыч..." (с) А я-то наивно полагал, что кубы осуществляют как раз обратную операцию: свёртку больших первичных таблиц с предпросчётом агрегатов... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:50 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
.... момента инвалидации планов и статистик В Olap системах, нет такой потребности. Но если бы такая потребность была, сам подход отнюдь не запрещает, сделать то, что возможно стоит делать в этой ситуации. Например при поступлении SQL команды, понять, что ее статистика устарела, создать по нее новых исполняемый код и выполнить его, вместо старого. Старый либо в утиль, либо в кеш. В этом вопросе, обсуждаемый подход не дает ничего нового, но и не ограничивает ни в чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:52 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemanaНапример при поступлении SQL команды, понять, что ее статистика устарела, создать по нее новых исполняемый код и выполнить его, вместо старого. Вот только у вас компиляция статическая, SQL команды "поступают" при написании кода. Нет, я, конечно, видел забавные системы, переписывающие и перекомпилирующие свой собственный ход на ходу, но они уже за пределами добра и зла. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:57 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov "Эва оно как, Михалыч..." (с) А я-то наивно полагал, что кубы осуществляют как раз обратную операцию: свёртку больших первичных таблиц с предпросчётом агрегатов... Прикинь, в том и дело, что за счет in memeory, такие системы как qlickView говорят открытым текстом, "нафиг этот предпросчёт агрегатов" . Мы так быстро считаем, что то, что вы загрузите в самом детальном, не агрегированном виде, мы посчитаем на лету. И очень быстро. такое же я слышал и от яндекс аналитик. Ну и мы типа по этому пути идем. Ведь предпросчет агрегатов сужает возможности детализации анализа. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:58 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А я-то наивно полагал, что кубы осуществляют как раз обратную операцию: свёртку больших первичных таблиц с предпросчётом агрегатов... Люди, которые не умеют пользоваться SQL, пишут для этого гигантские процедурные реализации с соответствующей скоростью работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 17:58 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Dimitry Sibiryakov "Эва оно как, Михалыч..." (с) А я-то наивно полагал, что кубы осуществляют как раз обратную операцию: свёртку больших первичных таблиц с предпросчётом агрегатов... Прикинь, в том и дело, что за счет in memeory, такие системы как qlickView говорят открытым текстом, "нафиг этот предпросчёт агрегатов" . Мы так быстро считаем, что то, что вы загрузите в самом детальном, не агрегированном виде, мы посчитаем на лету. И очень быстро. такое же я слышал и от яндекс аналитик. Ну и мы типа по этому пути идем. Ведь предпросчет агрегатов сужает возможности детализации анализа. А какого объёма у вас сейчас хранилище? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 18:02 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Вот только у вас компиляция статическая, SQL команды "поступают" при написании кода. Не ну это ерунда, такого нет! Вот как работает система в основном режиме. 1. Работает программа (слушает порт) 2. Поступает SQL-команда 3. Программа проверяет есть ли в ее кеше код (dll) под такую команду. 4. Если есть, этот код исполняется. 5. Если нет, пишится код (файл на C#), компилируется в dll, помещается в кеш и исполняется. Изначально, сразу после старта программы, кеш пустой, никакой статики. Если вернуться к вопросу инвалидации статистики, то Никто не мешает после шага 3 проверить и актуальность статистики, и создать новый код, ели она устрела. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 18:09 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
mayton А какого объёма у вас сейчас хранилище? По самому крупному проекту. В самой большой таблице фактов - 60 млн записей. Средний объем 15 млн. Всего таблиц фактов 20, справочников примерно столько же. Объем всей базы в памяти 35Гб. Запас есть, пользователь доволен. но миллиард наверно не потянем. По крайне мере пока не разделим между нодами ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 18:14 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana mayton А какого объёма у вас сейчас хранилище? По самому крупному проекту. В самой большой таблице фактов - 60 млн записей. Средний объем 15 млн. Всего таблиц фактов 20, справочников примерно столько же. Объем всей базы в памяти 35Гб. Запас есть, пользователь доволен. но миллиард наверно не потянем. По крайне мере пока не разделим между нодами И что все 35 Гб прогружаете в память .Net машины? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 18:23 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana В самой большой таблице фактов - 60 млн записей. С этого момента можно начинать рыдать. Когда я в начале двухтысячных занимался хранилищами, потратил некоторое время на установление оптимального для Оракла размера партиции для таблиц фактов. Выяснил, что оптимум (для железа того времени) лежал в диапазоне 20-50 млн. записей (в зависимости от того, насколько широкая запись). А 60 млн. записей... блин... этого не хватит для информации о счетах за ЖКХ Москвы за один месяц. И вы выясняете, как лучше крутить такие копейки.... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 18:48 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Что-то у меня в голосе все равно паззл не складывается. OLAP системы строят свои кубики 1 раз. Хоть по In-Memory хоть по диску. И после того как кубик построен ему уже и БД не нужна. Системы которые In-Memory и аналитика - хранят таблички развернуте набок. Как массивы примитивов. int/float/string. И именно за счет этого достигают молниеносного анализа. Как пишут в рекламах. Но у них - другие ограничения. Индексы не строятся обычно. Там полосочный партишенинг. Как паркет на полу. А.... да. С языка снял. Точно. Parquet. Система такая есть. Тоесть для них (колончатых) есть рекомендованные запросы. И есть неудобные. Которые будут медленно работать. Типа select *. Какая к чорту звездочка? Когда колонок 100500. Изволь выбрать выборку колонок. Короче свои бока. А у автора что? Row-oriented? Column-oriented? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 19:07 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
mayton И что все 35 Гб прогружаете в память .Net машины? Да, и все отлично работает. Я уверен что туда можно загрузить и больше в 10 раз. Никаких проблем, просто из роста объема нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 21:26 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
softwarer artemana В самой большой таблице фактов - 60 млн записей. С этого момента можно начинать рыдать. Когда я в начале двухтысячных занимался хранилищами, потратил некоторое время на установление оптимального для Оракла размера партиции для таблиц фактов. Выяснил, что оптимум (для железа того времени) лежал в диапазоне 20-50 млн. записей (в зависимости от того, насколько широкая запись). А 60 млн. записей... блин... этого не хватит для информации о счетах за ЖКХ Москвы за один месяц. И вы выясняете, как лучше крутить такие копейки.... Можно, начинайте рыдать. Но лучше, если можете, укажите на какие то тесты, позволяющие сравнивать такие системы по производительности между собой. Померяем, если это возможно. А то тут всем известно, что тут каждый второй разработчик делал базы на миллиард записей и все считалось за 1 секунду. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 21:31 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Но лучше, если можете, укажите на какие то тесты, позволяющие сравнивать такие системы по производительности между собой. Да какие нафиг тесты. Вы хотя бы для начала закачайте более-менее вменяемый объём данных, потом добейтесь с ним какого-нибудь результата. У меня в OLTP в табличке клиентов чуть больше 150M записей после очистки - а вы рассказываете про 60M в хранилище как о великом достижении. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 21:52 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
H5N1 .net (как впрочем и java) интерпретатор с гарбадж коллектором, программы там в принципе не способны работать напрямую с памятью. вообще никак. это не устаревшая информация Не интересуюсь дотнетом, но в ява уже есть и F(oreign)M(emory)A(PI) и F(oreign)F(unction and)M(emory) API. Да, пока в виде инкубатора и, нет - его точно доделают и никуда не выкинут. P.S. Освежайте, хоть иногда, знания "времён очаковских и покоренья Крыма". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 21:56 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana По самому крупному проекту. В самой большой таблице фактов - 60 млн записей. Средний объем 15 млн. Всего таблиц фактов 20, справочников примерно столько же. Объем всей базы в памяти 35Гб. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 22:00 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
mayton А у автора что? Row-oriented? Column-oriented? В данном топике это не имеет значения. Здесь обсуждается принцип реализации обработки данных. Они могут быть в структурах Row-oriented или в Column-oriented или еще в чем то комбинированном или даже непохожем ни на то и ни другое. Неважно. Есть два подхода к написанию движка выбирающего эти данные. Классический и то, что использовали мы. Названия условны, ключевое отличие второго в том, что SQL команда транслируется в программу на неком языке, эта программ потом компиллируется и выполняется. Как выяснилось этот подход не нов. Здесь назвали две системы, умеющих работать по такому принципу. Одна из них - всемогущий оракл, который из SQL процедуры делает машинный код. Мол трепищите, порвет всех! И это очень отличительный момент. Возможно такой прямой переход к машинным кодам более эффективен, хотя это под вопросом, но он точно сложней в обслуживание. Потому что если у Вас возникает необходимость отладки, то разобраться почему в данных условиях конкретная SQL процедура работает так и выдает именно такой результат, Вам будет непросто. Вы будете вынуждены отлаживать программу работающую в машинном коде. Ничего другого то нет. Хотя здесь нет специалистов, писавших оракл изнутри, и подтвердить это некому. Но Вы можете хотя бы попытаться это мыслено представит? С этой позиции вариант который привнес servit мягче, потому что там, в качестве промежуточного, используется язык более высокого уровня, и трассировка программы, реализующей SQL, на нем значительно легче. На мой взгляд, преимуществом нашего подхода, является именно использование C# и как основного языка проекта и как того языка, на котором, если что, можно разобраться в подробностях выполнения команды. Один язык вместо двух, плюс я считаю, что в производительности программ на нем написанных, он уступил только с и с++. И то, надо посмотреть в каких моментах. А остальных уделает. Об удобстве и говорить нечего. Ирония заключается в том, что и обсуждение свойств языка, это тоже офтопик. При желание можно взять другой язык. Подход с использованием промежуточного языка все равно будет отличаться от классического. Вопрос нужно ли это делать и для каких СУБД? Вот что хотелось бы понять. Вместо этого идет поток критики и насмешек направленный в принципе против конкретной реализации, хотя никто из этих "великих гуру" и в глаза не видел системы. Печальное зрелище.... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 22:30 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
softwarer - а вы рассказываете про 60M в хранилище как о великом достижении. Если я и употребил слово "великий", то только по отношению к Вам. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 22:32 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana mayton А у автора что? Row-oriented? Column-oriented? В данном топике это не имеет значения. Здесь обсуждается принцип реализации обработки данных. Они могут быть в структурах Row-oriented или в Column-oriented или еще в чем то комбинированном или даже непохожем ни на то и ни другое. Неважно. Подожди-подожди. Это важно. Это - тоже класс системы. И это тоже определяет на какие query будет ориентирована система. Ты как знающий эту систему можешь сказать ЧТО лежит в этих 35 гигабайтах? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 00:06 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Подожди-подожди. Это важно. Это - тоже класс системы. И это тоже определяет на какие query будет ориентирована система. Не, конечно для оценки системы в целом это важно! Но в этом топике, я предлагаю ничего кроме способа обработки данных не обсуждать. И без того трудно удержаться в конструктиве. Ты как знающий эту систему можешь сказать ЧТО лежит в этих 35 гигабайтах? Конечно могу. Но если Вы действительно хотите разобраться в том, какие там структуры для хранения используются, нужно создавать отдельный топик. Там достаточно необычная система. Она в принципе больше похожа под Row-oriented, но там есть моменты, позволяющие хранить данные более компактно и более быстро проводить фильтрацию при выборке. Но повторюсь, все это имеет мало отношение к тому, что мне хотелось бы обсудить в данной теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 00:39 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Здесь назвали две системы, умеющих работать по такому принципу. Одна из них - всемогущий оракл, который из SQL процедуры делает машинный код. Мол трепищите, порвет всех! И это очень отличительный момент. Возможно такой прямой переход к машинным кодам более эффективен, хотя это под вопросом, но он точно сложней в обслуживание. Потому что если у Вас возникает необходимость отладки, то разобраться почему в данных условиях конкретная SQL процедура работает так и выдает именно такой результат, Вам будет непросто. Вы будете вынуждены отлаживать программу работающую в машинном коде. Ничего другого то нет. Хотя здесь нет специалистов, писавших оракл изнутри, и подтвердить это некому. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 02:08 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Никанор Кузьмич, человек не читатель, он писатель. Если он узнает, как работают существующие системы, ему будет гораздо труднее гордиться своими выдающимися творениями. Знания - это такая вещь, которая мешает полёту фантазии. Например, хоть чуть-чуть разобравшись, он бы уже не смог найти преимуществ своего решения перед тем же Ораклом, а без них - смотрите, как уверенно придумывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 02:11 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
Никанор Кузьмич Я работал с ораклом снаружи. Процитированный выше текст я даже понять не могу. Что такое "SQL процедура"? В оракле есть "PL/SQL процедуры" и "SQL запросы". Вы что имеете в виду? Давайте вы сначала перепишете текст с использованием общеупотребительных терминов. Что значит "в данных условиях конкретная SQL процедура работает так и выдает именно такой результат"? У меня лично и "PL/SQL процедуры", и "SQL запросы" всегда выдают одинаковый результат - тот, который нужен. Отладка PL/SQL ничем не отличается от отладки на любом другом языке. Никакие машинные коды в оракле отлаживать не нужно. О терминах. Термин SQL покрывает такие термины как DDL и PL SQL. Все эти языки относятся к семейству SQL и являются его расширением. Поэтому термин SQL - процедура, который я использовал, в отношение Stored prоcedure, в оригинале "сторед", я считаю приемлемым. Но если Вам удобно, давайте зафиксируем, что речь идет о "PL/SQL процедуре". Такие процедуры есть в оракле, есть в MS SQL, есть в Firebird и других. Синтаксис разный, но это не принципиально. Теперь, как мне кажется, почему вы меня не поняли. Я имел ввиду не ту отладку. Естественно, когда конечный пользователь работает с ораклом, все так и происходит как Вы написали. 100% процентов. Я имел виду трассировку, которую выполняет программист ядра оракла. Например поддерживая новую языковую конструкцию в PL/SQL или в обычном SQL. Или разбираясь с багом в старой. Мы ведь здесь пытаемся обсуждаем подходы к созданию движка СУБД , а не его использования. Вы не имеете проблем с оракл PL/SQL потому что там все "вылизали", но чего им это стоило, Вы не оцениваете. Попробуйте это сделать. Я конечно тоже внутри оракл не был, и дать конкретную оценку именно по нему не могу. Но в процессе разработки нашего сервиса бизнес аналитики, нами было разработано две In Memorу database. Язык управления одинаков, сравним с SQL. Вторая версия этой In memory была построена "не обычно". Это "не обычно" дало нам выигрыш по скорости работы самой базы (в среднем до 20%), но это не главное! Во время создание второго варианта мы тратили на решение аналогичных задач (поддержку своего SQL) гораздо меньше ресурсов. И сейчас, если нам надо что то понять как внтури работает старая конструкция нашего SQL или добавит в него новое, мы делаем это с гораздо меньшими затратами. Это и обсуждается. Но есть трудности, так как нет здесь здесь людей, имеющих опыт разработки ядра СУБД. Ну или они молчат. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 08:00 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Но есть трудности, так как нет здесь здесь людей, имеющих опыт разработки ядра СУБД. Ошибаетесь, их здесь полно. Только на моей памяти сюда приходили человек тридцать таких же, как Вы. Наиболее эпохальные проекты можете нагуглить по словам "FVMas" и "Стебелёк", а наиболее недавний - кажется, "bluestreak". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 08:22 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
softwarer artemana Но есть трудности, так как нет здесь здесь людей, имеющих опыт разработки ядра СУБД. Ошибаетесь, их здесь полно. Прекрасно, поинтересуюйтесь их мнением, пригласити их в этот топик softwarer Только на моей памяти сюда приходили человек тридцать таких же, как Вы. Наиболее эпохальные проекты можете нагуглить по словам "FVMas" и "Стебелёк", а наиболее недавний - кажется, "bluestreak". Читал, помню. В этом, как мне кажется, и проблема. Вы "измученный" ими даже не пытаетесь вникнуть в суть этой темы, раздавая ярлыки, попутно сообщая о своих, вместе с оркалом, достижениях. И даже если завтра, ваш любимый вендор выпустит новую версию in memory database, в которой целиком или опционально использует обсуждаемый подход, Вы об этом не узнаете. А даже если узнаете, не перестанете бросать в меня какашками. Как так, кто то предложил обсудить подход, суть которого не удается ухватить даже на 4 странице его обсуждения. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 10:34 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Конечно могу. Но если Вы действительно хотите разобраться в том, какие там структуры для хранения используются, нужно создавать отдельный топик. Там достаточно необычная система. Она в принципе больше похожа под Row-oriented, но там есть моменты, позволяющие хранить данные более компактно и более быстро проводить фильтрацию при выборке. Но повторюсь, все это имеет мало отношение к тому, что мне хотелось бы обсудить в данной теме. Хорошо. Я буду ждать нового топика. В новых экспериментах с созданием DBMS что главное? Алгоритмы и структуры данных. И я-бы еще добавил особые оптимизации под специфику железа. Например Tarantool создавал особый вид бинарного дерева которое должно работать поверх SSD-носителей. Целевой язык который вы там создаете мне кажется - не особо интересен. Там - нечего обсуждать. Или если вы считаете что есть что обсуждать - покажите интересные кейсы. Авторы всегда топят за свои рукотворные DSL, но остальные разработчики и product-owners обычно смотрят на это с безразличием. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2021, 12:19 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana ... Подход с использованием промежуточного языка все равно будет отличаться от классического. Вопрос нужно ли это делать и для каких СУБД? Вот что хотелось бы понять. ... Такой подход используется у промышленной субд - SAP HANA (она, впрочем, не OLAP-спцифичная, а универсальная). Имеет свои преимущества и недостатки. Отладка для самих разработчиков СУБД в целом проще, потому как промежуточный язык - подмножество плюсов с некоторыми модификациями. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 12:05 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Прекрасно, поинтересуюйтесь их мнением, пригласити их в этот топик А за пивом Вам не сбегать? artemana Читал, помню. В этом, как мне кажется, и проблема. Вы "измученный" ими даже не пытаетесь вникнуть в суть этой темы Стоящую тему может рассказать человек, обладающий определённой квалификацией. Вы, равно как и авторы тех тем, необходимой квалификацией явно и очевидно не обладаете. Зато обладаете такими их характерными особенностями, как психология обиженки и стремление видеть пиписькомерянье там, где его нет. Поэтому Вы правы - вникнуть в суть я не пытался. Как не стал бы особо внимательно слушать рассуждения пятилетнего ребёнка о способах защиты и взлома ПО. По крайней мере до тех пор, пока этот ребёнок не скажет что-либо, что убедит, что он значительно превосходит своих сверстников и способен беседовать на соответствующем теме уровне. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 13:32 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
kernelpanic, спасибо! Почитаю. какие недостатки кажутся наиболее значимыми Вам лично ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 13:44 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
softwarer Поэтому Вы правы - вникнуть в суть я не пытался. Зачетный каминг аут ! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 13:46 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana Одна из них - всемогущий оракл, который из SQL процедуры делает машинный код. Мол трепищите, порвет всех! Кстати Оракл не делает машинный код для процедур. Обычно делается байткод. У него действительно есть опция plsql_compiler_flags которая сразу после установки стоит в значении INTERRPETED. (Так было до Oracle11 включительно) и ее можно (с множеством ограничений) включить в другой статус где будет нативная компилляция. Но эта опция не продается корпорацией как киллер-фича. И для перформнса она вообще рассматривается в последнюю очередь. Вобщем аргумент был мимо кассы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 13:55 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana softwarer Поэтому Вы правы - вникнуть в суть я не пытался. Зачетный каминг аут ! Кстати, попробуйте научиться вести себя с достоинством. Квалификации оно не заменит, но от образа гопника избавит. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 14:05 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana kernelpanic, спасибо! Почитаю. какие недостатки кажутся наиболее значимыми Вам лично ? А вот Вам целая пдф на этот счет ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 19:58 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
kernelpanic, Спасибо! Судя по началу, самое то. Ознакомлюсь полностью, напишу подробней. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2021, 21:11 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
artemana, И вот еще, на https://www.youtube.com/watch?v=BOGiv1kiio0 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 09:16 |
|
Dinamyc hard coding
|
|||
---|---|---|---|
#18+
kernelpanic, просто отличный материал! Особенно видео доклада. Некоторые совпадения, с тем что мы сделали и как мы себе это представляли до, откровенно порадовали. Пусть мы не первые додумались до кода генерации для SQL, но реализовали мы ее не зря. Все подтверждается, и простота отладки и скорость работы движка базы данных, реализованной с этим подходом, видим не мы одни. То что там С, а у нас С#, роли особой не играет, так производительность у него и у среды .Net отличная. Мы очень довольны. В базе SAP HANA очень много чего есть еще. Часть из этого, например распределенная обработка запроса, нам только предстоит выполнить. Сейчас наша база живет только внутри одного процесса, и параллельная(многопоточная) обработка запроса производиться только внутри него. Многопоточность свое дает, и хорошо дает, но после определенного количества включаемых потоков, все уже начинает упираться в производительность одного сервера. Пока для наших клиентов хватает и есть запас. Считаем, что тот сегмент рынка, на который мы нацелены сейчас, должны удовлетворять. Будут большие потребности, будем двигаться в сторону распределенной обработки. Еще раз, большое спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 20:44 |
|
|
start [/forum/topic.php?all=1&fid=35&tid=1552159]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
84ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
114ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 501ms |
0 / 0 |