- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет!
Я являюсь программистом на одном игровом проекте и так сложилось, что небольшая часть пользовательских данных у нас по прежнему храниться в файлах. То есть, условно есть каталог /users, в котором при регистрации нового пользователя создается каталог с его именем (/users/bigton). Проект существует уже почти 4 года и раз в год мы сталкивались с одной и той же проблемой: при создании каталога пользователя возникала ошибка too many links, то есть количество каталогов в каталоге /users достигало 32000 и новые каталоги не создавались. Обычно проблема решалась путем удаления каталогов неактивных пользователей и "свободного места" хватало еще на год, но не на этот раз...
На этот раз проблема требовала другого решения, поиск подсказывал, что самым рациональным решением являлась бы реорганизация структуры каталогов в папке /users: /users/bigton → /users/bi/bigton. Но, к сожалению, такое такое решение потребовало бы внесения значительных изменений в программный код, а так как в ближайшем будущем мы планируем вообще отказаться от файлов (работа в этом направление ведется уже полгода) тратить время на решение этой задачи не хочется совсем.
Решение было найдено и ввиду того, что поиск в интернете готового решения мне не подсказал, публикую свое решение здесь, может быть кому ни будь пригодиться, услышать про недостатки этого решения тоже хотелось бы.
Было
Стало
В итоге:
- рациональная структура каталогов для новых пользователей (/users2/bi/bigtonnew);
- никаких значительных изменений в программный код (скрипты по прежнему читаю, пишут, проверяют на существование файлы в каталоге /users/bigtonnew/*);
- ограничение на 32000 каталогов в каталоге /users не актуально (задача решена).
Недостатки решения:
- использование символических ссылок незначительно замедляет процесс работы с файлами, так как "системе нужно проанализировать содержимое ссылки и установить связь с настоящим файлом";
- ограничение на максимальное количество ссылок в каталоге /users по прежнему остается, только это значение на порядки больше 32000 и зависит от используемой файловой системы.
а почему было нельзя /users смонтировать просто на ext4, где вроде нет такого ограничения? 😕
ext4 + 64 битная ось и никаких ограничений.