|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Kachalov, Писатель не должен оповещать. Есть подписчики. Есть оповещатели. А писатель это техническая должность нижнего уровня. Как вариант выше предложили его засунуть в хранимку. Тогда коллизии не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 13:27 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Но он делает Протокол. Это вообще по другому делают. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 13:29 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Писатель не должен оповещать. - вероятно Вы хотите сказать что мы наблюдаем архитектурную ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 13:43 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Kachalov, Угу. Причем ошибся он еще в прошлом топике. В оперативке надо было очередь делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 14:04 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Не знаю, что вы так набросились на MyBatis, но меня он пока ни разу не подводил, очень удобно мапить данные, быстрая и легкая библиотека, в отличии от hiber'a у меня как то с ним готовка уже лет 10-15 не ладится. По сути. Для уведомлений в разных субд есть , внезапно, уведомления. Например в pg ,notify "Во-первых, если NOTIFY выполняется внутри транзакции, уведомления доставляются получателям после фиксирования транзакции и только в этом случае. " Видел подобное в Firebird'е, так что это не экзотика. А listener слушает, при получении события делает select. Должно работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 14:11 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Troglodit Видел подобное в Firebird'е, так что это не экзотика. В субд есть xml, но хранение в нем экзотика Есть EAV, но это экзотика Есть JSON поля, но это экзотика. Продолжать? .. А батис тут никто не ругал ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 14:31 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
PetroNotC Sharp В субд есть xml, но хранение в нем экзотика Есть EAV, но это экзотика Есть JSON поля, но это экзотика. Продолжать? .. А батис тут никто не ругал а в чем лучше хранить json и xml или не жестко структурированные данные? А уж обрабатывать xpath и jsonpath?-это чем не экзотичным и реляционным вы заменяете? А валидация схемами документов. Мне продолжать? Про MyBatis видимо было несколько страниц назад, я на даты не смотрел, возможно устаревшее сообщение. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 14:53 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Troglodit, OFF в блобе храни или спец XMLDB. А зачем делвть из бд мусорку с неформализованными данными и моделю? Мне продолжать? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 15:38 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
XML и JSON в БД хранить можно. Но следуя принципам реляционных теорий мы должны объявить этот XML атомом в контексте решаемой нами задачи. Ежели он не таковой (не атом) то мы - жалкие школьники и нас надо снова садить за 1 курс университета и проходить Дейта и Кодда с нуля. Еще мысль. Развивая идею проектирования баз на XML я просто могу спросить - а почему вы остановились на 1 поле? Объявите всю data-row XML сущностью и тогда база примет вид Код: java 1.
И таким образом вся теория проектирования баз вырождается и превращается в профанацию. Об этом кстати писал Том Кайт. XML - есть и поддерживается но решения на базе него - "нелетают". Имеется в виду что низко перформят. Ну и апофеозом проектирования можно сделать перенос всех таблиц в 1 большой XML документ. Разумеется за кадром останутся техники DML - операций но тут я просто переведу стрелки на тех кто за такое решение ратует. Пожалуйста господа. Расскажите как это все будет работать и перформить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 17:16 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
mayton XML и JSON в БД хранить можно. Но следуя принципам реляционных теорий мы должны объявить этот XML атомом в контексте решаемой нами задачи. Ежели он не таковой (не атом) то мы - жалкие школьники и нас надо снова садить за 1 курс университета и проходить Дейта и Кодда с нуля. Еще мысль. Развивая идею проектирования баз на XML я просто могу спросить - а почему вы остановились на 1 поле? Объявите всю data-row XML сущностью и тогда база примет вид Код: java 1.
И таким образом вся теория проектирования баз вырождается и превращается в профанацию. Об этом кстати писал Том Кайт. XML - есть и поддерживается но решения на базе него - "нелетают". Имеется в виду что низко перформят. Ну и апофеозом проектирования можно сделать перенос всех таблиц в 1 большой XML документ. Разумеется за кадром останутся техники DML - операций но тут я просто переведу стрелки на тех кто за такое решение ратует. Пожалуйста господа. Расскажите как это все будет работать и перформить. Я не знаю, что у всех так горит, от того, что данные будут, о ужас, не реляционные. Зачем идти в крайности. Посмотрите доклад датаарта про тэги на highload'е за прошлый год кажется, как они жевали кактус и в итоге пришли к тому, что в конкретных кейсах nosql все таки мед, пусть и внутри классической рсубд. А так могу вам алаверды, вы на больших данных тогда все должны нормализовать до каждой запятой, вы же за священные нормальные формы. Только когда поток пойдет, вас смоет из без денормализации ваш перфомас вынесет в ... какое-то очень неприятное место. Да, сейчас есть хак,а давайте купим еще n-серверов, ведь можно же, железо дешево, а dba-дорого. А потом на том же highload главный it-шник ozon'a говорит как им мешает легаси дисковая подсистема за 1(или 10 :) ) кажется лям неубитых и как они героически уходили от этого, а подсистема где то пылится. Еще раз, если у вас студенты или стартаперы, которым еще 10 страниц дочитать, тогда ваша стратегия абсолютно верная. Если у вас квалифицированные DBA, то глупо в разумных дозах не использовать возможности СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 19:55 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Да ради бога. Пускай льют свои данные хоть тегами хоть json-ами. Просто они у них не реляционные. Следовательно это не тема нашего топика. У нас - Postgresql. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 20:07 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
mayton Да ради бога. Пускай льют свои данные хоть тегами хоть json-ами. Просто они у них не реляционные. Следовательно это не тема нашего топика. У нас - Postgresql. Доклад был как они это делали не на PostgreSQL, я ошибся, но на Oracle. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 20:09 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Зачем мне 35 минут видоса? Дайте хронометраж где звучит главная мысль и я посмотрю с удовольствием. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 20:33 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
mayton Зачем мне 35 минут видоса? Дайте хронометраж где звучит главная мысль и я посмотрю с удовольствием. Там нет главной мысли. Там повесть. Мы начали так, стало плохо, сделали по другому опять поплохело, и т.д. Нет желания вникать, я не навязываю, хотя в перемотке в 10 мин. управились бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 22:19 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Troglodit Зачем идти в крайности. Troglodit вы на больших данных тогда все должны нормализовать до каждой запятой, вы же за священные нормальные формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 23:06 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
А до какой НФ нормализовывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 23:12 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
del ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 01:07 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Troglodit Я не знаю, что у всех так горит, от того, что данные будут, о ужас, не реляционные. Зачем идти в крайности. Посмотрите доклад датаарта про тэги на highload'е за прошлый год кажется, как они жевали кактус и в итоге пришли к тому, что в конкретных кейсах nosql все таки мед, пусть и внутри классической рсубд. Код: java 1.
в ней конкуренция есть всегда , я буквально на прошлой неделе смотрел подобное решение, сказать "мне не понравилось" - это совсем ничего не сказать, там у ребят помимо того, что одна транзакция тупо перетирала данные другой (представьте что вот на этом форуме мы решили всю тему хранить в XML/JSON - теперь при добавлении нового сообщения нам придется блокировать всю строку, чтобы сообщения не перетирались, что в свою очередь будет вести к увеличению нагрузки на БД, а по "классике" такого даже не будет), решение еще пестрило другими детскими болезнями, типа вычисления следующего идентификатора как max(id)+1. Если вам кажется, что вы изобрели серебряную пулю, вам в первую очередь стоит задуматься, действительно ли она такая серебряная и почему все поголовно ее уже не используют. Что касается презентации, что вы привели, ну это реально дичь: автор явно путает две разные задачи - "как хранить" и "как быстро выбирать": я бы вот ни при каких условиях не стал бы хранить тэги (несущественные данные) в той же таблице где и часто-меняющиеся бизнес-данные (существенные), просто потому, что в обратном случае добавление тэга будет порождать конкуренцию, которая мне нафиг не нужна на ровном месте (отсылка к SO здесь неуместна - там монопольный доступ к редактированию темы), докладчик же по факту сделал откровенную дичь, не понимая, что "как хранить" и "как быстро выбирать" - это совершенно две несвязные задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 08:54 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
mayton Пожалуйста господа. Расскажите как это все будет работать и перформить. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 08:56 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Андрей Панфилов Ох жесть какая... Когда дизайнят модель в RDBMS, ее дизайнят в том числе таким образом, чтобы в каких-то местах избегать конкуренции, а в каких-то наоборот - порождать. Когда же ваша структура БД имеет вид (ну там, очевидно, PK не хватает): Код: java 1.
в ней конкуренция есть всегда , я буквально на прошлой неделе смотрел подобное решение, сказать "мне не понравилось" - это совсем ничего не сказать, там у ребят помимо того, что одна транзакция тупо перетирала данные другой (представьте что вот на этом форуме мы решили всю тему хранить в XML/JSON - теперь при добавлении нового сообщения нам придется блокировать всю строку, чтобы сообщения не перетирались, что в свою очередь будет вести к увеличению нагрузки на БД, а по "классике" такого даже не будет), решение еще пестрило другими детскими болезнями, типа вычисления следующего идентификатора как max(id)+1. Если вам кажется, что вы изобрели серебряную пулю, вам в первую очередь стоит задуматься, действительно ли она такая серебряная и почему все поголовно ее уже не используют. Что касается презентации, что вы привели, ну это реально дичь: автор явно путает две разные задачи - "как хранить" и "как быстро выбирать": я бы вот ни при каких условиях не стал бы хранить тэги (несущественные данные) в той же таблице где и часто-меняющиеся бизнес-данные (существенные), просто потому, что в обратном случае добавление тэга будет порождать конкуренцию, которая мне нафиг не нужна на ровном месте (отсылка к SO здесь неуместна - там монопольный доступ к редактированию темы), докладчик же по факту сделал откровенную дичь, не понимая, что "как хранить" и "как быстро выбирать" - это совершенно две несвязные задачи. Здорово, что вы поделились своим опытом,есть пара но. Акелла промахнулся, данную структуру предлагал не я, это было предложено mayton'ом в качестве легкого троллинга, чтобы довести до абсурда.Без Pk это вообще дичь, я с вами согласен. Я лишь говорил об полях JSON, в частном случае можно и про XML. Далее отделим мух от котлет, проблема с перезаписью чужих данных возникает не по причине, что формат хранения плохой, просто люди написали криво. Им что религия мешает менять только ЧАСТЬ узлов, так что опять пока мимо кассы. Где то было описано,что Так что, с вашего позволения подитожу: люди микроскопом забивали гвозди было не удобно и разбили прибор. Вывод: микроскопами никогда ни за что нельзя пользоваться. Вы же сами все правильно написали, часто меняющиеся данные в стандартных column'ах, статика нереляционная в json/xml. И все будет замечательно работать. В вашем примере max(id)+1 на больших данных будет бОльшим злом. В соседней ветке count-записей на 18млн таблице считают. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 10:02 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Андрей Панфилов mayton Пожалуйста господа. Расскажите как это все будет работать и перформить. У меня есть небольшой проект append only, где должно было использоваться 5 сущностей(1 сущ. -1 таблица, либо если сделать часть полей полупустыми то 4, при этом 1 сущность никак не связана 1 из них, но должна, Я вышел из ситуации, добавив вводную, что привязвываться будет к последней записи этой сущности. Для полного отображения информации в запросе в будут использованы 3 left join'а. Производительность ожидалась "потрясающей" как при чтении так и записи. Данных не много около 500 тыс. записей за тестовый период. Решил попробовать JSON Взял 1-ю сущность добавил к ней JSON и записывал в нее остальные 4. При этом проблема последней записи для привязки во ВСЕЙ таблице из прошлого примера свелась к поиску внутри этого же JSON'а. Все данные можно получить из 1-й таблицы без LEFT JOIN c помощью языка запросов JSON можно гибко получать нужные данные, данные для поиска отиндексированы. Общее кол-во записей всех сущностей уменьшилось до 70000. Писать запросы для выборки гораздо проще,при увеличении кол-во записей не будет резкого падения производительности на привязку сущностей. Да это слабый пример, но реальный живой кейс. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 10:33 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Troglodit просто люди написали криво. Им что религия мешает менять только ЧАСТЬ узлов Угу. Вместо готового движка работы со МНОЖЕСТВАМИ будем писать свой движок и оптимизировать работы с узлами. Troglodit Решил попробовать JSON Вон откуда ваше отстаивание. Каждый программист впервые в жизни в отрочестве пишут рукописный ОРМ, потом логгер, потом JSON в базе. Потом это проходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:09 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Вон откуда ваше отстаивание. Каждый программист впервые в жизни в отрочестве пишут рукописный ОРМ, потом логгер, потом JSON в базе. Потом это проходит. Я где то говорил, что надо забыть про реляционную структуру? И где я что-то отстаивал? Я лишь указал свой скромный опыт и указал на то, что уже лет 15 как в рсубд используют к месту и не к месту эти инструменты. Давайте закроем нашу с вами беседу, т.к. она оффтоп. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:29 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
Troglodit Я где то говорил, что надо забыть про реляционную структуру? посмотри свой первый пост. Для данной задачи (на наносекунды) не подходит РСУБД. Другое можешь предложить? Мы в Java. Troglodit Давайте закроем нашу с вами беседу, т.к. она оффтоп. OK ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:51 |
|
Mybatis+PostgreSQL паралелльные потоки
|
|||
---|---|---|---|
#18+
PetroNotC Sharp посмотри свой первый пост. Для данной задачи (на наносекунды) не подходит РСУБД. Другое можешь предложить? Мы в Java. Первый пост не мой. Задача автора получить в запросе измененные данные, почему это нельзя решить в РСУБД? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 13:02 |
|
|
start [/forum/topic.php?fid=59&msg=39892910&tid=2120990]: |
0ms |
get settings: |
22ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
533ms |
get tp. blocked users: |
2ms |
others: | 333ms |
total: | 989ms |
0 / 0 |