powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / посоветуйте in-memory database engine
25 сообщений из 29, страница 1 из 2
посоветуйте in-memory database engine
    #34876274
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вобщем пишу десктопное приложение под j2se, хотелось бы использовать какую-нибудь in-memory бд. начал гуглить ничего путного кроме HSQLDB найти не могу.

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

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34876469
alx3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вместе с JDK6 идет JavaDB (Apache Derby).
Там возможностей чуть побольше (триггеры там на java и т.п.), только их все равно никто не использует.
А по скорости скорее всего одни и те же тормоза что и у HSQL
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34876538
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так дерби - обычная бд просто на яве. т.е. все равно база физически на винте располагается и операции с ней там же проходят.

а мне надо чтоб все это в памяти происходило. т.е. приложение запускается, создается база (в памяти на винт ниче не пишется), по ходу работы приложения, база заполняется рабочими данными, которыми я могу манипулировать обычным sql'ом, а при завершении приложения текущая база вместе с ним исчезает.
вот hsqldb так может, но я думаю что не только он а еще стопудово есть какие-то дб, с которыми так можно работать... :\

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34876542
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или дерби тоже может в памяти работать?..

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34876639
Vurn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока еще нет, в памяти не может.
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34877189
TiG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle Berkeley DB Product Family :
The Oracle Berkeley DB family of open source, embeddable databases provides developers with fast, reliable, local persistence with zero administration. Often deployed as "edge" databases, the Oracle Berkeley DB family provides very high performance, reliability, scalability, and availability for application use cases that do not require SQL.
Berkeley DB—A transactional storage engine for un-typed data in basic key/value data structures- NEW! Release 4.6 now available
Berkeley DB Java Edition—A pure Java version of Berkeley DB optimized for the Java environment
Berkeley DB XML—A native XML database with XQuery-based access to documents stored in containers and indexed based on their content
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34877201
TiG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя если вам нужен SQL (если он вам действительно нужен ;))), то Berkeley DB вам не подойдет
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34878209
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TiG спасибо. буду смотреть.

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

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

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

хотя конечно надо посмотреть и разобраться что оно может

кстати еще SQLite в памяти может работать, только я вот понять не могу как он дружит с явой? какой драйвер бы посоветовали? есть ли вобще jdbc-драйверы для SQLite - не всякие там врапперы для native lib_sqlite, а чтобы был полностью embedded и pure-java? чтобы сам читал и писал в файлы с базой а не делал это через sqlite-овскую native-библиотеку
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34878356
Фотография Человек-собака Шариков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если объём данных большой то зачем их обязательно держать в памяти. Они могут там просто не поместиться. Возьми обычный дерби из ждк и создавай временную базу в эмбедед режиме. От добра добра не ищут.
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34881261
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объем данных в среднем несколько мегабайт, максимум 15-20. т.е. такие объемы я вполне могу позволить себе хранить в памяти.

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

в общем на данный момент остановился на HSQLDB все-таки

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34881390
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frenzyобъем данных в среднем несколько мегабайт, максимум 15-20. т.е. такие объемы я вполне могу позволить себе хранить в памяти.

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

в общем на данный момент остановился на HSQLDB все-таки

_______________________________________
2pro4U
Как вариант можно разместить сами файлы БД на разделе размещенном в памяти. Тогда оно как-бы файлы и как бы транзакции... НО все только в памяти и быстрее )))))
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34886942
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не думаю, что JavaDB настолько тупа, что при каждом запросе будет теребить винт. Там 100% сделана оптимизация, как наверное в любой другой БД и она будет стараться разместить в памяти как можно больше данных, по возможности все. Нужно лишь провести тестирование и убедиться в этом.
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34886983
Фотография Vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ конечно не совсем в тему, но если вы задумались о быстродействии, то
смотрите в сторону создания своей собственной иерархии классов для хранения
данных.
Это путь наиболее предпочтителен для оптимизации по скорости и потреблению памяти.

Правда придется отказаться от SQL. Но при грамотной иерархии классов производительность
увеличится значительно.

Свои классы и контейнеры.

С уважением Vector.
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34887067
Фотография Человек-собака Шариков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если задумываться о быстродействии то нужно задуматься о быстродействии а не домысливать невесть что. Тупо провести тест.
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34887391
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vector..+1

может формулировка "иерархия классов" не совсем удачная, но идею поддерживаю. кучка HashMap'ов порвут субд при таком использовании
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34887430
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hibernate в руки!
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34887699
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJackHibernate в руки! вроде сказано - persistence не нужен
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34888321
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почти со всем сказанным согласен
вобще у меня получается примерно следующее

бд: sql, поддержка целостности, гибкость, масштабируемость и пр., но медленнее
руками: писать намного больше, причем придется дописывать различные фичи, которые сами собой получились бы, если с бд. но быстрее (и то если "грамотно" написать).

вот например, нужен скриптовый язык - так есть sql, можно просто позволить юзеру помимо всего прочего выполнять sql-запросы, и убит большой и жирный заяц

вобщем все конечно же решили бы тесты (чем сейчас и занимаюсь) но объективных результатов можно добиться только если вначале реализовать оба подхода, а потом сравнить на практике - а такой возможности конечно же нету ((

хотя греет сердце то, что там еще помимо всего прочего на основании вагона данных будут строится 2д-чертежи (и 3d-wireframes), причем рисуется в реалтайме все и вот как раз рисовалка окажется более узким местом, чем операции с бд с памяти...

вобщем помучаюсь пока, потом поделюсь результатами

eJackHibernate в руки!
хоть убей не понимаю, чем мне может помочь hibernate (разве что еще понизить быстродействие) :\

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34888434
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нужны произвольные запросы то нужен sql.

хотя мне попадались две хреновины из разряда sql на javabeanах...

ну и как то странно что persistence откуда такая мегапрога берёт данные

Frenzy
хоть убей не понимаю, чем мне может помочь hibernate (разве что еще понизить быстродействие) :\+1
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34889145
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expp Vector..+1

может формулировка "иерархия классов" не совсем удачная, но идею поддерживаю. кучка HashMap'ов порвут субд при таком использовании
Ну-ну. Потом реализовывать хотя бы NL/HJ и иже с ними? Фтопку.
В таком аспекте я просто ненавижу Map'ы. кто будет заботиться о данных? памяти? накуа фсе это?
SQL рулит.
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34889161
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выскажу свежую идею. Вместо SQL вашим суперпродвинутым пользователям дать доступ к XPath, выражения которого вполне можно "вычислять" на произвольной иерархии классов.

А в памяти базу запускают только когда нужно обрабатывать табличные данные локально, а отнудь не из-за возможности использовать SQL.
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34889181
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm
Ну-ну. Потом реализовывать хотя бы NL/HJ и иже с ними? Фтопку.
В таком аспекте я просто ненавижу Map'ы. кто будет заботиться о данных? памяти? накуа фсе это?
SQL рулит.
Он рулит, но только не тогда, когда нужно действительно высокое быстродействие. HashMap'ы таки порвут в клочья любой SQL-движок (с теми же фичами вроде параллельного доступа к данным, транзакционности и т.д.).
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34889231
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
" Выскажу свежую идею. Вместо SQL вашим суперпродвинутым пользователям дать доступ к XPath, выражения которого вполне можно "вычислять" на произвольной иерархии классов. "

а юзер должен не только получать данные эскьюэль, а еще и изменять/добавлять их, тут уже xpath'ом просто так не отделаешься, надо будет много писать. а насчет суперпродвинутости - так если юзер захочет расширить функциональность, то требование "знание SQL для написание своих скриптов" по-моему нисколько не завышено.. тем более что он то и разрабатывался как мегопростой язык в котором сможет разобраться любой юзер...

" А в памяти базу запускают только когда нужно обрабатывать табличные данные локально, а отнудь не из-за возможности использовать SQL. "

я же уже вроде подробно рассказал что мне нужно обрабатывать кучу табличных данных, естественно локально.., или ты что-то другое имеешь в виду? кстати есть ли опыт использования таких бд? интересует вопрос насколько отличается произодительность (хотя бы очень приблизительно) ин-мемори бд от производительности модели на классах и векторах
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34889248
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам in-memory database не использовал, но, ИМХО, очевидно, что специализированная структура данных будет эффективней, хотя бы потому что вы сможете реализовать более тонко-гранулированную обработку транзакций (т.е. синхронизацию доступа к данным) и опять же избежите необходимости парсить и как-то обрабатывать данные.

Тогда еще вариант - подумать над объектными базами данных. При грамотном применении они могут быть эффективней реляционных и опять же язык запросов есть.

Под локальной обработкой я имел ввиду что-нибудь навроде скопировать данные из удаленной БД и поработать локально, отключившись от удаленной БД, потом залить изменения в удаленную БД. Т.е. ситуация, когда просто часть БД реплицируется между рабочей станцией/ноутбуком и сервером.
...
Рейтинг: 0 / 0
посоветуйте in-memory database engine
    #34889437
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог Timm
Ну-ну. Потом реализовывать хотя бы NL/HJ и иже с ними? Фтопку.
В таком аспекте я просто ненавижу Map'ы. кто будет заботиться о данных? памяти? накуа фсе это?
SQL рулит.
Он рулит, но только не тогда, когда нужно действительно высокое быстродействие. HashMap'ы таки порвут в клочья любой SQL-движок (с теми же фичами вроде параллельного доступа к данным, транзакционности и т.д.).
спасибо, паржал.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / посоветуйте in-memory database engine
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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