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

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


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

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


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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

Откуда: loopback
Сообщений: 41020
По поводу оперативки. Мы живем в век стремительного удешевления носителей.
И наши подходы которые были в 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

Откуда:
Сообщений: 7700
Есть еще 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

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

Откуда: loopback
Сообщений: 41020
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

Откуда:
Сообщений: 7700
Года четыре назад, нужно было тестировать дисковую стойку. Админы под это дело выдали "валявшийся" 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
Сообщений: 41020
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
Сообщений: 41020
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

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

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

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

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

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

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

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

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

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


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

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

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

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