Чем больше элементов повторяются, тем меньше уникальных элементов в строке
- вот это утверждение неверно. Я могу составить строку, которая содержит в себе весь алфавит, а потом повторы одного символа или чередование двух символов. Ваш алгоритм их не отличит
Илья Т., на этом разделе вы создадите например ext4
при первой же серьезной заварухе с соединением, она уйдет в ro, а база поломается. Это еще хуже, чем sshfs
Илья Т., а сверху на него что повесите? ФС понадобится. СУБД на кластерные ФС не кладут по причине лютых тормозов последних под таким профилем нагрузки.
Удел кластерных ФС - обслуживать сверхдремучее легаси, которое невозможно переписать на S3.
Формально, мы с вами столкнулись с проблемой молотка - вы поставили вопрос, не рассказав всю задачу, и отсюда покатилось.
В данном случае, стоит вовсе выкинуть sqlite из уравнения. Есть много способов реплицировать статику и конфиги в пуле серверов - тот же etcd, например
Hemul GM, ой, я таких, извините, "козлов" от SMB насмотрелся даже в тепличных условиях 10 гигабит в одном свиче, что единственный отзыв о данном протоколе - глаза б мои этот костылятник не видели. И рассыпанные базы (кто тут Odin's Ass нахваливал), и некогерентные кэши (файл на машине A есть, на машине B - нету) и просто "указанный ресурс более недоступен", когда с соседней машины все открывается.
По сети хорошо отдавать блочное устройство, СУБД или KV, в том числе и S3. А файловые системы пусть себе сидят локально, уж больно много в них завязано на то, что физическое хранилище, оно вот тут, рядом.
Hemul GM, я уже написал выше, что это работает только на очень ограниченном количестве фс. Не все сетевые ФС поддерживают когерентность кэшей и блокировки, которые нужны для того, чтобы это работало.
Более того, при разрыве соединения, база скорее всего превратится в фарш (что у автора и происходит).
Илья Т., Проблема нестабильного доступа к хранилищу данных решается на уровне приложения, а не попыткой нагородить костыли вокруг файловой системы и sqlite. Если в базе хоть сколько ценные данные, покажите этот тред человеку, который вас нанял со стороны бизнеса.
Чтобы сделали вывод о вашей профпригодности.
Вашим фантазиям о восстановлении кэшей после сбоя примерно соответствует cephfs. Которая сама по себе - огромный монстр для хранения терабайт данных в распределенном кластере.
Но да, она замораживает IO, когда сеть отваливается, и начинает его с того же места когда сеть появляется.
А самое забавное, что внутри у нее все тот же механизм с WAL, эпохами и транзакциями, которые вам какбы не нужны.
ComodoHacker, О да, особенно когда их больше 5-8 человек. Или когда сеть плохая, и база бьется. Миллионы здесь в другом - в заработках нанимателей мальчиков по вызову, которые чинят битые индексы.
Илья Т., я написал, что даже с одним клиентом есть проблемы. Дальше ваш же собственный пассаж про навык читать и комментировать.
2. Эта изоляция работает в пределах одного сервера, на файловой системе, которая полностью совместима с POSIX. Это может быть SMB, CephFS, но никак не sshfs.
Илья Т., потому что ваша база повреждается из-за того, что к ней происходит конкурентный доступ, а теневых страниц или WAL в ней нет. Я вам экзамен сдавать не собираюсь - если вам не нравится мой ответ, вам тут SMB советуют, что является такой же глупостью.
Вам нужен либо сервер сетевой БД, либо поставить перед БД какой-то свой интерфейс. Но - сюрприз - вам в этом интерфейсе все равно придется реализовывать конкуретный доступ.
Более того, транзакции нужны даже если клиент один. Рассмотрите ситуацию, когда клиент писал писал и отвалился. Что делать с его данными? На какой момент откатывать. Ой, я знаю ответ, это же транзакция!
Ни один вменяемый DBA не будет класть базу данных поверх сетевой файловой системы. Это рано или поздно обернется или тормозами, или наглухо побитой базой.
Илья Т., только все 4 пункта из комплекта позволяют реализовать хранилище данных с полной консистентностью и конкуретным доступом. Если вам не нравится, что я пользуюсь терминами из профессиональной среды - я не удивлен, вы глубоко не компетентны, вот и терминов боитесь.
Непонятно, что нужно сделать.
-нужно что-то сделать с телефоном, чтобы он начал принимать большее напряжение
-нужно что-то сделать с зарядником, чтобы он начал отдавать большее напряжение