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

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

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

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

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

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
17.10.2007, 23:32:23
    #34876639
Vurn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
посоветуйте in-memory database engine
Пока еще нет, в памяти не может.
...
Рейтинг: 0 / 0
18.10.2007, 10:59:48
    #34877189
TiG
TiG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
посоветуйте in-memory database engine
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
18.10.2007, 11:02:54
    #34877201
TiG
TiG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
посоветуйте in-memory database engine
хотя если вам нужен SQL (если он вам действительно нужен ;))), то Berkeley DB вам не подойдет
...
Рейтинг: 0 / 0
18.10.2007, 14:50:15
    #34878209
Frenzy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
посоветуйте in-memory database engine
TiG спасибо. буду смотреть.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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