Перейти к содержимому
Local
pavlabor

Требуется эмулятор StarGazerа.

Рекомендованные сообщения

21 минуту назад, Prime сказал:

принципы ACID

Возможно я чего то не понимаю, но принцип ACID реализован по крайней мере в PostgreSQL давным давно на уровне БД.

Это автоматическое отслеживание целостности базы, авто индексы и т.д.

Но это никаким образом не гарантирует сто процентной защиты от работы многопользовательской среды.

Вот это

24 минуты назад, Prime сказал:

работать напрямую с сервером бд не очень хорошая практика.

удобней и правильней иметь какой-то API для работы с биллингом, популярней и гибче HTTP - для биллинга сложно придумать.

это дает возможность интеграции с огромным количеством других компонентов.

Гарантия что не будет работать.

API, HTTP отдельные процессы распределенные во времени и не блокированные в БД.

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

Механизм решения данной проблемы, блокировка записи на момент обработки, модель MVCC (Multiversion Concurrency Control, Многоверсионное управление конкурентным доступом).

Когда я писал свой биллинг в 2000-ных, не все было кучерявенько. Проконсультировавшись с програмерами которые писали учет для магазинов со ста тысячу транзакций в сутки, которые мне сказали "забей", я не стал заморачиваться.

И что то мне чуйка подсказывает что на текущий момент это не актуально - сдох попугай, купим другого.

Во первых, не вижу решения этой проблемы.

А если где то и глюконет, ну пофиксят челу оплату менеджеры.

 

По поводу проектирования структуры БД, это ответственная задача и некогда она не решалась с первого раза.

Но это и никогда не было проблемой.

Перелить базу на новый движок, это решаемо.

 

Основное в биллинге на мой взгляд это модульная обвязка, ubilling вылизанная система.

Хотелось бы поковыряться в базах данных olsasha, что там такое, что требует переписывать биллинг с нуля.

Если там добавлено пару полей, подпилен интерфейс модуля и выборки перестроены по другому, то это ревизия модуля а не всего биллинга.

 

Поэтому на мой взгляд стоит посмотреть что имеем, собрать докучи и подточить под текущие задачи и запускаться.

Параллельно вести ревизию как оно работает, проектировать новую базу, и строить параллельный стенд, от текущей работы, до импорта баз данных.

Дальше в одну прекрасную ночь все можно перелить в новый флакон.

 

Еще раз, со всего что я ставил за свою жизнь, ubilling не вызвал ни одной проблемы.

Вру, "мс" пересобрал.

 

 

29 минут назад, Prime сказал:

https://db-engines.com/en/system/Firebird;PostgreSQL

вот здесь можно сравнивать движки.

В 2000-ном, PostgreSQL уже дышал Oracl-у в спину.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

 

но принцип ACID реализован по крайней мере в PostgreSQL давным давно на уровне БД.

Это автоматическое отслеживание целостности базы, авто индексы и т.д.

 

 https://ru.wikipedia.org/wiki/ACID

конечно на уровне БД все реализовано, просто нужно правильно взаимодействовать с данными, вы используете транзакции в своем коде?

https://www.postgresql.org/docs/9.1/static/sql-set-transaction.html

https://en.wikipedia.org/wiki/Multiversion_concurrency_control


 

Цитата

 

Гарантия что не будет работать.

API, HTTP отдельные процессы распределенные во времени и не блокированные в БД.

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


 

Гарантия, что будет работать.

сходу 3 варианта решения: синхронизация api (топорно), select for update (row locking), оптимистик лок (версионирование)

Цитата

 

И что то мне чуйка подсказывает что на текущий момент это не актуально - сдох попугай, купим другого.

Во первых, не вижу решения этой проблемы.

А если где то и глюконет, ну пофиксят челу оплату менеджеры.

 

чуйка подводит, уже все знают об этих нюансах и пишут грамотно код.

Цитата

 

По поводу проектирования структуры БД, это ответственная задача и некогда она не решалась с первого раза.

Но это и никогда не было проблемой.

 

это всегда проблема, называется Домен. 

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

 

Цитата

Основное в биллинге на мой взгляд это модульная обвязка, ubilling вылизанная система.

в биллинге все основное.

я несколько лет работал в крупной компании, которая этим занимается.

отбило навсегда связываться с биллингами и процессингами 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Похожие публикации

    • Автор: ppv
      Підкажіть будь ласка яким чином генерується Платіжний ID, а це в мене в деяких абонентів 10 цифр а в деяких 9?
       
       
    • Автор: esystems
      Добрый день
       
      Подскажите пожалуйста, есть ли возможность в Ubilling. Чтоб абонент смог самостоятельно сменить mac адрес в личном кабинете,
      При конфиге что все абоненты привязаны к портами что не известный мак никаких сервисов не получит?
       
      Или для этого нужно писать отдельный модуль?
    • Автор: net-viking
      Привествую. Создав модуль для регистрации пользовалей, как открыть к нему доступ , чтобы внешнее приложение могло обращаться к нему (REST)? . Можете описать, как можно организовать ?  
    • Автор: ppv
      В 79 строці файлу https://github.com/nightflyza/Ubilling/blob/master/openpayz/frontend/ipayx/index.php
      79   $customerId = $transactionInfo->acc;
      Так не працює, але якщо acc замінити на order тоді все гуд.
×