Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
Пишу тут кое-что, вот мучаюсь муками выбора нормальной 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) простая установка

Коллеги, помогите пожалуйста, если кто в теме. Спасибо.
4 мар 12, 13:52    [12190915]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
ShSerge
Member

Откуда: ʚонɔ dиw
Сообщений: 24853
АлексейС,

А чем классика от орасла, я имею ввиду Беркли ДБ, не подошла?
4 мар 12, 14:03    [12190945]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
1024
Member

Откуда: Нижний Новгород
Сообщений: 14266
АлексейС
Пишу тут кое-что, вот мучаюсь муками выбора нормальной 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-х годов, назовём вещи своими именами. Возможно, если ты делаешь новый твиттер то можно но задуматься о нестандартном. Но у тебя вряд ли это нужно.
4 мар 12, 14:42    [12191023]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
ShSerge
АлексейС,

А чем классика от орасла, я имею ввиду Беркли ДБ, не подошла?


Проблема в том, что мне обязательно нужен сетевой интерфейс, а это всё-таки встраиваемое решение.

1024
используй лучше нормальную базу. Все эти кейВалуе это ж для тех кто не смог выучить скл, тяжёлое наследие 70-х годов, назовём вещи своими именами. Возможно, если ты делаешь новый твиттер то можно но задуматься о нестандартном. Но у тебя вряд ли это нужно.


)))) Нет, у k-v всё-таки есть применение, индекс, например, для тех же "нормальных баз")

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

Походу придётся писать сетевой интерфейс вокруг какой-нибудь встраиваемой бд=(
4 мар 12, 15:14    [12191109]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
Leonidv
Member

Откуда: Санкт-Петербург
Сообщений: 5218
А почему исключили mongodb? Долгая запись?
4 мар 12, 17:04    [12191389]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
Leonidv
А почему исключили mongodb? Долгая запись?


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

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

В идеале какой-нибудь быстрый сетевой интерфейс для leveldb или kyoto cabinet. Но нету их... интерфейсов этих...

И я так понял встраиваемых бд с реально быстрыми java интерфейсами вообще нет. Странно и печально. Неужели ни у кого никогда не появилось желания использовать хотя бы berkeley db удалённо?
4 мар 12, 17:42    [12191484]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
dominator
Member

Откуда: Москва/Самара
Сообщений: 161
АлексейС,

Посмотрите на
http://www.couchbase.com/couchbase-server/overview
он имеет API memcached, но с персистентностью
4 мар 12, 17:45    [12191489]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
rrrrrrrr
Member

Откуда:
Сообщений: 145
АлексейС
1) k-v, быстро, очень быстро, чтобы запись MAX до 100 мкс на нормальной машине, чтение тоже до 100мкс, и чем меньше, тем лучше
3) в памяти хранятся только ключи


Не очень понял - если данные подгружаются с диска, то как же там может быть 100мкс на чтение? Что-то другое имелось в виду?
4 мар 12, 21:00    [12192119]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
dominator
АлексейС,

Посмотрите на
http://www.couchbase.com/couchbase-server/overview
он имеет API memcached, но с персистентностью


Не очень хочется иметь memcached фронтендом к базе, так как очень важна простая установка, желательно, чтобы это была и база и сетевой интерфейс в одном. Да и всё-равно сам couch очень уж медленный=( Совсем медленный...

rrrrrrrr
Не очень понял - если данные подгружаются с диска, то как же там может быть 100мкс на чтение? Что-то другое имелось в виду?


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

Но я уже понял, что хочу слишком многого и буду писать сетевой интерфейс к leveldb...
4 мар 12, 22:28    [12192412]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
Leonidv
Member

Откуда: Санкт-Петербург
Сообщений: 5218
АлексейС,

Мне просто из любопытства. Что вы вкладываете в понятие "сетевой интерфейс"?
4 мар 12, 23:12    [12192595]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
Leonidv,

ну, по сути это будет простенький сервер поверх leveldb(или другой k-v базы), для обращения к нему клиентов
4 мар 12, 23:19    [12192613]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
Друзья, спасибо за участие!
4 мар 12, 23:22    [12192628]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
Valery Shiskin
Member

Откуда:
Сообщений: 786
АлексейС,

Посмотрите на OrientDb. Мне было бы любопытно узнать Ваше мнение
5 мар 12, 11:57    [12194542]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
PSV100
Member

Откуда:
Сообщений: 157
АлексейС,

LevelDb тестировалась под свои требования? Очень интересны ощущения от ее использования. Лично я эту либу в руках не вертел, но как-то натыкался в инете на какой-то блог (ссылки не сохранил), где LevelDb гонялась в сравнении с SQLite-ом (также, если не ошибаюсь, это обсуждалось и на оф. форуме скулайта). Всего не помню, но выводы такие: гугловский тест SQLite-а на сайте LevelDb - некорректный, в реальности по перфомансу LevelDb от sqlite ушла не далеко, а на ряде операций она хуже sqlite-а (это даже при наличии sql-слоя, также те тесты показали, что и у скулайта не всё гладко, причём не по причине sql). К тому же, как я понял, LevelDb эффективна только при маленьком размере value-части.

Valery Shiskin
АлексейС,
Посмотрите на OrientDb. Мне было бы любопытно узнать Ваше мнение

Присоединяюсь к OrientDb. Я баловался с ней год назад, концептуально интересна, но показалась очень сырой, были всякие непонятные глюки. В то время поинтересовался у ребят из TrackStudio, они пытались её заюзать для своей системы - из-за глюков и поломок баз её забросили. Но вроде, судя по местному форуму, пилят ее активно, потихоньку начинают использовать, но проектов что-то не видно пока.
Кто-то OrientDb уже гонял по-серьёзному ?
5 мар 12, 16:34    [12197663]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
Valery Shiskin
АлексейС,

Посмотрите на OrientDb. Мне было бы любопытно узнать Ваше мнение


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

PSV100
АлексейС,

LevelDb тестировалась под свои требования? Очень интересны ощущения от ее использования. Лично я эту либу в руках не вертел, но как-то натыкался в инете на какой-то блог (ссылки не сохранил), где LevelDb гонялась в сравнении с SQLite-ом (также, если не ошибаюсь, это обсуждалось и на оф. форуме скулайта). Всего не помню, но выводы такие: гугловский тест SQLite-а на сайте LevelDb - некорректный, в реальности по перфомансу LevelDb от sqlite ушла не далеко, а на ряде операций она хуже sqlite-а (это даже при наличии sql-слоя, также те тесты показали, что и у скулайта не всё гладко, причём не по причине sql). К тому же, как я понял, LevelDb эффективна только при маленьком размере value-части.


LevelDb понравилась тем, что вместила 1 млрд строк, при этом вела себя весьма скромно в плане памяти оперативной и локальной, правда в тот момент сравнивалась она с cassandra, которая вообще очень прожорлива. Надо будет затестить снова, но вообще очень приятная базка. У коллеги она работает в продакшене в виде кэша, но кэш тот дёргается редко, так что не сказал бы что это тест в хвост и в гриву.

Тут важно еще посчитать сколько конкурентных запросов база может переварить на большом количестве конкурентных записей и чтений и для меня это тоже очень важный параметр. Если база записывает чуть медленнее, но выдержит более высокую постоянную нагрузку, то это круче для меня
5 мар 12, 17:23    [12198297]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
PSV100
АлексейС, К тому же, как я понял, LevelDb эффективна только при маленьком размере value-части.


Кстати да, leveldb использовалась только для небольших value.

Для крупных блобов под нагрузкой ни одна база из тестируемых не подошла
5 мар 12, 17:30    [12198349]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
PSV100
Member

Откуда:
Сообщений: 157
АлексейС
LevelDb понравилась тем, что вместила 1 млрд строк, при этом вела себя весьма скромно в плане памяти оперативной и локальной, правда в тот момент сравнивалась она с cassandra, которая вообще очень прожорлива. Надо будет затестить снова, но вообще очень приятная базка. У коллеги она работает в продакшене в виде кэша, но кэш тот дёргается редко, так что не сказал бы что это тест в хвост и в гриву.

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

Как я понимаю, конкурентность запросов к базе перекладывается на плечи своего "сервера". Если я не ошибаюсь, leveldb фактически однопоточная штука для контроля действий в своём приложении (т.е. один поток как минимум при записе, иногда создаются служебные вспомогательные потоки, например, при перекомпоновке файлов). Имхо, с leveldb нужно очень осторожно смотреть на конкуренцию. Я cassandr-у тоже не юзал, но на глаза попадались отзывы о том, что при интенсивной нагрузке возня с перекомпоновкой данных по уровням (файлам), как и у leveldb, ощутимо сказывается на производительности.
Как дела у OrientDB с сетевым стеком - я уже не помню, но мне показалось, что её родной сервер - фактически учебный пример. Для своего приложения над конкурентностью нужно хорошенько кумекать под свои задачи.

АлексейС, если погоняете leveldb и OrientDB - плиз, поделитесь своими выводами.

P.S. На всякий случай: здесь есть JNI-интерфейс для leveldb, здесь какой-то любительский порт leveldb на чистую жабу (сам ничего не использовал).
5 мар 12, 19:38    [12199268]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
PSV100
Как я понимаю, конкурентность запросов к базе перекладывается на плечи своего "сервера". Если я не ошибаюсь, leveldb фактически однопоточная штука для контроля действий в своём приложении (т.е. один поток как минимум при записе, иногда создаются служебные вспомогательные потоки, например, при перекомпоновке файлов). Имхо, с leveldb нужно очень осторожно смотреть на конкуренцию. Я cassandr-у тоже не юзал, но на глаза попадались отзывы о том, что при интенсивной нагрузке возня с перекомпоновкой данных по уровням (файлам), как и у leveldb, ощутимо сказывается на производительности.
Как дела у OrientDB с сетевым стеком - я уже не помню, но мне показалось, что её родной сервер - фактически учебный пример. Для своего приложения над конкурентностью нужно хорошенько кумекать под свои задачи.

АлексейС, если погоняете leveldb и OrientDB - плиз, поделитесь своими выводами.

P.S. На всякий случай: здесь есть JNI-интерфейс для leveldb, здесь какой-то любительский порт leveldb на чистую жабу (сам ничего не использовал).


LevelDb у нас на индексации данных работала на 16ти потоках, это при очень интенсивной записи, причём это была её java версия. Но она как-то была принята в использование де-факто, без особого тестирования... и вот как-то угадалось)))

Cassandra у меня на тестах валилась под нагрузкой 600-700 одновременных коннектов к базе. Это количество записей и чтений в один момент времени через thrift. И вообще эта база - моя любимая. Но не без изъянов, конечно. Как и все базы.....
5 мар 12, 20:01    [12199398]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
АлексейС,

Кстати 600-700 - это еще зависит от типа нагрузки и от многих факторов, у меня было до 3000 потоков-чтений в пике, когда я совсем жёстко убивал...
5 мар 12, 20:19    [12199473]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
PSV100
Member

Откуда:
Сообщений: 157
АлексейС
LevelDb у нас на индексации данных работала на 16ти потоках, это при очень интенсивной записи, причём это была её java версия. Но она как-то была принята в использование де-факто, без особого тестирования... и вот как-то угадалось)))

Cassandra у меня на тестах валилась под нагрузкой 600-700 одновременных коннектов к базе. Это количество записей и чтений в один момент времени через thrift. И вообще эта база - моя любимая. Но не без изъянов, конечно. Как и все базы.....

А java-версия leveldb - это тот порт, который я указал, или есть какая-то разработка от самого гугла ?

P.S. Имхо, OrientDB - неплохая альтернатива, выглядит очень привлекательно. Раньше с надёжностью было тяжко, сейчас может уже получше. Пилят ее мало народу (в основном, ее автор), но с прицелом на коммерческую поддержку, уже какую-то контору создают для всяких "облачных полётов" на её основе. Так что, имхо, до юзабельного состояния должны уже довести, вроде близок релиз первой версии.
5 мар 12, 20:29    [12199507]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
PSV100
А java-версия leveldb - это тот порт, который я указал, или есть какая-то разработка от самого гугла ?

P.S. Имхо, OrientDB - неплохая альтернатива, выглядит очень привлекательно. Раньше с надёжностью было тяжко, сейчас может уже получше. Пилят ее мало народу (в основном, ее автор), но с прицелом на коммерческую поддержку, уже какую-то контору создают для всяких "облачных полётов" на её основе. Так что, имхо, до юзабельного состояния должны уже довести, вроде близок релиз первой версии.


Да, именно этот порт.

OrientDB попробую обязательно, меня тоже очень привлекло. Возможно сегодня вечером потестирую.
5 мар 12, 20:41    [12199552]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
АлексейС
Member

Откуда: Санкт-Петербург
Сообщений: 815
АлексейС,

Ой, блин, уже почти 9 часов.... =(
5 мар 12, 20:42    [12199553]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
rfq
Member

Откуда: Санкт-Петербург
Сообщений: 228
АлексейС,

jdbm2-4 еще попробуйте. Проект многолетний.
5 мар 12, 21:02    [12199626]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
Йуный джавистЪ
Member

Откуда:
Сообщений: 494
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, просто смешно.
6 мар 12, 00:02    [12200264]     Ответить | Цитировать Сообщить модератору
 Re: Нужна очень быстрая k-v база, с быстрым сетевым java интерфейсом  [new]
Valery Shiskin
Member

Откуда:
Сообщений: 786
Йуный джавистЪ,

Можно нам глупым поинтересоваться, что имеется ввиду под "нормальными технологиями" ?
6 мар 12, 02:51    [12200444]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Java Ответить