|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
Всем привет. {
... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 10:45 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
PPA, Э, любая БД, json хранить в блобах, блобы упаковывать (lz, например) на уровне сервера приложений. Куда уж оптимальнее ) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 12:59 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
на mongodb посмотри ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 20:25 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
scfна mongodb посмотри Много слышал про нее, но никогда не работал. а она умеет сжатие прозрачное делать как levelDB? также у меня пока 32 битный выделенный сервер. читал что есть ограничение на размер базы в этом случае - 2г т.к. используется memory-mapped Если хорошо в ней разбираетесь подскажите на примере как в ней реализуется операция 1. запросить json по ключу 2. положить назад тот-же json поправив атрибуты (в моем случае это инкремент счетчика и коррекция временной метки) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 21:20 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
scfна mongodb посмотриДля хранения 9 гиг данных? Жестоко. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 23:24 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
skyANAscfна mongodb посмотриДля хранения 9 гиг данных? Жестоко. Я вот вообще не могу понять, а в чем проблема-то. С задачей справиться любая БД начиная с MySQL или Firebird ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 23:39 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
DPH3skyANAпропущено... Для хранения 9 гиг данных? Жестоко. Я вот вообще не могу понять, а в чем проблема-то. С задачей справиться любая БД начиная с MySQL или Firebird Проблема у меня с хранением. Размер данных будет расти и как - я не могу оценить. у меня сервер мелкий http на С++ под Linux для хранилища использую sqlite, но он не всегда справляется. я перебрал разные VPS-ки нагрузку тянет только digitalocean c SSD винтами. но база сильно пухнет а в SSD диски дорогие - я и хотел унести львиную долю контента в noSQL также она пользователям обычно не требуется - можно и тормознее отдавать. Для этого купил выделенный сервер у kimsufi KS-2 Atom™ N2800 2c / 4t 1.86 GHz+ 4 GB 1 TB думал он потянет все как есть в sqlite - но нет. полную нагрузку он не тянет и начинает тупить база отдавая ответы через 50-100 мс (digital ocean - 1-2ms) вот я пришел в noSQL форум :) т.к. у меня задача - простая хранилка key-value ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2014, 07:09 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
PPA, Посмотри на GlobalsDB Самая "простая хранилка key-value". Насчет скорости должна потянуть, насчет размера БД - посмотри ограничения. На несколько серверов она не растягивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2014, 12:16 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
PPADPH3пропущено... Я вот вообще не могу понять, а в чем проблема-то. С задачей справиться любая БД начиная с MySQL или Firebird Проблема у меня с хранением. Размер данных будет расти и как - я не могу оценить. у меня сервер мелкий http на С++ под Linux для хранилища использую sqlite, но он не всегда справляется. я перебрал разные VPS-ки нагрузку тянет только digitalocean c SSD винтами. но база сильно пухнет а в SSD диски дорогие - я и хотел унести львиную долю контента в noSQL также она пользователям обычно не требуется - можно и тормознее отдавать. Для этого купил выделенный сервер у kimsufi KS-2 Atom™ N2800 2c / 4t 1.86 GHz+ 4 GB 1 TB думал он потянет все как есть в sqlite - но нет. полную нагрузку он не тянет и начинает тупить база отдавая ответы через 50-100 мс (digital ocean - 1-2ms) вот я пришел в noSQL форум :) т.к. у меня задача - простая хранилка key-value Брр, тогда давай подробнее. У тебя до 30 запросов на данные. Каждый запрос на одну запись или на несколько? Сколько всего записей выбирается в секунду? Сколько физически происходит запросов к диску, сколько seek-ов? Судя по тому, что ты говоришь - проблема или в ужасном поведении sqllite, которая делает слишком много физических чтений или в странных VPSках, которые на самом деле, например, просто виртуалки с удаленными и перенагруженными дисками. В общем, сначала надо разобраться, а в чем проблема - а потом уже думать про noSQL (которые тут нафиг не сдались). У тебя локально все работает с нужной производительностью? А если вместо sqlite поставить хотя бы mysql? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2014, 14:47 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
PPAРазмер данных будет расти и как - я не могу оценить. Размер данных будет иметь значение ближе к TB ) Ну, конечно, если не использовать EAV не по делу ) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2014, 14:48 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
DPH3, У меня sqlite и сейчас работает терпимо - я нашел VPS на SSD в Нидерландах она тянет исходя из этого думаю, что проблема в медленных винтах. но у меня сервер 30Gb всего и скоро закончится - нужно повышать тариф. юзера шлют запросы пачками по мере "листания" списка файлов в программе. тут я описывал как работает обмен в начале разработки этой всей штуки http://www.flylinkdc.ru/2013/01/blog-post.html Каждый юзер в нормальном режиме шлет от 5 до 40 ID-шек в запросе назад возвращается минимальная медиа-информация по этим ID (качество звука - видео и разрешение) sqlite делает выборку одну выборку из простой плоской таблицы (рис 1) по этому массиву ID-шек потом делает апдейт по нему-же увеличивая счетчики и временные метки. если бы sqlite умел returning как oracle я бы все в один апдейт засунул :) пачку в 10 записей он отрабатывает ~ за 2-10 мсек (наверно в буфера попадает - я для них выделил почти всю память сервера) вот его нагрузка кстати http://146.185.183.102/munin/localdomain/localhost.localdomain/index.html про seek дисков незнаю - не умею их смотреть :( Выборка расширенной части атрибутов (которые хранятся в EAV) вообще делается очень редко (всего несколько раз в день) к ней обращаются уже по правой кнопке на конкретном файле т.е. получается слишком жирно для этого держать эти данные на SSD и эта почти-мертвая таблица жрет 8 гиг - а выкинуть жалко пока делаю так, что основная таблица остается в sqlite в ней я могу быстро делать выборки и делать апдейты а дочерняя расширенная информация выносится в levelDB с прозрачным сжатием это даст время протянуть на SSD еще некоторое время :) на levelDB я уже мигрировал в клиентской части получается быстрее sqlite на 30% http://www.flylinkdc.ru/2013/07/flylinkdc-google-leveldb.html mysql не пробовал - не уверен что он будет быстрее sqlite а какой от него будет бонус? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2014, 16:49 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
PPA, Код: sql 1. 2.
Можно будет обрабатывать запросы от пользователей параллельно. Сейчас, похоже, они у Вас обрабатываются последовательно, т.к. и SQLite и levelDB (по крайней мере вторая) •Only a single process (possibly multi-threaded) can access a particular database at a time. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 15:23 |
|
Выбор БД для оптимального хранения мусорки json-ов
|
|||
---|---|---|---|
#18+
PPA, если смотреть на статистику munin, то там первым идет IO read/write. Там хорошо видно, что в пике общее число запросов к диску доходит до 160. При этом, если посмотреть на http://habrahabr.ru/post/164325/, то видно, что обычный hdd держит около 150 IOPS. Т.е. задача - сильно уменьшить число обращений к диску (в первую очередь - операций позиционирования). Задачу можно решать разными способами: 1) кэшировать все, что можно (явным образом). 2) за один раз считывать больше полезной информации. Т.е. если запросы пользователей не совсем случайны, то можно попробовать организовать данные на диске так, что бы список из 30 хэшей лежал (скорее всего) на одной физической странице, а не на 30 разных. Организация таблицы по какому-то ключу точно реализована в MySQL, про sqlite не знаю. 3) увеличивать количество данных на странице. Например, упаковывать блобы с json 4) увеличить число жестких дисков. Если диска два или три в raid, то уже будет полегче. 5) для каких-то данных поставить ssd 6) выстроить очередь записей и чтений, так, что бы нагрузка была равномерной ) При пиках на чтения запись можно и отложить ) И т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 16:42 |
|
|
start [/forum/topic.php?fid=48&fpage=10&tid=1856873]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 243ms |
total: | 391ms |
0 / 0 |