Страница 2 из 5

TPS база данных через облако

Добавлено: 22 Февраль 2021, 12:34
finsoftrz
В вебе работает иначе. Там каждый запрос на сервер отрабатывается отдельно, постоянное соединение не держится. Sqlite блокирует одновременный доступ только при операции записи, которых обычно не очень много и выполняются они доли секунды. А одновременно читать, когда никто не пишет, можно. То есть передача контента с сервера выполняется гораздо дольше, чем операция чтения и записи в sqlite файл.

TPS база данных через облако

Добавлено: 22 Февраль 2021, 17:33
kreator
Игорь Столяров писал(а): 22 Февраль 2021, 12:28
finsoftrz писал(а): 22 Февраль 2021, 12:01 В качестве базы данных можно использовать sqlite, работа будет похожа на работу с tps.
Ну не согласный я ! :) Всё-таки TPS заточен под многопользовательский доступ, а SQLite нет.
Даже если в одной программе открыть несколько окон со списком к одной таблице SQLite - уже проблемы. :(
Наверно имеется ввиду, что оба варианта не годятся для работы с большими массивами данных и количеством пользователей больше, чем несколько. Согласен, что очень похоже. :D

TPS база данных через облако

Добавлено: 22 Февраль 2021, 19:29
Игорь Столяров
kreator писал(а): 22 Февраль 2021, 17:33 оба варианта не годятся для работы с большими массивами данных
Безусловно под каждую задачу - свой инструмент ...
Но много ли реализовано на Clarion софта, в котором одновременно с БД работают более 20 пользователей ? ;)
Именно реально работают, создавая ощутимую нагрузку на SQL сервер, а не приконнектились ?

У нас есть инсталляции, которые работают в пике с 20-30 юзерами, но БД уже конечно Btrieve (Actian Database).

TPS база данных через облако

Добавлено: 22 Февраль 2021, 19:53
finsoftrz
20-30 конкурентных пользователей с tps на терминальном сервере вообще без проблем. Для себя я держу в уме до 50. Причем, на скромных "серверах" по нынешним меркам. Больше мы уже упремся в размер базы данных. Точнее, базу тоже можно по разному проектировать, но сложные проекты будет не очень удобно вести, если партицировать большие таблицы на несколько физических файлов. За мою практику только один клиент всплыл, где ограничения tps по размеру файлов базы данных сказались. Эта база сейчас на Btrieve (Actian Database), приложение тоже самое, что и для tps (без отдельной сборки). Общий размер базы без логов около 30ГБ. На tps в пределах 10ГБ, больше не бывало.

TPS база данных через облако

Добавлено: 22 Февраль 2021, 20:22
Игорь Столяров
У нас лет 10-12 назад была беда ... Сделали программу с хранением картинки товара в BLOB поле TPS.
Конечно прикрутили нормализацию, подрезку и конвертацию картинки в PNG перед сохранением ... всё по людски.
Но это не спасло. Юзеры как-то быстро насобачились забрасывать картинки через загрузку прайса из XLSX
и понеслись массовые вылеты БД по превышению 2 GByte. Пришлось всё это разгребать ... :)

TPS база данных через облако

Добавлено: 22 Февраль 2021, 20:45
finsoftrz
Зачем хранить картинки в blob при файловой базе? Достаточно каталога. А имена файлов, например, по коду или идентификатору записи, к которой она относится.

TPS база данных через облако

Добавлено: 22 Февраль 2021, 20:48
finsoftrz
Причем, можно так хранить и несколько связанных картинок. Например, у нас используют сканы сертификатов на товары, состоящие из нескольких частей. Имена файлов <код товара>_<номер>.jpg.

TPS база данных через облако

Добавлено: 22 Февраль 2021, 20:57
Игорь Столяров
Потому как хотелось, что бы всё было в одном месте (файле), типа целостность БД и т.д.
Кто там в этой папке картинок роется и что делает - одному Windows известно.
SQL ведь хранит BLOB внутри файла ? Вот и мы хранить хотели, но уже передумали. :)

TPS база данных через облако

Добавлено: 22 Февраль 2021, 21:10
finsoftrz
Доступ к каталогу можно ограничить правами. Можно и совсем запретить просмотр его содержимого, а доступ только из программы по известным именам файлов. Я так закрываю доступ к каталогу с базой данных. Еще лайхак, в каталоге базы, который закрыт от просмотра, можно сделать секретный подкаталог, известный программе. И физические файлы базы располагать в нем. Смысл в том, чтобы никто не полез напрямую в файл, узнав его название, в обход программы.

TPS база данных через облако

Добавлено: 23 Февраль 2021, 13:13
kreator
finsoftrz писал(а): 22 Февраль 2021, 19:53 20-30 конкурентных пользователей с tps на терминальном сервере вообще без проблем. Для себя я держу в уме до 50.
Через терминалку - это костыль. И всё время надо базу лечить, ключи восстанавливать. А так - максимум 5.
Игорь Столяров писал(а): 22 Февраль 2021, 19:29 Но много ли реализовано на Clarion софта, в котором одновременно с БД работают более 20 пользователей ?
У нас 200 одновременно (фактически полный рабочий день). И то только потому что лицензий купили столько. Реально до 500 догнать.

TPS база данных через облако

Добавлено: 23 Февраль 2021, 15:09
Игорь Столяров
kreator писал(а): 23 Февраль 2021, 13:13 Реально до 500 догнать.
Блин ! Второй раз за день почувствовал, что ни тем занимаюсь ... :shock:

TPS база данных через облако

Добавлено: 23 Февраль 2021, 15:58
finsoftrz
kreator писал(а): 23 Февраль 2021, 13:13
finsoftrz писал(а): 22 Февраль 2021, 19:53 20-30 конкурентных пользователей с tps на терминальном сервере вообще без проблем. Для себя я держу в уме до 50.
Через терминалку - это костыль. И всё время надо базу лечить, ключи восстанавливать. А так - максимум 5.
Игорь Столяров писал(а): 22 Февраль 2021, 19:29 Но много ли реализовано на Clarion софта, в котором одновременно с БД работают более 20 пользователей ?
У нас 200 одновременно (фактически полный рабочий день). И то только потому что лицензий купили столько. Реально до 500 догнать.
Ну, с такими взглядами и sql сервер ещё больший костыль, чем терминальный. Ничего на терминальном сервере с tps не ломается, не надо придумывать. Точнее, может сломаться, если вырубить питание сервера в неподходящий момент. Скуль в таком случае тоже поломается, а восстановить может оказаться гораздо сложнее по понятным причинам. У нас у клиентов с 10-30 конкурентными пользователями годами работает с нулевыми проблемами.

По количеству пользователей все зависит от функционала приложения и активности деятельности. У меня одно время в системе электронных заказов в вебе с sqlite работало порядка 300 пользователей. Это совсем ни о чем не говорит.

Реалии таковы, что на современной технической базе в подавляющем большинстве случаев данные можно хранить так, как считает для себя удобнее разработчик. Я помню, как когда-то в клалисте некоторые товарищи писали, ну нафига вам tps, приложение вырастет, придётся переписывать под sql. Практика показала, что это не так. Ещё Баррингтон обозначал, что tps для небольших баз данных, а для крупных btrieve. У меня одно и тоже приложение работает и с tps, и с btrieve. Без всяких отдельных сборок, перекомпиляций и т.п. При этом подходы и архитектура идентичны и не требуют компромиссов. А у btrieve ограничение только на одну таблицу 256гб. Точнее, сейчас уже 64тб, но напрямую из клариона через драйвер с такими таблицами работать не получится. Есть обходные пути, но это больше теоретический вопрос.

TPS база данных через облако

Добавлено: 23 Февраль 2021, 17:57
RaFaeL
Файлы tps это просто золотое дно. Если бы они не падали, мой доход был бы меньше )
И я сейчас не о своем продукте, который перевели на SQL еще 15 лет назад

TPS база данных через облако

Добавлено: 23 Февраль 2021, 18:12
Игорь Столяров
А мы встроили в программы операции восстановления TPS файлов и забыли про их проблемы ... ;)
(по сути - настраиваемый из командной строки запуск TpsFix.exe + Build())

TPS база данных через облако

Добавлено: 23 Февраль 2021, 18:40
kreator
RaFaeL писал(а): 23 Февраль 2021, 17:57 Файлы tps это просто золотое дно. Если бы они не падали, мой доход был бы меньше )
И я сейчас не о своем продукте, который перевели на SQL еще 15 лет назад
+100500.
Если только у одного человека нет проблем, то что-то тут не так. :mrgreen:
По поводу SQLite. Специфическое использование и конечно же не в сетевом варианте. Некоторые функции реализованы даже хуже, чем в tps.