powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Быстрый поиск инфы - БД развернутая в памяти ?
25 сообщений из 28, страница 1 из 2
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377606
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть необходимость хранения информации с максимально быстрым поиском в формате:
ключ-значение.
Ключ - строка
значение - объект.

Думаю, что максимально быстрый поиск обеспечит БД развернутая в памяти, но нужно чтобы в случае выключения компа - инфа сохранялась на диске и при включении опять разворачивалась в ОЗУ для быстрого доступа.

Посоветуйте технологию, с помощью которой можно реализовать такие требования?
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377657
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377693
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, тут много нюансов:
1. Каков объем базы?
2. Поддержка key-value является достаточным условием или для остальных задач нужна честная RDBMS?
3. Транзакции, ACID?
4. Сколько денег готовы отдать за лицензии на софт?
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377839
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirимхо, тут много нюансов:
1. Каков объем базы?
2. Поддержка key-value является достаточным условием или для остальных задач нужна честная RDBMS?
3. Транзакции, ACID?
4. Сколько денег готовы отдать за лицензии на софт?
1. Сейчас объем небольшой, около 2-3 тыс. ключей, но хотелось бы отработать технологию и для больших объемов.
2. Лучше бы все таки честная БД, чтобы потом ее можно было юзать и для больших структур, чем ключ-значения,
хотя интересны и технологии, чисто для ключ-значения, чтобы понимать куда копать в случае если задача минимальна.
3. Это уже для БД.
4. Лучше Open Source.

Вообще интересно понимание технологий по 2-м направлениям:
- система, позволяющая развертывать в памяти и сохранять на диск простые структуры, типа key-value
- полноценные реляционные СУБД, позволяющие по требованию, 1-2 таблицы разворачивать в памяти по необходимости.

Сейчас вот смотрю memcache - для первого случая, может для java есть что-то более интересней?
Для второго - нашел инфу в инете по СУБД H2 и HSQLDB, пытаюсь понять могут ли они удовлетворить.

Прошу совета у опытных разработчиков.
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377841
alex2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usmanalex2808,

http://stackoverflow.com/a/15269432
Спасибо, сейчас поищу подробнее инфу по MapDB.
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377842
DEVcoach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно, задача поставлено в слишком общем виде, никаких конкретных рекомендаций давать категорически нельзя.

В качестве отправной точки рекомендую вам посмотреть на следующие вещи:
1) Банальное кэширование. Классический представитель: memcached. Вытащили что-то из базы, запихнули в кэш. Второй раз в базу уже не лезете, а берете значение из кэша.
2) Профессиональные data-grid решения: Gigaspaces XAP, Terracota, GridGain, GemFire ... тысячи их. Там у вас полноценные транзакционные кэши, кластеризация, партишнинг, фаиловер, и т.д. и т.п. Некоторые из этих решений даже JDBC поддерживают Но для того, что бы их использовать, готовьте десятки и сотни тысяч долларов.
3) In-memory базы данных. Типичный представитель - MongoDB, данные мапятся в память, в бэкграунде синхронизирутся с диском.

От этого и отталкивайтесь в своих поисках.
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377845
DEVcoach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex2808Для второго - нашел инфу в инете по СУБД H2 и HSQLDB, пытаюсь понять могут ли они удовлетворить.Посмотрите обязательно но Mongo.
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377891
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808- система, позволяющая развертывать в памяти и сохранять на диск простые структуры, типа key-value
Если обязательно в памяти, то из key-value это memcache или redis, если за денежку, то Oracle Coherence. Но думаю вам подойдут любые key-value хранилища, они хоть и хранят все на диске, но при этом весьма активно кэшируют в память, так что производительность практически не отличима, так что, как выше советовали обратите внимание на MongoDB.

alex2808полноценные реляционные СУБД, позволяющие по требованию, 1-2 таблицы разворачивать в памяти по необходимости.
2-3 тыс это очень маленький объем, думаю, что даже H2 его спокойно прожует. Если интересно, то из взрослых решений можно глянуть Oracle Times Ten. Если нужно, что то по середине, чтобы по серьезней H2, но Open Source, то посмотрите на VoltDB.

Имхо, не нужно вестись на тренды и гнаться за всем набором buzzwords "in-memory", "key-value" и т.д., для 2-3 тыс. объектов берете обычную RDBMS, например, PostgreSQL, железку с побольше ОЗУ и при правильных настройках все будет максимально быстро искаться, а данные будут в ОЗУ кэше.
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377893
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DEVcoach3) In-memory базы данных. Типичный представитель - MongoDB, данные мапятся в память, в бэкграунде синхронизирутся с диском.
Не обманывайте людей, Mongo не in-memory, хотя и активно использует кэширование в памяти. Если интересно, то вот тикет на реализацию поддержки in-memory режима в Mongo https://jira.mongodb.org/browse/SERVER-1153:
status: Open Open
Resolution: Unresolved
Fix Version/s:planned but not scheduled
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377916
DEVcoach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
just_vladimir ,
Да, я не корректный термин использовал. In-memory - это чисто память, не персистится. Mongo, разумеется, персистится. Я имел ввиду, что штатным режимом работы Монги является ситуация, когда все данные загружены в память, и ничего не свопится.
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377958
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DEVcoach In-memory - это чисто память, не персистится.
И снова мимо...
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38377968
DEVcoach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
just_vladimirDEVcoach In-memory - это чисто память, не персистится.
И снова мимо...Ну тогда ждем ваше каноническое определение :)
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38378342
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DEVcoach,
на счет канонического не знаю, думаю достаточно того, которое в википедии:
wikipediaAn in-memory database is a database management system that primarily relies on main memory for computer data storage
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38379632
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DEVcoachjust_vladimirпропущено...

И снова мимо...Ну тогда ждем ваше каноническое определение :)

in-memory - значит все операции чтения данных идут в памяти, без обращения к диску.

Операции изменения данных могут логироваться. В некоторые моменты (простой, остановка БД) лог превращается в снимок БД. Если остановка была аварийной- при старте БД собирается по прошлому снимку и логам. В принципе могут быть "чисто im-memory" БД, которая на диск ничего не пишет, но они не проходят по начальным требованиям.

Что выбирать- H2, TimesTen или ещё что-то - вопрос запросов и денег.
У TimesTen, например, есть крутая фишка- БД доступна из любого приложения- можно зайти родным клиентом и посмотреть, что там в кишках и твоего приложения творится. Очень полезно для поиска ошибок при работу, к примеру. Но стоит она очень неслабо.
Но любая реляционная БД будет лишней. А какие есть in-memory key-value БД я не помню...

PS: При запросах топикстартера я б на JCS ещё посмотрел бы ;)
Хотя не помню, на диск всё пишется, или только лишние данные...
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38379695
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808,

А ещё есть Hazelcast можно его для надежности с Mongo соеденить
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38379972
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808,

BDB уже предлагали?
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38379997
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808,

Вот еще, но круче: http://commons.apache.org/proper/commons-jcs/
http://www.ibm.com/developerworks/ru/library/j-jcs/ Зона на диске

Зона кэширования этого типа представляет собой зону для хранения кэшированных данных на файловом диске Web-сервера. Для повышения производительности система JCS хранит ключи кэшированных данных в оперативной памяти, а сами кэшированные данные хранит на указанном файловом диске. Если в типичной конфигурации JCS (в которой в первую очередь используется зона в оперативной памяти) какие-либо данные не могут быть размещены в зоне памяти, то они записываются в дисковую зону.
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38380031
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergealex2808,

BDB уже предлагали?Она платная:
http://www.oracle.com/technetwork/database/berkeleydb/downloads/licensing-098979.html ...the complete source code for your application must be available and freely redistributable under reasonable conditions. If you do not want to release the source code for your application, you may purchase a license from Oracle.
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38385013
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужна экстремальная производительность - то однозначно TimesTen. Все остальные скорее всего будут проигрывать в разы.
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38508600
Фотография VoltDB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужна любая помощь с VoltDB, мы с удовольствием Вам поможем.

С уважением,

Команда VoltDB
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38508864
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем то что нужно, авось пригодится http://www.project-voldemort.com/voldemort/
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38509265
Kenny Fartman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808- полноценные реляционные СУБД, позволяющие по требованию, 1-2 таблицы разворачивать в памяти по необходимости.
Oracle, а для разворачивания таблиц в памяти у нее вроде есть дополнение TimesTen
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38509266
Kenny Fartman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex2808Есть необходимость хранения информации с максимально быстрым поиском в формате:
ключ-значение.
Ключ - строка
значение - объект.

Думаю, что максимально быстрый поиск обеспечит БД развернутая в памяти, но нужно чтобы в случае выключения компа - инфа сохранялась на диске и при включении опять разворачивалась в ОЗУ для быстрого доступа.

Посоветуйте технологию, с помощью которой можно реализовать такие требования?А почему не посмотреть чисто под Java созданные объектные БД типа db4o ? может как раз под ваши объемы 2000-3000 она лучше подойдет чем разные Mongo и прочие sqlite?
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38510494
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redis
Sphinx - поддерживает live index
...
Рейтинг: 0 / 0
Быстрый поиск инфы - БД развернутая в памяти ?
    #38510502
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-Redis
Sphinx - поддерживает live index

Пардон, забыл обоснования:
- Redis
- Sphinx вообще он для полнотекстового поиска создан был, однако в последних версиях есть "живой" индекс (модификация "на лету") + поиск по атрибутам, что дает возможность его использовать для простых табличных выборок под высокой нагрузкой.

Эти сервера очень производительные.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Быстрый поиск инфы - БД развернутая в памяти ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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