Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Какое хранилище выбрать если будет много insert/update  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
Приходит много данных. В большинстве случаев это insert или update. Транзакции, ссылочная целостность не нужны, поэтому можно использовать NoSql решения. Что-то гугл мне не помогает найти какую-то полезную информацию по этому поводу.
При прочем равном выбор падёт на SQL решение.
9 июл 19, 17:22    [21923630]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
забыл ник
Member

Откуда:
Сообщений: 3045
Нужно ли трекать эти insert/update или важно только последнее значение?
Какие типы запросов планируются?
Что даст NoSQL тут по-твоему? В чем затык с реляционной базой? Масштабирование? Репликация? Партиционирование?
Какой объем данных ожидается?

Предварительно можно посомтреть на Cassandra имхо
9 июл 19, 17:51    [21923666]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Можно отсюда посмотреть. https://db-engines.com/en/ranking

По сути эта линка - универсальный ответ. Дальше - нужны какие-то детали.
Хотя-бы стоимость лицензии. Будете платить? Или хочется бесплатного?
9 июл 19, 17:52    [21923668]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
redwhite90,
Что за хранилище где не нужна целостность и т.д.?))))
Файл возьми. Писать очень быстро.
9 июл 19, 17:52    [21923669]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
забыл ник
Member

Откуда:
Сообщений: 3045
PetroNotC Sharp,
Тоже про файл подумал)
9 июл 19, 17:53    [21923670]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Sergunka
Member

Откуда: Bay Area, CA
Сообщений: 1999
PetroNotC Sharp
redwhite90,
Что за хранилище где не нужна целостность и т.д.?))))
Файл возьми. Писать очень быстро.


Практически любой временной ряд - просто запись температуры с датчика, там к примеру даже апдейт не нужен.
9 июл 19, 17:55    [21923677]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
Sergunka,
Ну стрим с кинофильмами тоже в файл пишут.
9 июл 19, 17:57    [21923678]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Это либо TimeSeries (экзотика) либо EventStore. Последнее работает успешно в банках. Написано кажется
на ДотНете и скорость пишуших транзакций у него отличная.

Насчет updates я не уверен. Надо смотреть архитектурно можно ли update рассматривать как еще один
корректирующий insert. Если архитектурно можно - то взлетит.
9 июл 19, 17:59    [21923683]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Sergunka
Member

Откуда: Bay Area, CA
Сообщений: 1999
redwhite90
Приходит много данных. В большинстве случаев это insert или update. Транзакции, ссылочная целостность не нужны, поэтому можно использовать NoSql решения. Что-то гугл мне не помогает найти какую-то полезную информацию по этому поводу.
При прочем равном выбор падёт на SQL решение.


Вроде как Кассандра официальный чемпион по этому делу. Скажите объемы записей в секунду тогда боле-менее будет понятно куда двигатся.
9 июл 19, 17:59    [21923685]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Sergunka
Member

Откуда: Bay Area, CA
Сообщений: 1999
PetroNotC Sharp
Sergunka,
Ну стрим с кинофильмами тоже в файл пишут.


Технически в фильме нет временных тегов и особой нужды выбирать по тегу. Во временном ряду это довольно рядовая операция практически любой МЛ алгоритм Anomaly detection на этом построен.
9 июл 19, 18:02    [21923688]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Ну. Кассандра она имеет лимиты по оперативке. И она больше для UPDATES чеме для INSERTS.
9 июл 19, 18:04    [21923691]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Sergunka
Member

Откуда: Bay Area, CA
Сообщений: 1999
mayton
Насчет updates я не уверен. Надо смотреть архитектурно можно ли update рассматривать как еще один
корректирующий insert. Если архитектурно можно - то взлетит.


Это в Кассандре реализованно как новая версия для записи. И если мой склероз не изменяет можно вытащить все версии для записи.
9 июл 19, 18:05    [21923694]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
Задача - что-то типа краулинга .SEMRUSH как я понял делает нечто похожее.

Вот тут некто пишет:

https://eax.me/avoid-nosql/
Наконец, Cassandra использует LSM-tree. Этот способ хранения данных подходит далеко не под все нагрузки. Если вы пишите и удаляете много данных (например, решили использовать Cassandra для хранения очередей), это будет работать очень и очень плохо.


Но у нас по идее удалений мало будет
9 июл 19, 18:28    [21923704]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
Sergunka
redwhite90
Приходит много данных. В большинстве случаев это insert или update. Транзакции, ссылочная целостность не нужны, поэтому можно использовать NoSql решения. Что-то гугл мне не помогает найти какую-то полезную информацию по этому поводу.
При прочем равном выбор падёт на SQL решение.


Вроде как Кассандра официальный чемпион по этому делу. Скажите объемы записей в секунду тогда боле-менее будет понятно куда двигатся.


А можно какой-то прув?
9 июл 19, 18:30    [21923705]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
redwhite90
много данных.
цифры то будут?
9 июл 19, 18:43    [21923713]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
забыл ник
Нужно ли трекать эти insert/update или важно только последнее значение?
Какие типы запросов планируются?
Что даст NoSQL тут по-твоему? В чем затык с реляционной базой? Масштабирование? Репликация? Партиционирование?
Какой объем данных ожидается?

Предварительно можно посомтреть на Cassandra имхо


Ну по масштабированию однозначно NOSQL должна побеждать.


Это было что-то типа преинтервью в проект, поэтому я не знаю всех деталей. Но меня удивила сама постановка вопроса, что упор на то, что много записей и обновлений. Нужно выбрать хранилище заточенное на такие операции. Про запросы на выборку ничего не известно
9 июл 19, 18:49    [21923720]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7994
Когда в свое время заморачивался скоростью, меня SQL Lite вполне устроил.

По скорости на простых точечных (одна запись) select/insert'ах раз в 7-8 быстрее PostgreSQL, Основное ускорение (на моей задаче) - отсутсвия протокола TCP/IP между прикладным кодом и БД.

Т.ч. не уверен, что даже Non-SQL memory базы работающие через TCP/IP будут быстрее. TCP/IP (даже loopback) привносит слишком большие издержки.

IMHO & AFAIK
9 июл 19, 18:51    [21923723]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
забыл ник
Member

Откуда:
Сообщений: 3045
redwhite90
Это было что-то типа преинтервью в проект, поэтому я не знаю всех деталей. Но меня удивила сама постановка вопроса, что упор на то, что много записей и обновлений. Нужно выбрать хранилище заточенное на такие операции. Про запросы на выборку ничего не известно

Ну может от вас и требовалось пораасуждать, поздавать наводящие вопросы хз. Ибо формулировка - будет много инсертов и апдейтов лишь вычеркивает все заточенное под OLAP, но не сильно упрощает понимание. Тут надо крутиться от других требований
9 июл 19, 19:20    [21923745]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
redwhite90
поэтому я не знаю всех деталей.
как узнаешь, приходи.
Сейчас твой вопрос равносилен: "нужно перевезти много груза. Что посоветуете"?
9 июл 19, 19:23    [21923748]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7994
забыл ник
...будет много инсертов и апдейтов лишь вычеркивает...

ну для меня скорее это вычеркивает PostgreSQL с его vacuum или, по крайне мере, заставляет задуматься и проверить пригодность PostgreSQL на тестах.
9 июл 19, 19:51    [21923767]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Я тоже заметил что PostgreSQL не игрок клуба TPC* тестов где тусят обычно IBM, Oracle, MS.

Наверное стыдится. Хотя JSONB это они здорово придумали.
9 июл 19, 20:27    [21923779]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
redwhite90
Sergunka
пропущено...


Вроде как Кассандра официальный чемпион по этому делу. Скажите объемы записей в секунду тогда боле-менее будет понятно куда двигатся.


А можно какой-то прув?

Никакой она не чемпион. Потому-что конкурса никакого не было. Это ... знаете-ли как чемпионство
среди Стебельков и ФВМясов. Кроме специфичного бенчмарка который написал сам автор никаких других
сравнений не было. Всё нишевое. Специфичное. Вы даже WHERE свободно не можете в кассандре написать.
Предикат не летает для всех полей by default. Просто такова архитектура. Ну а если реально нужно в одной
нише сравнивать. Возьмите сравнение Apache Ignite vs Apache Cassandra. Если таковое сущесствует канешна.

Ну и правила судейства. Что хотим. Скорость транзакций? Это одно. Реакция на падение ноды. И способность
кластера безболезненно ее пережить - это совсем-совсем другое. Вот и попробуйсте просто поставить грамотно
задачу тестирования.
9 июл 19, 20:30    [21923782]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
забыл ник
redwhite90
Это было что-то типа преинтервью в проект, поэтому я не знаю всех деталей. Но меня удивила сама постановка вопроса, что упор на то, что много записей и обновлений. Нужно выбрать хранилище заточенное на такие операции. Про запросы на выборку ничего не известно

Ну может от вас и требовалось пораасуждать, поздавать наводящие вопросы хз. Ибо формулировка - будет много инсертов и апдейтов лишь вычеркивает все заточенное под OLAP, но не сильно упрощает понимание. Тут надо крутиться от других требований


Я думаю, что так и есть. Вопрос собственно в том, чтобы эти ветки выделить и расписать когда что лучше.
9 июл 19, 21:24    [21923800]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
PetroNotC Sharp
redwhite90
много данных.
цифры то будут?


Как обычно в реальном мире клиент надеется, что бизнес будет расти, поэтому хочет заложить наиболее подходящий продукт под требования известные на данном этапе. Пока это должно быть что-то стандартное(не самописное).
9 июл 19, 21:33    [21923803]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
redwhite90
Как обычно в реальном мире клиент надеется, что бизнес будет расти
Ну дак напишите за него ТЗ и определите сколько миллиардов инсертов нужно.
9 июл 19, 21:56    [21923811]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
PetroNotC Sharp
redwhite90
Как обычно в реальном мире клиент надеется, что бизнес будет расти
Ну дак напишите за него ТЗ и определите сколько миллиардов инсертов нужно.


Заказчик скажет, что напишите столько сколько держит лучшее изкоробочное стандартное решение. Да и западло ему по ТЗ работать. Он хочет, чтобы бизнес вырос, а не вот это вот всё....
9 июл 19, 23:13    [21923852]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
redwhite90
PetroNotC Sharp
пропущено...
Ну дак напишите за него ТЗ и определите сколько миллиардов инсертов нужно.


Заказчик скажет, что напишите столько сколько держит лучшее изкоробочное стандартное решение. Да и западло ему по ТЗ работать. Он хочет, чтобы бизнес вырос, а не вот это вот всё....

елки. Счас третью страницу воду в ступе будем толочь.
Это как покупатель приходит в магазин и говорит: "Дайте самый лучший компьютер!".
...
Аффтар! Любая СУБД запишет 100000 записей в сек. Устраивает?
9 июл 19, 23:35    [21923861]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
mayton
Я тоже заметил что PostgreSQL не игрок клуба TPC* тестов где тусят обычно IBM, Oracle, MS.

Наверное стыдится. Хотя JSONB это они здорово придумали.

Еще бы для Джейсона дсл толковый придумали а не это барахло
10 июл 19, 00:26    [21923869]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
mayton
Можно отсюда посмотреть. https://db-engines.com/en/ranking

По сути эта линка - универсальный ответ. Дальше - нужны какие-то детали.
Хотя-бы стоимость лицензии. Будете платить? Или хочется бесплатного?


Я вижу только список по популярности. Вы его хотели показать?
10 июл 19, 01:01    [21923873]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
redwhite90
Я вижу только список по популярности
а твой вопрос уже стал неинтересен. Так бывает)
10 июл 19, 06:46    [21923890]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
redwhite90
mayton
Можно отсюда посмотреть. https://db-engines.com/en/ranking

По сути эта линка - универсальный ответ. Дальше - нужны какие-то детали.
Хотя-бы стоимость лицензии. Будете платить? Или хочется бесплатного?


Я вижу только список по популярности. Вы его хотели показать?

Это прекрасное начало. Ведь до этого у нас не было никаких критериев. А теперь есть список.

Вот что там первое в категории NoSql? Redis.

Вот и выбор сделан.
10 июл 19, 07:12    [21923895]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1995
redwhite90
mayton
Можно отсюда посмотреть. https://db-engines.com/en/ranking

По сути эта линка - универсальный ответ. Дальше - нужны какие-то детали.
Хотя-бы стоимость лицензии. Будете платить? Или хочется бесплатного?


Я вижу только список по популярности. Вы его хотели показать?


Мобильные операторы используют реляционные базы данных. Всякий метрополитен в Москве где люди ходят по билетам. Они пишут много данных, или так себе? фигню какую то а не данные? Банки типа сбера с их карточными транзакциями, вполне работают на реляционых данных. У них много инсертов? ничего, кто на оракле, кто на чем. База же необязательно ровно одна и все. бывает и несколько. Фронт система, оперативная отчетность, архив.

То есть, вопрос и правда непонятен.

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

Ну и. Суммарные бюджетные ограничения? Архитектура с верха до низа ....

Приборы? - 200. ЧТО - 200? а что - ПРИБОРЫ?
10 июл 19, 10:00    [21923972]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1995
а так..... ну посмотрите 10 типовых решений для отрасли, и найдите что они сделаны все на том же. И таки не мешают бузинессу развиваться.....
(с) еще никого не уволили за то, что он выбрал оракл - (где то в недрах форума)
10 июл 19, 10:10    [21923983]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Можно начать с редиски. Потом если не хватит памяти - плавно переехать на LevelDb и ее братьев-клонов.
Тарантул еще очень хвалят. Вроде там специальные стуктуры данных отличные от B+Tree оптимизированные для inserts
да и еще и на диске.
10 июл 19, 10:21    [21923994]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
Vladimir Baskakov
Приборы? - 200. ЧТО - 200? а что - ПРИБОРЫ?

+1
ТС не хочет за заказчика ТЗ составлять. Дык все составляют и не пищат.
Или не хочет за БА расписать предметку подробно?
Тогда получается пршел журналист брать интервью на тему: "Какие базы самые быстрые?"
10 июл 19, 10:39    [21924010]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Я-бы спросил бизнес про другое.

Как быстро будет расти БД? Успеем ли мы докупать оперативку.
Возможен вариант когда будет взрывной рост. И тогда мы обосрались с архитектурой in-memory
к примеру. Но она - привлекает своей простотой.

Еще вопрос. Какого рода отчоты бизнес захочет видеть? Если брать key-value то возможности
у нас невелики (привет Кассандре). А если брать даже самую слабую реляционку - то можно
строить и группировки и иерархические запросы без кодинга дурацких циклов на С++.
Всё решит двигатель DBMS.

Вобщем Редиска или SQLite.
10 июл 19, 10:48    [21924020]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
По поводу оперативки. Мы живем в век стремительного удешевления носителей.
И наши подходы которые были в 20м веке возможно стоит пересмотреть. В противоположность
человеческий ресурс по прежнему дорог. Внимание или просто взгляд специалиста на тикет
с проблемой уже стоит денег. Может лучше просто прикупить железка?

Я возьму текущие цены на две планки памяти HyperX по 8 и 16 гигов соотв.
Не серверная. А обычная десктопная память по ценам магазинов.
И посчитаю удельную стоимость гига в долларах для удобства.

Model Memory Size (GB) Price $ per GB
HyperX DDR4-2400 8 47.24 5.90
HyperX DDR4-4300 16 107.10 6.60


Грубо говоря 6 долларов стоит 1 Гигабайт. При зарплате среднего синьор-помидор девелопера 3800 $
за 2 месяца от грубо говоря отработал 3800 / 6 = 633 Gb.

Вроде не ошибся? Поправьте если где чего.

Вобщем думайте. Стоит ли вкладывать в бездельнка который 2 месяца на онбординге и на испыталове будет
валять дурака вместо того чтобы просто купить железо. Ну и конешно остался пустяк. Проверить
что железка экстендилась на такой объём.

Это так. В виде старта дискурса.
10 июл 19, 11:15    [21924043]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7994
Есть еще latency. Все решения ходящие в другой процесс по TCP/IP, по данному критерию тут же будут проигрывать чему нибудь in site типа SQL Lite. IMHO & AFAIK

И никакое in memory не поможет. К тому же, открути от базы данных целостность, и любая БД тут же по скорости приблизится к in memory ))).

p.s. Выбирал в свое время между Level DB vs SQL Lite - по тестам примерно аналогичные скорости. Но Levei DB 3-и года назад показался жутко сырым и Java драйверы были только от каких-то наколеночно-гаражных студентов. Прогресс и стартапы оно конечно хорошо, но иногда хочется надежности и предсказуемости )))
10 июл 19, 12:21    [21924110]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9473
mayton
Я возьму текущие цены на две планки памяти HyperX по 8 и 16 гигов соотв.
Не серверная. А обычная десктопная память по ценам магазинов.
...
Вроде не ошибся? Поправьте если где чего.
Ну и как вы собрались этой "обычной десктопной памятью" набрать хотя бы 256ГБ ОЗУ?
10 июл 19, 13:01    [21924141]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Basil A. Sidorov
mayton
Я возьму текущие цены на две планки памяти HyperX по 8 и 16 гигов соотв.
Не серверная. А обычная десктопная память по ценам магазинов.
...
Вроде не ошибся? Поправьте если где чего.
Ну и как вы собрались этой "обычной десктопной памятью" набрать хотя бы 256ГБ ОЗУ?

+1

Хороший вопрос. Я пока только говорю про бюджетные игрушки. Не серверное железо.
Из игровых Asus ROG Rampage VI Extreme Omega (s2066, Intel X299, PCI-Ex16) поддерживает
до 128 Гб.

Тот же лимит под MSI MEG X570 Godlike (sAM4, AMD X570, PCI-Ex16).
10 июл 19, 14:14    [21924192]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7994
Года четыре назад, нужно было тестировать дисковую стойку. Админы под это дело выдали "валявшийся" 1-юнитовый сервер как раз с 256 Gb оперативки. Т.ч. оперативка нынче не проблема ))).

Другое дело, когда разрабатывал распределенную систему работающую на Амазоне, уткнулся в latency TCP/IP, даже locatlhost, не удаленный. И RMI (Remote Method Invocation) достаточно сильно тупил, и PostgreSQL нужной скорости не выдавала.
С RMI пришлось укрупнять вызовы, пропихивать на обработку в другой JVM сразу пачку заданий в 100 штук, значительно усложнился код, но в 100 раз возрасла скорость доставки данных. От PostgreSQL просто стал избавляться. В часте обработки, заменил PostgreSQL банально на сериализованные массивы просто в файлах на диске (сообтсвтственно БД заменилась на сильно "большой" атомарный /не стандартный!/ HashTable), в часте подготовки данных (где нужны были и insert'ы и select'ы) на SQL Lite.
Смотрел на Редисы, Memory DB, но:
1. Память хоть и не являлась "проблемой". Но деньги стоила. Т.ч. стоимость владения системой была бы выше (и так даже ценник за IP трафик от amazon'а уже начинал "кусаться", пару терабайт в месяц я один запросто "накачивал").
2. Никак не убирала проблемы огромной latency в TCP/IP. А при том, что ноды бы оказались еще и раскиданы в кластере, latency только бы выросло в разы. Плюс Ethernet трафик был бы крайне приличный.
Знаю одну реальную контору, админы жаловались, что узкое место в стойке - свитчи. Не справляются. Им даже пришлось шифрование трафика отключать, но не сильно помогло.
10 июл 19, 14:26    [21924209]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Leonid Kudryavtsev
От PostgreSQL просто стал избавляться. В часте обработки, заменил PostgreSQL банально на сериализованные массивы просто в файлах на диске (сообтсвтственно БД заменилась на сильно "большой" атомарный /не стандартный!/ HashTable), в часте подготовки данных (где нужны были и insert'ы и select'ы) на SQL Lite.

Амазон в качестве key-value продает DynamoDB. Возможно стоило отказаться от Postgres и заменить его
на Динаму если HashTable был решением. По идее - должно работать.
10 июл 19, 14:50    [21924222]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Leonid Kudryavtsev
Смотрел на Редисы, Memory DB, но:
1. Память хоть и не являлась "проблемой". Но деньги стоила. Т.ч. стоимость владения системой была бы выше (и так даже ценник за IP трафик от amazon'а уже начинал "кусаться", пару терабайт в месяц я один запросто "накачивал").

Совершенно верно. Если вы покупаете EC2 instance то конфигурации которые вам продают скорее всего
будут линейно и пропорционально прокачивать количество CPU и память в совокупности. Тоесть купить
удобную для InMemoryDb конфигурацию будет либо невозможно либо слишком дорого.

Отдельно Амазон продает Редис под названием ElastiCache. Это обёртка под которой можно выбирать либо Redis
либо Memcached. Там можно заказать инстанс cache.r5.24xlarge с 600 Гигами.
10 июл 19, 15:14    [21924240]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7994
Меня вообще latency TCP/IP в процессе работы перестало устраивать. Т.ч. все кластерные идеи пошли лесом. Даже там, где изначально сделал разделение JVM-машин через RMI, пришлось API "укрупнять". Мне нужно было несколько тысячь-десятков тысяч различных авиа-маршрутов просчитать и сравнить (при этом разно "тяжелых", отдельные маршруты до десятков-сотни миллионов вариантов пересадок давали)

Можно конечно было-бы супер-пупер кластеризованную систему из тысячь одновременно работающих потоков соорудить ))), каждый на своем компьютере и пофиг на latency ))) но я просто код соптимизировал и вполне нормально на 4 процессорной ноде в десяток потоков все считал )))

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

(напрмер мне перед каждым Insert'ом нужно было еще сверится с БД и проверить данные пришедшие до этого Insert'а, т.ч. массовая вставка шла лесом или сильно усложняла /и замедляла/ алгоритмы)
10 июл 19, 15:22    [21924241]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Мда. Тут синхронизм самой постановки все ограничил изначально. Результат пользователь всегда ожидает синхронно.
10 июл 19, 15:40    [21924253]     Ответить | Цитировать Сообщить модератору
 Re: Какое хранилище выбрать если будет много insert/update  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1995
mayton
Я-бы спросил бизнес про другое.

Как быстро будет расти БД? Успеем ли мы докупать оперативку.
Возможен вариант когда будет взрывной рост. И тогда мы обосрались с архитектурой in-memory
к примеру. Но она - привлекает своей простотой.

Еще вопрос. Какого рода отчоты бизнес захочет видеть? Если брать key-value то возможности
у нас невелики (привет Кассандре). А если брать даже самую слабую реляционку - то можно
строить и группировки и иерархические запросы без кодинга дурацких циклов на С++.
Всё решит двигатель DBMS.

Вобщем Редиска или SQLite.


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

Но. Цена, это же не только лицензии и железо. Это еще и разработчики. Сколько людей надо согнать на период разработки и поддержки. Реляционщиков море. Особенно для общеизвестных БД. Бери не хочу.

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

А так вот прийти на форум и спросить - а подскажите хорошую базу. Да блин, они все хорошие, отличные и замечательные. А кому не нравятся кошки - пройдите мастер класс у шеф-повара.... не в порядке спора, а так. проходя мимо.
10 июл 19, 17:03    [21924315]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Java Ответить