|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Пишу тут кое-что, вот мучаюсь муками выбора нормальной k-v базы. Может быть есть у кого на примете сильный вариант? Что попробовал: - Kyoto Cabinet - отлично, но сетевой интерфейс - тормознутая фигня. - LevelDb - замечательно, но сетевой интерфейс есть только в Kyoto Tycoon, Riak, и первое и второе - не подходит - Voldemort медленный - Cassandra, Hypertable - мои любимые по всем статьям, но из пушки по воробьям, хочу именно быстрый k-v - Tarantool, Redis - данные надо хранить в памяти, мне это не подходит. Итого, что хотелось бы: 1) k-v, быстро, очень быстро, чтобы запись MAX до 100 мкс на нормальной машине, чтение тоже до 100мкс, и чем меньше, тем лучше 2) хороший, быстрый, приятный в использовании сетевой java интерфейс 3) в памяти хранятся только ключи 4) простая установка Коллеги, помогите пожалуйста, если кто в теме. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 13:52 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, А чем классика от орасла, я имею ввиду Беркли ДБ, не подошла? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 14:03 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейСПишу тут кое-что, вот мучаюсь муками выбора нормальной k-v базы. Может быть есть у кого на примете сильный вариант? Что попробовал: - Kyoto Cabinet - отлично, но сетевой интерфейс - тормознутая фигня. - LevelDb - замечательно, но сетевой интерфейс есть только в Kyoto Tycoon, Riak, и первое и второе - не подходит - Voldemort медленный - Cassandra, Hypertable - мои любимые по всем статьям, но из пушки по воробьям, хочу именно быстрый k-v - Tarantool, Redis - данные надо хранить в памяти, мне это не подходит. Итого, что хотелось бы: 1) k-v, быстро, очень быстро, чтобы запись MAX до 100 мкс на нормальной машине, чтение тоже до 100мкс, и чем меньше, тем лучше 2) хороший, быстрый, приятный в использовании сетевой java интерфейс 3) в памяти хранятся только ключи 4) простая установка Коллеги, помогите пожалуйста, если кто в теме. Спасибо. используй лучше нормальную базу. Все эти кейВалуе это ж для тех кто не смог выучить скл, тяжёлое наследие 70-х годов, назовём вещи своими именами. Возможно, если ты делаешь новый твиттер то можно но задуматься о нестандартном. Но у тебя вряд ли это нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 14:42 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
ShSergeАлексейС, А чем классика от орасла, я имею ввиду Беркли ДБ, не подошла? Проблема в том, что мне обязательно нужен сетевой интерфейс, а это всё-таки встраиваемое решение. 1024используй лучше нормальную базу. Все эти кейВалуе это ж для тех кто не смог выучить скл, тяжёлое наследие 70-х годов, назовём вещи своими именами. Возможно, если ты делаешь новый твиттер то можно но задуматься о нестандартном. Но у тебя вряд ли это нужно. )))) Нет, у k-v всё-таки есть применение, индекс, например, для тех же "нормальных баз") Вот и мне k-v нужен для индекса. SQL мне не нужен, мне вообще ничего от базы не нужно кроме сетевого интерфейса и k-v, где v - любая последовательность байтов. Походу придётся писать сетевой интерфейс вокруг какой-нибудь встраиваемой бд=( ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 15:14 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
А почему исключили mongodb? Долгая запись? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 17:04 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
LeonidvА почему исключили mongodb? Долгая запись? Да, к сожалению. Она, конечно, очень приятная в использовании, но не подходит. Очень много возможностей, они оттягивают на себя производительность так или иначе. Для текущих целей больше всего подходит cassandra, так как она очень быстрая, колонки можно почти неограниченно добавлять к ключу, сетевой доступ быстрый... Но мне не нужны кластерные возможности, да и накладные расходы по памяти на каждую колонку там очень большие, компарация имён колонок мне не нужна тоже. В идеале какой-нибудь быстрый сетевой интерфейс для leveldb или kyoto cabinet. Но нету их... интерфейсов этих... И я так понял встраиваемых бд с реально быстрыми java интерфейсами вообще нет. Странно и печально. Неужели ни у кого никогда не появилось желания использовать хотя бы berkeley db удалённо? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 17:42 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, Посмотрите на http://www.couchbase.com/couchbase-server/overview он имеет API memcached, но с персистентностью ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 17:45 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС1) k-v, быстро, очень быстро, чтобы запись MAX до 100 мкс на нормальной машине, чтение тоже до 100мкс, и чем меньше, тем лучше 3) в памяти хранятся только ключи Не очень понял - если данные подгружаются с диска, то как же там может быть 100мкс на чтение? Что-то другое имелось в виду? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 21:00 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
dominatorАлексейС, Посмотрите на http://www.couchbase.com/couchbase-server/overview он имеет API memcached, но с персистентностью Не очень хочется иметь memcached фронтендом к базе, так как очень важна простая установка, желательно, чтобы это была и база и сетевой интерфейс в одном. Да и всё-равно сам couch очень уж медленный=( Совсем медленный... rrrrrrrrНе очень понял - если данные подгружаются с диска, то как же там может быть 100мкс на чтение? Что-то другое имелось в виду? Согласен, перестарался с требованием, я не говорю, что оно прямо совсем не должно находиться в памяти, просто эта база должна эффективно её расходовать и понимать - если я ей скажу, что она не должна вылезать за определённые рамки. Но я уже понял, что хочу слишком многого и буду писать сетевой интерфейс к leveldb... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 22:28 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, Мне просто из любопытства. Что вы вкладываете в понятие "сетевой интерфейс"? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 23:12 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Leonidv, ну, по сути это будет простенький сервер поверх leveldb(или другой k-v базы), для обращения к нему клиентов ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 23:19 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Друзья, спасибо за участие! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2012, 23:22 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, Посмотрите на OrientDb. Мне было бы любопытно узнать Ваше мнение ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 11:57 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, LevelDb тестировалась под свои требования? Очень интересны ощущения от ее использования. Лично я эту либу в руках не вертел, но как-то натыкался в инете на какой-то блог (ссылки не сохранил), где LevelDb гонялась в сравнении с SQLite-ом (также, если не ошибаюсь, это обсуждалось и на оф. форуме скулайта). Всего не помню, но выводы такие: гугловский тест SQLite-а на сайте LevelDb - некорректный, в реальности по перфомансу LevelDb от sqlite ушла не далеко, а на ряде операций она хуже sqlite-а (это даже при наличии sql-слоя, также те тесты показали, что и у скулайта не всё гладко, причём не по причине sql). К тому же, как я понял, LevelDb эффективна только при маленьком размере value-части. Valery ShiskinАлексейС, Посмотрите на OrientDb. Мне было бы любопытно узнать Ваше мнение Присоединяюсь к OrientDb. Я баловался с ней год назад, концептуально интересна, но показалась очень сырой, были всякие непонятные глюки. В то время поинтересовался у ребят из TrackStudio, они пытались её заюзать для своей системы - из-за глюков и поломок баз её забросили. Но вроде, судя по местному форуму, пилят ее активно, потихоньку начинают использовать, но проектов что-то не видно пока. Кто-то OrientDb уже гонял по-серьёзному ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 16:34 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Valery ShiskinАлексейС, Посмотрите на OrientDb. Мне было бы любопытно узнать Ваше мнение Ух, какая штука прошла мимо меня, спасибо! Потестирую, если выдержит мои тесты, то будет очень круто, конечно. По возможностям - кажется то что надо и заявляемое время доступа очень хорошее. PSV100АлексейС, LevelDb тестировалась под свои требования? Очень интересны ощущения от ее использования. Лично я эту либу в руках не вертел, но как-то натыкался в инете на какой-то блог (ссылки не сохранил), где LevelDb гонялась в сравнении с SQLite-ом (также, если не ошибаюсь, это обсуждалось и на оф. форуме скулайта). Всего не помню, но выводы такие: гугловский тест SQLite-а на сайте LevelDb - некорректный, в реальности по перфомансу LevelDb от sqlite ушла не далеко, а на ряде операций она хуже sqlite-а (это даже при наличии sql-слоя, также те тесты показали, что и у скулайта не всё гладко, причём не по причине sql). К тому же, как я понял, LevelDb эффективна только при маленьком размере value-части. LevelDb понравилась тем, что вместила 1 млрд строк, при этом вела себя весьма скромно в плане памяти оперативной и локальной, правда в тот момент сравнивалась она с cassandra, которая вообще очень прожорлива. Надо будет затестить снова, но вообще очень приятная базка. У коллеги она работает в продакшене в виде кэша, но кэш тот дёргается редко, так что не сказал бы что это тест в хвост и в гриву. Тут важно еще посчитать сколько конкурентных запросов база может переварить на большом количестве конкурентных записей и чтений и для меня это тоже очень важный параметр. Если база записывает чуть медленнее, но выдержит более высокую постоянную нагрузку, то это круче для меня ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 17:23 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
PSV100АлексейС, К тому же, как я понял, LevelDb эффективна только при маленьком размере value-части. Кстати да, leveldb использовалась только для небольших value. Для крупных блобов под нагрузкой ни одна база из тестируемых не подошла ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 17:30 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейСLevelDb понравилась тем, что вместила 1 млрд строк, при этом вела себя весьма скромно в плане памяти оперативной и локальной, правда в тот момент сравнивалась она с cassandra, которая вообще очень прожорлива. Надо будет затестить снова, но вообще очень приятная базка. У коллеги она работает в продакшене в виде кэша, но кэш тот дёргается редко, так что не сказал бы что это тест в хвост и в гриву. Тут важно еще посчитать сколько конкурентных запросов база может переварить на большом количестве конкурентных записей и чтений и для меня это тоже очень важный параметр. Если база записывает чуть медленнее, но выдержит более высокую постоянную нагрузку, то это круче для меня Как я понимаю, конкурентность запросов к базе перекладывается на плечи своего "сервера". Если я не ошибаюсь, leveldb фактически однопоточная штука для контроля действий в своём приложении (т.е. один поток как минимум при записе, иногда создаются служебные вспомогательные потоки, например, при перекомпоновке файлов). Имхо, с leveldb нужно очень осторожно смотреть на конкуренцию. Я cassandr-у тоже не юзал, но на глаза попадались отзывы о том, что при интенсивной нагрузке возня с перекомпоновкой данных по уровням (файлам), как и у leveldb, ощутимо сказывается на производительности. Как дела у OrientDB с сетевым стеком - я уже не помню, но мне показалось, что её родной сервер - фактически учебный пример. Для своего приложения над конкурентностью нужно хорошенько кумекать под свои задачи. АлексейС, если погоняете leveldb и OrientDB - плиз, поделитесь своими выводами. P.S. На всякий случай: здесь есть JNI-интерфейс для leveldb, здесь какой-то любительский порт leveldb на чистую жабу (сам ничего не использовал). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 19:38 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
PSV100Как я понимаю, конкурентность запросов к базе перекладывается на плечи своего "сервера". Если я не ошибаюсь, leveldb фактически однопоточная штука для контроля действий в своём приложении (т.е. один поток как минимум при записе, иногда создаются служебные вспомогательные потоки, например, при перекомпоновке файлов). Имхо, с leveldb нужно очень осторожно смотреть на конкуренцию. Я cassandr-у тоже не юзал, но на глаза попадались отзывы о том, что при интенсивной нагрузке возня с перекомпоновкой данных по уровням (файлам), как и у leveldb, ощутимо сказывается на производительности. Как дела у OrientDB с сетевым стеком - я уже не помню, но мне показалось, что её родной сервер - фактически учебный пример. Для своего приложения над конкурентностью нужно хорошенько кумекать под свои задачи. АлексейС, если погоняете leveldb и OrientDB - плиз, поделитесь своими выводами. P.S. На всякий случай: здесь есть JNI-интерфейс для leveldb, здесь какой-то любительский порт leveldb на чистую жабу (сам ничего не использовал). LevelDb у нас на индексации данных работала на 16ти потоках, это при очень интенсивной записи, причём это была её java версия. Но она как-то была принята в использование де-факто, без особого тестирования... и вот как-то угадалось))) Cassandra у меня на тестах валилась под нагрузкой 600-700 одновременных коннектов к базе. Это количество записей и чтений в один момент времени через thrift. И вообще эта база - моя любимая. Но не без изъянов, конечно. Как и все базы..... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 20:01 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, Кстати 600-700 - это еще зависит от типа нагрузки и от многих факторов, у меня было до 3000 потоков-чтений в пике, когда я совсем жёстко убивал... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 20:19 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейСLevelDb у нас на индексации данных работала на 16ти потоках, это при очень интенсивной записи, причём это была её java версия. Но она как-то была принята в использование де-факто, без особого тестирования... и вот как-то угадалось))) Cassandra у меня на тестах валилась под нагрузкой 600-700 одновременных коннектов к базе. Это количество записей и чтений в один момент времени через thrift. И вообще эта база - моя любимая. Но не без изъянов, конечно. Как и все базы..... А java-версия leveldb - это тот порт, который я указал, или есть какая-то разработка от самого гугла ? P.S. Имхо, OrientDB - неплохая альтернатива, выглядит очень привлекательно. Раньше с надёжностью было тяжко, сейчас может уже получше. Пилят ее мало народу (в основном, ее автор), но с прицелом на коммерческую поддержку, уже какую-то контору создают для всяких "облачных полётов" на её основе. Так что, имхо, до юзабельного состояния должны уже довести, вроде близок релиз первой версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 20:29 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
PSV100А java-версия leveldb - это тот порт, который я указал, или есть какая-то разработка от самого гугла ? P.S. Имхо, OrientDB - неплохая альтернатива, выглядит очень привлекательно. Раньше с надёжностью было тяжко, сейчас может уже получше. Пилят ее мало народу (в основном, ее автор), но с прицелом на коммерческую поддержку, уже какую-то контору создают для всяких "облачных полётов" на её основе. Так что, имхо, до юзабельного состояния должны уже довести, вроде близок релиз первой версии. Да, именно этот порт. OrientDB попробую обязательно, меня тоже очень привлекло. Возможно сегодня вечером потестирую. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 20:41 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, Ой, блин, уже почти 9 часов.... =( ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 20:42 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 21:02 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
OrientDb Спасибо за наводку, отлично поржал. OrientDB scales out very well on a single machine. A single server makes the work of about 125 servers running MySQL. Наш супер сервер заменяет стопицот серверов MySQL!!!!11111 The transactional engine can run in distributed systems supporting up to 9.223.372.036 Billions of records for the maximum capacity of 19.807.040.628.566.084 Terabytes. Наш супер сервер хранит СТОТЫЩМИЛЬЕНОВ терабайт!!!111111 I can't believe! Why it's so fast? OrientDB has been designed to be very fast. Ах, вот почему один OrientDB заменяет тыщу серверов MySQL! Оказывается, он был designed to be very fast, а MySQL был designed to be very slow. Истории успеха, размещенные на сайте, тоже поражают: document storage for a very specialized crawler: more than 100k documents, daily updates with 1k new docs. Не иначе, какой-то школьник сделал личный краулер любимых порносайтов. Наверное, если бы он использовал MySQL, то потребовалось бы 125 серверов MySQL. java ... -Dtx.log.synch=true ... Теперь понятно, откуда взялась цифра в 125 MySQL серверов. Сервер банально пишет данные в оперативную память, что позволяет демонстрировать большие цифры в говнобенчмарках. Самое смешное, что отключается это даже не через конфиг, а вообще через аргументы JVM. http://code.google.com/p/orient/wiki/MemoryManagement Происхождение этой удивительной страницы можно объяснить только одним образом. Авторы рассчитывают, что какой-нибудь не разбирающийся в СУБД разработчик помедитирует на эту картинку, и у него в мозгу всплывет ассоциация: так в Hibernate есть что-то подобное! Если тут как в Hibernate, то наверное хорошо. Коллеги, изучайте нормальные технологии. Верить, что есть некая волшебная СУБД с документацией в 3 странички, которая в 100 раз уделывает mysql или postgres, просто смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 00:02 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Йуный джавистЪ, Можно нам глупым поинтересоваться, что имеется ввиду под "нормальными технологиями" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 02:51 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Поковырял после работы orientdb. Недолго, где-то часа полтора, но есть определённые мысли на тему: - Действительно шустро бегает на первый взгляд - Просто устанавливается - В комплекте есть удобности, до которых я, правда, не дошёл, но галочку поставим - id состоит из id "кластера" и "clusterPosition", я уж было подумал, что это инкрементное поле и хотел записать в недостаток. Но вот сейчас, пока писал это сообщение, решил докопаться до сути и найти как этот clusterPosition вычисляется. Прошёлся по коду, и это оказался отступ от начала файла базы делённый на размер ячейки памяти 15 байт. Там ищется свободное место, если находится - выдаётся, если не находится, то выделяется новое. В целом подход неплохой и позволяет быстро делать итератор по бд, просто увеличивая позицию ячейки памяти на 1. Надо будет поковырять их индекс, любопытно. А теперь о грустном: - api ужасно выглядит, после thrift мне, конечно, ничего не страшно, но это не сильно лучше. Имхо они просто надругались над java. - встроенный язык построения запросов у меня отказался работать. Запрос просто запускается и такое ощущение, что начинается вечный цикл. Не дебажил. Пробовал запрос на java и sql, итог один. В общем смог получить только get запрос, который, к слову, там тоже через одно место. - примеры из документации частично deprecated, а альтернативы не предоставлено - запускал его на виртуалке, после 2 млн записей он зажевал почти всю оп. Хотя её там было мало - всего 2 гига, но всё-таки как-то некрасиво с его стороны. Запущу запись 500 млн строк на ночь, надеюсь виртуалка не крякнется))) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 02:59 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
В общем по итогу загрузилось 44 млн и кончилось место на диске. Совсем забыл его выделить побольше. Однако хороший факт: база на самом деле не так уж сильно жрёт оп, она просто забирает под себя определённый размер памяти и больше ни-ни. Причём после того, как место кончилось, она естественно упала. Но когда я её перезапустил, она сказала, что соединение было закрыто некорректно и быстренько восстановила сама себя. Приятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 10:47 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
О, а вот и логическое объяснение. База разделена на куски по 500 метров. Соответственно файл мапится в память и данные загружаются в него, а потом через некоторое время дампятся, вот он и жрёт 500 метров +- немного. Не знаю правда как это всё дело будет вести себя при конкурентной нагрузке, проверю. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 10:52 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Valery ShiskinЙуный джавистЪ, Можно нам глупым поинтересоваться, что имеется ввиду под "нормальными технологиями" ? это СУБД, наиболее часто встречающиеся в соседней ветке - Сравнение СУБД и Работа. k-v база - там не встречается. Т.е. это СПЕЦИФИЧЕСКАЯ ЗАДАЧА, о которой молчит автор. ЗЫ. Самый быстрый k-v доступ у 2-х файлов. В одном ключи (смещение от начала), в другом данные. А дальше начинаются - жертвы, на которые можем пойти (оперативка\транзакции\OLAP-OLTP\...) ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 11:31 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Petro123, Вобще-то, есть еще ветка NoSql базы данных, а k-v - это сокращение от NoSql типа Key/Value, поскольку есть еще типа Document и Graph (по крайней мере так на сегодня принято подразделять NoSql СУБД). АлексейС, судя по всему, знает, что делает и он прекрасно знает, что такое SQL субд и почему они его не устраивают. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 12:58 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Кстати, Алексей, если для Вас не представляет преграды Scala технологии, то Вы можете посмотреть на Lift framework. Из коробки он поддерживает MongoDB. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 13:02 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Valery Shiskin, конечно, я преувеличил :), т.к не люблю одностороннего освещения. Типа: "нужна скорость, но БД много жрёт оперативки" Потом, причём тут Java? "NoSql базы данных" тут тоже не так много - (выводы делает каждый сам). Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 13:08 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
авторk-v база - там не встречается. Т.е. это СПЕЦИФИЧЕСКАЯ ЗАДАЧА, о которой молчит автор. Мне интересно - чем MySQL с одной таблицей (key,value) отличается от k-v базы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 15:37 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Йуный джавистЪМне интересно - чем MySQL с одной таблицей (key,value) отличается от k-v базы? Если отвязать SQL парсер и прочую RDBMS шелуху, то результат не будет особо отличатся. Есть вроде даже плагин какой-то для этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 15:42 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Йуный джавистЪ, оверхедом или интелиссенсом, но это к автору. Захочет - скажет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 15:45 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
авторЕсли отвязать SQL парсер MySQL 5.0 provides support for server-side prepared statements. This support takes advantage of the efficient client/server binary protocol implemented in MySQL 4.1, provided that you use an appropriate client programming interface. авторпрочую RDBMS шелуху, Какую? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 16:00 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Йуный джавистЪMySQL 5.0 provides support for server-side prepared statements. This support takes advantage of the efficient client/server binary protocol implemented in MySQL 4.1, provided that you use an appropriate client programming interface. Это не то. Йуный джавистЪКакую? Вот статья. Там же ссылка на плагин, который недавно вышел. http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 16:04 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейСвстроенный язык построения запросов у меня отказался работать. Запрос просто запускается и такое ощущение, что начинается вечный цикл. Не дебажил. Пробовал запрос на java и sql, итог один. В общем смог получить только get запрос, который, к слову, там тоже через одно место. Я так понимаю, объектная обёртка и особенно sql - пока самые непроработанные места. К тому же, если работать через сервер, то и там могут быть глюки вокруг ядра СУБД. Имхо, для себя лучше работать с самым низким level-api, так по скорости лучше и ближе по духу к key-value. АлексейСО, а вот и логическое объяснение. База разделена на куски по 500 метров. Соответственно файл мапится в память и данные загружаются в него, а потом через некоторое время дампятся, вот он и жрёт 500 метров +- немного. Не знаю правда как это всё дело будет вести себя при конкурентной нагрузке, проверю. Хм..., когда я orientdb немного щупал, то больших расходов оперативки не замечал. Вот вываливание всяких непонятных эксцепшинов на ровном месте - вполне хватало. Также заметил затыки на массовом удалении данных - может оказаться проблемой (хотя, если для задачи рассматривается leveldb, то наверное массовых удалений и модификаций записей не ожидается). Я не помню, был ли тогда mmap в потрохах (и в целом, я в потроха мало влазил), но по поводу памяти у них на форуме периодически появлялись всякие обсуждения, похоже до сих пор ещё экспериментируют. Одним словом, похоже с сыростью ещё не покончено. Имхо, штука ещё стрёмная. С другой стороны, вроде есть сторонние энтузиасты, которые пилят API для скалы и кложуры. Значит, уже как-то используют. Там на местном форуме вроде есть наши ребята, которые пилят какую-то индексацию для коллекций внутри документов (если я не ошибаюсь), может есть смысл с ними связаться, скажут чего-нибудь по делу. Как альтернатива для orientdb можно глянуть на Neo4j - вроде эту штуку уже используют, но там нужно смотреть на лицензии, а также, вроде, orientdb уделывает по перфомансу и пр. эту графовую базку (так утверждают те, кто гонял orientdb). И сугубо моё личное имхо по поводу NoSql. Я не спец в этих вопросах и пока не решился на nosql-использование (и не было пока задач, чтобы нагнуло для этого), но я наблюдаю такую картину: - эффективная реализация nosql на java - пока под большим вопросом. Если я не ошибаюсь, то в той же cassandre внедряется управление памятью через нативный код. Можно почитать с какими проблемами столкнулись при разработке JGit (гита на жабе) и почему по перфомансу не догнать оригинал, на какие хаки пошли в disruptor и почему теперь не всё работает на семёрке, и пр. - сейчас видна тенденция применения leveldb в качестве бакэнда для ряда nosql, причём вместо более традиционных dbm-подобных систем. Значит, профит есть, нужно хорошенько оценить. - если для решения задачи необходимы дисковые операции, то есть смысл оценить "ускорители" уже проверенных традиционных баз, типа HandlerSocket для MySQL (для постгресса что-то делал скайп, но вроде в основном для "распределялки" данных). - для тех, кому нужна супер-оперативность, пока всё-таки лучше оказались базы в памяти типа Tarantool, Redis. Алексей, обратитесь на форум Tarantool-а. Как я понял, они там у себя в mail.ru или одноклассниках используют стек Voldemort + Tarantool, логи баз и их снэпшоты потихоньку в фоновом режиме перекачивают в обычные СУБД и воюют с ними дальше отдельно. Может их модель что-то полезное покажет. По поводу Voldemort. Как я понял "хеш-распределялка" особо не нужна, но всё-таки это готовое, причём используемое, сетевое решение. Может есть смысл его повертеть с разных сторон на предмет правильной его готовки, и бакэнды к нему разные прикручиваются (сам я на него не смотрел). А так, чтобы и лёгкая СУБД была и готовый лёгкий сетевой сервис, кроме orientdb толком ничего не вспоминается. Когда-то на глаза попадалась ограниченная реализация SQLite на чистой жабе, но ссылку быстро найти не удалось, и не помню я, был ли там сервер или это просто эмуляция JDBC-драйвера. Алексей, если для своей задачи что-то погоняете (эту orientdb, leveldb, здесь ещё указанную JDBM2, Voldemort и пр.) и поделитесь с общественностью, то мы все здесь на форуме будем признательны, ибо реальная практика по всяким NoSql весьма редкое явление. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 17:04 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Йуный джавистЪавторЕсли отвязать SQL парсер MySQL 5.0 provides support for server-side prepared statements. This support takes advantage of the efficient client/server binary protocol implemented in MySQL 4.1, provided that you use an appropriate client programming interface. авторпрочую RDBMS шелуху, Какую? Все равно слишком много шелухи даже если использовать prepared statements. В поддержку этого мнения говорит тот факт, что в mysql 5.6 появилось memcached api. Официально, то есть совсем. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 17:43 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
netwindВ поддержку этого мнения говорит тот факт в поддержку другого мения говорит факт наличия шелухи у Спринга. Но, говорят: "не надо, просто - не используй". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 17:49 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Petro123netwindВ поддержку этого мнения говорит тот факт в поддержку другого мения говорит факт наличия шелухи у Спринга. Но, говорят: "не надо, просто - не используй". Но тут другое дело. Нельзя (было) использовать mysql без шелухи. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 18:02 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
netwind, всегда мечтал узнать, для чего их применяют k-v или POJO-DB ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 18:09 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Petro123netwind, всегда мечтал узнать, для чего их применяют k-v или POJO-DB Что ж тут не понятного? Для всего того же, что и обычно применяют. Подобный интерфейс позволяет опустить многие стадии обработки SQL запросов и добиться высокой скорости выполнения критических секций. Причем, сложную логику, отчеты и прочий унаследованный код, можно продолжать разрабатывать традиционно на SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 18:18 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, Мы все почему-то забыли об Oracle key/value NoSQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 19:51 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
netwind, Нет. Уж слишком общие слова: ". . . там же где и обычные бд. . ." ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 19:54 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Вот только что случайно наткнулся на ресурсы по поводу jdbm: - автор http://www.mailinglistarchive.com/html/general@db.apache.org/2012-02/msg00000.html]предлагает включить проект в апачевские лавры; - в этом блоге автор рассказывает про новый jdbm3, где можно узреть, какие нюансы есть в текущей версии jdbm2 и что хотят улучшить; - сам проект jdbm3. Пока ещё альфа. Как я понимаю, библиотекой пользуются, возможно для жабы очень производительное решение. Но нужен свой "сервер". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 20:01 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Petro123netwind, Нет. Уж слишком общие слова: ". . . там же где и обычные бд. . ." Что нет? nosql-интерфейсы в mysql есть и их целых два. Если дошло до того, что включен в основной дистрибутив, значит это уже не просто блажь тех, кто недоучил SQL. Переубеждать нет смысла. Вы можете спокойно продолжать игнорировать явление, а мы будем получать дополнительную прибыль. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 20:54 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Valery ShiskinАлексейС, Мы все почему-то забыли об Oracle key/value NoSQL. Я тоже о ней ничего не слышал. Сейчас бегло посмотрел, что за хренотень такая. На сайте оракула какая-то мутная инфа, даже про лицензии ничего не увидел. Почитал этот блог вместе с комментариями. Как я понял, это жабская беркли-дб на стероидах, т.е. с хеш-распределялкой по нодам + репликация и прочие плюшки. Имхо, ТС-ру не подойдёт. Судя по описаниям та же jdbm2 ощутимо быстрее берклей и по лицензии приятней. Да и не нужна распределенность. Имхо, если orientdb пройдёт конкурс по неглючности (в чём я сомневаюсь), то это будет лучше выбор. А так чувствую, что дело закончится Voldemort + leveldb или jdbm2 (что возможно лучше, чем пока мало используемый порт на жабу leveldb), или всё-таки придётся реализовать свой сервак под те же либы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 21:18 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
netwind, удивительно, как вы читаете "нет", и не видите после него фразы "общие слова". Лично меня интересует конкретика и цифры. Например - "Я, netwind, делал проект и выбрал технологию ХХХХ по такой причине... ". "Явление" - пока громко сказано. Есть такое "явление", что у SQL-щиков и NO-SQLщиков взаимная неприязнь к продуктам. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 21:34 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Petro123netwind, удивительно, как вы читаете "нет", и не видите после него фразы "общие слова". Лично меня интересует конкретика и цифры. Например - "Я, netwind, делал проект и выбрал технологию ХХХХ по такой причине... ". "Явление" - пока громко сказано. Есть такое "явление", что у SQL-щиков и NO-SQLщиков взаимная неприязнь к продуктам. Вы не допускаете, что существуют другие области для java, кроме еврейского банковского процессинга, где "стоимость" транзакции бд необычно низкая? в миллионы раз ниже. Прежде всего, это машинно-генерируемые транзакции - всевозможные приложения телекома, телеметрии, обработки научных данных, онлайн-игры, торренты в конце концов. И все они хотят работать с SQL, потому как все программисты так или иначе изучали СУБД. Но даже с помощью prepared statements не удается достичь приемлемой "плотности" обработки транзакций. (я не имею ввиду масштабируемость. накупить серверов или арендовать ресурсы в облаке любой дурак может). Но вот с помощью nosql-интерфейсов к привычному mysql эти возможности вдруг открываются. Нет, мне лично не требовалось писать торент-трекеры (что можно посчитать за счастье). Я скачал, помоделировал и положил на полку до того случая когда мне оно понадобится. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 23:53 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Добрый вечер, коллеги! Спасибо за интересные ответы, BlazkowiczВот статья. Там же ссылка на плагин, который недавно вышел. http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html Ого... выглядит очень вкусно! Установка mysql и настройка усложняется, правда, но результат выглядит впечатляюще... Спасибо, посмотрю. PSV100, Voldemort тестировал не я, а коллеги и оный был признан как тормознутая надстройка над leveldb. Я им доверяю, так что пока тестировать не буду. Насчёт JDBM2 спасибо, посмотрю, хотя не сейчас, потому как сервера с ним всё-равно нет, а если его писать, то неважно для какой базы. Насчёт orient - да, использовать в production я бы его не стал... но об этом ниже. Tarantool - всё-таки совсем не то, что нужно. Это именно продакшн база, а не небольшое k-v решение, которое мне нужно. Впрочем для общего развития поковыряться интересно)) Valery Shiskin, Вот это да... я про эту базу от оракла не знал... Если она по скорости будет нормальной, то это ж то что надо! Правда я вот не понял, а что у неё с лицензией? Оракл - это всё-таки очень уж коммерческая организация и я не уверен, что они прямо так уж отдали, даже community edition. Мельком почитал про Lift framework, это имеется в виду web framework? Коллеги, по всем вопросам: 1) попробовал orientdb утром еще помучать запросами. Напомню: в базе на данный момент 44 млн строк. Оказалось, что строки clusterPosition от 0 до определённого nnn он нормально выдаёт, а вот после определённого, он уже уходит в вечный цикл. То есть повторяется история с sql,java запросами, которые также не работают. Похоже какая-то проблема с индексом. Единственный способ получить записи - идти итеративно по всей базе)) Итог: действительно глючно и бажно, у меня всё внутри испытывает тревогу по поводу этой базы в продакшене. Поковыряю исходники, потому что здравые идеи там есть, но использовать не буду. 2) Почему не SQL? Потому что да, Mysql прикольный. У нас в продакшене сейчас используется mysql для базы в 400 млн строк на одной ноде, а тестировался он с 2.5 млрд строк на одной ноде и даже с order by по формуле он вёл себя весьма и весьма прилично, по нашим меркам, то есть запрос в пределах 120милисекунд. Это лучше и по памяти оперативной, локальной и по скорости, чем сортировка на клиенте. Но если использовать его как nosql, с большой конкурентностью и без ухищрений, которые расписаны в статье, которую показал Blazkowicz, то mysql гораздо медленнее, чем та же cassandra. SQL нужен для определённых задач и он может решать их очень и очень хорошо, но в моём случае это не так. Например в плане записи он ужасен. По одной записи класть в базу - гораздо медленнее nosql. Можно конечно отключить индексы и.т.д, но... зачем если есть nosql? Batch sql запросы сильно расходны, когда речь заходит о записях в десятки тысяч за секунду. String объект с sql весит по 300 килобайт(!!), его приходится кэшировать во избежание утечек памяти, при этом остаются еще preparedStatements, которые также, естественно, вызывают проблемы. Когда как cassandra справляется с такими объёмами на раз и при высокой конкурентности, это несмотря на очень удобную многомерную структуру и практически полное отсутствие предварительных настроек. В конце концов schemaless структуры данных - это очень удобно. Я не говорю, что "nosql - это круче sql и все должны его использовать". Sql, nosql базы - это всего лишь инструменты, которые решают свои задачи. И я использую в работе как cassandra,hypertable,mongodb, так и mysql, было время - и на pl/sql кодил))) Так что никаких холиваров я не развязываю. 3) подумываю заюзать netty.io , кто-нибудь уже использовал? Как ощущения? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 00:02 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Valery ShiskinАлексейС, Мы все почему-то забыли об Oracle key/value NoSQL. о, так им же принадлежит embed innodb и ее java-отображение - g414-inno. но это для редких приложений, где требуется минимизировать расходы на межпроцессный обмен. не слышал чтобы кто-то использовал, но оно есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 00:07 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, у вас высокие требования по скорости сразу к записи и чтению? Т.к. часто базы бьют на OLAP\OLTP по назначению. Т.к. трудно оптимизировать треугольник Транзакции ---Чтение --Запись сразу по всем направлениям. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 00:12 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
netwindо, так им же принадлежит embed innodb и ее java-отображение - g414-inno. но это для редких приложений, где требуется минимизировать расходы на межпроцессный обмен. не слышал чтобы кто-то использовал, но оно есть. Любопытно, они уже столько баз/движков понаписали, но всё не уймутся))) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 00:27 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Petro123АлексейС, у вас высокие требования по скорости сразу к записи и чтению? Т.к. часто базы бьют на OLAP\OLTP по назначению. Т.к. трудно оптимизировать треугольник Транзакции ---Чтение --Запись сразу по всем направлениям. Да. И к оперативной памяти тоже требования, потому как база в 1 млрд строк, это 8гб только одних ключей в чистом виде, без расходов на хранение, если речь о key value. А 1 млрд - мягко говоря не предел. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 00:30 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейСnetwindо, так им же принадлежит embed innodb и ее java-отображение - g414-inno. но это для редких приложений, где требуется минимизировать расходы на межпроцессный обмен. не слышал чтобы кто-то использовал, но оно есть. Любопытно, они уже столько баз/движков понаписали, но всё не уймутся))) конкретно innodb они купили чтобы попугать сообщество mysql. с тех пор mysql регулярно хоронят. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 00:48 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС1) попробовал orientdb утром еще помучать запросами. Напомню: в базе на данный момент 44 млн строк. Оказалось, что строки clusterPosition от 0 до определённого nnn он нормально выдаёт, а вот после определённого, он уже уходит в вечный цикл. То есть повторяется история с sql,java запросами, которые также не работают. Похоже какая-то проблема с индексом. Единственный способ получить записи - идти итеративно по всей базе)) Итог: действительно глючно и бажно, у меня всё внутри испытывает тревогу по поводу этой базы в продакшене. Поковыряю исходники, потому что здравые идеи там есть, но использовать не буду. В том и дело, что здравых идей там много, особенно ещё в планах, но будет ли всё реализовано - очень стрёмно. В этом конкретном случае, скорее всего, база уже всё-таки поломана. А выяснить всё, проверить, починить и пр. - похоже фиг получится, ибо нет ещё инструментария. Я из-за глюков так и не смог ее толком погонять. В проект тащить не решился, даже хотел только фактически для эксперимента на будущее, т.к. проект позволял и потерю данных (данные закачивались внешне), но времени на игрушки не было. АлексейСВот это да... я про эту базу от оракла не знал... Если она по скорости будет нормальной, то это ж то что надо! Правда я вот не понял, а что у неё с лицензией? Оракл - это всё-таки очень уж коммерческая организация и я не уверен, что они прямо так уж отдали, даже community edition. Имхо, очень стрёмная вещь. Оракл кроме своей основной базы, на которой и выехал, толком больше ничего не разрабатывал, всё остальное скупалось вместе с потрохами. У меня сложилось неоднозначное впечатление об оракловских продуктах. Если корпоративной палкой не нагибают под оракл, то многие стараются держатся подальше от него. В этой базе внутри беркли. О ней немало хреновых отзывов. Вот например из последних. Оракл сейчас пытается своей жопой накрыть все стулья, даже свою версию хадупа предлагает. АлексейСVoldemort тестировал не я, а коллеги и оный был признан как тормознутая надстройка над leveldb. Я им доверяю, так что пока тестировать не буду. Насчёт JDBM2 спасибо, посмотрю, хотя не сейчас, потому как сервера с ним всё-равно нет, а если его писать, то неважно для какой базы. Насчёт orient - да, использовать в production я бы его не стал... но об этом ниже. Tarantool - всё-таки совсем не то, что нужно. Это именно продакшн база, а не небольшое k-v решение, которое мне нужно. Впрочем для общего развития поковыряться интересно)) Я так понимаю, что требования или желания для проекта серьёзные. Такие конторы как mail.ru или яндекс прошли путь от многих sql-баз, включая и оракл с его рак-ом и всякими TimesTen, до вывода о том, что с оперативными данными вынуждены работать только в ОЗУ. Поэтому вынуждены велосипедить, как с Tarantool-ом. Так что, весьма рекомендую оценить такой подход. По поводу Voldemort. Вы уверены, что он тестировался именно с leveldb? По умолчанию вроде он работает поверх беркли, альтернатива у них какой-то Krati, что фактически та же беркли, но не на деревьях, а на хэшах. Вроде есть какой-то эксперимент поверх leveldb, но на оригинале от гугла, т.е. не жабский порт. К тому же, как я понял, основная цель там в использовании leveldb - это задействование его snapy-сжатия, что естественно снижает скорость. Имхо, странно, что Voldemort признан тормозным, при этом нравится, как работает Cassandra. Кстати, имхо, судьба касандры сейчас под большим вопросом, когда фейсбук на неё фактически положил свой болт. Сейчас, похоже, всякие "фейсбуки" вдарились в хадуп - то ещё счастье, как по мне, и слава Богу, что меня пока пронесло с ним связываться. Так вот, повторюсь, что, если я не ошибаюсь, то в "одноклассниках" используется Voldemort в паре с тарантулом - т.е., если бы он был проблемным местом, то профита от использования базы в ОЗУ не было бы. Сейчас, скорее всего, распределенность не нужна, но вдруг потом понадобится? Имхо, если не получится прикрутить Voldemort, то готовое решение навряд ли найдется. И неплохо, имхо, оценить JDBM2 - чем проще, тем надёжнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 02:52 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС 3) подумываю заюзать netty.io , кто-нибудь уже использовал? Как ощущения? Обертка над nio (в свое время была еще apache mina, но она все, причем вроде и netty, и mina-у писал один и тот же человек). Вполне себе жива и используется множеством java middleware т.е. production ready, используется для нужд топ интернет проектами по нагрузке уже давно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 10:11 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейСPetro123АлексейС, у вас высокие требования по скорости сразу к записи и чтению? Т.к. часто базы бьют на OLAP\OLTP по назначению. Т.к. трудно оптимизировать треугольник Транзакции ---Чтение --Запись сразу по всем направлениям. Да. И к оперативной памяти тоже требования, потому как база в 1 млрд строк, это 8гб только одних ключей в чистом виде, без расходов на хранение, если речь о key value. А 1 млрд - мягко говоря не предел. какой смысл 1 млрд ключей держать в 1 корзине (СУБД)? И всё таки, для каких целей нужен справочник на млрд. записей? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 10:17 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Алексей, по поводу своей возни с orientdb отпишитесь на ее местном форуме. Вроде там ее авторы оперативно реагируют, честно говорят о проблемах, может что-то толковое всплывет. P.S. С миллиардами записей, имхо, без горизонтального распределения по нодам уже не обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 11:20 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
PSV100, Да, база поломана и выяснять я даже не собираюсь... Всё-таки одно дело, когда бд много жрёт, а другое - когда сама по себе ломается. БерклиДБ использовалась у нас предыдущей командой, 3 года назад и тогда это была лучшая k-v база. Более того, по тестам этой команды, накладные расходы БерклиДБ были настолько низкими, что препятствием становилась уже только скорость винча. Правда о квалификации этой команды я ничего не знаю. Voldemort тестировали именно с leveldb и накладные расходы были признаны существенными. Я потом узнаю подробности тестирования, но пока не до того на работе. Оракл, на мой взгляд, вещь - незаменимая для бизнеса и держаться от него подальше можно только в одном случае - если мало денег. Ну или если sql мешает, опять же. Он обладает рядом исключительно важных характеристик и средств, к тому же его платная поддержка позволяет реально быстро исправлять что угодно, они очень заботятся о своих клиентах, а для бизнеса это важно. Что касается хранилищ, которые хранят данные в памяти: это хорошо, когда оперативной памяти на серверах по 128 гб или данных немного. А у нас проектов много... и каждый жрёт, реально жрёт. Кассандра на мой взгляд рулит. Она неубиваемая, быстрая, легко масштабируется. Есть недостатки, такие как например потребление heap (решается JNA) и накладные расходы на хранение на диске высокие. То что фэйсбук от неё отказался - не важно, скорее всего просто не нашли для неё применения. А вот одноклассники, те же, нашли. Они используют cassandra для рейтингов. schwa, Спасибо за отзыв! Petro123, Суть же не в ключах, у нас многобайтовый value(16 - минимум, для mysql - 24 байта, потом будет - 176 байт), который надо выдирать. Это индекс данных, где нам его еще хранить, если не в базе? Нам нужен очень быстрый поиск по этим данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 11:27 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейСPetro123, Суть же не в ключах, у нас многобайтовый value(16 - минимум, для mysql - 24 байта, потом будет - 176 байт), который надо выдирать. Это индекс данных, где нам его еще хранить, если не в базе? Нам нужен очень быстрый поиск по этим данным. мы уже 3 термина привели одного и того же - ключи\индекс данных\справочник. Вопрос для чего? Пример _использования_ по бизнес-логике привести можно? Тебе уже 3 раза сказали, что твоя задача тут не частая :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 11:34 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
PSV100, Насчёт ориента - напишу, надо им сообщить, вы правы. Проблема в том, что чтобы горизонтально всё отмасштабировать, нужен такой большой парк серверов, что сказать страшно. У нас проектов много и для каждого своя большая база. Petro123, Допустим в базе 1 млрд строк. В качестве id выступает инкрементный long, гарантированно уникальный. Приходит пользователь и заносит в систему свои данные, они обрабатываются и на основе этих данных делается выборка по n ключей. Выбирается, допустим, тысяча, с ними производятся мат. вычисления с целью наиболее удачные данные расположить вначале, а неподходящие в конце. В некоторых случаях возможна простая сортировка по value. Если данных не выбирается достаточное количество, то производится еще n запросов, n<5. При этом данные могут в любой момент дополняться, примерная минимально-необходимая скорость около десяти тысяч строк в секунду. Для оптимальной загрузки по оп скорость должна быть около 40ка тысяч строк в секунду. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 12:01 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейС, Криво написал. Пусть количество запросов будет k, k<5. А вот n - может быть больше 500. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 12:05 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Petro123Вопрос для чего? Пример _использования_ по бизнес-логике привести можно? Тебе уже 3 раза сказали, что твоя задача тут не частая :) Когда данные слабо связаны, но хорошо сегментированы. Например как в соц сети - есть один юзер и у него куча персональных данных. Выборки из списка юзеров особо не нужны. Поэтому все данные одного юзера легко изымаются из хранилища только поиском по ID. В нормализованой RDBMS это вылилось бы в кучу джоинов и, соответсвенно, сканированию кучи индексов. Денормализация БД это известный способ повышения производительности. NoSQL хранилище это следующий шаг в денормализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 12:10 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
BlazkowiczКогда данные слабо связаны, но хорошо сегментированы. Например как в соц сети - есть один юзер и у него куча персональных данных. Выборки из списка юзеров особо не нужны. Поэтому все данные одного юзера легко изымаются из хранилища только поиском по ID. В нормализованой RDBMS это вылилось бы в кучу джоинов и, соответсвенно, сканированию кучи индексов. Денормализация БД это известный способ повышения производительности. NoSQL хранилище это следующий шаг в денормализации. Вот, коротко и чётко, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 12:12 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Blazkowicz, OK спс. PS архитектуры - В контакте\ Facebook\ MySpase http://vazelin.org.ua/archives/511/ http://www.insight-it.ru/masshtabiruemost/arkhitektura-facebook/ http://www.insight-it.ru/masshtabiruemost/arkhitektura-myspace/ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 12:49 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
BlazkowiczPetro123Вопрос для чего? Пример _использования_ по бизнес-логике привести можно? Тебе уже 3 раза сказали, что твоя задача тут не частая :) Когда данные слабо связаны, но хорошо сегментированы. Например как в соц сети - есть один юзер и у него куча персональных данных. Выборки из списка юзеров особо не нужны. Поэтому все данные одного юзера легко изымаются из хранилища только поиском по ID. В нормализованой RDBMS это вылилось бы в кучу джоинов и, соответсвенно, сканированию кучи индексов. Денормализация БД это известный способ повышения производительности. NoSQL хранилище это следующий шаг в денормализации. денормализованные базы это прежде всего отказ от целостности и контроля. Ни бухгалтерию ни склад ни банковский учёт на всех этих кей-валуе из 70-х годов написать нельзя. Фейсбук или твиттер можно т.к. там пропажа части данных никого не тронет, пропало и фик с ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 15:56 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Добрый день, 1024! > денормализованные базы это прежде всего отказ от целостности и контроля. Полностью нормализованная БД это миф. Нагруженные приложения работать на нём не будут. Подумай, например, над версиями сущности. Нормализованная структура может содержать только дату начала действия версии. А рабочая- ещё и дату окончания ;) > Ни бухгалтерию ни склад ни банковский учёт на всех этих кей-валуе из > 70-х годов написать нельзя. Фейсбук или твиттер можно т.к. там пропажа > части данных никого не тронет, пропало и фик с ними. Ничего там не пропадает. Просто когда поиск нужен только по первичному ключу- быстрее работает NoSQL. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 16:00 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
GKS_SamaraДобрый день, 1024! > денормализованные базы это прежде всего отказ от целостности и контроля. Полностью нормализованная БД это миф. Нагруженные приложения работать на нём не будут. Подумай, например, над версиями сущности. Нормализованная структура может содержать только дату начала действия версии. А рабочая- ещё и дату окончания ;) > Ни бухгалтерию ни склад ни банковский учёт на всех этих кей-валуе из > 70-х годов написать нельзя. Фейсбук или твиттер можно т.к. там пропажа > части данных никого не тронет, пропало и фик с ними. Ничего там не пропадает. Просто когда поиск нужен только по первичному ключу- быстрее работает NoSQL. -- Алексей JID: alxt@ya.ru любая информационная система это определённый уровень абстракции отражающий реальность. Скажем, для работы склада неважен цвет яблок. Важен только сорт и размер тары. Значит в складской учётной системе он будет отсутствовать, хотя и может иметь какое-то значение в других областях (для конечных покупателей в магазине, скажем). Нормализация базы это свод правил организации данных. К конкретной предметной области эти правила не имеют отношения, они едины для всех. Такчт ты путаешь мягкое с тёплым. авторНичего там не пропадает. Просто когда поиск нужен только по первичному ключу- быстрее работает NoSQL. поиск не просто медленный, он фактически невозможен при любом отклонении от структуры этой псевдо-бд на ключах. Например нельзя выполнить элементарный запрос типа "средний размер загруженных фоток пользователей женского пола и возрастом 20-30 лет". Все данные для этого запроса есть а посчитать можно только перебором что неприемлимо по скорости. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 16:19 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
GKS_Samara, версия сущности в продакшене, это тоже миф (вспомни Pilot911) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 16:20 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
АлексейСPSV100, Насчёт ориента - напишу, надо им сообщить, вы правы. Проблема в том, что чтобы горизонтально всё отмасштабировать, нужен такой большой парк серверов, что сказать страшно. У нас проектов много и для каждого своя большая база. Petro123, Допустим в базе 1 млрд строк. В качестве id выступает инкрементный long, гарантированно уникальный. Приходит пользователь и заносит в систему свои данные, они обрабатываются и на основе этих данных делается выборка по n ключей. Выбирается, допустим, тысяча, с ними производятся мат. вычисления с целью наиболее удачные данные расположить вначале, а неподходящие в конце. В некоторых случаях возможна простая сортировка по value. Если данных не выбирается достаточное количество, то производится еще n запросов, n<5. При этом данные могут в любой момент дополняться, примерная минимально-необходимая скорость около десяти тысяч строк в секунду. Для оптимальной загрузки по оп скорость должна быть около 40ка тысяч строк в секунду. По поводу ориента, уже очевидно, что налягать на него не стоит. Ребята из TrackStudio намекали, что их доставала поломка баз. Я надеялся, что ситуация уже существенно продвинулась, но похоже, ещё не судьба. Если при наличии времени пообщаетесь с разработчиками, то, имхо, польза будет. Просто по-человечески очень жалко, если такой проект не взлетит, таких вещей очень мало в реальной жизни. А, судя по описанной ситуации, можно только посочувствовать, ибо, скорее всего, придётся конкретно велосипедить. Voldemort, похоже, не спасёт. Также как и оракловская база. Всё-таки их основной функционал - распределялка по нодам. С базами получается такая картина: - беркли-дб, как самая распространенная штуковина, с поддержкой, с информацией, которую можно откопать по разным местам; - jdbm - вроде как более лучшая замена для беркли (так говорят ее авторы), как минимум, в отличие от беркли, там кроме деревьев есть и хеш-таблицы. Пока здесь гуру лучше не предложили. Жабская leveldb - пока вроде официально ещё не релиз, и очень слабо распространена, имхо, гонять ее тоже нужно хорошенько. Вам сейчас виднее. Еще вспоминается такой толковый товарищ как Константин Книжник. В своё время он накатал кучу всяких баз под разные платформы, что-то перешло в коммерцию под маркой mcobject. Может есть смысл глянуть туда. Также полно всяких neo4j, db4o и пр. и т.д. Перепробовать всё - не хватит времени, к тому же это будет такая экзотика, что ни инфы толковой не будет, не людей не найти, кто собак с ними наелся. По поводу netty. На глаза попадается немало инфы об успешном использовании. Вот здесь есть маленькое сравнение с mina, но имхо очень по делу. Также сейчас многие хвалят ZeroMQ, но под жабой вроде только обвертка для нативного кода, имхо, есть смысл связываться, если нужно взаимодействие с другими нежабскими системами. Также рекомендую глянуть на фреймворк Disruptor, может полезных мыслей добавит. Вот здесь товарищ его хорошенько разложил (но, на всякий случай, вроде сейчас не все хаки работают под седьмой жабой). В общем, когда познаете нирвану, обязательно поделитесь своим мнением. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 16:38 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Добрый день, Petro123! > версия сущности в продакшене, это тоже миф (вспомни Pilot911) Не знаю, что за Пилот911... Но версии в продакшене это не миф, если операции постоянно проводятся как задним, так и передним числом (требование бизнеса, никуда не деться). Каждый день с этим работаю. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 16:52 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
PSV100, Я скачал Oracle NoSql. Там и документация и исходники. jar-файлы тянут совсем немного. Мне кажется, что АлексеюС следует на нее посмотреть. В прочем, достаточно почитать ее Getting Started (небольшой). И, разумеется, очень жаль, что OrientDb не имеет достаточно большого комьюнити (пока). Посмотрим, что будет в первом релизе (планируется середина апреля). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 21:33 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
Valery ShiskinЯ скачал Oracle NoSql. Там и документация и исходники. jar-файлы тянут совсем немного. Мне кажется, что АлексеюС следует на нее посмотреть. В прочем, достаточно почитать ее Getting Started (небольшой). Посмотреть конечно стоит. Но лично я бы с ней связываться не рискнул бы. Пока я увидел только один интересный момент в ней, который сейчас непонятный и его нужно подробно разложить по полкам - это то, как там реализуется целостность данных. База новая, оракловцы могли насмотреться на уже используемые решения, и, как я понял, им не очень нравится принцип отложенной согласованности, когда правильность данных устанавливается во время их чтения - т.е. кворум содержания данных по нескольким нодам (данные должны быть обязательно продублированы не на одной ноде), разрешение конфликтов разных версий данных и т.д., что сейчас используют во многих NoSql. Оракловцы хотят сделать упор на согласовании данных при записи, пусть даже ценой небольших задержек, но что там именно - нужно разбираться, возможно здравые техники там есть. Сейчас, как пример, тот же гугл тоже у себя пытается применять транзакционную целостность (судя по разной доступной инфе в инете). А так, базу пока толком мало кто использует, она гвоздями прибита к беркли, которая имеет неоднозначную славу. К тому же, Алексею вроде распределение по нодам не нужно. Хотя, задача подробно не описана, неясен момент, как обеспечивается сохранность данных. Возможно, оперативные данные держатся в MySQL и там организовывается резервное копирование. А может, как раз и не помешало бы дублирование данных по нодам, в этом случае вполне можно смотреть на оракл и вольдеморт. В идеале, если Алексей реализовал бы свой сервер/фреймворк, без привязки к конкретной СУБД (но с первой версией - jdbm), где транспортный уровень поверх netty, внутренняя архитектура в стиле Disruptor-а (я смотрю, что сейчас реализация многопоточности поверх очередей становится модным трэндом вместо акторов в стиле эрланга), да поделился бы с общественностью, то эх... ;) Valery ShiskinИ, разумеется, очень жаль, что OrientDb не имеет достаточно большого комьюнити (пока). Посмотрим, что будет в первом релизе (планируется середина апреля). В OrientDb пока одни разочарования. Релиз планировался ещё в прошлом году, а для реальной эксплуатации, особенно распределенной, стоит ждать версии минимум 1.1 (там обещают реально необходимые вещи). Имхо, основная беда в том, что у разработчиков нет своих задач, где ее они сами уже использовали бы. Ту же jdbm, как я понял, разработали для внутренних нужд (как встраиваемое решение для больших и быстрых баз в астрономической отрасли) и потом поделились с обществом. Сейчас самое "массовое" использование OrientDb - это некий TinkerPop, система для анализа данных на основе графовых баз со своим язычком для граф-запросов. Ни на сверх-огромные массивы данных, ни на массовую нагрузку эта система вроде не расчитана. Авторы OrientDb пытаются построить бизнес именно на самой СУБД. До этой базы они занимались немало времени другими какими-то объектными базами, нащупали какой-то эффективный алгоритм деревьев и решили податься с ним на жабу-платформу. И их шоу-замашки действительно портят картину. Здесь на форуме "Йуный джавистЪ" постебался над ней, это конечно не оценка продукта, но доля правды в этом есть. Вот недавно они публиковали презентацию, где рассказывали, что собираются заменить master-slave репликацию на master-master (что очень хорошо) - но это сплошное шоу, а не техническое описание, что нужно реально для пользователей продукта. Одним словом, жаль, что за спиной продукта нет какого-нибудь "фейсбука", кто пилил бы базу, прежде всего, для своих потребностей, толку было бы больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2012, 03:26 |
|
Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом
|
|||
---|---|---|---|
#18+
PSV100, https://etiona.com/ Пожалуйста, будьте милостивы. Пишите мне лучше. Это сделано с той nosql, о которой Вы спрашиваете. Автор не я, но думаю как автоматизировать заполнение базы. Вручную не мой вариант. Я пользовался voltdb ( замысловато ). Но вопрос в скорости. Данные получаются очень большие. Возможно cheker поможет. С уважением. Ко всем участникам. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2018, 20:08 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121648]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
90ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
178ms |
get tp. blocked users: |
1ms |
others: | 369ms |
total: | 676ms |
0 / 0 |