Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Два пути - количество или качество игр | страница 5
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 5 из 5
На страницу: Пред.  1, 2, 3, 4, 5 | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Два пути - количество или качество игр»
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Minx :
т.е. например есть две операции из разных точек X и Y: одновременно два человека ложат на один и тот же счет по 1000$.

Алгоритм:
1. Считать состояние счета.
2. Прибавить 1000$.
3. Записать результат в счет.

Без транзакции:
1. X считывает текущее состояние счета (A).
2. Y считывает текущее состояние счета (A).
3. X прибавляет 1000$ (A+1000$). Записывает на счет A+1000$.
4. Y прибавляет 1000$ (A+1000$). Записывает на счет A+1000$.

Результат - на счете A+1000$ вместо ожидаемого A+2000$.
Нарушение целостности/инварианта - дебет с кредитом у сторон не сходится.

С транзакцией:
1. Старт транзакции X. X считывает текущее состояние счета (A).
2. Попытка старта транзакции Y. Ожидание.
3. X прибавляет 1000$ (A+1000$). Записывает на счет A+1000$. COMMIT.
4. Просыпается Y. Y считывает текущее состояние счета (A + 1000$).
5. Y прибавляет 1000$ (A+2000$). Записывает на счет A+2000$. COMMIT.
6. PROFIT.

Вообще, я даже в двух местах типа учебников этот пример с банкоматами как необходимость синхронизации/транзакционности видел.


Ээто адовый писец, за который нужно распинать вниз головой, и с особой жестокостью за помещение ТАКОГО в учебники Хы...
Отсюда же, видимо, растут ноги бреда, когда в фильмах показывают прогрессбары по заливке долларов (по одному, видмо), бреда про навар банков с окрглений и прочей бредовой ереси Ой, не могу!..

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

1. Начало транзакции
2. Запись проводки, с данными (Номер счёта From) (Номер счёта To) (Сумма проводки)
3. Окончание транзакции.

Да, вот теперь профит.
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (21:15 21-10-2015), всего редактировалось 1 раз
    Добавлено: 21:14 21-10-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Shirson :
Вся банковскася система построена на проводках (это парадигма такая, считай).

Не знаю как там у Канади, но в банковской IT СНГ, к которой я имею непосредственное отношение, банкоматы работают по-другому.

Shirson :
1. Начало транзакции
2. Запись проводки, с данными (Номер счёта From) (Номер счёта To) (Сумма проводки)
3. Окончание транзакции.

Без транзакции легко одна проводка записывается поверх другой проводки и 1000$ теряются.
Так что за целостной ссылочностью нужно следить (;

В общем случае, пример с банкоматами это абстрактный пример в вакууме, на пальцах. Реальные системы сложнее, и там ошибка может привести например к рассылке неправильных СМС на пару миллионов абонентов.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 21:47 21-10-2015   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Minx :
Shirson :
Вся банковскася система построена на проводках (это парадигма такая, считай).

Не знаю как там у Канади, но в банковской IT СНГ, к которой я имею непосредственное отношение, банкоматы работают по-другому.
Я говорю про банковскую систему, как такову. И работает она проводках (в том или ином виде) везде. Херзнаетсколько лет это работало и в казахстанских банках, которые вполне себе относятся к СНГшным.
Если где-то система построена иначе, дайте спиок банков, я их в чёрный список занесу и других предупрежу Улыбка

Цитата:
Shirson :
1. Начало транзакции
2. Запись проводки, с данными (Номер счёта From) (Номер счёта To) (Сумма проводки)
3. Окончание транзакции.

Без транзакции легко одна проводка записывается поверх другой проводки и 1000$ теряются.
Так что за целостной ссылочностью нужно следить (;

По какой верх? Подозрение.

Цитата:
В общем случае, пример с банкоматами это абстрактный пример в вакууме, на пальцах.

Хотя бы потому, что я говорил про банковскую систему, а не банкомат, например Подмигиваю
_________________
У меня бисера не доxеpа.
    Добавлено: 22:46 21-10-2015   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
я вот в банке не работал, тока слышал, что там по каждому счёту раздельно ведётся дебет и кредит т.е. фактически те же самые проводки разных знаков
и про колоссальный объём биллинговых баз которые пухнут на каждый копеечный чих, думаю все слышали

а в геймдеве хорошо, если signed и fixed point для игровой валюты Улыбка
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 23:39 21-10-2015   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Двойная запись - запросто.
А чтоб билинговые базы не пухли, делают фиксацию остатаков на какой-то момент и предыдущую историю сбрасывают в архив.

Опять же, в геймдеве - смотря что девить Улыбка Если что-то вроде EVE, то вполне может быть и не всё так просто Подмигиваю
_________________
У меня бисера не доxеpа.
    Добавлено: 23:42 21-10-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Shirson :
И работает она проводках (в том или ином виде) везде.

а-а... провОдка!

Кароч.. спать пора.. (;

Shirson :
По какой верх?

Например проводки хранятся в таблице, каждая запись свой ID.

ID выдается процедурой

UPDATE TABLE SET ID=ID+1
SELECT ID FROM TABLE

если выдача ID не синхронизирована, то получим два одинаковых ID для разных операций. Со всеми вытекающими.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 23:55 21-10-2015   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
думаю swift как раз генерит уникальные номера и хранит свою копию, и также своя копия в банке держателя счёта, а то подрисовывали бы тока в путь
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 00:00 22-10-2015   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Minx :
Например проводки хранятся в таблице, каждая запись свой ID.
ID выдается процедурой
UPDATE TABLE SET ID=ID+1
SELECT ID FROM TABLE

Вау! Вау! Вау!
Мля... это даже не индусский код, это вообще что-то за пределами добра и зла...

Цитата:
если выдача ID не синхронизирована, то получим два одинаковых ID для разных операций. Со всеми вытекающими.

Всмысле, химичейской кастрацией девелопера и архитектора, чтоб пресечь распространение этого на генетическом уровне? Это да, правильно вытекающие последствия Хы...
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (00:03 22-10-2015), всего редактировалось 2 раз(а)
    Добавлено: 00:02 22-10-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Как бы в самом начале ещё сказал:
Minx :
Транзакционность и обеспечение целостности/инвариантов в БД это основы. Без них в БД вообще лучше не лезть.

А если в геймдеве немного по-другому, я ж особо не спорю. Жирафу видней (с)
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 00:07 22-10-2015   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Minx :
А если в геймдеве немного по-другому, я ж особо не спорю
там мало у кого банковский опыт, наоборот пожалста, неленивые кодеры любому банку пригодятся Улыбка

и то такого нет, используется какой-нибудь sequence из постгреса, причём выделяется сразу квота номеров для каждого игрового сервера, по мере расходования они запрашиваются вновь, если один из серверов упал, выделенная квота безвозвратно теряется
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 00:15 22-10-2015   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
За сим делаю вывод, программеры в банках - пришли из геймдева Гы-гы
    Добавлено: 02:43 22-10-2015   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Все мы родом из детства (с)
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 20:31 25-10-2015   
Канал Игры Мечты: «Два пути - количество или качество игр»
На страницу: Пред.  1, 2, 3, 4, 5 | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: И проблемы у меня решаются сами собой уже давно. Потому что если их не решать, они, видимо, обижаются и решаются сами. (Fry)

  » Два пути - количество или качество игр | страница 5
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18