powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite и Tokyo Cabinet
16 сообщений из 16, страница 1 из 1
SQLite и Tokyo Cabinet
    #36323981
Onsite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересуюсь встраиваемыми БД SQLite и Tokyo Cabinet.
И по ходу возникли вопросы:

1) Действительно ли при использовании этих решений, масштабирование бд не возможно ???

2) Так как Tokyo Cabinet не использует SQL, по факту она получается шустрее???
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36323986
Onsite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто Tokyo Cabinet на Винде не завести, да и Си я пока еще не знаю - трудно сравнивать. Хочется услышать мнение гуру.
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324362
Серж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Onsite1) Действительно ли при использовании этих решений, масштабирование бд не возможно ??? А что вы понимаете под масштабированием?

Onsite2) Так как Tokyo Cabinet не использует SQL, по факту она получается шустрее???
Onsiteтрудно сравнивать

Tokyo Cabinet (как подсказывает гугла) хранит пары "ключ-значение" и все. Нет таблиц, нет триггеров, нет встроенных функций. Ничего нет. Поэтому достать конкретное значение по ключу наверное будет быстрее чем в SQLite.
А вот сделать на Tokyo Cabinet аналог select ... from .... join ... join... group by.... having... ;) Т.е. совершено разного плана продукты.

Похожи между собой как яблоко и устрица. Оба годятся в пищу. Можно сравнивать вкусовые ощущения. Но вот сравнивать смысла особого нет.
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324398
ICP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ICP
Гость
Серж, Спасибо!

авторА что вы понимаете под масштабированием?


Масштабируемость - способность системы справляться с увеличивающимися нагрузками (обычно - путем наращивания аппаратных ресурсов) . Имеется ввиду горизонтальная/вертикальная масштабируемость.

Тоесть, возможно придется распределить СУБД по разным физических серверам. Как в этом случае поступать?
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324403
Onsite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТоесть, возможно придется распределить СУБД по разным физических серверам. Как в этом случае поступать?


Тоже интересен этот вопрос. Например, если веб-проект высоко-посещаем и уже один сервак не справляется, что делать?
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324495
Серж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ICPМасштабируемость - способность системы справляться с увеличивающимися нагрузками (обычно - путем наращивания аппаратных ресурсов)Вот сами и ответили, что база данных лишь часть системы и что важна роль "железа".

Это я к тому, что кажется есть непонимание масштабируемости и нет действительной необходимости в ней.
Посчитайте сколько у вас данных будет. Создайте тестовую бд таких размеров, выполните интересующие запросы и все будет понятно.

Onsiteи уже один сервак не справляется, что делать?В первую очередь ответить себе на вопрос "А почему он не справляется?".
Может у вас до сервака канал "узкий" и нестабильный. Может сам http-сервер так сконфигурирован. Может у вас и не сервер, а хостинг и вам дается не более 5% процессорного времени. Может алгоритмы реализованные на php/perl/etc написаны так, что они тормозят. Может бд спроектирована так, что она в принципе ни на каком железе быстро работать не будет.

Имхо, если задается вопрос о масштабируемости и sqlite, то либо неправильно выбрана субд, либо никаких масштабностей и не нужно.

Сама идея sqlite такова, что для нее достаточно любой персоналки.
http://www.sqlite.org/about.htmlThink of SQLite not as a replacement for Oracle but as a replacement for fopen()

В тоже время MBG в соседней ветке говорит о работе гиговых баз.
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324515
Onsite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Серж ...

авторСама идея sqlite такова, что для нее достаточно любой персоналки.
http://www.sqlite.org/about.htmlThink of SQLite not as a replacement for Oracle but as a replacement for fopen()

Что-то совсем запутался. Читаю статьи на Хабре о создании высоко посещаемых сайтов. И большинство спецов, советуют использовать встраиваемые субд, как пример SQLite, Tokyo Cabinet, BerkeleyDB и т.д.

Сразу возникают вопросы:

1) Как такие бд, без сетевого интерефеса обеспечивают одновременный доступ нескольких процессов??? Блокировка таблиц, по идее сильно же понизит скорость записи.
В случае TokyoСabinet вроде все ясно, к ней прилагается сетевой интерфейс TokyoTyrant. А с остальными субд???

2) Как раскидывают бд на несколько серверов, с целью увлечения скорости доступа к данным ??? Ведь тот же контакт из-за огромного количества запросов, и солидной бд - врядли потянет 1 сервер.
Погуглил про Tokyo Cabinet, пишут что она как раз для большого объема данных - сотни гигабайт. Но проекты, которые ее используют не нашел.

Подскажите, пожалуйста, где я ошибаюсь ????
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324582
Серж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OnsiteПодскажите, пожалуйста, где я ошибаюсь ????Мне кажется в подходе к решению задачи :)

Слишком глобальные теоретические вопросы. Ни я, ни кто другой не будет читать курс лекций по распределенным базам данным. Проще прочитать самому.

И абстрактные "большие" бд, "высоко-посещаемый" веб ресурс... Это пустые слова. Цифры - средний размер записи, кол-во записей, кол-во запросов в секунду и т.п. - это факты. Приведя их можно дать условные названия "большой", "посещаемый".

Высоко посещаемый - это, например, гугл. Большая бд - это например, Verizon, с более 5 TB.

Тут (сейчас поисковиком нашел) приводится описание высоко посещаемых и больших. Там и цифирьки приводятся. Сравните с вашими реальными или гипотетическими.
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324656
Onsite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Серж,

авторМне кажется в подходе к решению задачи :)

Наверно Вы правы. У меня задача не разработать проект, а академический интерес. Разобраться хочется как это все работает:)
Вот про масштабирование реляционных бд статьи есть, и понятно как это организовывается. А вот про TokyoCabinet упоминается, что масштабирование возможно. Но как этот вопрос решается в субд такого типа, не понятно. Это задача самой БД организовать хранилище на нескольких серверах (нужно больше, просто подключаешь еще сервак), или головная боль программистов раскидать информацию по узлам (серверам)???
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324663
Onsite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Onsite,

Вот тут , автор пытается рассказать про + хранилища key-value.
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324746
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Серж
В тоже время MBG в соседней ветке говорит о работе гиговых баз.

Сколько-то лет назад мы делали систему анализа, в которой объем данных составляет десятки гигабайт. Притом одна выборка "поднимает" до 10-ти гигабайт исходных данных. Но пользователей мало, так что один запрос может выполняться минуту-две. Сначала использовали постгрес, но он не может обрабатывать выборки, многократно превышающие доступный объем ОЗУ, так что перешли на эскулайт; в качестве бонуса получили систему, не требующую никакого обслуживания (ОС debian etch). Даже не помню, какая там версия SQLite стоит, год или два не обновляли за ненадобностью, хотя известно, что новые версии в разы быстрее.

Лучше всего смотреть тесты. Вот, например, сравнение постгреса с эскулайт:
Тестирование SQLite 3.6.17-mobigroup.2 на больших таблицах

Есть еще несколько тестов, которые стоило бы опубликовать, но очень уж мне лениво повторять это в постгресе (оно там жутко тормозит и на практике бесполезно), возможно, что просто приведу результаты для эскулайт и подскажу, как желающие могут это повторить в постгресе.

Что касается размера эскулайтовских баз, лично я тестировал _таблицы_ размером до 100 Гб (100 миллионов записей по 1 Кб каждая). На практике же использую базы не более нескольких гигабайт размером - для предотвращения блокировок лучше создать сто баз по 1 Гб, нежели одну базу на 100 Гб.

На сервере с коре квадро процессором в секунду возможно выполнение многих тысяч подключений к БД с десятками несложных запросов в каждом подключении. И вряд ли стоит думать о масштабировании, поскольку такой производительности с лихвой хватает для обеспечения работы тысяч одновременных сессий.
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36324827
Onsite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MBG, Спасибо за инфу. Ценно!!!

авторНа сервере с коре квадро процессором в секунду возможно выполнение многих тысяч подключений к БД с десятками несложных запросов в каждом подключении. И вряд ли стоит думать о масштабировании, поскольку такой производительности с лихвой хватает для обеспечения работы тысяч одновременных сессий.


Мне просто для себя интересно, масштабирование возможно ли на встраиваемых БД и как оно осуществляется. )
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36325096
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OnsiteМне просто для себя интересно, масштабирование возможно ли на встраиваемых БД и как оно осуществляется. )
Если увеличить мощность железяки, поставить на ОС с более эффективной файловой
системой, и с С рантаймом с более эффективными процедурами, апгрейдить на ту или
иную версию SQLite, то можно увеличить производительность.

Увеличение кол-ва потоков, каждый использующий соединение с одной и той же БД и
пишущий в нее с увеличением кол-ва процессоров, наврядли даст линейный рост
производительности.

Короче, надо смотреть на задачу и думать как подвести масштабируемость всей системы,
а не только SQLite, под эту задачу ... Примерно так ...
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36325858
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
OnsiteМне просто для себя интересно, масштабирование возможно ли на встраиваемых БД и как оно осуществляется. )

Зависит от типа нагрузки. Если в основном происходят операции чтения, то масштабируется увеличением кол-ва процессоров и т.п. Можно и реплицировать базу на другой хост средствами файловых систем. С записью сложнее. Если операции записи допускают буфферизацию, например, коллекторы данных, то задача решается легко - настройкой интервала синхронизации баз коллекторов с основной. Когда же программная буфферизация невозможна, на помощь придут аппаратные рэйд-массивы со встроенным буфером и батарейкой, безопасно буферизующие операции доступа к БД.

Есть еще расширение для SQLite, выполняющее операции модификации БД в фоновом потоке, но я сам не пробовал. Судя по багтрекеру, возможные ошибки в этом модуле уже нашли и исправили, так что можно пользоваться. См. расширение async в апстриме. Также можно работать в режиме shared cache, но тут есть риск повредить базу при ошибках в работе с потоками приложения.
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36326997
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Вот выложил результаты тестов, исходя из которых я принимаю решение о разделении баз данных на части.
Degradation of indexing speed

В зависимости от доступной памяти на сервере можно получить критический размер базы, когда индексы начинают сильно "тормозить". Для 32-бит ОС и композитных индексов разумным пределом будут таблицы в 4 Гб. Полагая срок хранения данных 3 года, dataset может содержать 36 баз размером 144 Гб в сумме - при условии, что каждая БД содержит одну большую таблицу. Если этого окажется мало, можно разделить данные по неделям, что позволит управлять набором данных объемом 576 Гб. Если разделить по дням, то и 4 Тб будут обрабатываться эффективно. Разделенные таблицы можно хранить в одной БД или в разных по потребности.

Замечу, что работа с большими индексами и в других СУБД может требовать много времени, так что выбранный мною предел в 5000 секунд может быть увеличен в десятки раз, что позволит работать с огромными базами, но модификация будет выполняться в фоновом режиме. Например, если рассмотренный выше dataset разделять по часам, а по истечению суток в фоновом режиме объединять базы за каждые 24 часа в одну за сутки, можно будет работать с набором данных в десятки терабайт размером. При таких масштабах может оказаться необходимым разделить базы по хостам, благо для выборок эскулайт позволяет подключать (командой attach) удаленные базы (примонтировав удаленную ФС).
...
Рейтинг: 0 / 0
SQLite и Tokyo Cabinet
    #36327259
Onsite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MBG, Dmitry Arefiev

Большое спасибо!!!!

Теперь разобрался, куда и как копать))
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite и Tokyo Cabinet
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]