Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Проектирование БД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 15 16 [17] 18 19   вперед  Ctrl
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
drynny
Member

Откуда: Владимир
Сообщений: 209
softwarer
hVostt
Меня даже уже не великий и беспощадный смысл, который вкладывал автор в это. А как он к этому пришёл. Вот как рассуждал?


Да как обычно в таких случаях. Начинает знакомиться с предметной областью. Читает SQL. Думает: как бы круто программировать? Натыкается на EAV: о, круто. Особенно читая статью другого такого же ламера. Пробует. Плевать, что медленно и неудобно, зато один раз напишу крутой системный софт - это же интересно - и всё будет летать. Блин. Не летает. Тогда подрихтую модель, чтобы залетало. Совсем круто! Правда, не летает, но зато совсем своё, дайте мне нобелевку!

Что-то накал обсуждения ослаб. Подкину немного.

Когда-то, в 70-е, программное обеспечение часто разрабатывалось почти с нуля, а вычислительные мощности в принципе не позволяли создать конструктор, подобный IdeaV: он требовал бы на 3 порядка больше ресурсов. В 1000 раз больше ресурсов.

Потом, в 80-е, программисты стали использовать свои же, ранее написанные библиотеки программ. При этом для работы такие программы требовали в разы больше ресурсов на единицу полезного вычисления, чем написанные с нуля. Зато этот подход ускорял разработку также в разы. Конструктор требовал бы в 100 раз больше ресурсов, что было непозволительной роскошью.

Далее, в 90-е, программисты стали использовать, в основном, не свои наработки, а сторонние библиотеки и инструменты разработки. Чужой инструментарий часто был закрыт, решения работали медленнее, страдала совместимость. Тем не менее, использование библиотек ускоряло разработку на порядок-два. Вычислительные мощности росли, поэтому все легко мирились с тем, что их требуется также на 2 порядка больше. Теоретически, конструктор требовал бы в 10 раз больше ресурсов.

В 90-х были последние известные попытки создать нечто подобное моему конструктору, после чего идея, которая далеко не нова, была признана неработоспособной. Я внимательно изучил один из популярнейших эпизодов. Причина неудач: разработчик не опускался до низкого уровня написания программ, по привычке 80-90-х годов таща за собой библиотеки и стереотипы разработки. Вместо фундаментальной проработки ядра ставка была сделана на новейшие технологии.

В 2000-х мы наблюдали прежние темпы роста вычислительной мощности. Библиотеки программ стали шире, мощнее и устойчивее. При этом бесконечное богатство инструментария разработки сыграло с разработчиками злую шутку: выбор и овладение инструментом требовало столько же усилий, сколько тратили программисты из 90-х, при примерно одинаковом конечном результате. Скорость разработки уже не росла пропорционально накладным вычислительным расходам, как это было в 70-90-е годы.

Расчетная эффективность конструктора и традиционной разработки сравнялись в нулевых годах. В 2003 году мной, в качестве хобби, был спроектирован конструктор, а в 2006 запущен в реальном проекте (работает до сих пор). Конструктор использует простейшие технологии, основанные на наработках прошлого века, достаточно быстрые и надежные для своих задач.

На сегодняшний день, в 2019 году, при невероятной вычислительной мощности техники, мы можем секундами ожидать, когда на экране нашего монитора прорисуется web-страница (точно как в конце 90 х). Сервисы, которые мы используем, представляют собой сложный и многослойный пирог, который требует всё больше ресурсов и работает всё медленнее. Прогресс информационных технологий (IT) нивелируется их же сложностью и растущими требованиями программных продуктов. Ситуация как в постулате: «бюрократия расширяется, чтобы удовлетворить нужды расширяющейся бюрократии». Скорость разработки так и застыла на уровне 90-х годов.
9 сен 19, 22:04    [21967303]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
drynny
Квинтет, он же для другого. Пользователь не пишет код и не знает ничего о квинтетах.


Да это уже понятно, пользователь не знает о способе хранения, итак понятно. И то, что под пользователем вы понимаете и разработчиков, которые работают с "движком", и тоже не знают. Ясно всё это, ясно.

Но.

Зачем вот это форменное издевательство внутри? Какой профит именно от квинтетной модели?

Ваши цели могут быть достигнуты 100500 способов и классическим EAV.

Но нахрена всё вот именно так делать? Вы сами хотя бы для себя понимаете? Зачем квинтеты? В чём профит?
9 сен 19, 22:05    [21967304]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
drynny,

Ваше видение истории доставляет, но как говорится, для кого-то Москва это сырой подвал, а для кого-то вид на Кремль с чашкой кофе.

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

Про реализацию. Какого хрена так всё усложнять? В чём смысл?
9 сен 19, 22:09    [21967309]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
drynny
Member

Откуда: Владимир
Сообщений: 209
hVostt
drynny,

Ваше видение истории доставляет, но как говорится, для кого-то Москва это сырой подвал, а для кого-то вид на Кремль с чашкой кофе.

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

Про реализацию. Какого хрена так всё усложнять? В чём смысл?

Где вы видите сложность и в чём её измеряете?
9 сен 19, 22:11    [21967311]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
drynny
Расчетная эффективность конструктора и традиционной разработки сравнялись в нулевых годах.


Хера себе. То-то я смотрю как все на конструторах вокруг делается... Что ещё за шизофренические выводы? Откуда? График нарисованный в пейнте не приложите? :)
9 сен 19, 22:12    [21967313]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
drynny
Где вы видите сложность и в чём её измеряете?


Я вам уже показывал математику выше.

Там, где требуется 2 поля для хранения сущности, у вас 5.
Многосложная семантическая нагрузка на поля и комбинацию полей.

Какой профит? В чём смысл?
9 сен 19, 22:17    [21967317]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
https://tryjob.ru/index.html

Почитайте. Шиза в кубе, враньё, помешанное на фантазии лсд-шника...
Мошенничество в чистом виде.

Новый язык программирования — тренд 2019‑2021 гг.


Если это такой мощный "язык программирования", почему бы не зарабатывать на нём, а не привлекать доверчивых одептов за деньги?

Карма существует, ох и огребёте за свою грязную деятельность.
9 сен 19, 22:23    [21967320]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
Gerros
Member

Откуда: Харьков
Сообщений: 434
Тут многие интересовались у автора, в чём глубокий смысл его творения.
Не готов обсуждать степень новизны, просто попробую пофантазировать на тему применимости...
Фактически мы имеем ORM, у которой под капотом EAV. По-моему, эта комбинация лучше чем EAV без ORM или ORM без EAV.

Использование EAV без ORM требует ручного написания громоздких запросов. Это неприятно. Регулярно подглядывать в документацию или базу, какой атрибут как с чем связан - это утомительно.

В ORM, под которой обычные широкие таблицы (не EAV), каждое изменение набора атрибутов класса, отображённого на эти таблицы, требует изменения схемы БД. Для этого приходится делать громоздкие "миграции", которые могут требовать временного вывода системы из эксплуатации.
При этом ORM, как правило, работают с одиночными объектами, а не с большмим датасетами (коллекциями объектов). При такой работе однострочными INSERT\UPDATE широкие таблицы особой выгоды по сравнению с EAV не дают.

Соответственно, ORM поверх EAV обладает следующими достоинствами:
Высокая степень оперативной готовности - изменение набора полей класса не требует изменения схемы БД, следовательно миграции не нужны. Все изменения можно накатывать на лету.
Скорость разработки - не нужно руками джойнить атрибуты.
Потенциально высокая надёжность - из-за фиксированной структуры хранилища (EAV) все запросы и джойны, которые формирует ORM, одинаковы для любых атрибутов. Соответственно, код ORM будет простым. Меньше кода - меньше шансов на ошибку разработчиков ORM.

Учитывая, что в системе реализован конструктор интерфейса (если я правильно понял картинки), и планы автора сделать собственное хранилище вместо РСУБД, получается самодостаточное решение интерфейс + ORM + EAV + хранение.
Что-то наподобие MS Access или FOXPRO, но с указанными выше достоинствами.
9 сен 19, 22:52    [21967337]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6271
hVostt
drynny
Как раз квинтеты и позволяют создать конструктор и, в отличие от 1С и SAP, в нём нужно будет намного меньше и проще программировать.


Ну вот нам всем и непонятно, почему и с какой кстати квинтеты позволяют создать конструктор.
В 1С тоже модель динамическая и создаётся мышкой.

Чем тут квинтеты реально помогут?

Вот смотрите, давайте в лоб, если непонятно.

Такая структура таблиц у вас могла бы быть для хранения мета-данных:

+
-- типы сущностей
create table ETYPES (
  id int PK,
  name varchar(100),
  description varchar(1000)  
  ...
)

-- типы атрибутов
create table ATYPES (
  id int PK,
  name varchar(100),
  description varchar(1000)  
  ...
)

-- атрибуты типов
create table ATTRIBUTES (
  id int PK,
  eTypeId int FK(ETYPES),
  aTypeId int FK(ATYPES),
  order int,
  name varchar(100),
  description varchar(1000)
  ...
)

-- сущности (данные)
create table ENTITIES (
  id int PK,
  typeId int FK(ETYPES)
  ...
)

-- значения атрибутов сущностей
create table VALUES (
  entityId int FK(ENTITIES),
  attributeId int FK(ATTRIBUTES),
  value varchar(4000)
  ...
)


И она работает! Ещё можно добавить отдельно связи с разными параметрами. Хотя и так связи можно выразить через значения атрибутов-связей. Тут всё понятно, всё семантически разложено и даже поддерживается СУБД. Например, вы не можете указать вместо типа сущности, тип атрибута, или вместо сущности сослаться на тип, СУБД не даст. Такое можно сопровождать, и даже запросы будут проще, чем у вас.

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

Вы сами видите, до сих пор народ не может въехать толком как ваша байда должна работать. Ну и нафига это всё? До сих пор непонятно, уже какая страница пошла, а вы всё ответить не можете, для чего такой овер-инжениринг был нужен? Какую цель это решает? Ну зачем это всё?

Может вы недостаточно всё усложнили? Может 5 полей -- это много? Давайте как-нибудь в 3 уместим? В идеале конечно, всё в одно поле одной таблицы всё засунуть, давайте идти до конца. Ну зачем эти глупые полумеры? :)
Хм, EAV и 5 таблиц.
Кажется Хвост решил успеть на подножку уходящего квинтетного паровоза =)

Данные же могут храниться точно так же.
9 сен 19, 23:10    [21967347]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
ViPRos
Member

Откуда:
Сообщений: 9568
Одни пишут, другие критикуют. Хорошо, когда за это кто то им платит :)
10 сен 19, 01:17    [21967378]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
ldfanate
Member

Откуда:
Сообщений: 131
Gerros
следующими достоинствами:
Высокая степень оперативной готовности - изменение набора полей класса не требует изменения схемы БД, следовательно миграции не нужны. Все изменения можно накатывать на лету.

Скорость разработки

код ORM будет простым. Меньше кода - меньше шансов на ошибку разработчиков ORM.


Ну т.е. некое чисто разработчицкое средство быстрого прототипирования MDM-платформ? :)
Т.е. некое ООО "Корпоративные справочники", куда приходят корп.заказчики, и говорят "а сварганьте мне справочник материалов живенько ... а какой набор атрибутов? ... а хз (и далее крупными мазками, пальцами в воздухе) ... а вот пожалста нате".

Если к этому прикрутить кнопку-визард "сгенерировать продуктивную MDM-платформу", которая из EAV развернёт в нормальную структуру БД, со связязми и индексами, - то наверное взлетит. А если оно будет уметь корректно и безопасно "догенерять" изменения на лету на уже ранее сгенерённую MDMу (особенно набитую продутивными данными), то совсем взлетит.
10 сен 19, 07:04    [21967404]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
Gerros
Тут многие интересовались у автора, в чём глубокий смысл его творения.
Не готов обсуждать степень новизны, просто попробую пофантазировать на тему применимости...
Фактически мы имеем ORM, у которой под капотом EAV. По-моему, эта комбинация лучше чем EAV без ORM или ORM без EAV.


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

Я не вижу никаких преимуществ перед хранением той же структуры данных с мета данными, но разбитой на несколько таблиц. Зато виду очевидное усложнение на ровном месте и кучу недостатков

Учитывая, что срок разработки прототипа тянется с 2006 года, складываются большие сомнения правильную ли сферу деятельности выбрал автор

Глядя на его промо сайт я утверждают во мнении, что перед нами обыкновенный бездарный мошенник.
10 сен 19, 09:35    [21967459]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1977
Gerros
В ORM, под которой обычные широкие таблицы (не EAV), каждое изменение набора атрибутов класса, отображённого на эти таблицы, требует изменения схемы БД. Для этого приходится делать громоздкие "миграции", которые могут требовать временного вывода системы из эксплуатации.
При этом ORM, как правило, работают с одиночными объектами, а не с большмим датасетами (коллекциями объектов). При такой работе однострочными INSERT\UPDATE широкие таблицы особой выгоды по сравнению с EAV не дают.
.

В ядерную часть логики и объектов сложной и объемной системы изменения вносятся редко, очень редко или почти никогда - после вызревания системы. Поэтому делать на EAV ядро я резона не вижу. Приложить его сбоку для настроек и кастомизаций системы в том или ином виде можно. Равно как и ==свой новый язык программирования, который намного лучше тех, что уже есть в изобилии== - профит несет редко. И то что оно есть в 1С - так, 1С любят не за это. и SAP - не за ABAP.

особого профита от того, что в EAV ==можно легко добавить атрибут не делая alter table add ... == добавить легко. А вот с проапдейтить и проиндексировать - сразу интереснее. поэтому, по сути- баш на баш как минимум. То что атрибуты добавляются на ==живой, работающей системе и ничего! == - так с ними должен работать код, для встраивания коего в общий контур все же придется нажать стоп-кран. поэтому тоже.... профит сомнительный. в целом.
10 сен 19, 09:41    [21967464]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
Vladimir Baskakov
и SAP - не за ABAP


ABAP это наследие Гитлера )
10 сен 19, 10:06    [21967485]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
drynny
Member

Откуда: Владимир
Сообщений: 209
hVostt
drynny
Где вы видите сложность и в чём её измеряете?


Я вам уже показывал математику выше.

Там, где требуется 2 поля для хранения сущности, у вас 5.
Многосложная семантическая нагрузка на поля и комбинацию полей.

Какой профит? В чём смысл?

При чем тут семантическая нагрузка и какое отношение она имеет к пользователю, у которого визуальный редактор и всё просто?

Факт 2 против 5 вообще ни о чем.

Но давайте другие рассмотрим. По вашей методике — сравним числа :-)

1) Поскольку мы решили скрывать от пользователя все несущественные детали, такие как связующие ID, например, схема будет несколько упрощена: удалены упоминания ID и объединены названия сущностей и их ключевые значения.

Классическая схема:
Картинка с другого сайта.

В квинтетах:
Картинка с другого сайта.

Теперь мы видим 6 разных полей данных вместо 9, а вся схема предлагает нам прочитать и осмыслить 7 слов вместо 13.

2) Ядро для работы с квинтетной моделью состоит из 2300 строк кода и будет только сокращаться при написании нового ядра СУБД. Оно занимает пару мегабайт в оперативной памяти, оставляя много места под данные, кэш индексов и прочие полезные вещи.
Использование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests
(там в среднем 32 запроса в секунду занимают суммарно менее 100МБ памяти)
Сравните с вашими мелкосервисами на Java и предъявите сюда ваши картинки.
10 сен 19, 16:00    [21967857]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
drynny
При чем тут семантическая нагрузка и какое отношение она имеет к пользователю, у которого визуальный редактор и всё просто?


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


drynny
Факт 2 против 5 вообще ни о чем.


Факт о чём.

1. Ровно столько полей, сколько нужно для задачи, против любого другого количества ненужного обвеса.
2. Каждое из полей несёт одну смысловую нагрузку как для разработчика, так и для СУБД, катастрофически снижая возможность ошибки.
3. Ограничения целостности на уровне СУБД, против ОЦ на уровне ПО. СУБД тупо не даст выстрелить в ногу на самом элементарном уровне. В ваши квинтеты можно записать что угодно и потом разгребать это говно.


drynny
Теперь мы видим 6 разных полей данных вместо 9, а вся схема предлагает нам прочитать и осмыслить 7 слов вместо 13.


Наглое враньё. 5 полей надо умножить на количество лишних записей, которые обеспечивают данную структуру.


drynny
2) Ядро для работы с квинтетной моделью состоит из 2300 строк кода и будет только сокращаться при написании нового ядра СУБД. Оно занимает пару мегабайт в оперативной памяти, оставляя много места под данные, кэш индексов и прочие полезные вещи.
Использование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests
(там в среднем 32 запроса в секунду занимают суммарно менее 100МБ памяти)


Разница между запросами по квинтетами и обычными таблицами -- космос. ВЫ их даже не осмелились привести, сравнивая _индексированные_ запросы на квинтетах с _неиндексированными_ данными на классических таблицах. И это на простых запросах, на элементарных.

А на сложных запросах деградация будет адовая.

drynny
Сравните с вашими мелкосервисами на Java и предъявите сюда ваши картинки.


Нет нужды, в интернете всё гуглится, есть книги, статьи, масштабные исследования. А у вас чё, три картинки и нарисованные в пейнте графики.

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

Ничего. Вы либо к разработке ПО имеете такое же отношение, как ёжик к балерине, либо просто бездарный неуч, который не может ответить на простейший вопрос.
10 сен 19, 18:58    [21968044]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
iOracleDev
Member

Откуда:
Сообщений: 303
drynny
Использование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests

Блог компании Неофлекс, компания Неофлекс впаривает такую дичь клиентам?
10 сен 19, 19:05    [21968049]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
iOracleDev
drynny
Использование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests

Блог компании Неофлекс, компания Неофлекс впаривает такую дичь клиентам?


Да это писец. Стоит сразу давать ссылку на эти квинтеты тем, кто захочет с неофлексом связаться, чтоб даже близко не подходили.
10 сен 19, 19:07    [21968050]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41889
drynny
2) Ядро для работы с квинтетной моделью состоит из 2300 строк кода и будет только сокращаться при написании нового ядра СУБД. Оно занимает пару мегабайт в оперативной памяти, оставляя много места под данные, кэш индексов и прочие полезные вещи.
Использование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests
(там в среднем 32 запроса в секунду занимают суммарно менее 100МБ памяти)
Сравните с вашими мелкосервисами на Java и предъявите сюда ваши картинки.

Я вот этот пассаж про ядро вообще не понял. Ни строки кода ни 100 Мб не имеют никакого значения
для оценки качества среднего бизнес-продукта данного уровня.

Вы не не прошивку к роутеру делаете верно? Зачем выпячивать строки кода?
10 сен 19, 19:48    [21968081]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58486
Блог
mayton
Я вот этот пассаж про ядро вообще не понял. Ни строки кода ни 100 Мб не имеют никакого значения для оценки качества среднего бизнес-продукта данного уровня.

Ну почему же не имеют. Они показывают, что наш друг опять ярко лопухнулся - у него одна строка воплощается почти что в килобайт нагенерённого кода. Видимо, он пишет оооочень длинные строки. А сейчас побежит придумывать, что "пара мегабайт" - это не код, а данные, и объяснять, какие такие данные хранятся в этом ядре.
10 сен 19, 19:59    [21968086]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6271
mayton, softwarer,

хоть я и любитель оценить потребление ресурсов, но

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

во-вторых мне больше не понравилось по ссылке
Тем не менее, при 20-25 запросах в секунду (пиковая нагрузка при работе 20 пользователей), сервер укладывается в требования по производительности — 1 секунда на отклик. В целом ресурсы его недогружены, хотя это самый бюджетный вариант: 1 ядро 2.4 ГГц при 1 ГБ оперативной памяти.
25RPS это какой то трэш вне зависимости от задачи

собственно, может там задача на расчет 100 биткойнов, но сомневаюсь и не вникал
10 сен 19, 22:45    [21968163]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2063
Тем не менее, при 20-25 запросах в секунду (пиковая нагрузка при работе 20 пользователей), сервер укладывается в требования по производительности — 1 секунда на отклик.

Вот это требования к производительности, так требования: 1 секунда на отклик сервера. Сильно.

У нас за прошедшие сутки в среднем 152,5 запроса в секунду, отклик сервера - 94,4 миллисекунды.
Не, квинтеты точно не для нас :)
11 сен 19, 10:51    [21968349]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1977
автор
Что-то накал обсуждения ослаб. Подкину немного.

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

ну и там чтобы получались отчеты типа пять лучших по показателю А из сотни проигравших по показателю Б. ну что то такое, что на просто БД собирается малой пакостности запросом с парой EXISTS и аналитическими функциями.

Не запредельно сложно, а так.
11 сен 19, 14:02    [21968541]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
Дмитрий Мух
Вот это требования к производительности, так требования: 1 секунда на отклик сервера. Сильно.


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

Простейшие запросы генерируют увесистые тяжёлые джойны и условия выборок, которые на 99% технические, нежели бизнесовые.

Будь там что по-сложнее, из реального мира, будет уже не 1 секунда, а больше, местами на порядки.
11 сен 19, 14:19    [21968557]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41889
Давайте я немножко сделаю шаг назад. Я уже спрашивал Архитектора про API.
На основании индексной информации я сделал набросок к квинтетному интерфейсу.
trait QuntetBasicApi {

  def quintetById(id : Int) : Quintet = ???

  def quintetChainStartWith(id : Int) : LazyList[Quintet] = ???

  def quintetByDatatypeValue(datatype : Int, value : Option[Int]) : LazyList[Quintet] = ???

  def quintetByParentDatatype(parent : Int, dataType : Option[Int]) : LazyList[Quintet] = ???

}


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

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

Исключение - метод quintetChainStartWith(). Его задача - выборка поддеревьев по id корня.

drynny - прошу вас дать комментарии по этому API. Чего в нем еще не хватает для полноценной работы?
11 сен 19, 14:19    [21968558]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 15 16 [17] 18 19   вперед  Ctrl
Все форумы / Проектирование БД Ответить