Size: a a a

2021 February 09

AT

Alexander Tchitchigi... in fprog_spb
Ну и поскольку современные Веб-приложения — это по факту сильно разнесённые в пространстве распределённые приложения, в которых ряд нод вообще постоянно "мигает" — всё становится очень интересно в плане моделей консистентности. 😉
источник

AT

Alexander Tchitchigi... in fprog_spb
Mikhail Kuzmin
когда полтора человека в день редактируют сайт? Можно так-то и состояние держать и вебсокеты использовать. Или это еще сложнее и больнее?
Состояние держать — где?

Если пользователь открыл чего-то на редактирование, пошол пить чай на пол-часа и в процессе у него Интернет отвалился — тогда что? Что и как в это время могут редактировать остальные?
источник

AT

Alexander Tchitchigi... in fprog_spb
СУРБД тут вообще в последнюю очередь играет какую-то роль.
источник

MK

Mikhail Kuzmin in fprog_spb
В памяти приложения держать открытую транзакцию, состояние держать в транзакции в БД.
Можно редактировать черновики и их коммитить, а потом накатывать разом.
источник

MK

Mikhail Kuzmin in fprog_spb
можно вести журнал и писать туда то, что планируется закоммитить, и этот журнал пишется в другом соединении и коммитится.  В случае чего накатываетс заново.
источник

MK

Mikhail Kuzmin in fprog_spb
Я не призываю так делать, я вот в самом деле не понимаю.
источник

AT

Alexander Tchitchigi... in fprog_spb
Mikhail Kuzmin
можно вести журнал и писать туда то, что планируется закоммитить, и этот журнал пишется в другом соединении и коммитится.  В случае чего накатываетс заново.
Application-level WAL? 👏
Может, проще взять Kafka? Или СУРБД? 😉
источник

AT

Alexander Tchitchigi... in fprog_spb
Mikhail Kuzmin
В памяти приложения держать открытую транзакцию, состояние держать в транзакции в БД.
Можно редактировать черновики и их коммитить, а потом накатывать разом.
Вы, видимо, не понимаете, что "транзакции" — это часть "бизнес-логики", а не БД. 😊
источник

MK

Mikhail Kuzmin in fprog_spb
Ну так и я спраишваю про СУРБД.
WAL вести в той же БД. Просто каждое изменение коммитить.
А состояние держать в открытой транзакции.
Если транзакция закроется, останется журнал, котороый можно накатить.

транзакции бд и бизнес транзакции вообще разные вещи
источник

AT

Alexander Tchitchigi... in fprog_spb
Mikhail Kuzmin
В памяти приложения держать открытую транзакцию, состояние держать в транзакции в БД.
Можно редактировать черновики и их коммитить, а потом накатывать разом.
Ну и где находится "память приложения", составленного хотя бы по традиционной трёхзвенной архитектуре мне всё ещё не понятно. 🤷‍♀️
источник

MK

Mikhail Kuzmin in fprog_spb
Alexander Tchitchigin
Ну и где находится "память приложения", составленного хотя бы по традиционной трёхзвенной архитектуре мне всё ещё не понятно. 🤷‍♀️
в микросхеме RAM, я не знаю как еще это объяснить
источник

MK

Mikhail Kuzmin in fprog_spb
Websocket, а не http - конечно же
источник

AT

Alexander Tchitchigi... in fprog_spb
Mikhail Kuzmin
Ну так и я спраишваю про СУРБД.
WAL вести в той же БД. Просто каждое изменение коммитить.
А состояние держать в открытой транзакции.
Если транзакция закроется, останется журнал, котороый можно накатить.

транзакции бд и бизнес транзакции вообще разные вещи
Пропустим ерунду и перейдём к сути

> транзакции бд и бизнес транзакции вообще разные вещи

А Вы хотите использовать первые чтобы реализовать вторые. Поэтому ничего и не получается — это разные явления, которые реализуют разную логику работы, имеют разный контекст и scope.
источник

AT

Alexander Tchitchigi... in fprog_spb
Mikhail Kuzmin
Websocket, а не http - конечно же
Как только оборвался Websocket, так всё — сели голой жопой в лужу? 😊
источник

JS

Jerzy Syrowiecki in fprog_spb
может быть, реляционная алгебра не очень хорошая модель для хранения данных приложения? она работает, но не оптимально
источник

AT

Alexander Tchitchigi... in fprog_spb
Jerzy Syrowiecki
может быть, реляционная алгебра не очень хорошая модель для хранения данных приложения? она работает, но не оптимально
Больше похоже на то, что проблемы как раз начинаются в той части SQL, которая не является реляционной алгеброй. 😉
источник

AT

Alexander Tchitchigi... in fprog_spb
Впрочем временнОго измерения явно не хватает.
источник
2021 February 10

A

Aleksey @cheatex in fprog_spb
Mikhail Kuzmin
Привет, я Миша и я не знаю как использовать SQL базы.
Я хорошо знаком с ними наверное лет 10. Писал сложные запросы, оптимизировал их, оптимизировал хранение, чтобы туда влезало полтерабайта данных.
Я понимаю паттерны вроде Unit of work и Identity map.

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

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

Может быть кто-нибудь видел книжку или доклад?
Firebase, Rethink не то?
источник

MK

Mikhail Kuzmin in fprog_spb
Aleksey @cheatex
Firebase, Rethink не то?
спасибо посмотрю
но тут же вопрос в sql, например postgres.
например, к elasticsearch или redis у меня нет таких вопросов
источник

AS

Arseniy S in fprog_spb
Mikhail Kuzmin
спасибо посмотрю
но тут же вопрос в sql, например postgres.
например, к elasticsearch или redis у меня нет таких вопросов
Мне в свое время как-то изучение пролога помогло
источник