Closed salemalem closed 3 years ago
Хэй, я заметил что у тебя есть репозиторий на русском языке про КиноПоиск и решил подкреить свои мысли на русском) Я сейчас делаю свой блог на Deno и Drash фрэймуорке. Хочу сохранять туториалы как key:value в json формате. Потому что я с ним очень хорошо знаком и удобней чем писать SQL команды. Увидел твой модуль и casualdb, вижу обе сохраняют в .json файл. Только в Casualdb написано для больших приложений не использовать. Что насчет aloedb? Могу ли я хранить миллион статьей с постоянной нагрузкой на чтение, писание? Могу ли я использовать для своего next-gen Amazon, Yandex, Google уровня приложение?
Знаю что может быть я перенагружаюсь мыслями но все равно хочу запланировать архитектуру.
Привет! AloeDB является встраиваемой базой данных, нацеленной в первую очередь на простоту и удобство использования. Если ты планируешь масштабировать своё приложение, то любая встраиваемая база данных будет плохим выбором. 🙂
По поводу производительности: AloeDB хранит копию всех документов в оперативной памяти. Это повышает скорость поиска, и занимает не так много памяти, как может показаться! (1 миллион небольших документов занимают ~40mb RAM)
При записи, AloeDB сериализует всё хранилище используя JSON.stringify. Это может сильно ударить по производительности, если у тебя хранится миллион документов! (На вскидку, около секунды на запись)
Нормальным объёмом для AloeDB можно считать ~1000 документов, в таком случае проблем точно не будет.
Думаю, на данный момент AloeDB будет производительнее аналогов, но она всё ещё embedded, так что не стоит пробовать заменить ей полноценные базы данных.
А какая база данных по твоему являеться лучшей для этой цели, по твоему мнению? key:value self hosted db обязательно
Как ты планируешь дальше развивать Алоэ в будующем?
А какая база данных по твоему являеться лучшей для этой цели, по твоему мнению? key:value self hosted db обязательно
Мне сложно сказать, какая лучше подойдёт для твоей цели, так как все self hosted базы примерно одинаково плохо масштабируются. Redis или MongoDB подойдут куда лучше. 😀
В теории, AloeDB можно использовать для высоко нагруженного блога, но не из коробки. Если писать оптимальные запросы, распределять нагрузку между несколькими серверами и кешировать результаты - тогда AloeDB может подойти. Всё зависит от архитектуры твоего приложения.
Как ты планируешь дальше развивать Алоэ в будующем?
Сейчас я подготавливаю версию 1.0, в которой будет сильный прирост производительности, а также будет добавлено несколько новых функций.
Я не планирую добавлять индексинг (На данный момент), или сильно перерабатывать архитектуру базы данных в угоду производительности. Сколько бы я не старался, всё будет упираться в производительность Deno, которая не позволит соревноваться с MongoDB и другими базами.
Надеюсь, такой ответ подойдёт 😁
Ну что же. Я добавил этот репозиторий на watch и надеюсь твои цели сбудутся. Пока буду пользоваться Алоэ. Удачи! Надеюсь тоже смогу сделать контрибушн чтобы сделать лучше!!! Cheers!
When I connect to db.json file, does it cache it in RAM? I am doing a blog project with Deno and Drash. Can I store millions of posts, perform millions of read, write requests? My blog is small now but once it will go big, I still want to use aloedb for its easy API. How it's different from https://github.com/campvanilla/casualdb/ If it's not scalable to the level of FAANG yet, how can you make it?
I just like the API of AloeDB and want to use this approach in my server. Please, hope you understand.