powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
305 сообщений из 305, показаны все 13 страниц
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39201057
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ссылка на репо и описание .
Там же есть ссылка на самоучитель, если подробнее.

Если совсем кратко

Документная джисон ориентированая

Простой синтаксис

Есть Джоины

Есть ОРМ

Есть Транзакции

Есть АСИД

Наполовину ИнМемони (блоб поля не инмемори, плюс пишет транзакционный лог)

Работает весьма быстро, за счет новой архитектуры
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39201094
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stop,
Ну импортозамещение, скорее всего, хорошо подходит для такого рода баз.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39201114
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небратское менее всего годится для импортозамещения.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39201236
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaНебратское менее всего годится для импортозамещения.
Для импортозамещения все никому не известное сойдет. Где Стебелек и ФМАЗ? Их час пробил.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39201243
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoДля импортозамещения все никому не известное сойдет. Где Стебелек и ФМАЗ?

Это и есть стебелёк, он просто переименовался. А поскольку он опять же не российский, то
даже под флагом импортозамещения его не протолкнуть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39203687
КБС5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaНебратское менее всего годится для импортозамещения.

Кроме небратской республики в СНГ еще 14 республик.
Плюс примерно 120-180 цивилизованных стран братских.
Им импортозамещение пойдет.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39204622
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
===========================================
= DniproDB v1.0.3 [SELFTEST] (c)Booben.Com =
===========================================
[Test: 1] Generate 1M jsons. Each with 3 attributes
Template:{'attr1':'%d','attr2':'%d','obj':{'attr3':'%d'}}...
=> Time: 1610 ms. Queries/sec: 621118
===========================================
[Test: 2] Insert 1M jsons to database whithin 1M transactions.
Each with 3 attributes (insert 3M attributes)...
=> Time: 3772 ms. Queries/sec: 265111
===========================================
[Test: 3] Insert 1M nested attributes to database within 1 transaction
(for each document one new attribute)...
=> Time: 475 ms. Queries/sec: 2105263
===========================================
[Test: 4] Lookup 1M attributes in documents.
(for each document one lookup attribute)...
=> Time: 279 ms. Queries/sec: 3584229 Control value: 123000000
===========================================
[Test: 5] 1M queries like:
Find all docs where {'attr2':'1'}, {'attr2':'2'}, {'attr2':'3'}...
=> Time: 134 ms. Queries/sec: 7462686 Control value: 159655040
===========================================
[Test: 6] 1M queries like:
Find all docs where {'attr1':'1','attr2':'1'}, {'attr1':'2','attr2':'2'}...
=> Time: 308 ms. Queries/sec: 3246753 Control value: 127691776
===========================================
[Test: 7] 1M queries like:
Find all docs where {'attr1':'1','attr2':'1','obj':{'attr3':'1'}}, {'attr1':'2'
'attr2':'2', 'obj':{'attr3':'2'}}...
=> Time: 413 ms. Queries/sec: 2421307 Control value: 127691776
===========================================
[Test: 8] Update 1M nested attributes in database within 1 transaction
(for each document one updated attribute)...
=> Time: 613 ms. Queries/sec: 1631321
===========================================
[Test: 12] Delete 1M nested attributes in database within 1 transaction
(for each document delete one nested attribute)...
=> Time: 353 ms. Queries/sec: 2832861
===========================================
=> Total Time: 7957 ms. Total Queries: 9000000
=> [iCore 5, Dnipro v1_0_3]: 7994 ms
===========================================
Restart server in normal mode ? (y/n):
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39205791
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел примеры. И что, запросы тоже надо в JSON писать? Вообще же жесть.
Реализуй LINQ-провайдер, тогда хоть перспективы появятся.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39205943
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Реализуй LINQ-провайдерНасколько я помню, афтар принципиально против каких бы то ни было "обвесов"(его термин). Впрочем, за последний год это могло измениться.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206254
Фотография roden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про импортозамещение уже всё решено
ищите ответы в реестре отечественного ПО
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206260
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Посмотрел примеры. И что, запросы тоже надо в JSON писать? Вообще же жесть.
Реализуй LINQ-провайдер, тогда хоть перспективы появятся.

Там есть Link Queries. Дот Нет, Джава, С++
Linq.NET провайдер не реализовую ввиду невозможности его портировать под другие языковые клиенты.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206271
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстате коллекции вчера добавлены и уже залиты в последнюю версию.
Вполне няшный синтаксис, который можно использовать хоть из командной строки,
из джаваскрипт из чего угодно.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
//добавляем новую коллекцию в базу данных
db.AddColl("Employee");

//добавляем док
db["Employee"].AddDoc("{'fname':'MrStop'}");

//получаем персона
Employee[] ems = db["Employee"].GetWhere("{'fname':'MrStop'}").Select<Employee>();
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206276
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirArm79Реализуй LINQ-провайдерНасколько я помню, афтар принципиально против каких бы то ни было "обвесов"(его термин). Впрочем, за последний год это могло измениться.

Против обвесов, с сомнительной пользой.
Так точнее.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206279
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,
Вы планируете критиковать то, что в реестре отечественного ПО? Во сколько раз Ваше СУБД лучше?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206288
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfostop,
Вы планируете критиковать то, что в реестре отечественного ПО?

Даже не знаю что в этом реестре записано.

vadiminfoВо сколько раз Ваше СУБД лучше?

Этот вопрос не может иметь четкого ответа в ввиду отсудствия шкалы оценки.
В данном случае эта СУБД делает упор на простоту использования, транзакции и скорость.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206290
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopВ данном случае эта СУБД делает упор на простоту использования, транзакции и
скорость.
А где в вышеприведённом примере транзакции?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206294
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovstopВ данном случае эта СУБД делает упор на простоту использования, транзакции и
скорость.
А где в вышеприведённом примере транзакции?


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
//добавляем новую коллекцию в базу данных
db.AddColl("Employee");

db.BeginTran(TranType.RepeatableRead);

//добавляем док
db["Employee"].AddDoc("{'fname':'MrStop'}");

//получаем персона
Employee[] ems = db["Employee"].GetWhere("{'fname':'MrStop'}").Select<Employee>();

db.CommitTran();
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206300
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также как в других реляционных базах данных, там есть явные и неявные транзакции.
Если транзакция указана явно, то указывается уровень ее изоляции.
Для неявных транзакций берется по умолчанию уровень изоляции ReadCommited

Но интересно конечно не это. Интересно то, что база в обычном своем режиме "топчет"
тот же MS SQL в 40+ раз , Монгу в 10+ раз и тд.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206314
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop
Даже не знаю что в этом реестре записано.

.
Но Вы же в рамках импортозамещения? Или на открытом рынке?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206317
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfostopДаже не знаю что в этом реестре записано.

.
Но Вы же в рамках импортозамещения? Или на открытом рынке?

На открытом. В рамках импортозамещения у вас там как я понял свои правила игры.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206318
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы серьезно считаете это : db["Employee"].AddDoc("{'fname':'MrStop'}");
няшным интерфейсом?

Няшный в моем понимании:
db.Employee.Insert(new Employee {fname = 'MrStop'});
или
db<Employee>.Insert(new {fname = 'MrStop'});

В общем, где то как тот так. Исключительно в своих эгоистичных интересах.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206323
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79вы серьезно считаете это : db["Employee"].AddDoc("{'fname':'MrStop'}");
няшным интерфейсом?

Няшный в моем понимании:
db.Employee.Insert(new Employee {fname = 'MrStop'});
или
db<Employee>.Insert(new {fname = 'MrStop'});

В общем, где то как тот так. Исключительно в своих эгоистичных интересах.

В первом посте, там есть ссылка и на книгу. Dnipro In Using.
И там как раз есть то, что описано у Вас.
Ведь Джисон, это всеголишь еще одна абстракция, удобная для тогоже Джаваскрипт, например.
Выше это полноценная и очень мощная ОРМ.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206330
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять таки, исключительно эгоистическое замечание.
По русски нельзя книгу?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206332
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще замечание
авторThe database required Windows platform. Installation package contains two applications. DniproServer.exe
Written on C++ and running as console application which opens port 4477.
А что, windows service не освоен? какой дурак будет db server держать консолькой? Любой туповатый сотрудник поддержки может легко сессию завершить, и весь сервис грохнется. Да даже и случайно можно это сделать
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206336
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79И еще замечание
авторThe database required Windows platform. Installation package contains two applications. DniproServer.exe
Written on C++ and running as console application which opens port 4477.
А что, windows service не освоен? какой дурак будет db server держать консолькой? Любой туповатый сотрудник поддержки может легко сессию завершить, и весь сервис грохнется. Да даже и случайно можно это сделать

Пока Beta и в отладке, то держу консолькой. Так удобней.
В консольке же можно запускать запросы и выполнять скрипты прямо на сервере.
Позже будут админ тулы и будет сервис.

На счет русского, надеюсь почитатели новой няшной отечественной базы данных переведут документацию,
там немного. В свою очередь обещаю перевод выложить в центральный репозиторий.
Это же относится и к другим языкам. Беларусский, Казахский ... поболее переводов много и разных.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206347
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopArm79Посмотрел примеры. И что, запросы тоже надо в JSON писать? Вообще же жесть.
Реализуй LINQ-провайдер, тогда хоть перспективы появятся.

Там есть Link Queries. Дот Нет, Джава, С++
Linq.NET провайдер не реализовую ввиду невозможности его портировать под другие языковые клиенты.Вот это прям аргумент :) У 10gen почему-то такая проблема не встала.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206349
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopМонгу в 10+ раз и тд.
ну да, ну да... а где бенчмарки с участием различных движков MongoDB посмотреть, трёх-четырёх?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206360
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopМонгу в 10+ раз и тд.
ну да, ну да... а где бенчмарки с участием различных движков MongoDB посмотреть, трёх-четырёх?

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

https://github.com/Bazist/DniproServer/blob/master/DniproDB/DniproDB/Test.h

На что способна ваша машинка с Днипро, можно узнать если в консоли запустить db.SelfTest()

Также я выкладывал выше результаты более высокоуровневых бенчмарков, через ДотНет провайдер.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206372
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также если будете делать тесты, учитывайте пожалуйста, что Mongo не поддерживает ACID и Транзакции.
А также при добавлении документа, он не индексируется по всем полям ( кроме блоб ). Так что желательно это учесть в бенчмарках.

Со своей стороны скажу, что архитектура Монги неочень.
Эти bson-ы никуда не годятся.
У меня подходы совершенно другие и резульаты совершенно другие.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206378
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopА также при добавлении документа, он не индексируется по всем полям ( кроме блоб ).
А если это и не нужно?

Например, добавляется сложный иерархический и весьма объемный json. Зачем мне индексировать все поля? Какой оверхед на индексы использует ваша СУБД?

Кстати, в PostreeSql используется бинарный формат json. Вы анализировали?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206387
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такова специфика базы.
Наконец с пользователя снят головняк добавлять индексы.
Если индекс не нужен. Ну там картинка видео длинный текст - создавайте блоб.

По поводу размеров тут все специфично. Инвертация дает компрессию данных. На это можно найти много примеров. Но есть и оверхед в других примерах. Для разных данных он будет разный как и везде
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206416
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop
На открытом. В рамках импортозамещения у вас там как я понял свои правила игры.
Зато на в рамках импортозамещения нет опасных конкурентов. Там качество может быть ниже, а цена выше. Такая возможность не часто бывает.

А на открытом начнется: Флэшбэки, Секции (партиции), Резервные БД, Синхронная репликация, Аналитические запросы с оконными ф-ми и т.д. и т.п. Тут надо что-то эдакое, чтобы прорваться.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206421
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopТакже если будете делать тесты, учитывайте пожалуйста, что Mongo не поддерживает ACID и Транзакции.
А также при добавлении документа, он не индексируется по всем полям ( кроме блоб ). Так что желательно это учесть в бенчмарках.
А на кой оно мне нужно?

stopСо своей стороны скажу, что архитектура Монги неочень.
Эти bson-ы никуда не годятся.
У меня подходы совершенно другие и резульаты совершенно другие.
Раскройте тему, о чём это Вы? О каком конкретно движке монги?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206424
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopТакова специфика базы.
Наконец с пользователя снят головняк добавлять индексы.
А у пользователей когда-то был такой головняк? :) И кстати какие структуры Вы для индексов используете?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206430
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну окей. Давайте начнем с азов.
Тут важно понять саму архитектуру.

Arm79Например, добавляется сложный иерархический и весьма объемный json.


Допустим у нас есть обьект, сложный, иерархический. Допустим это Джисон и занимает 1 мб.
В коллекции у вас таких джисонов допустим 100 тысяч.

Итак, берем формат

Arm79Кстати, в PostreeSql используется бинарный формат json. Вы анализировали?

И пытаемся понять, что у нас произойдет если мы захотим, допустим, вставить 1 млн атрибутов в середину ...
Один новый атрибут, для каждого документа. Очевидно что Монге или Постгресу прийдется идти и перезаписывать каждый такой бинарный джисон ! А сколько это займет времени ?
Не мало. Мегабайты прочитать и перезаписать. С некоторыми небольшими оптимизациями.

Вместе с тем Днипре достаточно просто вставить 1 млн ключей.
Днипра это сделает за считаные миллисекунды, разница буде в сотни раз с Монгой или Постгресом ...

Далее, тотже пример, с 100 млн джисонов нам нужно вычитать только по три аттрибута с каждого.
Что произойдет с бисонами и прочьим трешем ? Опять будем читать всё с небольшими оптимизациями ...

Днипре, вычитка нескольких ключей, опять шестизначные цифры в количестве запросов в секунду,
В Монге и Постгрю бинарный треш ...

Далее, компрессия. Днипра за счет инвертации будет хранить пути к атрибутам единожды, а Постгрес и Монга будет хранить дубли.
Документы однотипные все с дублями.

Короче Днипра ведет себя как поколоночное хранилище, хорошо оптимизироаное на вставки и апдейты документов,
(а что нам еще нужно?). Она предоставляет транзакции и ОРМ и имеет няшный синтаксис.
Вместе с тем Постгрес, Монго, Каучи и прочий западный треш спасет только выброс в море.

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

Сегодня в репо я добавил новый раздел. DniproExample там я буду собирать примеры работ на Днипре.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206434
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop, повторю вопрос: о каком движке монги Вы говорите?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206436
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ о каком движке компрессии?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206439
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перечитайте мой пост выше.
Также в книге моей есть архитектура. Самые первые страницы.

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

Кто тут неленивый, пишите бенчмарки. Но я бы не стал тратить на это время, если
вчитаться в то что я написал выше. Это глупо. Речь идет не о 10%, а о десятках и сотнях раз.
Именно во столько Днипра топчет всякие недолугие бисоны.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206446
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfostopНа открытом. В рамках импортозамещения у вас там как я понял свои правила игры.
Зато на в рамках импортозамещения нет опасных конкурентов. Там качество может быть ниже, а цена выше. Такая возможность не часто бывает.

А на открытом начнется: Флэшбэки, Секции (партиции), Резервные БД, Синхронная репликация, Аналитические запросы с оконными ф-ми и т.д. и т.п. Тут надо что-то эдакое, чтобы прорваться.

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

Если в импортозамещение уйдут базы тогоже Стоунберга, Пост Ингрес или Линтер то ИМХО, это будет шаг назад.
Нет никаких серьезных приимуществ у этих баз и собраны они по книжкам 20ти летней давности.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206482
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopПеречитайте мой пост выше.
Зачем? Чтобы ещё раз задать свои вопросы?

Короче ладно. Думаю Вы продолжите уходить от них, так что давайте прямо: Вы в современной монге не разбираетесь и пишите глупости.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206483
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopВ целом, чтобы не разбираться в множестве этого треша, могу дать следующий ориентир.
Если база не индексирует по всем полям джисон (как полнотекстовый движок) значит
она не использует инвертацию раз, не работает эффективно два.
А это вообще граничит с фееричным бредом.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206484
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopПеречитайте мой пост выше.
Зачем? Чтобы ещё раз задать свои вопросы?

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

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

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

Удачи в дальнейшем слепом освоении американских поделок )
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206486
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopЭтот разговор пуст. Поскольку нет понимания что же все-таки происходит внутри.
Вот это верная мысль, так как у Вас нет понимания того, что происходит внутри различных движков, доступных для монги.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206491
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopЭтот разговор пуст. Поскольку нет понимания что же все-таки происходит внутри.
Вот это верная мысль, так как у Вас нет понимания того, что происходит внутри различных движков, доступных для монги.

Я вам уже ответил на вопрос.
Современные движки монги - муссор. Обьяснил на пальцах как работают бисоны.
Пояснил почему такие подходы работают в десятки раз медленее.
Намекнул почему такие ущербные архитектуры не увидят транзакции и АСИД. Индусы могут поднапрячься конечно,
но на бенчмарках всеравно всех выведут на чистую воду.
Обратного вы доказать не сможете, поскольку это разговор механика (меня) и водителя (вас).
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206563
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopИ пытаемся понять, что у нас произойдет если мы захотим, допустим, вставить 1 млн атрибутов в середину ... Очевидно что Монге или Постгресу прийдется идти и перезаписывать каждый такой бинарный джисон...

Что за странная идея? Почему я что-то должен вставлять в какую то середину? Мне например, неочевидно.

stopНет никаких серьезных приимуществ у этих баз и собраны они по книжкам 20ти летней давности
Эвклидова геометрия тоже, чай, не на днях появилась, и до сих актуальна. Поэтому считать то, что появилось 20 лет назад, негодным - опрометчиво.

stopЕсли база не индексирует по всем полям джисон (как полнотекстовый движок) значит
она не использует инвертацию раз, не работает эффективно два.
Это совершенно неверное утверждение. Например, у меня есть сложный иерархический JSON, например, профиль клиента ЮЛ. Размер такого JSON может достигать нескольких мегабайт. Из всех реквизитов для поиска используется ну штук 50 реквизитов. Остальные несколько тысяч - идут в нагрузку. Вопрос - зачем мне тратить время на индексацию ВСЕХ реквизитов? Это бессмысленная трата времени.


stopОбратного вы доказать не сможете, поскольку это разговор механика (меня) и водителя (вас).
На всякий случай - тема называется "... предлагаю обсудить...". Не скатывайтесь в персональные оскорбления, иначе будете обсуждать вашу БД сами с собой. Проявите конструктивизм. Выложите тест, с загрузкой пользовательских JSON (а не то, что у вас 3 атрибута), чтобы каждый мог запустить у себя и рассказать о результатах.


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

И второй момент, который я хотел бы услышать - если я загружаю JSON с 2 тысячами атрибутов и размером 1 мегабайт, то какой оверхед по потребляемой памяти будет заниматься индексами?

ЗЫ Если речь о "импортозамещении", сравните ваше поделие с Tarantool
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206573
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Что за странная идея? Почему я что-то должен вставлять в какую то середину? Мне например, неочевидно.


Обычная идея, если знать что такое Джисон.
Например документ клиент, содержит внутри массив с покупками, которые постоянно обновляется.

Arm79Это совершенно неверное утверждение. Например, у меня есть сложный иерархический JSON, например, профиль клиента ЮЛ. Размер такого JSON может достигать нескольких мегабайт. Из всех реквизитов для поиска используется ну штук 50 реквизитов. Остальные несколько тысяч - идут в нагрузку. Вопрос - зачем мне тратить время на индексацию ВСЕХ реквизитов? Это бессмысленная трата времени.


А мне так удобней, можно искать по всем атрибутам. Строить разную аналитику.
Если работает быстрее, то почему бы и нет, почему меня должно заботить что чтото там не должно быть проиндексировано ?

stopВыложите тест, с загрузкой пользовательских JSON (а не то, что у вас 3 атрибута), чтобы каждый мог запустить у себя и рассказать о результатах.


Тестов у меня уже предостаточно. (из выложеных только уже под 20)
Если хотите свой сделать - пожалуйста делайте.

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


Если в одной транзакции миллион вставок то позволяет делать. Поскольку коммит на диск происходит только на последней операции
db.Commit().

stopИ второй момент, который я хотел бы услышать - если я загружаю JSON с 2 тысячами атрибутов и размером 1 мегабайт, то какой оверхед по потребляемой памяти будет заниматься индексами?


Я вам уже отетил. От компрессии до оверхеда. Для сложных иерархических обьектов скорее всего будет компрессия.
Подробнее - изучать архитектуру и пробовать.

stopЗЫ Если речь о "импортозамещении", сравните ваше поделие с Tarantool

Не вижу смысла сравнивать базу с полноценными транзакциями, ОРМ и джисонами
с обычным ИнМемори Key\Value. Ф-сть не эквивалентна.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206644
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79
ЗЫ Если речь о "импортозамещении", сравните ваше поделие с Tarantool
А Tarantool в списке для импортозамешения? Оно как бы связано с LUA? Но это вроде бразильский язык( хотя и юзается у нас в QUIK). Они что открытые или чьи?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206683
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoArm79ЗЫ Если речь о "импортозамещении", сравните ваше поделие с Tarantool
А Tarantool в списке для импортозамешения? Оно как бы связано с LUA? Но это вроде бразильский язык( хотя и юзается у нас в QUIK). Они что открытые или чьи?
В официальном сиске по моему нет, но mail.ru-шная разработка, opensource, LUA - это язых хранимок в TARANTool. Для CRUD операций не нужен.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206685
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopбазу с полноценными транзакциями, ОРМ и джисонами
с обычным ИнМемори Key\Value
Вы бы сначала почитали про них. Они тоже дают транзакции. В отличие от вас их разработка на продуктиве.
Когда ваши сервера будут обслуживать реальные миллионы обращений секунду, как у них, тогда вы можете так пренебрежительно относиться. Пока что у вас бета. И мы обсуждаем плюсы и минусы.

Кстати, а где это у вас ОРМ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206710
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79stopбазу с полноценными транзакциями, ОРМ и джисонами
с обычным ИнМемори Key\Value
Вы бы сначала почитали про них.


Про кого, про них ?

Arm79Они тоже дают транзакции.


Какие из трех стандартных видов поддерживают ? (ReadCommited, RepeatableRead, Snapshot)

Arm79В отличие от вас их разработка на продуктиве.
Когда ваши сервера будут обслуживать реальные миллионы обращений секунду, как у них, тогда вы можете так пренебрежительно относиться. Пока что у вас бета. И мы обсуждаем плюсы и минусы.


А вы уверены что у меня не также ?
Вообщето эта Днипра пришла к нам как форк из поисковика.
А в поисковике терабайты данных и при реиндексировании
нагрузка на ядро миллиарды запросов в час.

К томуже, нет у Меил ру никаких миллионов обращений в секунду.
У Гугла даже таких нагрузок нет. Если про реальные пользовательские обращения,
то всего около 3 миллиардов запросов в сутки.

Arm79Кстати, а где это у вас ОРМ?

А вы уверены что у них не Key\Value ?
У меня, как мы уже разобрались, можно записать в ламповом шарпе на няшном синтаксисе чтото вроде (ORM)

Код: c#
1.
db.AddDoc(obj);



И всё готово. Сложный иерахический обьект сериализирован в джисон, добавлен в базу
и проиндексирован по всем полям. А каже это сделать на Тарантуле ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206719
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopArm79Вы бы сначала почитали про них.


Про кого, про них ?
Про тарантул. Раз уж речь шла в последних постах о них.

stopА вы уверены что у меня не также ?
Нет, не уверен. Но я же и не отрицал, что у вас не так.

stopК томуже, нет у Меил ру никаких миллионов обращений в секунду.
Да ладно? ))) Вообще то каждый хит у них проверяется на наличие сессионных ключей либо их выдачу по логину/паролю + рекламная сеть. На конфе они как раз говорили, что 1-2 млн обращений в сек обслуживается 4 тарантулами, и около 10 млн (и 12 тарантулов) у них уходит на рекламную сеть. По мне так впечатляющие цифры.


stopArm79Кстати, а где это у вас ОРМ?

А вы уверены что у них не Key\Value ?
Какое мне дело до "них"? Вы сказали - у меня ОРМ. Я спросил - где? То, что у вас "няшный" синтаксис - это не ОРМ. Безусловно - это плюс, но тогда нужно так и сказать - дружелюбный синтаксис. А ORM - это немного другое

stopА каже это сделать на Тарантуле ?
Насколько я помню, тарантул не работает напрямую с JSON. Там данные - бинарные + 2 вида индексов + вторичные индексы + LUA в качестве процедурного языка. Mail.ru декларирует ACID. И я им верю. Кстати, тарантул появился в Azure

ЗЫ Когда вы выкатите сборку под windows-сервис, я обещаюсь поставить и погонять вашу СУБД. С консолькой я даже заморачиваться не хочу.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206723
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Какое мне дело до "них"? Вы сказали - у меня ОРМ. Я спросил - где? То, что у вас "няшный" синтаксис - это не ОРМ. Безусловно - это плюс, но тогда нужно так и сказать - дружелюбный синтаксис. А ORM - это немного другое


Ничего не понял. Вы отрицаете что это ничто иное как ORM ?
А что же тогда в вашем понимании настоящая ОРМ ?

Arm79Насколько я помню, тарантул не работает напрямую с JSON. Там данные - бинарные + 2 вида индексов + вторичные индексы + LUA в качестве процедурного языка. Mail.ru декларирует ACID. И я им верю. Кстати, тарантул появился в Azure


Какая разница что там декларируют, если вам тяжело это применить на практике.
Key\Value тяжело применять в обычных проектах, Quick Start.
Поэтому вы не смогли переписать мой пример на шарпе на обычную ОРМ задачу.

Arm79ЗЫ Когда вы выкатите сборку под windows-сервис, я обещаюсь поставить и погонять вашу СУБД. С консолькой я даже заморачиваться не хочу.

А я вот не советую. И настоятельно рекомендую юзать Тарантул.
В воспитательных целях.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206724
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

Ну если вы считаете так, то без проблем. Для меня ваша СУБД более не интересна. Удачи в поисках менее требовательных пользователей.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206725
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79stop,

Ну если вы считаете так, то без проблем. Для меня ваша СУБД более не интересна. Удачи в поисках менее требовательных пользователей.

Мое мнение, любые требования должни вести к упрощению использованию СУБД а не усложнению. На первых этапах так точно.
Поэтому винсервис больше напоминает требования танцора.
Инсталляция сервиса будет как минимум подразумевать отдельный пакет инсталляции или запуски батников,
а также разбирательства что пошло не так и копания в Вин Логах в случае ошибок.

Между тем, консоль просто нужно запустить, предоставляет интерпретатор запросов и выводит ошибки, в случае чего.
Думаю кто захочет попробовать, смирится с тем что нет ВинСервиса.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206783
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopЕсли в одной транзакции миллион вставок то позволяет делать. Поскольку коммит на диск происходит только на последней операции
db.Commit().

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


дистр тока для Win будет поддерживаться?

как с масштабированием на несколько серверов?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206850
Vadim999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бугага. Почитал тред под пивко. Весело то как. Топикстартер знатный тролль, а вы ребята ему поддакиваете, советы даёте, а ведь серьезные мужики :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206922
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)stopЕсли в одной транзакции миллион вставок то позволяет делать. Поскольку коммит на диск происходит только на последней операции
db.Commit().

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


Если речь о раздельных транзакциях, тоесть после каждой транзакции гарантированый
flush() на диск, то 250-300 тыс\сек транзакций на уровне ядра. Flush на диск медленая операция.

kealon(Ruslan)дистр тока для Win будет поддерживаться?



Под Линукс запланирован порт к концу мая. Какието работы уже ведутся в этом направлении.

kealon(Ruslan)как с масштабированием на несколько серверов?


Эти работы тоже запланированы, но пока я не вижу реальных проектов где нужна срочно такая штука.
Вы же учитывайте, что вот эти цифры в х10 раз, в х20 раз быстрее, по сути означает
что можно выбросить N серверов на других базах и оставить 1 на днипре + 1 зеркало, опционально.

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

Я кстате добавил интересный раздел, примеры использования
https://github.com/Bazist/DniproExamples

Так вот болванка на этот форум на MVC.NET+DniproDB можно записать в сотню другую строк кода и час два времени.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206924
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim999Бугага. Почитал тред под пивко. Весело то как. Топикстартер знатный тролль, а вы ребята ему поддакиваете, советы даёте, а ведь серьезные мужики :)

Уважаемый, меня тут знают как человека который копает темы по базам данных с 2010 года, тоесть шесть лет.
А вы кто такой ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206954
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopVadim999Бугага. Почитал тред под пивко. Весело то как. Топикстартер знатный тролль, а вы ребята ему поддакиваете, советы даёте, а ведь серьезные мужики :)

Уважаемый, меня тут знают как человека который копает темы по базам данных с 2010 года, тоесть шесть лет.
А вы кто такой ?интересно откуда 6 лет, когда Вы неделю назад зарегистрировались?
я кстати тут с основания сайта, но про Вас не в курсе
кто Вы такой?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39206968
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperинтересно откуда 6 лет, когда Вы неделю назад зарегистрировались?
я кстати тут с основания сайта, но про Вас не в курсе
кто Вы такой?

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

А теперь я бы хотел вернуться к конструктивным и техническим вопросам, ведь именно ради них
я нахожу время сюда вообще заходить.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207014
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop....
На счет русского, надеюсь почитатели новой няшной отечественной базы данных переведут документацию,
там немного. В свою очередь обещаю перевод выложить в центральный репозиторий.
Это же относится и к другим языкам. Беларусский, Казахский ... поболее переводов много и разных.

Вы бы на английском грамотно писали, был бы смысл. А то глаз режет.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207030
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я отвечаю на 99% за техническую часть проекта.
С документацией естественно есть проблемы, если у Вас есть любые предложения по улучшению, вы владеете английским на хорошем уровне и Вы видите явные ишью которые хотите улучшить, то рекомендую написать в Гит ишью с конкретными предложениями по правкам. Всегда открыт к любому сотрудничеству.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207044
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гм, что-то мне кажется, это какой-то цирк.
18998114
stopTime: 134 ms. Queries/sec: 7462686
1млн запросов за 134 миллисекунды? То есть, на 1 запрос - 134 пикосекунды?
По-моему, это какие-то рандомные циферки.
stopА в поисковике терабайты данных и при реиндексировании нагрузка на ядро миллиарды запросов в час.
эээ, какое еще ядро? кластер же. вся эта нагрузка прекрасно распределяется, и никакой "один" сервер никакие миллиарды запросов в час не выполняет.
stopВы же учитывайте, что вот эти цифры в х10 раз, в х20 раз быстрее, по сути означает
что можно выбросить N серверов на других базах и оставить 1 на днипре + 1 зеркало, опционально.
я так понимаю, что Днипро - это Cache номер два, как минимум. РСУБД выкинуть, все переписать на JSON?
stopна диск, то 250-300 тыс\сек транзакций на уровне ядра.
на какой именно диск?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207050
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендую бенчмарков внимательнее почитать.
Исходник я присылал.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207135
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvгм, что-то мне кажется, это какой-то цирк
На арене Базист жонглирует своим стебельком в ожидании очередного бана..
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207155
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут скорее зритель.
А на арене те, кто не знает таблицы умножения.

kdvгм, что-то мне кажется, это какой-то цирк.
18998114
stopTime: 134 ms. Queries/sec: 7462686
1млн запросов за 134 миллисекунды? То есть, на 1 запрос - 134 пикосекунды ?
По-моему, это какие-то рандомные циферки.

Для справки, 1 пикосекунда это одна триллионная секунды.
Ктото ошибся на три порядка. Правильный ответ 134 наносекунды.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207197
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopПравильный ответ 134 наносекунды.
подумаешь, наносекунды с пикосекундами перепутал...
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207761
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил метод для отката базы данных на любую дату с точностью до секунды:

Формат
db.RestoreOnDate(2016,04,04, 12,15)

Помогает если нужно откатить всю базу данных "на вчера".
(были утрачены данные неправилой бизнесс логикой приложения, запущеными скриптами, единичными апдейтами и тд)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207829
Фотография roden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop, думаю, пора уже предлагать Сбербанку вместо Оракла.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207839
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rodenstop, думаю, пора уже предлагать Сбербанку вместо Оракла.

В реестре же толь барский Линтер.
А эта база для рабочих и крестьян.

Кстате, что там у "современного Монго" с этим делом ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207961
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В книгу добавил еще три новых раздела из новой функциональности

Динамические запросы
Блоб поля
Коллекции
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39207984
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stoprodenstop, думаю, пора уже предлагать Сбербанку вместо Оракла.

В реестре же толь барский Линтер.
А эта база для рабочих и крестьян.

Кстате, что там у "современного Монго" с этим делом ?
Насколько я знаю современная Монго внутри службы "Одного окна" крутится.
То есть как раз таки для рабочих и крестьян трудится.

Причём как на местах, так и центральном сервере.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208032
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, я про это у монго

stopДобавил метод для отката базы данных на любую дату с точностью до секунды:

Формат
db.RestoreOnDate(2016,04,04, 12,15)

Помогает если нужно откатить всю базу данных "на вчера".
(были утрачены данные неправилой бизнесс логикой приложения, запущеными скриптами, единичными апдейтами и тд)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208094
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopНет, я про это у монго

stopДобавил метод для отката базы данных на любую дату с точностью до секунды:

Формат
db.RestoreOnDate(2016,04,04, 12,15)

Помогает если нужно откатить всю базу данных "на вчера".
(были утрачены данные неправилой бизнесс логикой приложения, запущеными скриптами, единичными апдейтами и тд)
Ты же механик и должен знать как это в Монге делается, разве нет?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208107
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopНет, я про это у монго

пропущено...

Ты же механик и должен знать как это в Монге делается, разве нет?

Механик должен знать хорошо внутренности и приемы сборки и тюнинга автомобиля, который собирается с нуля в его гараже.
Знать что там в салонах автодиллеров продают за стоковый хлам, задача менеджеров по продажам американских авто.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208114
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAпропущено...

Ты же механик и должен знать как это в Монге делается, разве нет?

Механик должен знать хорошо внутренности и приемы сборки и тюнинга автомобиля, который собирается с нуля в его гараже.
Знать что там в салонах автодиллеров продают за стоковый хлам, задача менеджеров по продажам американских авто.
Однако упоротый механик :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208185
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю что США нужно нанимать более качественные кадры в пятую колонну. Кадры которые выпячивают заведомо худший товар противника на основании своей глупости никуда не годятся. Странно что ними не занимаются службы вроде ФСБ
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208197
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopЯ думаю что США нужно нанимать более качественные кадры в пятую колонну. Кадры которые выпячивают заведомо худший товар противника на основании своей глупости никуда не годятся. Странно что ними не занимаются службы вроде ФСБ
Так в теме указаны рамки импортозамещения в США? Иначе при чем тут вообще ФСБ,
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208314
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пошутил, конечно представляю другую страну.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208355
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
stopskyANAпропущено...

Ты же механик и должен знать как это в Монге делается, разве нет?

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

Чукча не читатель, чукча писатель.
Все нормальные БД (и языки программирования, кстати) начинались с того, что автор, великолепно разбираясь в альтернативах, определял, что по ряду параметров они его не устраивают. И уже исходя из своего понимания этого, предлагал свое решение. Удачное или нет - это другой вопрос.
Ни одна нормальная СУБД не вышла из идеи - а давай-ка я что-то свое запилю! С блэкджеком и ... !

SO FAST - это вообще прекрасно. Где сравнение с ведущими СУБД на типичных задачах? Кому нужны Ваши мили, нано, пико и прочие секунды?

PS Вы машину с нуля в гараже собирали? Тогда не нужно писать о том, чего не знаете.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208382
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adxstopпропущено...
Механик должен знать хорошо внутренности и приемы сборки и тюнинга автомобиля, который собирается с нуля в его гараже.
Знать что там в салонах автодиллеров продают за стоковый хлам, задача менеджеров по продажам американских авто.
Чукча не читатель, чукча писатель.


Именно. Потому что если бы вы читали прежде чем писали, то.

AdxВсе нормальные БД (и языки программирования, кстати) начинались с того, что автор, великолепно разбираясь в альтернативах, определял, что по ряду параметров они его не устраивают. И уже исходя из своего понимания этого, предлагал свое решение. Удачное или нет - это другой вопрос.
Ни одна нормальная СУБД не вышла из идеи - а давай-ка я что-то свое запилю! С блэкджеком и ... !


Знали бы о приимуществах этой базы данных и предисторию создания и

AdxSO FAST - это вообще прекрасно. Где сравнение с ведущими СУБД на типичных задачах? Кому нужны Ваши мили, нано, пико и прочие секунды?


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

И после этого
AdxPS Вы машину с нуля в гараже собирали? Тогда не нужно писать о том, чего не знаете.

Действительно не писали того, чего не знаете.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208390
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopИ нашли бы ссылку на бенчмарки с другими базами данных
Хреновый пиар. Вместо того, чтобы промоутер (это вы) давал ссылки на бенчмарки на каждый такой вопрос, вы начинаете требовать от оппонентов, чтобы они сами эти ссылки искали. Более того, вы даже делаете это в обвинительном тоне.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208402
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совершенно ничего не требую. Более того, написал отличную документацию от архитектуры до примеров использоания в 45 страниц где потратив пару вечеров интересующийся могбы при теплом ламповом домашнем свете во всем разобраться.

Если у человека не цель узнать чтото новое, а просто зайти и нахамить мне, то зачемже ему отвечать ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208553
_хех
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
блин а почему не импортозаместили английский синтаксис? :)

должно быть
Коллекция _хрень

_хрень.Добавить ..... :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208588
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
stop Потому что если бы вы читали прежде чем писали, то.
Знали бы о приимуществах этой базы данных и предисторию создания и


Т.е. это не Ваша обязанность предоставить, а моя искать? Это вообще такой подход к распространению продукта или это лично для меня?
Я должен открыть тему и в первом посте получить всю информацию. Или ссылку на нее.
Не, для студенческой поделки такой подход нормален, но в теме есть слово ИМПОРТОЗАМЕЩЕНИЕ!
Что Вы хотите этим замещать?

stopAdxSO FAST - это вообще прекрасно. Где сравнение с ведущими СУБД на типичных задачах? Кому нужны Ваши мили, нано, пико и прочие секунды?


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


Т.е. нано и пр. ерунду Вы выложили на базовую страницу, а что-то полезное нужно искать? Вам русским языком объясняю, никому Ваш высосанный из пальца пример не нужен. Есть типовые операции, нужна информация по ним. А так это детский лепет.

stopИ после этого
AdxPS Вы машину с нуля в гараже собирали? Тогда не нужно писать о том, чего не знаете.

Действительно не писали того, чего не знаете.

Т.е. машину в гараже Вы собирали с нуля?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208598
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
stop Более того, написал отличную документацию от архитектуры до примеров использоания в 45 страниц где потратив пару вечеров интересующийся могбы при теплом ламповом домашнем свете во всем разобраться.

Если у человека не цель узнать чтото новое, а просто зайти и нахамить мне, то зачемже ему отвечать ?

Ни в коем случае не ставлю своей целью хамить Вам. Если то, что мне не нравится Ваш подход к делу, называется хамством - тут ничего не поделаешь. Что-то новое я могу узнать из множества источников, технологии разработки не стоят на месте, Ваша документация вряд ли меня поразит. Вы должны как разработчик убедить пользователей ее читать. Пока аргументов не вижу.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208610
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
Вот примитивнейший пример (так делать не надо, мало тестов, типовые задачи не полностью охвачены, но все же).
https://habrahabr.ru/post/274313/
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208699
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докажите Вашу персональную ценность для проекта.
Зачем необходимо Вас учить не с помощью книг и материалов которые уже специально для этого написаны,
а индивидуальными лекциями, повторяя то что уже написано персонально Вам.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208707
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможность Монго Днипро MS SQLПростой синтаксис Нет Да ДаОРМ Нет Да Да(сторонняя)Транзакции Нет Да три вида Да три видаРезолв дедлоков с подробным логированием Нет Да НетНаличие Джоин Нет Да ДаМинимальная блокировка на уровне Целого документа Атрибута документа На уровне строкиВозможность откатить базу данных на определенную дату Нет Да Да (в спец. режиме)Примерная скорость работы x1 x10 x0.5АСИД нет да даИнновационный подход Да Да НетСтрана производитель США Украина США
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208709
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблица очень приблизительная, просто общее т.с. впечетление.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208738
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
stopДокажите Вашу персональную ценность для проекта.
Зачем необходимо Вас учить не с помощью книг и материалов которые уже специально для этого написаны,
а индивидуальными лекциями, повторяя то что уже написано персонально Вам.

Мою персональную ценность?! %)
Я никак не пойму, Вы продукт предлагаете или ищете помощь в разработке/тестировании?
Представьте, Вы заходите в салон Билайн и спрашиваете? А чем ваши тарифы лучше Мегафона? А ему - а что Вы лично можете сделать для Билайн, чтобы мы Вам предоставляли информацию? Э ...

Таблица супер.

stopВозможность Монго Днипро MS SQLПростой синтаксис Нет Да ДаОРМ Нет Да Да(сторонняя)Транзакции Нет Да три вида Да три видаРезолв дедлоков с подробным логированием Нет Да НетНаличие Джоин Нет Да ДаМинимальная блокировка на уровне Целого документа Атрибута документа На уровне строкиВозможность откатить базу данных на определенную дату Нет Да Да (в спец. режиме)Примерная скорость работы x1 x10 x0.5АСИД нет да даИнновационный подход Да Да НетСтрана производитель США Украина США

Первую и предпоследнюю строчку выкиньте сразу. Это чистое ИМХО.
Скорость работы - тоже весело. Уберите и не позорьтесь.
Откат базы на дату - это для крошечных проектов, которым не нужна скорость. В серьезных базах есть backup, который решает критические проблемы. Откат базы на дату категорически не допустим при штатной работе. Впрочем, лишней возможность не будет.
Наличие join - это не преимущество, это особенность языка.
"Резолв деадлоков" невозможен по определению. Если он возможен - то это не дедлок.
И для самообразования - в MS SQL пять видов транзакций.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208748
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopВозможность Монго Днипро MS SQLПростой синтаксис Нет Да ДаОРМ Нет Да Да(сторонняя)Транзакции Нет Да три вида Да три видаРезолв дедлоков с подробным логированием Нет Да НетНаличие Джоин Нет Да ДаМинимальная блокировка на уровне Целого документа Атрибута документа На уровне строкиВозможность откатить базу данных на определенную дату Нет Да Да (в спец. режиме)Примерная скорость работы x1 x10 x0.5АСИД нет да даИнновационный подход Да Да НетСтрана производитель США Украина США
Почему Вы выбрали Россию, если конкурируете с США? Ведь рынок США больше.
Кроме того, все равно интересно сравнение не с США, а с импортзамещенскими СУБД, раз тема так называется.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208759
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdxПервую и предпоследнюю строчку выкиньте сразу. Это чистое ИМХО.


Это не ИМХО. Мне очень мало задают вопросов, что чтото не понятно в синтаксисе.
Синтаксис - одна из самых сильных сторон базы, ведь с ним сталкиваешся каждый день.

AdxСкорость работы - тоже весело. Уберите и не позорьтесь.


Это обьективная реальность. Кто понял архитектуру, тот понял причины такой скорости.

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


Так работает Оракл или Днипро. Остальные рассказывают что "это не нужно".

AdxНаличие join - это не преимущество, это особенность языка.


В документалке это приимущество. Не нужно лепить все в один документ, а можно джоинить документы.

Adx"Резолв деадлоков" невозможен по определению. Если он возможен - то это не дедлок.


Мой резолв, это обычный килл одной из транзакций. Но в отличии от разных MS SQL я в лог бросаю, кто залочился,
на каких документах, на каких атрибутах, какие именно атрибуты документов вошли в взаимный дедлок.
Это штатный режим работы сервера.

AdxИ для самообразования - в MS SQL пять видов транзакций.

Я думаю в новых версиях даже больше. Но основных я бы выделил три.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208760
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстате к концу недели возможно мы увидим полноценные Каскадные транзакции.
Проект необходимых работ уже готов.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208761
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoПочему Вы выбрали Россию

Кого интересует эта бензоколонка ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208772
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StopСсылка на репо и описание .
Там же есть ссылка на самоучитель, если подробнее.
Рад за вас.

Просьба поместить в wiki вашего проекта описание архитектуры вашей базы.
Для меня так очень интересно понять почему вы выбрали тот или иной формат представления для хранения
данных и почему?

Сегодня на habrahabr появилась статья, что на torrent хакеры выложили данные об 50 млн. жителей Турции.
http://185.100.87.84/ Turkish Citizenship Database

Может быть для тестов вам эта таблица пригодится.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208778
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.

Владимир2012Просьба поместить в wiki вашего проекта описание архитектуры вашей базы.


Один из первых разделов по архитектуре, с иллюстрациями Dnipro In Using

Под капотом Днипры расположены два высокооборотистых Key\Value движка, основаных на Trie структурах.
Каждый такой движок обрабатывает до 10М вставок\чтений в секунду. После разных абстракций и парсеров,
с этой невероятной мощности остаются копейки, но этого хватает чтобы всеравно быть быстрее многих, если не всех.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208781
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОРМ для документоориентированной СУБД - это пять :)

Действительно для монги нет ОРМ, но есть ODM.
Рестор на определённое время делается через mongorestore + oplog.
Минимальная блокировка зависит от используемого движка (монга позволяет реализовать свой собственный concurrency control).

Кстати что насчёт валидации?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208793
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAОРМ для документоориентированной СУБД - это пять :)
Действительно для монги нет ОРМ, но есть ODM.


Под .NET версия есть ? Или только для ПХП.
Прокси десериализация (частичная вычитка обьекта по шаблону без его пересоздания полностью) имеется ?

skyANAРестор на определённое время делается через mongorestore + oplog.


Ок

skyANAМинимальная блокировка зависит от используемого движка (монга позволяет реализовать свой собственный concurrency control).


Я сомневаюсь что это вообще возможно.
Это очень фундаментальная штука прошитая в ядре системы.

skyANAКстати что насчёт валидации?

Всё хорошо.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208799
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopОдин из первых разделов по архитектуре, с иллюстрациями Dnipro In Using
Спасибо.
Вот почитал некоторые страницы с http://blog.pikosec.com/
У вас имеется одно любопытное утверждение / http://blog.pikosec.com/?p=163/

Нет, давайте на чистоту. Если Вы хотите создать высокопроизводительную базу данных и в голову приходят только разные виды бинарных деревьев, хештаблицы и радиусные деревья описаные в разных трудах свыше 20 лет назад, то не стоит даже начинать. Скорей всего прийдется боротся за те пресловутые 5% усовершенствования технологии и конечноже проиграть. Поскольку до Вас это поле вспахали множество ученных и инженеров и врядли они чегото действительно ценного там пропустили.

Спорить не люблю.
Просто выскажу некое иное суждение.
Еще толком и пахать то не начинали ...
/намек на то, что неиспользованный потенциал огромен/
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208800
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012stopОдин из первых разделов по архитектуре, с иллюстрациями Dnipro In Using
Спасибо.
Вот почитал некоторые страницы с http://blog.pikosec.com/
У вас имеется одно любопытное утверждение / http://blog.pikosec.com/?p=163/

Нет, давайте на чистоту. Если Вы хотите создать высокопроизводительную базу данных и в голову приходят только разные виды бинарных деревьев, хештаблицы и радиусные деревья описаные в разных трудах свыше 20 лет назад, то не стоит даже начинать. Скорей всего прийдется боротся за те пресловутые 5% усовершенствования технологии и конечноже проиграть. Поскольку до Вас это поле вспахали множество ученных и инженеров и врядли они чегото действительно ценного там пропустили.

Спорить не люблю.
Просто выскажу некое иное суждение.
Еще толком и пахать то не начинали ...
/намек на то, что неиспользованный потенциал огромен/

Наконецто, хоть первый комментарий человека, который в чем то пытается разобраться.
Еще раз Спасибо.

Этот абзац относится скорее к реляционным базам данных,
совершенствование которых проходит уже около 30 лет.
Мне кажется с этих технологий уже выжали максимум.
Поэтому, если нужно добиться других качественных результатов,
пора выходить на новый виток эволюции.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208806
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМинимальная блокировка зависит от используемого движка (монга позволяет реализовать свой собственный concurrency control).


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

Поэтому вообще концепция "сменить движок Монги на более современный".
WiredTiger или какой там последний ? Кажется мне достаточно странной.
Это чтоже, разработчики сразу не угадали и не смогли собрать эффективное ядро системы ?
Вообщем, спорить не буду, но сам по себе момент очень спорный.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208811
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopПод капотом Днипры расположены два высокооборотистых Key\Value движка, основаных на Trie структурах
Почему trie? Тут говорится, что на выборках сбалансированное avl-дерево будет быстрее, да и памяти меньше забирает.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208817
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы все-таки искренне советовал ТС обратить внимание на грамотность языка в документации, как английского, так и русского. Неграмотность заметно понижает шансы на успех.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208821
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79stopПод капотом Днипры расположены два высокооборотистых Key\Value движка, основаных на Trie структурах
Почему trie? Тут говорится, что на выборках сбалансированное avl-дерево будет быстрее, да и памяти меньше забирает.

trie - это и есть модификация префиксного дерева.
На хабре достаточно примитивная "иллюстративная" имплементация.
Но общую идею конечно понять можно.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208824
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stoptrie - это и есть модификация префиксного дерева.
На хабре достаточно примитивная "иллюстративная" имплементация.
Но общую идею конечно понять можно.
HArrayInt VS std::map http://wiki.pikosec.com/index.php?title=HArrayInt_VS_std::map

Неплохо, неплохо, ...

Код boost и stl трудноватенько понять /для меня по крайней мере/.
Как по мне - "бред сивой кобылы".
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208830
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAОРМ для документоориентированной СУБД - это пять :)
Действительно для монги нет ОРМ, но есть ODM.


Под .NET версия есть ? Или только для ПХП.
Родной C# Driver.. Но есть и сторонние ODM.

stopПрокси десериализация (частичная вычитка обьекта по шаблону без его пересоздания полностью) имеется ?
Проекции что-ли? Так с самого начала.

stopskyANAМинимальная блокировка зависит от используемого движка (монга позволяет реализовать свой собственный concurrency control).


Я сомневаюсь что это вообще возможно.
Почитай документацию.

stopskyANAКстати что насчёт валидации?

Всё хорошо.
Покажи как задать валидатор на уровне коллекции.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208833
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAМинимальная блокировка зависит от используемого движка (монга позволяет реализовать свой собственный concurrency control).


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

Поэтому вообще концепция "сменить движок Монги на более современный".
WiredTiger или какой там последний ? Кажется мне достаточно странной.
Это чтоже, разработчики сразу не угадали и не смогли собрать эффективное ядро системы ?
Вообщем, спорить не буду, но сам по себе момент очень спорный.
Слушай, зачем гадать? Почитай документацию, она в открытом доступе. Почитай примеры переходов.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208851
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПокажи как задать валидатор на уровне коллекции.

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

Если речь про чтото сложней, то нет. Не имплементировано еще.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208854
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAРодной C# Driver.. Но есть и сторонние ODM.


Речь не о драйвере, а ORM.
И что за странное название ODM. (Object Document Mapping ?)
Тогда почему для RDBMS не назвали OTM (Object Table Mapping)

Мне больше нравится название ORM, незачем тут выдумывать какихто велосипедов.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208927
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAРодной C# Driver.. Но есть и сторонние ODM.


Речь не о драйвере, а ORM.
И что за странное название ODM. (Object Document Mapping ?)
Тогда почему для RDBMS не назвали OTM (Object Table Mapping)

Мне больше нравится название ORM, незачем тут выдумывать какихто велосипедов.
В гугл что-ли забанили?

ODM - Object-Document Mapping (Mapper)
ORM - Object- Relational Mapping (Mapper).

Кстати, почему ты написал RDBMS ( Relational database management system), а не TDBMS, следуя своей логике? :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208933
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop, что касается драйвера, то что у тебя "можно записать в ламповом шарпе на няшном синтаксисе чтото вроде (ORM)" есть и в .NET MongoDB Driver.

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

Также Fluent API, поддержка dynamic, подержка async и await...
В качестве экспериментальных фич добавили логирование и счётчики производительности, чтобы можно было при желание посмотреть, что происходит realtime внутри...
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39208937
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAПокажи как задать валидатор на уровне коллекции.

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

Если речь про чтото сложней, то нет. Не имплементировано еще.
Речь про валидацию на уровне базы, а не классов C#. Запишем, что у тебя её нет.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209023
Mike_za
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А когда сравнивали с мс скл по скорости, про инмемори не забыли?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209031
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike_zaА когда сравнивали с мс скл по скорости, про инмемори не забыли?
У СУБД класса импортозамещение, вроде, нет никаких инмемори и колончноориентированных таблиц, секционирований. Поэтому какой смысл не забывать?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209041
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike_zaА когда сравнивали с мс скл по скорости, про инмемори не забыли?

Если и там и там данные гарантировано комитятся на диск, соблюдая ACID,
то InMemory (на самом деле не совсем так, ибо блоб лежит на диске, но упустим) то достаточное наличие памяти
на сервере здесь выступает просто как требование оборудования.

К томуже MS SQL тоже не бегает постоянно на диск, а вполне себе позволяет кешировать данные,
особенно в случае бенчмарков с однотипными запросами на одних и техже небольших таблицах.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209050
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstop, что касается драйвера, то что у тебя "можно записать в ламповом шарпе на няшном синтаксисе чтото вроде (ORM)" есть и в .NET MongoDB Driver.

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

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
string connectionString = "mongodb://localhost:27017";
            MongoClient client = new MongoClient(connectionString);
            IMongoDatabase database = client.GetDatabase("test");

            //Func(client);

            var collection = database.GetCollection<BsonDocument>("people");
            //collection.Indexes.CreateOneAsync()
            List<BsonDocument> docs = new List<BsonDocument>();

            for (int i = 0; i < 100000; i++)
            {
                BsonDocument person1 = new BsonDocument
                {
                    {"Name", "Bill"},
                    {"Age", 32},
                    {"Languages", new BsonArray{"english", "german"}}
                };

                docs.Add(person1);
            }

            Stopwatch stop = new Stopwatch();
            stop.Start();

            Task task = SaveDocs(collection, docs);
            task.Wait();
            task.GetAwaiter().GetResult();

            stop.Stop();

            Console.WriteLine(stop.ElapsedMilliseconds.ToString());



Вопросов два.
Как избавится от дополнительной прослойки Bson, чтобы вставлять обьекты напрямую. Ведь это же ОРМ ?

Как сделать короче код, чтобы он выглядел както так, как у Днипры

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
DniproDB db = new DniproDB("127.0.0.1", 4477);

            List<string> docs = new List<string>();
            for (int i = 0; i < 100000; i++)
            {
                docs.Add(new {Name = "Bill", Age = 32, Languages = new string[] {"english","german"}});
            }

            Stopwatch s = new Stopwatch();
            s.Start();

            db.AddDocs(docs);
            
            s.Stop();
                        
            Console.WriteLine(s.ElapsedMilliseconds.ToString());



Спасибо.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209053
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, эта строчка неправильная
List<string> docs = new List<string>();
List<object> docs = new List<object>();
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209064
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
stop
AdxОткат базы на дату - это для крошечных проектов, которым не нужна скорость. В серьезных базах есть backup, который решает критические проблемы. Откат базы на дату категорически не допустим при штатной работе. Впрочем, лишней возможность не будет.


Так работает Оракл или Днипро. Остальные рассказывают что "это не нужно".



Я прекрасно знаю, что в ORACLE это есть. В MS SQL есть сторонний продукт, который это реализует без проблем. Но это действительно не нужно. Впрочем ничего плохого про эту возможность я не говорил, есть разные ситуации. Где-то откатить базу на день назад не страшно. Возможность можно отнести к плюсам базы, не возражаю.

stopAdx"Резолв деадлоков" невозможен по определению. Если он возможен - то это не дедлок.


Мой резолв, это обычный килл одной из транзакций. Но в отличии от разных MS SQL я в лог бросаю, кто залочился,
на каких документах, на каких атрибутах, какие именно атрибуты документов вошли в взаимный дедлок.
Это штатный режим работы сервера.


Посмешили. Дедлоки везде так "разрешаются", это базовая особенность СУБД. И с чего Вы решили, что MS SQL в лог такую информацию не пишет?

stopAdxИ для самообразования - в MS SQL пять видов транзакций.

Я думаю в новых версиях даже больше. Но основных я бы выделил три.


Ровно пять. И все основные. Просто у Вас три, и Вы считаете их основными.
Что касается "новых версий". Вы что, хотите конкурировать со старыми? MS SQL 7.0?

Вообще я бы не стал бы сравнивать Ваш продукт с MS SQL.
PostgreSQL, Mysql, Mongodb - сравнивать нужно с ними.
PS
Остальные заявления я комментировать не буду, для меня там все очевидно. Свое мнение я высказал, конструктива нет. Пусть другие комментируют, если есть желание.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209067
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос снимается, с Монго драйвером .
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209079
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
Добавлю по скорости MS SQL. Посмотрел Ваше сравнение.
Если бы у меня сотрудник написал написал такой код, какой написали Вы, я бы его уволил. Ну не уволил, но такого на работу бы точно не взял. Вы абсолютно ничего не понимаете в RDBMS. Да-да, я понимаю что Вы не "чукча читатель", но тогда не позорьтесь, не приводите такие примеры.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209081
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdxВы решили, что MS SQL в лог такую информацию не пишет?


Можно посмотреть вид и формат лога, в котором можно совершенно недвузначно разобраться какие запросы и на каких строчках вошли в дедлок ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209086
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdxДобавлю по скорости MS SQL. Посмотрел Ваше сравнение.
Если бы у меня сотрудник написал написал такой код, какой написали Вы, я бы его уволил. Ну не уволил, но такого на работу бы точно не взял. Вы абсолютно ничего не понимаете в RDBMS. Да-да, я понимаю что Вы не "чукча читатель", но тогда не позорьтесь, не приводите такие примеры.

Этот код писал не я, а писал такойже как Вы девелопер, который решил во что бы то нистало "показать как надо".
У Вас есть шанс переписать его правильно. Обещаю перемерять и перевыложить бенчмарки с "правильным кодом" у себя.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209114
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
stopAdxВы решили, что MS SQL в лог такую информацию не пишет?


Можно посмотреть вид и формат лога, в котором можно совершенно недвузначно разобраться какие запросы и на каких строчках вошли в дедлок ?

Можно. В документации все есть.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209115
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adxstopпропущено...


Можно посмотреть вид и формат лога, в котором можно совершенно недвузначно разобраться какие запросы и на каких строчках вошли в дедлок ?

Можно. В документации все есть.

Нет, я хочу увидеть от Вас.
И правильный код, и пример лога.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209122
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
stopAdxДобавлю по скорости MS SQL. Посмотрел Ваше сравнение.
Если бы у меня сотрудник написал написал такой код, какой написали Вы, я бы его уволил. Ну не уволил, но такого на работу бы точно не взял. Вы абсолютно ничего не понимаете в RDBMS. Да-да, я понимаю что Вы не "чукча читатель", но тогда не позорьтесь, не приводите такие примеры.

Этот код писал не я, а писал такойже как Вы девелопер, который решил во что бы то нистало "показать как надо".
У Вас есть шанс переписать его правильно. Обещаю перемерять и перевыложить бенчмарки с "правильным кодом" у себя.

Не надо меня сравнивать с человеком, который написал такой код. Писать код для Ваших тестов неинтересно, поскольку никому не нужен тест на 100 одинаковых записях. Возьмите миллион РАЗНЫХ записей, на них и тестируйте. Зачем создавать индексы, если поиск все равно идет полным перебором?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209125
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adxstopпропущено...


Этот код писал не я, а писал такойже как Вы девелопер, который решил во что бы то нистало "показать как надо".
У Вас есть шанс переписать его правильно. Обещаю перемерять и перевыложить бенчмарки с "правильным кодом" у себя.

Не надо меня сравнивать с человеком, который написал такой код. Писать код для Ваших тестов неинтересно, поскольку никому не нужен тест на 100 одинаковых записях. Возьмите миллион РАЗНЫХ записей, на них и тестируйте. Зачем создавать индексы, если поиск все равно идет полным перебором?

Я вас сравниваю, потому что как всегда, заявлений много.
А как к делу ...
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209207
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
stopЯ вас сравниваю, потому что как всегда, заявлений много.
А как к делу ...

Я участвовать в разработке и тестировании не собирался, это я сразу написал.
Если Вам нужна помощь, так и напишите:
" Нужна помощь в разработке и тестировании новой базы (Днипра) ",
а не " В рамках импортозамещения предлагаю обсудить новую базу (Днипра) "
Отметил очевидные вещи, так Вы сразу воспринимаете их как оскорбление.
Вы же предлагаете участвовать в обсуждении, относитесь тогда нормально к критике.
Не хотите - не надо, отвечайте только на хвалебные отзывы.

PS
Ни в коем случае не стремлюсь отговорить Вас от работы над базой. Кто, знает, может через пять лет будете в числе ведущих поставщиков СУБД.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209230
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop

Как по мне у вас интересная разработка и у нее уже имеется некая /и не малая/ ниша в использовании.
То что вы стараетесь выйти на уровень ниши, занимаемых СУБД, на мой взгляд ошибочный подход.
И если будете его развивать, то скорее всего погубите все то хорошее, что у вас у же имеется.

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

Удачи не желаю /это для неверующих/.

С Богом!
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209242
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012stop

Как по мне у вас интересная разработка и у нее уже имеется некая /и не малая/ ниша в использовании.
То что вы стараетесь выйти на уровень ниши, занимаемых СУБД, на мой взгляд ошибочный подход.
И если будете его развивать, то скорее всего погубите все то хорошее, что у вас у же имеется.

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

Удачи не желаю /это для неверующих/.

С Богом!

Спасибо за отзыв !
Конечноже не мало времени потрачено чтобы сделать действительно удобный инструмент.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209255
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdxstopЯ вас сравниваю, потому что как всегда, заявлений много.
А как к делу ...

Я участвовать в разработке и тестировании не собирался, это я сразу написал.
Если Вам нужна помощь, так и напишите:
" Нужна помощь в разработке и тестировании новой базы (Днипра) ",
а не " В рамках импортозамещения предлагаю обсудить новую базу (Днипра) "
Отметил очевидные вещи, так Вы сразу воспринимаете их как оскорбление.
Вы же предлагаете участвовать в обсуждении, относитесь тогда нормально к критике.
Не хотите - не надо, отвечайте только на хвалебные отзывы.

PS
Ни в коем случае не стремлюсь отговорить Вас от работы над базой. Кто, знает, может через пять лет будете в числе ведущих поставщиков СУБД.

Да есть уже разные темы.
Ладно, вернемся в более конструктивное русло.
Предлагаю подумать над следующей задачей.
Есть каскадные транзакции.

Чтото вроде
BeginTran(ReadCommited)
...BeginTran(ReadCommited)
......BeginTran(Snapshot)
......CommitTran()
...CommitTran()
CommitTran()

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

Примеры реализации в других БД ?
И главное, почему так реализовано.
Пока склоняюсь к версии, что верхний уровень изоляции не должни превышать внутреннии транзакции.
Этот же метод наиболее легок в реализации.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209283
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

в других СУБД есть
- обычные транзакции
- 2PC транзакции
- точки сохранения (некоторые их называют вложенными транзакциями, но на деле это не так)
- автономные транзакции

Последние действительно вложенные.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39209302
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

якобы вложенные транзакции в полноценном виде вообще нигде не реализованы.

stopПока склоняюсь к версии, что верхний уровень изоляции не должни превышать внутреннии транзакции.
тут не нужно версий. Если исходная транзакция имеет уровень изолированности snapshot, вложенные транзакции никак не могут иметь уровень изолированности read committed. Вернее, могут, но толку от этого не будет никакого. Потому что в контексте внешней транзакции они все равно будут видеть только snapshot.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39211397
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честные каскады.
Протестировано.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
void testCascadeTran()
{
	char jsonResult[1024];
 
	DniproDB* db = new DniproDB();
	db->init();
 
	uint docID;
 
	{//LEVEL 1 ===============================================================
	 //tran level 1
		uint tranLevel1 = db->beginTran(READ_COMMITED_TRAN);
 
		//add doc with one attribute, level 1
		docID = db->addDoc("{'attr1':'lev1'}", tranLevel1);
 
		{//LEVEL 2 ==============================================================
		 //tran level 2
			uint tranLevel2 = db->beginTran(READ_COMMITED_TRAN, tranLevel1);
 
			//add to doc one new attribute
			db->insPartDoc("{'attr2':'lev2'}", docID, tranLevel2);
 
			//in doc 2 attributes {'attr1':'Lev1', 'attr2':'Lev2'}
			db->getPartDoc("{'attr1':$, 'attr2':$, 'attr3':$}", jsonResult, docID, tranLevel2);
 
			{//LEVEL 3 ==============================================================
			 //tran level 3
				uint tranLevel3 = db->beginTran(READ_COMMITED_TRAN, tranLevel2);
 
				//add to doc next attribute
				db->insPartDoc("{'attr3':'lev3'}", docID, tranLevel3);
 
				//in doc 3 attributes {'attr1':'Lev1', 'attr2':'Lev2', 'attr3':'Lev3'}
				db->getPartDoc("{'attr1':$, 'attr2':$, 'attr3':$}", jsonResult, docID, tranLevel2);
 
				db->commitTran(tranLevel3);
			}//=====================================================================
 
			 //in doc 3 attributes {'attr1':'Lev1', 'attr2':'Lev2', 'attr3':'Lev3'}
			db->getPartDoc("{'attr1':$, 'attr2':$, 'attr3':$}", jsonResult, docID, tranLevel2);
 
			db->rollbackTran(tranLevel2);
		}//=====================================================================
 
		 //in doc 1 attribute {'attr1':'Lev1'}, other two were rollbacked
		db->getPartDoc("{'attr1':$, 'attr2':$, 'attr3':$}", jsonResult, docID, tranLevel1);
 
		//outrside tran document found nothing
		db->getPartDoc("{'attr1':$, 'attr2':$, 'attr3':$}", jsonResult, docID, 0);
 
		//commit tran level 1
		db->commitTran(tranLevel1);
 
	}//=====================================================================
 
	 //in doc 1 attribute {'attr1':'Lev1'}
	db->getPartDoc("{'attr1':$, 'attr2':$, 'attr3':$}", jsonResult, docID, 0);
}
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39213106
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Портировал сервер под Линукс.
Теперь доступно с обоих ОСей. Под Линукс правда клиентов нет толкового, только урезаный Джавай клиент,
но можно поиграться в конскольке, повыполнять запросы.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39213219
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop Портировал сервер под Линукс.
Вот неплохо бы hub с examples завести /с готовыми проектами под Visual Studio 2013 community/.
Как по мне, то "на посмотреть" желающих было бы много больше.
А там смотришь и использовать начнут ...
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39213510
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такие проекты в специальном репозитории.
Там сейчас один проект, но вообще их уже три, просто остальные не выложены.
Цель их - дать шаблон на типовые задачи и показать качество (размер, понятность) кода.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39213515
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там в MVC немного намешано кода.
По сути, вся бизнесс логика Форума (очень похожего на этот) заключена в этих четырех контроллерах.

https://github.com/Bazist/DniproExamples/tree/master/DniproForum/DniproForum/Controllers
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39213524
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гы...
Код: c#
1.
2.
3.
4.
5.
public ActionResult send(Article a)
{
    a.Validate();

    a.ID = db.GetAll().Count() + 1;


А сама Днипра может сгенерировать идентификатор? :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39213594
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAГы...
Код: c#
1.
2.
3.
4.
5.
public ActionResult send(Article a)
{
    a.Validate();

    a.ID = db.GetAll().Count() + 1;


А сама Днипра может сгенерировать идентификатор? :)

А Монго может ?
Кромето того что бесполезный Guid
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39213611
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, этот пример давно писали.
От Ид конечноже можно избавиться. Каждый добавленный документ в базу имеет свой ИД
автоматически.

Спасибо за замечание, будет время, перепишу и сделаю код еще более коротким
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39214165
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAГы...
Код: c#
1.
2.
3.
4.
5.
public ActionResult send(Article a)
{
    a.Validate();

    a.ID = db.GetAll().Count() + 1;


А сама Днипра может сгенерировать идентификатор? :)

А Монго может ?
ObjectId
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39216200
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил еще один минипроект, в коллекцию примеров использования этой СУБД в рамках тестирования
каскадных транзакций.

Минипроект моделирует форму сохранения конфигурации настроек.
1. Мапит все три формы на один большой документ и сохраняет его в базу.
2. Позволяет каскадно редактировать каждую настройку. Тоесть клацнули, открылась дочерняя форма, снова клацнули снова открылась дочерняя форма. Вся логика на всех формах с ОК\Отмена сохранена.
3. Позволяет очень просто расширять код. Если на форме появится еще десять контролов, то код почти не выростит по обьему.
4. При добавлении новой дочерней формы - обычный копипаст. Лезть в дебри парент формы и чтото там разбираться и прописывать дополнительно, не нужно.
5. Работает быстро, кода мало, код сам по себе очень простой.

Иходники
https://github.com/Bazist/DniproExamples/blob/master/ConfigScreenOnCascadeTran/ConfigScreenOnCascadeTran/MainForm.cs
https://github.com/Bazist/DniproExamples/blob/master/ConfigScreenOnCascadeTran/ConfigScreenOnCascadeTran/ChildForm.cs
https://github.com/Bazist/DniproExamples/blob/master/ConfigScreenOnCascadeTran/ConfigScreenOnCascadeTran/SubChildForm.cs
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39216309
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopДобавил еще один минипроект, в коллекцию примеров использования этой СУБД в рамках тестирования
каскадных транзакций.

Минипроект моделирует форму сохранения конфигурации настроек.
1. Мапит все три формы на один большой документ и сохраняет его в базу.
2. Позволяет каскадно редактировать каждую настройку. Тоесть клацнули, открылась дочерняя форма, снова клацнули снова открылась дочерняя форма. Вся логика на всех формах с ОК\Отмена сохранена.
3. Позволяет очень просто расширять код. Если на форме появится еще десять контролов, то код почти не выростит по обьему.
4. При добавлении новой дочерней формы - обычный копипаст. Лезть в дебри парент формы и чтото там разбираться и прописывать дополнительно, не нужно.
5. Работает быстро, кода мало, код сам по себе очень простой.

Иходники
https://github.com/Bazist/DniproExamples/blob/master/ConfigScreenOnCascadeTran/ConfigScreenOnCascadeTran/MainForm.cs
https://github.com/Bazist/DniproExamples/blob/master/ConfigScreenOnCascadeTran/ConfigScreenOnCascadeTran/ChildForm.cs
https://github.com/Bazist/DniproExamples/blob/master/ConfigScreenOnCascadeTran/ConfigScreenOnCascadeTran/SubChildForm.cs
А при чём тут СУБД и какие-то каскадные транзакции?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39216314
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел код... Это зло :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39216360
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПосмотрел код... Это зло :)Вы если такое пишите, то какие-то обоснования приводите, иначе как-то гаденько выглядит
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39216410
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopДобавил еще один минипроект, в коллекцию примеров использования этой СУБД в рамках тестирования
каскадных транзакций.
Рад за вас.
Надеюсь вас уговаривать не нужно, что вы на правильном пути и делаете хороший framework?
/но работы у вас еще "не початый край"/

С Богом!
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39216452
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА при чём тут СУБД и какие-то каскадные транзакции?

Так вы код вообще смотрели ?
Или это была оценка авансом.

Впринципе, код ничего сложного не делает. Но он легко расширяем, функционален и его логика максимально прозрачна.



В основе кода лежит один (большой) JSON документ который хранит настройки системы.
Он хранится в базе данных. Точней при открытии формы его там даже нет, приложение само его создает
и обновляет (добавляет новые аттрибуты).

Его вид
Код: javascript
1.
{'type':'config', 'confVal1':'value', 'confVal2':'value', 'confVal3':'value', 'confVal4':'value' }



Дальше чтобы редактировать этот документ из приложения, открывается форма, с которой открывается еще одна, потом еще одна.
Как на скрине. Все они редактируют свою часть JSON документа. Для этого редактирование каждой подчасти документа, происходит в отдельной, вложеной транзакции. На каждой кнопке Коммит или Роллбек, что позволяет выдержать следующую логику:
Если на дочерних формах нажата кнопка ОК, а на родительской Cancel то изменения не сохраняются.

Этот код просто показывает шаблон проектирования на основе интерактивной, каскадной транзакции.
Его плюс, он не требует реализации дополнительных контейнеров по шаблону Memento (Хранитель) или использование биндингов.
Он также показывает один из главных принципов SOLID, когда мы добавляем новую дочернюю форму, нам абсолютно ничего не нужно менять в родительских, более глубоких слоях приложения. Эта форма просто берет на себя ответственность редактировать определенную вложеную часть нашего JSON документа.

Ну и наконец, он работает быстрее, даже не за счет базы данных, а за счет того, что данные мы загружаем в базу данных порциями. Допустим у нас на дочерней форме нужно грузить фотографии в конф скрине. Мы их загружаем по одной в транзакции, а не скопом на финальной стадии.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39216528
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстате еще вскользь пробегусь по SOLID архитектуре.
Почему код Днипры полностью отвечает SOLID, а другой код - нет или нужно хорошо постараться довести его до этого.

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

Single Responsibility - Каждая дочерняя форма редактирует свою маленькую часть Джисон документа. Чаилд ответственен только за редактирование этой части документа и не лезет не в слои выше себя, не в слои ниже себя в иерахическом документе.

Open/Closed principle - Каждая форма любого уровня открыта для расширения, но закрыта для изменения. Если нам нужно редактировать вложеную сущность, мы просто добавлем копипастом новый чаилд и он на себя берет часть ответственности за редактирование маленькой части Джисон документа уровня выше.

Liskov substitution - Принцип, когда парент форма коммитит данные она абсолютно не знает какая глубина дочерних форм была открыта и изменена. Она просто коммитит изменения. Фрактально и рекурсивно.

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

Dependency inversion principle - И наконец инверсия зависимостей. Вы редактируете или добавляете новую дочернюю форму при этом родительская форма абсолютно никак не меняется. Нижний слой не зависит от верхних слоев.
Если в вашем Мементо или другом контейнере родительская форма берет на себя обязаность сохранять изменения своих чаилдов - то вы явно можете пролететь с СОЛИДом. В сложном приложении это означает, что при добавлении маленькой пимпачки прийдется лезть в древний и тяжелый код нижних слоев, который может быть поломан и распространить ошибки на другие свои ветки.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217092
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperskyANAПосмотрел код... Это зло :)Вы если такое пишите, то какие-то обоснования приводите, иначе как-то гаденько выглядит
Я посмотрел код и высказал своё мнение о нем в двух словах.

Обоснуйте, что же тут гаденько? :) Вы код смотрели, что о нем думаете?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217115
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANASergSuperпропущено...
Вы если такое пишите, то какие-то обоснования приводите, иначе как-то гаденько выглядит
Я посмотрел код и высказал своё мнение о нем в двух словах.

Обоснуйте, что же тут гаденько? :) Вы код смотрели, что о нем думаете?

Как вы могли смотреть код, если не увидели транзакций и СУБД ?
Там LOC всего то около 100
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217132
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopЕсли на дочерних формах нажата кнопка ОК, а на родительской Cancel то изменения не сохраняются.

где ж тут вложенные транзакции?
по логике там описана одна транзакция и несколько форм ее и пользуют
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217137
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

если в "Рабочее время" создается транзакция и дальше идет дрилл-ап к "Смене" и дальше к "Сменности"
то все работы в этих трех "формах" автоматически присоединяются к транзакции открытой в "Рабочее время"
По мере возврата к корневой форме транзакция обрабатывается (и пофиг что было сделано в тех формах выше, это все было сделано в глобальном кеше клиента)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217154
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, Вы тоже в импортозамещение устремились? Чем Ваш продукт луче тех из списка разрешенных в стране? Как бы самое главное в название темы не раскрывается пока.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217162
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo,

надо определить ниши

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

Программист тут пишет только поведенческие методы модели, которые не покрыты стандартными методами.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217163
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

всякие там частичны или полные выгрузки и слияние моделей и данных и т.д., всего так не расскажешь
вощем документация большая
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217176
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANASergSuperпропущено...
Вы если такое пишите, то какие-то обоснования приводите, иначе как-то гаденько выглядит
Я посмотрел код и высказал своё мнение о нем в двух словах.

Обоснуйте, что же тут гаденько? :) Вы код смотрели, что о нем думаете?аргументов нет, а неприятная для автора оценка есть
Вы ничего полезного не сказали, а настроение человеку попортили
зачем так делать?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217178
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopЕсли на дочерних формах нажата кнопка ОК, а на родительской Cancel то изменения не сохраняются.

где ж тут вложенные транзакции?
по логике там описана одна транзакция и несколько форм ее и пользуют

Ну давайте мыслить логически.
Ключевое слово BeginTran начинает новую транзакцию (вроде логично).
Там таких ключевых слов три штуки. Тоесть не получается одна штука.

А каскад получается такой.

db.BeginTran();
...db.BeginTran();
......db.BeginTran();
......db.CommitTran();
...db.CommitTran();
db.CommitTran();
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217182
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosvadiminfo,

надо определить ниши

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

Программист тут пишет только поведенческие методы модели, которые не покрыты стандартными методами.

Это все интересно, но этот топик технический.
1. Хотелось бы увидеть код всего этого дела, чтобы оценить архитектуру.
2. Хотелось бы увидеть бенчмарки . Насколько продукт работает быстрее чем аналогичные решения ?
3. Хотелось бы услышать в чем инновационность в вашей идеи ( в мире существует 100500 складских бухгалтерских ПО )
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217218
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

где ж тут вложенные транзакции?
по логике там описана одна транзакция и несколько форм ее и пользуют

Ну давайте мыслить логически.
Ключевое слово BeginTran начинает новую транзакцию (вроде логично).
Там таких ключевых слов три штуки. Тоесть не получается одна штука.

А каскад получается такой.

db.BeginTran();
...db.BeginTran();
......db.BeginTran();
......db.CommitTran();
...db.CommitTran();
db.CommitTran();

Ну, сами по себе эти команды не дают гарантии, что вложенные бегин не делают енлист
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217219
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

при чем тут складские-бухские проги?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217220
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopЭто все интересно, но этот топик технический.
1. Хотелось бы увидеть код всего этого дела, чтобы оценить архитектуру.
2. Хотелось бы увидеть бенчмарки . Насколько продукт работает быстрее чем аналогичные решения ?
3. Хотелось бы услышать в чем инновационность в вашей идеи ( в мире существует 100500 складских бухгалтерских ПО )
чек спросил, я ответил
у меня нет собственной СУБД, просто ВИПРОС все что касается БД закрывает от программиста
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217226
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop3. Хотелось бы услышать в чем инновационность в вашей идеи ( в мире существует 100500 складских бухгалтерских ПО )
ВИПРОСовская модель мощнее чем модель Палантир, а них капитализация 20 ярдов зелени
просто у нас такие вещи не востребованы
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217230
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


Ну давайте мыслить логически.
Ключевое слово BeginTran начинает новую транзакцию (вроде логично).
Там таких ключевых слов три штуки. Тоесть не получается одна штука.

А каскад получается такой.

db.BeginTran();
...db.BeginTran();
......db.BeginTran();
......db.CommitTran();
...db.CommitTran();
db.CommitTran();

Ну, сами по себе эти команды не дают гарантии, что вложенные бегин не делают енлист

Вложенные бегин начинают вложенные транзакции. Откат вложенной транзакции не приводит к откату родительской.
Но родительская может откатить все вложенные закомиченные транзакции, на любом уровне.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217232
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop3. Хотелось бы услышать в чем инновационность в вашей идеи ( в мире существует 100500 складских бухгалтерских ПО )
ВИПРОСовская модель мощнее чем модель Палантир, а них капитализация 20 ярдов зелени
просто у нас такие вещи не востребованы

а у вас какая капитализация ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217241
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopДальше чтобы редактировать этот документ из приложения, открывается форма, с которой открывается еще одна, потом еще одна.
Как на скрине. Все они редактируют свою часть JSON документа. Для этого редактирование каждой подчасти документа, происходит в отдельной, вложеной транзакции. На каждой кнопке Коммит или Роллбек, что позволяет выдержать следующую логику:
Если на дочерних формах нажата кнопка ОК, а на родительской Cancel то изменения не сохраняются.


Это написал ты.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217242
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

300 в месяц
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217243
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopВложенные бегин начинают вложенные транзакции. Откат вложенной транзакции не приводит к откату родительской.
Но родительская может откатить все вложенные закомиченные транзакции, на любом уровне.
а с какого бодуна откат вложенной транзкации (считай ундо части кеша) должна была привести к откату родительской транзакции?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217245
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

300 в месяц

рублей ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217246
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот если бы откат родительской транзакции не приводило бы к откату дочерних, то да - это были бы вложенные транзакции
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217247
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

угу
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217248
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopВложенные бегин начинают вложенные транзакции. Откат вложенной транзакции не приводит к откату родительской.
Но родительская может откатить все вложенные закомиченные транзакции, на любом уровне.
а с какого бодуна откат вложенной транзкации (считай ундо части кеша) должна была привести к откату родительской транзакции?

Внимательней перечитайте что я написал.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217251
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

так я и читал
транзакция там физическая одна
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217252
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop3. Хотелось бы услышать в чем инновационность в вашей идеи ( в мире существует 100500 складских бухгалтерских ПО )
ВИПРОСовская модель мощнее чем модель Палантир , а них капитализация 20 ярдов зелени
просто у нас такие вещи не востребованы

Чтото не совсем понял. Причем здесь складско-бухгалтерское ПО заточенное под РФ рынок
к глобальным целям вотетого американского стартапа ?

http://www.forbes.ru/tehno/tehnologii/64264-vsevidyashchee-oko-palantir
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217254
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

так я и читал
транзакция там физическая одна

grand parent transaction действительно одна.
А если с чаилд, то их три. И база данных выдает три ID чтобы ими управлять.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217255
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

да блин откуда ты взял складскую и бухскую прогу?

Ответь на простой вопрос и закончим с вложенными транзакциями -

Всегда ли откат корневой транзакции приводит к откату вложенных?
Да или Нет
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217257
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

да блин откуда ты взял складскую и бухскую прогу?

Ответь на простой вопрос и закончим с вложенными транзакциями -

Всегда ли откат корневой транзакции приводит к откату вложенных?
Да или Нет

Да.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217258
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

это означает что нет у тебя вложенных транзакций
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217259
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а есть обычный механизм расширения транзакции
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217263
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,
это означает что нет у тебя вложенных транзакций

Тоесть вы считаете что отмена родительской транзакции, должна коммитить вложенные.
Серьезно ?
А чем тогда вложенные транзакции отличаются от независимых отдельных транзакций ??
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217268
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

ВИПРОСовская модель мощнее чем модель Палантир , а них капитализация 20 ярдов зелени
просто у нас такие вещи не востребованы

Чтото не совсем понял. Причем здесь складско-бухгалтерское ПО заточенное под РФ рынок
к глобальным целям вотетого американского стартапа ?

http://www.forbes.ru/tehno/tehnologii/64264-vsevidyashchee-oko-palantir
общее у них - идея
динамическая классификация
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217269
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


Чтото не совсем понял. Причем здесь складско-бухгалтерское ПО заточенное под РФ рынок
к глобальным целям вотетого американского стартапа ?

http://www.forbes.ru/tehno/tehnologii/64264-vsevidyashchee-oko-palantir
общее у них - идея
динамическая классификация

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

Учтите это логичное поведение, если вы хотите решать какие то проблемы с обработкой данных.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217270
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosstop,
это означает что нет у тебя вложенных транзакций

Тоесть вы считаете что отмена родительской транзакции, должна коммитить вложенные.
Серьезно ?
А чем тогда вложенные транзакции отличаются от независимых отдельных транзакций ??
Главное и самое существенное отличие - все это делается в одном коннекте

1. Вложенные транзакции - самостоятельные транзакции и если они закоммичены, то родительская не имеет право их откатить
2. Вложенные транзакции не должны привести к изменению контекста внешней транзакции
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217271
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

ты далек от тех идей и давай не будем отвлекаться от вложенных транзакций :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217277
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Назовите предметную задачу где ваша логика полезна. Кроме аудита самой транзакции где достаточно независимой транзакции.
Еще раз повторю. Чем тогда вложения отличается от отдельной независимой транзакции.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217280
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

еще раз отвечаю - не надо открывать другой коннект (во всяком случае в NET, возможно где то это не так)
а логика нормальная


допустим на все что ниже у юзера имеются права

зашел я в накладную :):):) менять материал (не тот материал и в справочнике нет материала нужного), дриллап в Материал, вставляю новый материал, а нет нужного едизма, дриллап в Едизм - вставляю новый едизм и коммичу, потом коммичу материал
А потом оказывается что материал воще то был правильный, но новый материал и новый едизм все равно нужны
Откатываю изменение материала.

Родитель откатилась, а вложенные скоммичены.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217283
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не вложенная транзакция. Вложенность подразумевает иерархическую зависимость коммитов.
У вас же достаточно открыть отдельную независимую ниоткого транзакцию и сделать коммит в справочник с нее
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217284
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopЭто не вложенная транзакция. Вложенность подразумевает иерархическую зависимость коммитов.
У вас же достаточно открыть отдельную независимую ниоткого транзакцию и сделать коммит в справочник с нее
для такой вложенности как у тебя не надо ничего делать
просто твой BeginTran ищет - есть ли открытая транзакция и если есть то джойнится туда, а если нет открывает запускает новую транзакцию
но это чревато - такая транзакция может раздуться так что не даст никому работать кроме одного в пессимизме
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217285
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosеще раз отвечаю - не надо открывать другой коннект
Один коннект - одна транзакция? Суровое детство, деревянные игрушки, прибитые к полу...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217286
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

да, низзя запускать параллельные транзакции в одном коннекте, последовательно моно
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217287
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во всяком случае когда я этим занимался было так
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217288
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopЭто не вложенная транзакция. Вложенность подразумевает иерархическую зависимость коммитов.
У вас же достаточно открыть отдельную независимую ниоткого транзакцию и сделать коммит в справочник с нее
для такой вложенности как у тебя не надо ничего делать
просто твой BeginTran ищет - есть ли открытая транзакция и если есть то джойнится туда, а если нет открывает запускает новую транзакцию
но это чревато - такая транзакция может раздуться так что не даст никому работать кроме одного в пессимизме

Что значит джойнится. Не джойнится, а становится вложенной транзакцией у которой есть парент, а у паркета тоже парент. Для вашего поведения действительно можно былобы не морочится с каскадными ролбеками а тупо комитить в основное хранилище. И еще. Это версионник. Открытая транзакция ридкоммитед никого не блочит.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217294
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosDimitry Sibiryakov,

да, низзя запускать параллельные транзакции в одном коннекте, последовательно моно

А зачем вам в одном конекшине.
Что мешает создать новый SqlConnection и там сделать доп. запрос ?
Сервер вас по МАК адрессу вычислять не будет ...
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217295
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

ладно, как хочешь мне то все равно что ты называешь "вложенными транзакциями"
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217297
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosDimitry Sibiryakov,

да, низзя запускать параллельные транзакции в одном коннекте, последовательно моно

А зачем вам в одном конекшине.
Что мешает создать новый SqlConnection и там сделать доп. запрос ?
Сервер вас по МАК адрессу вычислять не будет ...
это стоит денег :)
и есть другие резоны
а так в НЕТ тогда лучше просто TransationScope пользовать и все
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217299
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

ладно, как хочешь мне то все равно что ты называешь "вложенными транзакциями"

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

К солажению многие СУБД не смогли их правильно реализовать и появилось множество разных
костальных реализаций. Но важно понимать, что предметная область нам дает только один ответ на то,
что такое вложеная (каскадная) транзакция. И в этом ответе - четкое субпотчинение транзакций.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217300
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


А зачем вам в одном конекшине.
Что мешает создать новый SqlConnection и там сделать доп. запрос ?
Сервер вас по МАК адрессу вычислять не будет ...
это стоит денег :)
и есть другие резоны
а так в НЕТ тогда лучше просто TransationScope пользовать и все

А держать один единственный конекшин постоянно, не стоит денег ?
Что произойдет с вашим единственным, если канал связи на несколько секунд рухнет
во время простоя клиента и потом опять заработает. Уверены что конекшин продолжит коректно работать ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217301
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

ну значит надо говорить не о "вложенных" транзакциях, а о "логических"
Транзакция то ОДНА и нет там никаких больше транзакций "вложенных", если менеджер транзакций один и тот же
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217304
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

это стоит денег :)
и есть другие резоны
а так в НЕТ тогда лучше просто TransationScope пользовать и все

А держать один единственный конекшин постоянно, не стоит денег ?
Что произойдет с вашим единственным, если канал связи на несколько секунд рухнет
во время простоя клиента и потом опять заработает. Уверены что конекшин продолжит коректно работать ?
почему иы выдумываешь
зачем и кому надо держать открытый коннекшн постоянно?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217308
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

ну значит надо говорить не о "вложенных" транзакциях, а о "логических"
Транзакция то ОДНА и нет там никаких больше транзакций "вложенных", если менеджер транзакций один и тот же

Какже одна можеть быть одна.
Если вам выдается три разных ИД транзакций.
Вам нужно сделать три БегинТран и три Коммит или Роллбек тран
Эти транзакции даже могут иметь разный уровень изоляции и сервер создает три отдельных хранилища для ваших временных изменений ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217311
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


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

Ну тогда не вижу никаких "стоит денег" в открыть еще один конекшин.
Более того, ситуация Один запрос = Один новый конекшин я видел чаще чем наоборот.
Сервер держит пул конекшинов и ему впринципе всеравно что вы там открываете и закрываете,
он вам выдает свободный из пула и вперед.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217314
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAпропущено...

Я посмотрел код и высказал своё мнение о нем в двух словах.

Обоснуйте, что же тут гаденько? :) Вы код смотрели, что о нем думаете?

Как вы могли смотреть код, если не увидели транзакций и СУБД ?
Там LOC всего то около 100
Глазами я смотрел код.. Представляет он из себя пример того, как писать не надо.

А так как выложен в публичный доступ, то является злом :)
Так как молодой специалист может наткнуться и сделать по аналогии. Они могут всякую фигню из инета тащить.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217320
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperskyANAпропущено...

Я посмотрел код и высказал своё мнение о нем в двух словах.

Обоснуйте, что же тут гаденько? :) Вы код смотрели, что о нем думаете?аргументов нет, а неприятная для автора оценка есть
Вы ничего полезного не сказали, а настроение человеку попортили
зачем так делать?
Я коротко выразил своё мнение. Имею на это право :)
Давайте, проведите своё ревью и дайте свою оценку.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217326
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAГлазами я смотрел код.. Представляет он из себя пример того, как писать не надо.


Действительно. Если написать так как я показал, по канонам SOLID и в 50 строчек,
то 2\3 отдела могут разогнать. Ведь их перестанет кормить говнокод.
И видимо этот товарищ на это намекает. Пожалуй соглашусь.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217332
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAГлазами я смотрел код.. Представляет он из себя пример того, как писать не надо.


Действительно. Если написать так как я показал, по канонам SOLID и в 50 строчек,
то 2\3 отдела могут разогнать. Ведь их перестанет кормить говнокод.
И видимо этот товарищ на это намекает. Пожалуй соглашусь.SOLID там нарушен и 2/3 отдела придётся подключить, чтобы потом все быстро переписать :)

Я бы понял, если это был аля пример на коленке, но это же выдаётся за грамотный код..
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217335
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopпропущено...


Действительно. Если написать так как я показал, по канонам SOLID и в 50 строчек,
то 2\3 отдела могут разогнать. Ведь их перестанет кормить говнокод.
И видимо этот товарищ на это намекает. Пожалуй соглашусь.SOLID там нарушен и 2/3 отдела придётся подключить, чтобы потом все быстро переписать :)

Я бы понял, если это был аля пример на коленке, но это же выдаётся за грамотный код..

Где нарушен ? По пунктам.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217337
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

а зачем они нужны если все равно не коммитятся без родительского коммит?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217338
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAпропущено...
SOLID там нарушен и 2/3 отдела придётся подключить, чтобы потом все быстро переписать :)

Я бы понял, если это был аля пример на коленке, но это же выдаётся за грамотный код..

Где нарушен ? По пунктам.
Да Вашими классами нарушен :) С планшета по пунктам лень расписывать.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217339
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

а зачем они нужны если все равно не коммитятся без родительского коммит?

Они коммитят промежуточные результаты.
На задаче с конфигурейшин скрин это хорошо понятно.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217340
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosstop,

а зачем они нужны если все равно не коммитятся без родительского коммит?

Они коммитят промежуточные результаты.
На задаче с конфигурейшин скрин это хорошо понятно.
как блин коммитят, если в конце родитель их откатит, а кто то успел почитать и выдать кому то?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217341
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopпропущено...


Где нарушен ? По пунктам.
Да Вашими классами нарушен :) С планшета по пунктам лень расписывать.

SOLID не выставляет никаких требований к количеству классов.
Это общие принципы поддержки\расширения и создания слабосвязаного кода.

Думаю на планшете должна открыться хотябы википедия по этой теме.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217343
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


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

Кто успел почитать ? С незакомиченой транзакции ? Серьезно ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217345
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя стандартный TransactionScoupe и возможно не распределенная
если я сделал коммит, мне пофиг есть родитель или нет (я могу об этом не знать просто), этот результат должен быть зафиксирован
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217346
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAпропущено...

Да Вашими классами нарушен :) С планшета по пунктам лень расписывать.

SOLID не выставляет никаких требований к количеству классов.
Это общие принципы поддержки\расширения и создания слабосвязаного кода.

Думаю на планшете должна открыться хотябы википедия по этой теме.
Где Вы прочитали у меня слово количество, а у себя увидели слабосвязный код? :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217347
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

как блин коммитят, если в конце родитель их откатит, а кто то успел почитать и выдать кому то?

Кто успел почитать ? С незакомиченой транзакции ? Серьезно ?
бл* а чего они коммитят в промежутке?
ты че сам не въезжаешь или начал троллить?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217348
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosу тебя стандартный TransactionScoupe и возможно не распределенная
если я сделал коммит, мне пофиг есть родитель или нет (я могу об этом не знать просто), этот результат должен быть зафиксирован

Мне кажется по данной тематике у вас знания очень плавают.
С Уважением. Попробуйте чтото почитать от сторонних источников.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217350
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


Кто успел почитать ? С незакомиченой транзакции ? Серьезно ?
бл* а чего они коммитят в промежутке?
ты че сам не въезжаешь или начал троллить?

Потому что, опять же, на примере конфигурейшин скрина можно открыть вложенный скрин.
Чтото там наделать, наклацать, открыть еще 10 дочерних формочек и еще там наклацать. А потом сказать,
блин, да мне это не надо. И нажать отмена. А на основной форме не нажать, и вы откатите все промежуточные транзакции в данной точке. И начать снова такуюже вложеную транзакцию.

Это обычное стандартное поведение любой формочки в Виндовс с какойто претензией на нормальное проектирование.
Вы что, серьезно этого не понимаете,
при этом занимаясь какимто анализом данных ? Какже без основ то ...
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217353
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopпропущено...


SOLID не выставляет никаких требований к количеству классов.
Это общие принципы поддержки\расширения и создания слабосвязаного кода.

Думаю на планшете должна открыться хотябы википедия по этой теме.
Где Вы прочитали у меня слово количество, а у себя увидели слабосвязный код? :)

19061434
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217354
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopПотому что, опять же, на примере конфигурейшин скрина можно открыть вложенный скрин.
Чтото там наделать, наклацать, открыть еще 10 дочерних формочек и еще там наклацать. А потом сказать,
блин, да мне это не надо. И нажать отмена. А на основной форме не нажать, и вы откатите все промежуточные транзакции в данной точке. И начать снова такуюже вложеную транзакцию.


сам такой

зачем мне однобокая логика?
а если мне надо что бы промежуточный результат закоммичился и стало доступно именно с того момента как я нажал "коммит"?

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

это логика твоих формочек, а не "вложенные транзакции"
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217355
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosа если мне надо что бы промежуточный результат закоммичился и стало доступно именно с того момента как я нажал "коммит"?


Уже вроде как ответили. Значит к общей транзакции эта транзакция не имеет вообще никакого отношения.
Это одельная транзакция.

ViPRosэто логика твоих формочек, а не "вложенные транзакции"

Такая логика просто везде. Потому что это шаблон.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217357
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosа если мне надо что бы промежуточный результат закоммичился и стало доступно именно с того момента как я нажал "коммит"?


Уже вроде как ответили. Значит к общей транзакции эта транзакция не имеет вообще никакого отношения.
Это одельная транзакция.

ViPRosэто логика твоих формочек, а не "вложенные транзакции"

Такая логика просто везде. Потому что это шаблон.
это шаблон SDI
попробуй свою фигню в MDI и открой один контекст несколько раз
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217358
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


Уже вроде как ответили. Значит к общей транзакции эта транзакция не имеет вообще никакого отношения.
Это одельная транзакция.

пропущено...


Такая логика просто везде. Потому что это шаблон.
это шаблон SDI
попробуй свою фигню в MDI и открой один контекст несколько раз

Уже пробовал
19034661
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217360
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и че ты уперся?
то что ты сделал это один из вариантов (часто используемых)
есть и другие варианты (нередко используемых)

надо тебе сделать управление этой логикой, что то коммитится без родителя, что то нет и т.д.
сам хотя бы тот же TransactionScoupe почитай? прежде чем учить шаблонам и логике
фаулер блин еще один отыскался
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217361
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop[Уже пробовал
19034661
ниче ты не пробовал
запусти эту байду в нескольких потоках и посмотри что будет
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217362
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosтот же TransactionScoupe почитай? прежде чем учить шаблонам и логике
фаулер блин еще один отыскался

Когда вы научитесь слово TransactionScope писать без ошибок хотябы со второго раза,
тогда почитаю. А так ...
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217363
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop[Уже пробовал
19034661
ниче ты не пробовал
запусти эту байду в нескольких потоках и посмотри что будет

Пользователь в интерфейсе не многоликий кришна с 8 руками.
Последовательное выполнение транзакции включая вложенные с возможностью промежуточных откатов -
это абсолютно нормальное поведение.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217364
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAпропущено...

Где Вы прочитали у меня слово количество, а у себя увидели слабосвязный код? :)

19061434
От того что Вы ошибаетесь, думая, что соблюдаете принципы SOLID, хуже только Вам и тем, кто по незнанию Вам поверит :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217365
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosтот же TransactionScoupe почитай? прежде чем учить шаблонам и логике
фаулер блин еще один отыскался

Когда вы научитесь слово TransactionScope писать без ошибок хотябы со второго раза,
тогда почитаю. А так ...
ну, тогда тебе долго придется ждать :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217366
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopпропущено...


19061434
От того что Вы ошибаетесь, думая, что соблюдаете принципы SOLID, хуже только Вам и тем, кто по незнанию Вам поверит :)

Будем ошибаться до тех пор, пока ктото не соизволит хотябы попытаться обьяснить там почему же мы ошибаемся.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217367
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

ниче ты не пробовал
запусти эту байду в нескольких потоках и посмотри что будет

Пользователь в интерфейсе не многоликий кришна с 8 руками.
Последовательное выполнение транзакции включая вложенные с возможностью промежуточных откатов -
это абсолютно нормальное поведение.
Пользователь еще и запускает методы, а они свои транзакции
просто у тебя сильно упрощенный кейс
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217368
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


Когда вы научитесь слово TransactionScope писать без ошибок хотябы со второго раза,
тогда почитаю. А так ...
ну, тогда тебе долго придется ждать :)

Вы мне скажите, у вас что серьезно на дочерних формах если клацнуть ОК то сразу уйдет в базу ?
Помойму ВИПрос мягко говоря недопроектировали. Банальные гепы с консистенцией данных могут быть.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217369
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и я тебя ни в чем не обвиняю
сделал так, значит так тебе надо
я просто против использования термина "вложенные транзакции"
никто не может откатить закоммиченную транзакцию
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217370
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

ну, тогда тебе долго придется ждать :)

Вы мне скажите, у вас что серьезно на дочерних формах если клацнуть ОК то сразу уйдет в базу ?
Помойму ВИПрос мягко говоря недопроектировали. Банальные гепы с консистенцией данных могут быть.
есть настройка на этот счет
не знаю что такое "геп", но они будут у тебя, когда одна транзакция будет висеть 30 минут :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217371
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

ну, тогда тебе долго придется ждать :)

Вы мне скажите, у вас что серьезно на дочерних формах если клацнуть ОК то сразу уйдет в базу ?
Помойму ВИПрос мягко говоря недопроектировали. Банальные гепы с консистенцией данных могут быть.
форма и транзакция - разные вещи
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217372
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


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

О да. Это интересный тоже кейс.
Пользователь открыл транзакцию и вызывает какойто метод, даже не подозревая что там зашита еще одна транзакция.
В итоге эта транзакция коммитит по вашей же версии в основное хранилище, а у пользователя спустя несколько шагов его основная транзакция слетает по какимто причинам. И о чудо. Часть непонятных данных непонятно как попали в базу на роллбеке.
Аплодисменты стоя.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217373
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


Вы мне скажите, у вас что серьезно на дочерних формах если клацнуть ОК то сразу уйдет в базу ?
Помойму ВИПрос мягко говоря недопроектировали. Банальные гепы с консистенцией данных могут быть.
форма и транзакция - разные вещи

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

Это типичное поведение. Иерархия такоеже старое изобретение как колесо.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217374
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAпропущено...

От того что Вы ошибаетесь, думая, что соблюдаете принципы SOLID, хуже только Вам и тем, кто по незнанию Вам поверит :)

Будем ошибаться до тех пор, пока ктото не соизволит хотябы попытаться обьяснить там почему же мы ошибаемся.
Почему Вы уверены, что соблюдены принципы SOLID, когда это не так?
ИМХО Вы вместо того, чтобы их толком понять, придерживаетесь своей вольной трактовки.
Психотип у Вас такой.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217375
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

Пользователь еще и запускает методы, а они свои транзакции
просто у тебя сильно упрощенный кейс

О да. Это интересный тоже кейс.
Пользователь открыл транзакцию и вызывает какойто метод, даже не подозревая что там зашита еще одна транзакция.
В итоге эта транзакция коммитит по вашей же версии в основное хранилище, а у пользователя спустя несколько шагов его основная транзакция слетает по какимто причинам. И о чудо. Часть непонятных данных непонятно как попали в базу на роллбеке.
Аплодисменты стоя.
ну вощем ты начал троллить уже несколько постов назад
пользватель воще не знает что такое транзакция

потому и есть настройка, надо ли пристроится к имеющейся транзакции или нет
т.е. твой beginTran должен иметь параметр - нужна ли обязательно собственная транзакция или надо пристроится к имеющейся уже
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217376
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

форма и транзакция - разные вещи

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

Это типичное поведение. Иерархия такоеже старое изобретение как колесо.
типичное поведение в том что в Банке останутся все мои данные и все переговоры - эти вещи роллбаку не подлежат, даже если мне в ипотеке откажут
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217377
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


О да. Это интересный тоже кейс.
Пользователь открыл транзакцию и вызывает какойто метод, даже не подозревая что там зашита еще одна транзакция.
В итоге эта транзакция коммитит по вашей же версии в основное хранилище, а у пользователя спустя несколько шагов его основная транзакция слетает по какимто причинам. И о чудо. Часть непонятных данных непонятно как попали в базу на роллбеке.
Аплодисменты стоя.
ну вощем ты начал троллить уже несколько постов назад
пользватель воще не знает что такое транзакция

потому и есть настройка, надо ли пристроится к имеющейся транзакции или нет
т.е. твой beginTran должен иметь параметр - нужна ли обязательно собственная транзакция или надо пристроится к имеющейся уже

Так такая настройка есть. Я же присылал код.
BeginTran(TranType, ParentTranID);

Если парент передать 0, то это независимая транзакция.
Если передать парент ИД то это подчиненная транзакция и ее коммиты будут коммитится только как промежуточные результаты, которые еще должни быть подтверждены на более высоком уровне.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217378
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopпропущено...


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

Я думаю все с точностью до наоборот.
Вы не можете обьяснить то чего доказываете прежде всего из-за недопонимания.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217379
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopТак такая настройка есть. Я же присылал код.
BeginTran(TranType, ParentTranID);

Если парент передать 0, то это независимая транзакция.
Если передать парент ИД то это подчиненная транзакция и ее коммиты будут коммитится только как промежуточные результаты, которые еще должни быть подтверждены на более высоком уровне.
это уже лучше (код я кончено не смотрел)
но подчиненная транзакция - плохо
ты заведомо можешь создать дедлок
просто надо вернуть ParentTranID и все
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217380
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...

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

Это типичное поведение. Иерархия такоеже старое изобретение как колесо.
типичное поведение в том что в Банке останутся все мои данные и все переговоры - эти вещи роллбаку не подлежат, даже если мне в ипотеке откажут

Вы путаете клиентскую базу и базу данных банка.
Банк при обращении с вашей транзакции может сохранять все что угодно, это его лог.
А вы должни откатывать свои изменения: забрать от туда документы, забрать деньги если вносили как предоплату.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217381
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosпропущено...

типичное поведение в том что в Банке останутся все мои данные и все переговоры - эти вещи роллбаку не подлежат, даже если мне в ипотеке откажут

Вы путаете клиентскую базу и базу данных банка.
Банк при обращении с вашей транзакции может сохранять все что угодно, это его лог.
А вы должни откатывать свои изменения: забрать от туда документы, забрать деньги если вносили как предоплату.
не надо упрощать
внутри транзакции, которая откачена, был зафиксирован некоторый результат, который не технический лог
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217382
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopТак такая настройка есть. Я же присылал код.
BeginTran(TranType, ParentTranID);

Если парент передать 0, то это независимая транзакция.
Если передать парент ИД то это подчиненная транзакция и ее коммиты будут коммитится только как промежуточные результаты, которые еще должни быть подтверждены на более высоком уровне.
это уже лучше (код я кончено не смотрел)
но подчиненная транзакция - плохо
ты заведомо можешь создать дедлок
просто надо вернуть ParentTranID и все

Тоесть в данном случае вы уверенно утверждаете что знаете что такое дедлок ?

Скажите мне, как дедлок может получится если все подчиненные транзакции работают с одной и тойже версией данных ?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217383
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

дедлок может случится всегда
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217385
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAпропущено...

Почему Вы уверены, что соблюдены принципы SOLID, когда это не так?
ИМХО Вы вместо того, чтобы их толком понять, придерживаетесь своей вольной трактовки.
Психотип у Вас такой.

Я думаю все с точностью до наоборот.
Вы не можете обьяснить то чего доказываете прежде всего из-за недопонимания.
Человеку с Вашим психотипом не имеет смысла что-либо доказывать, толку скорее всего не будет :)
Да и принципы SOLID подробно расписаны, материала в сети полно, и типичных примеров их нарушения.
Хотели бы в них разобраться и следовать им, могли бы и самостоятельно это сделать.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217386
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstopпропущено...


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

Ну и ?
Будет типичная транзакция

БегинТран

БегинТран
- Обращение к банку
- Не получилось, откат
РоллбекТран

Записать в лог неудачное обращение

КоммитТран
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217388
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopпропущено...


Я думаю все с точностью до наоборот.
Вы не можете обьяснить то чего доказываете прежде всего из-за недопонимания.
Человеку с Вашим психотипом не имеет смысла что-либо доказывать, толку скорее всего не будет :)
Да и принципы SOLID подробно расписаны, материала в сети полно, и типичных примеров их нарушения.
Хотели бы в них разобраться и следовать им, могли бы и самостоятельно это сделать.

Тоесть вы решили перебраться на личности оправдывая свои прямо скажем никакие знания
в архитектуре ? Ну ОК.

А пишу я только о том, что хорошо понимаю и могу разложить по пунктам и очень предметно продискутировать.
Это вам конечно на будуйщее, дабы вам не хотелось опять начинать какието сливные треды, которые портят вам репутацию
как неплохого специалиста по Монго. Кстате.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217389
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

ладно, я пас, устал уже
вопрос конечно интересный, но ты нифига не слушаешь
я тебе долбаю все время вот что
если прогер написал COMMIT, то он ожидает коммит и больше ничего
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217392
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

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

Оно так и работает.
И если проггер написал РОЛЛБЕК то он подразумевает что все что внутри благополучно откатится на всех уровнях,
кто бы что не начинал. И никому не прийдет в голову коммитить свои промежуточные результаты, если это не было явно прописано как отдельная независимая транзакция. Всё о чем я говорю, значительно упрощает архитектуру и делает более поддерживаемый и логичный код.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217393
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopViPRosstop,

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

Оно так и работает.
И если проггер написал РОЛЛБЕК то он подразумевает что все что внутри благополучно откатится на всех уровнях,
кто бы что не начинал. И никому не прийдет в голову коммитить свои промежуточные результаты, если это не было явно прописано как отдельная независимая транзакция. Всё о чем я говорю, значительно упрощает архитектуру и делает более поддерживаемый и логичный код.
я согласился что это один из часто используемых вариантов
но в этом варианте прогер не пишет коммит или роллбак, он передает намерение о коммит там или роллбак
но если бы он писал жестко коммит, то его коммит должен сработать (менеджер должен оценить внесенные изменения и если возможно то их оформить как самостоятельная транзакция) или выдать икзепшн
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217395
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAпропущено...

Человеку с Вашим психотипом не имеет смысла что-либо доказывать, толку скорее всего не будет :)
Да и принципы SOLID подробно расписаны, материала в сети полно, и типичных примеров их нарушения.
Хотели бы в них разобраться и следовать им, могли бы и самостоятельно это сделать.

Тоесть вы решили перебраться на личности оправдывая свои прямо скажем никакие знания
в архитектуре ? Ну ОК.

А пишу я только о том, что хорошо понимаю и могу разложить по пунктам и очень предметно продискутировать.
Это вам конечно на будуйщее, дабы вам не хотелось опять начинать какието сливные треды, которые портят вам репутацию
как неплохого специалиста по Монго. Кстате.
Вы сами попросили "попытаться обьяснить там почему же мы ошибаемся".
Я и написал в чем вижу причину этого.

Так что не стоит приписывать мне поведения, что портит мне репутацию. Не красиво :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217396
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

в ВИПРОС есть оба варианта
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217397
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

в ВИПРОС есть оба варианта

И оба варианта написаны вручную, скорей всего, через кеш.
Что несколько усложнило поддержку и обьем самого кода.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217398
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

кончено через кеш
но как только коммит, так сразу определенная часть кеша спускается в БД, если это возможно или выдается специкзепшн
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217399
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВы сами попросили "попытаться обьяснить там почему же мы ошибаемся".
Я и написал в чем вижу причину этого.

Нету никакой причины. Не выдумывайте.
Когда вас просили рассказать в чем же проблема вы сказали что на планшете. Ну на планшете так на планшете.
Будете у ноута, напишите, разберем по пунктам.

Только не пишите на личные темы. На личные темы мне не интересно общатся.
На технические - пожалуйста.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217400
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и не несколько, а сильно
это один из сложных механизмов ВИПРОСа
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217402
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

кончено через кеш
но как только коммит, так сразу определенная часть кеша спускается в БД, если это возможно или выдается специкзепшн

Через кеш это плохо.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217403
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

а по другому никак
тут и пессимизм и оптимизм с ундо глубоким и смешанный режим
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217404
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosи не несколько, а сильно
это один из сложных механизмов ВИПРОСа

Используйте Днипру.
Днипра быстрее работает и берет на себя менеджирование вложеных транзакций.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217406
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

можно и Днипру
пока только МССКЛ и Постгри (и то не до конца), нет желающих оплатить провайдеров к СУБД
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217407
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

а по другому никак
тут и пессимизм и оптимизм с ундо глубоким и смешанный режим

На документалке нужно писать. Но обязательно транзакционной вроде Днипры и с джоинами.
Все остальное выйдет проще. Здесь и сохранение сложных иерархий.
И версии этих иерархий. Срез данных на определенный период. И откат.
И тд тд.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217409
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

возможно со временем метаданные переедут в какой нить NuoDB иди Днипро и т.д.
я смотрел графовые БД, пока ни на чем не остановился, хотя бы какой то на очень уж хорошем уровне понимания (забыл как называется, но если что могу вспомнить, где то я ее записал)
есть какой то потомок мамса
некогда изучать в деталях -а вних все и кроется :(
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217410
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя бы = хотя, был
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217411
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

возможно со временем метаданные переедут в какой нить NuoDB иди Днипро и т.д.
я смотрел графовые БД, пока ни на чем не остановился, хотя бы какой то на очень уж хорошем уровне понимания (забыл как называется, но если что могу вспомнить, где то я ее записал)
есть какой то потомок мамса
некогда изучать в деталях -а вних все и кроется :(

Вот здесь есть мануал .
Если что будет не понятно - пишите.

Сам буду крупный проект на этой базе стартовать, с конструкторами форм, вебсервисами, аналитикой и тд.
Буду использовать эту базу, с этой быстрее кодить надежный и быстрый код.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217412
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAВы сами попросили "попытаться обьяснить там почему же мы ошибаемся".
Я и написал в чем вижу причину этого.

Нету никакой причины. Не выдумывайте.
Когда вас просили рассказать в чем же проблема вы сказали что на планшете. Ну на планшете так на планшете.
Будете у ноута, напишите, разберем по пунктам.

Только не пишите на личные темы. На личные темы мне не интересно общатся.
На технические - пожалуйста.
Хорошо, буду у компа - распишу по пунктам, где у Вас что в коде не соблюдается.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217414
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop,

я обязательно посмотрю
как только бог пошлет время
а коды все тырю, уже чуть ли терабайт всяких БД и тд. :) - жизни не хватит изучить , эх мало дает бог жизни этой бл*
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217415
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosstop,

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

Ок, я на связи.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217416
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopпропущено...


Нету никакой причины. Не выдумывайте.
Когда вас просили рассказать в чем же проблема вы сказали что на планшете. Ну на планшете так на планшете.
Будете у ноута, напишите, разберем по пунктам.

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

Ок.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217424
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIPRos, уточнение по транзакциям. Те вложенные транзакции, которые не откатываются при роллбэке корневой, называются автономными. Фишка Oracle. Кстати, в MS SQL и PostreeSql их нет, поэтому странно, что вы, работая с этими СУБД, настаиваете на своей трактовке вложенных транзакций.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217431
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79VIPRos, уточнение по транзакциям. Те вложенные транзакции, которые не откатываются при роллбэке корневой, называются автономными. Фишка Oracle. Кстати, в MS SQL и PostreeSql их нет, поэтому странно, что вы, работая с этими СУБД, настаиваете на своей трактовке вложенных транзакций.
ну, то что я работаю в мсскл и т.д. не обязывает меня понимать так как я понимаю "вложенные" транзакции
"автономные" и так есть автономные - т.е. независимые. Никакого отношения по моему это не имеет к аспекту "вложенности".
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217432
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, если они автономны в контексте обрамляющей транзакции, то да - они "вложенные" в моем понимании
т.е. они могут сами заврешится по своему усмотрению или делегировать завершение обрамляющей с указанием о типе завершения - коммит или ролбак своего контекста по возможности
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217433
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пишу не для мсскл или оракл
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217462
Bubba Kush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вложенной называется транзакция, коммит которой фиксирует операции транзакции только при фиксации обрамляющей транзакции и которая способна откатывать изменения только те, что она совершила от времени старта вложенной транзакции до времени отката.

Это достаточно очевидно любому программисту, знакомому с понятием стек, рекурсия и вложенность. Не понимаю, к чему демагогия про автономность и прочее?

Реализация вложенных транзакций обеспечивает повторное использование кода с операторами управления транзакциями без необходимости писать избыточные ифы.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217463
Bubba Kush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И то, что вложенных транзакций нет, это не упрощает поддержку и не делает код более понятным. Это поддержку усложняет и делает код более сложным (цикломатическая сложность кода возрастает, следовательно возрастает сложность тестированич). Это просто техническое ограничение СУБД. Ну нет там транзакционного стэка, видимо сложно его делать, потому и функционала такого нет.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39217469
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У оракла и ms sql server есть сейвпойнты, с их помощью "вложенные транзакции" и реализуются
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39218783
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop, прежде чем расписывать то, где и как Ваш код нарушает принципы SOLID, хотел бы узнать описание следующих параметров:

Код: c#
1.
2.
3.
const string DB_HEADER_JSON = "{'type':'config'}";
const string DB_JSON = "{'confVal1':$,'confVal2':$}";
const string OBJ_JSON = "{'tbConfig1':{'Text':$},'tbConfig2':{'Text':$}}";


или дайте ссылку на документацию к методам DB.GetWhere и DB.GetPartDoc<T> .
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39218920
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstop, прежде чем расписывать то, где и как Ваш код нарушает принципы SOLID, хотел бы узнать описание следующих параметров:

Код: c#
1.
2.
3.
const string DB_HEADER_JSON = "{'type':'config'}";
const string DB_JSON = "{'confVal1':$,'confVal2':$}";
const string OBJ_JSON = "{'tbConfig1':{'Text':$},'tbConfig2':{'Text':$}}";


или дайте ссылку на документацию к методам DB.GetWhere и DB.GetPartDoc<T> .

19067466
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39219238
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAstop, прежде чем расписывать то, где и как Ваш код нарушает принципы SOLID, хотел бы узнать описание следующих параметров:

Код: c#
1.
2.
3.
const string DB_HEADER_JSON = "{'type':'config'}";
const string DB_JSON = "{'confVal1':$,'confVal2':$}";
const string OBJ_JSON = "{'tbConfig1':{'Text':$},'tbConfig2':{'Text':$}}";


или дайте ссылку на документацию к методам DB.GetWhere и DB.GetPartDoc<T> .

19067466
Документация конечно не лучшая.

К методу GetWhere конечно есть скудное описание: find documents by filter, - и примеры из которых в принципе понятно.
А вот GetPartDoc<T> не имеет ни описания, ни примеров, где он принимает 4, а не 3 параметра.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39219267
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про UpdPartDoc<T> с 4-мя парамтрами кстати тоже ничего нет в документации.

Но я так понял, что это как хранится в БД:
Код: c#
1.
const string DB_JSON = "{'confVal1':$,'confVal2':$}";


а это как отображается на свойства объекта:
Код: c#
1.
const string OBJ_JSON = "{'tbConfig1':{'Text':$},'tbConfig2':{'Text':$}}";


верно?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39219297
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstopпропущено...


19067466
Документация конечно не лучшая.

К методу GetWhere конечно есть скудное описание: find documents by filter, - и примеры из которых в принципе понятно.
А вот GetPartDoc<T> не имеет ни описания, ни примеров, где он принимает 4, а не 3 параметра.

Спасибо за замечание. Я добавлю.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39219298
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПро UpdPartDoc<T> с 4-мя парамтрами кстати тоже ничего нет в документации.

Но я так понял, что это как хранится в БД:
Код: c#
1.
const string DB_JSON = "{'confVal1':$,'confVal2':$}";


а это как отображается на свойства объекта:
Код: c#
1.
const string OBJ_JSON = "{'tbConfig1':{'Text':$},'tbConfig2':{'Text':$}}";


верно?

Всё верно. Код настолько простой что в нем можно разобраться даже без документации =)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39219416
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopskyANAПро UpdPartDoc<T> с 4-мя парамтрами кстати тоже ничего нет в документации.

Но я так понял, что это как хранится в БД:
Код: c#
1.
const string DB_JSON = "{'confVal1':$,'confVal2':$}";


а это как отображается на свойства объекта:
Код: c#
1.
const string OBJ_JSON = "{'tbConfig1':{'Text':$},'tbConfig2':{'Text':$}}";


верно?

Всё верно. Код настолько простой что в нем можно разобраться даже без документации =)
Не льстите себе :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39219720
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bubba KushВложенной называется транзакция, коммит которой фиксирует операции транзакции только при фиксации обрамляющей транзакции и которая способна откатывать изменения только те, что она совершила от времени старта вложенной транзакции до времени отката.

Это достаточно очевидно любому программисту, знакомому с понятием стек, рекурсия и вложенность. Не понимаю, к чему демагогия про автономность и прочее?

Реализация вложенных транзакций обеспечивает повторное использование кода с операторами управления транзакциями без необходимости писать избыточные ифы.
+1, правильный и логичный путь

stopИ если проггер написал РОЛЛБЕК то он подразумевает что все что внутри благополучно откатится на всех уровнях,
это не гуд, только текущую должно

и COMMIT не должен влиять на обрамляющую транзакцию, он просто говорит, что "атом" транзакции выполнился и может быть отменён вышележащим РОЛЛБЕКом

если уж хочется глобально, то придумайте какой ни будь abort с месагой, который будет РОЛЛБЕКи делать вверх по иерархии
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39219837
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роллбек обрамляющей откатывает все вложенные в нее транзакции, даже если они коммитились. Вверх по уровням роллбек не распространяется.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39220566
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stopРоллбек обрамляющей откатывает все вложенные в нее транзакции, даже если они коммитились. Вверх по уровням роллбек не распространяется.
ну да

не так выразился?
stopИ если проггер написал РОЛЛБЕК то он подразумевает что все что внутри благополучно откатится на всех уровнях,
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39227871
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это треш. Тролли в угаре.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
int main(int argc, char** argv)
{
	//=====================================================

	system("cls");

	if (argc == 2 && !strcmp(argv[1], "-selftest")) //test mode
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39228179
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять якось невдобно получилось.
Еще один стандартный бенчмарк для Монго.
50 тыс. документов. В каждом массив на 100 целых чисел.
Цель запроса - пробежаться по всем документам и добавить 101 целое число в массив каждого документа,
короче говоря операция $PUSH для Монго и Insert для Днипры.
Запрос вообще самый самый базовый ниразу не подбирался. Например если вы на Монге будете делать
блог, то каждая статья также будет содержать массив с комментариями внизу, а пост комментария добавление этого
самого комментария в конец этого массива.

Сам запрос на апдейт этого дела ( незабываем обращать внимание на синтаксис )
Монго драйвер

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
var update = Builders<Person>.Update
                    .Push<int>(e => e.Arr, 100);

            stop = new Stopwatch();
            stop.Start();

            task = PushMany(collection, update);
            task.Wait();
            task.GetAwaiter().GetResult();

stop.Stop();

            Console.WriteLine(stop.ElapsedMilliseconds.ToString() + " ms.");

private static async Task PushMany(IMongoCollection<Person> collection,
                                           UpdateDefinition<Person> update)
        {
            await collection.UpdateManyAsync<Person>(p => p.Val == 1, update);
        }



Днипро драйвер

Код: c#
1.
2.
3.
4.
5.
6.
stop = new Stopwatch();
            stop.Start();

            db.GetWhere("{'Val':1}").Insert("{'Arr':[Add,100]}");

            Console.WriteLine(stop.ElapsedMilliseconds.ToString() + " ms.");



Результаты ожидаемы.
Днипра почти в 20ть раз быстрее . (59 миллисекунд против 1 секунды у Монго).
При этом Днипра - честная версионная транзакция, честный подтвержденный коммит на диск, все элементы в массиве проиндексированы автоматически.
Монга - отложеная запись, без транзакций. Дополнительно еще нужно создавать индексы.

Выводы:
Архитектура Днипры построена так, что не вызывает при добавлении нового элемента в массив документа его перезапись.
Монга, Постгри, Кеш и вся эта братия перезаписывает. При бОльшем количестве элементов, отставание будет только усугублятся.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39228314
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stop, что за поле Val, по которому делается выборка?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39228582
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAstop, что за поле Val, по которому делается выборка?

Это мембер класса

Код: c#
1.
2.
3.
4.
5.
public class Person
        {
            public int Val { get; set; }
            public List<int> Arr { get; set; }
        }



Дальше создается 50 тыс обьектов этого класса, где Val = 1
И дальше этот запрос.
"Добавить в массив Arr один элемент где Val = 1"
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39228601
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно..
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39244323
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда перед тобой стоит задача быстро написать понятный и хорошо поддерживаемый проект, всегда стоит задача выбора СУБД.
Бекенд в своей классической форме подразумевает создать модель данных и слой бизнесс логики работы с этими данными, который на начальном этапе скорей всего сводится к CRUD (Create Read Update Delete) операциям.
В данном случае выбор No Sql решения на базе украинской СУБД Днiпро был достаточно и необычен и рискован. Особенно если ты отлаживаешь проект и базу данных одновременно :) Но, чем больше ошибок будет выловлено тем лучше, на чем то же нужно тестировать субд.
Поэтому я начал проект, который уже при первом приближении декомпозировался в 30+ «таблиц» и 50+ «хранимок»
Суть самого проекта:
Чтото вроде социальной сети с элементами конструкторов форм, визардами, лайками, приватными чатами, оповещениями всех обо всем, системой комментариев, лентами сообщений и тд.

Впечетления.
Все оказалось не так плохо. Весь Data Access Layer который отвечает за коммуникацию с базой данных представлен здесь
https://github.com/Bazist/DniproExamples/blob/master/Booben/Booben/Controllers/DAL.cs

Каждая «хранимка» занимает всего несколько строк кода и по сути своей шаблонна. Типичный метод GetWhere(шаблон части джисона).Select/Update/Insert/Delete(шаблон части джисона).
Есть более сложные хранимки, вида:
«Вставить обьект Event всем подписчикам этой страницы пользователя.»
(AddCommentToPage процедура в исходнике выше, как пример)
Благодаря статической типизации, если модель меняется, то ошибки отлавливаются на этапе компиляции. Все сами по себе методы шаблонны, можно набросать 3-5 «хранимок» и не сделать ниодной ошибки, ошибится достаточно тяжело.
Сама модель данных представляет собой крупную иерархию класса User.
Уровень вложенности достигает до 6-7 сущностей, что в реляционной модели означает 5-6 джоинов.
Вся модель представлена вот здесь

https://github.com/Bazist/DniproExamples/tree/master/Booben/Booben/Models

После того как у нас есть модель данных в БД и есть уровень работы с этими данными, остается на эту модель только натянуть VIews. Пресловутый MVC паттерн. Но тут все настолько просто, что это даже больше к дизайну чем к логике.

PS:
По быстродействию и архитектуре самой СУБД уже было обсуждение
Сейчас впечетления такие, что программу из 90х запустили на мощном компьютере )
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39264600
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Баз привет. Выдалась минутка. Чо как? Есть updates по ветке Java-клиента?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39268625
stop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБаз привет. Выдалась минутка. Чо как?


Все по страому.
В отпуск пока что собираюсь.

maytonЕсть updates по ветке Java-клиента?

Пока нет, используется старый Джава драйвер.
Написать ОРМ драйвер под Джаву также как это сделано под Дот Нет
пока только в планах.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39283371
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Up какие новости?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39350149
HArray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonUp какие новости?

Выложил в сеть сердце Стебелька.
Все еще думаете что с Монго тесты както подтасованы ?
Шах и мат господа писимисты.
Посмотрите тогда вот сюда, на каком движке собрана СУБД Днiпро


slavik@slavik:~$ /home/slavik/Documents/HArray/HArray/bin/Release/HArrayMono
=== HArrayInt VS std::map<int,int> testing ===
Insert/Search 1000000 SEQUENCE keys (4 bytes each) ...
HArrayInt => Insert: 14 msec, Search: 3 msec.
std::map => Insert: 282 msec, Search: 166 msec.

Insert/Search 3000000 SEQUENCE keys (4 bytes each) ...
HArrayInt => Insert: 32 msec, Search: 10 msec.
std::map => Insert: 1076 msec, Search: 562 msec.

Insert/Search 5000000 SEQUENCE keys (4 bytes each) ...
HArrayInt => Insert: 54 msec, Search: 16 msec.
std::map => Insert: 2107 msec, Search: 1066 msec.

Insert/Search 7000000 SEQUENCE keys (4 bytes each) ...
HArrayInt => Insert: 77 msec, Search: 22 msec.
std::map => Insert: 3014 msec, Search: 1505 msec.

Insert/Search 9000000 SEQUENCE keys (4 bytes each) ...
HArrayInt => Insert: 95 msec, Search: 28 msec.
std::map => Insert: 4021 msec, Search: 2017 msec.

Insert/Search 1000000 RANDOM keys (4 bytes each) ...
HArrayInt => Insert: 15 msec, Search: 15 msec.
std::map => Insert: 692 msec, Search: 619 msec.

Insert/Search 3000000 RANDOM keys (4 bytes each) ...
HArrayInt => Insert: 47 msec, Search: 47 msec.
std::map => Insert: 2653 msec, Search: 2430 msec.

Insert/Search 5000000 RANDOM keys (4 bytes each) ...
HArrayInt => Insert: 84 msec, Search: 84 msec.
std::map => Insert: 4908 msec, Search: 4445 msec.

Insert/Search 7000000 RANDOM keys (4 bytes each) ...
HArrayInt => Insert: 123 msec, Search: 126 msec.
std::map => Insert: 7253 msec, Search: 6700 msec.

Insert/Search 9000000 RANDOM keys (4 bytes each) ...
HArrayInt => Insert: 167 msec, Search: 170 msec.
std::map => Insert: 9755 msec, Search: 9066 msec.

Insert/Search 1000000 PERIOD keys (4 bytes each) ...
HArrayInt => Insert: 14 msec, Search: 4 msec.
std::map => Insert: 276 msec, Search: 165 msec.

Insert/Search 3000000 PERIOD keys (4 bytes each) ...
HArrayInt => Insert: 43 msec, Search: 9 msec.
std::map => Insert: 989 msec, Search: 551 msec.

Insert/Search 5000000 PERIOD keys (4 bytes each) ...
HArrayInt => Insert: 70 msec, Search: 16 msec.
std::map => Insert: 1931 msec, Search: 1007 msec.

Insert/Search 7000000 PERIOD keys (4 bytes each) ...
HArrayInt => Insert: 99 msec, Search: 22 msec.
std::map => Insert: 2929 msec, Search: 1503 msec.

Insert/Search 9000000 PERIOD keys (4 bytes each) ...
HArrayInt => Insert: 126 msec, Search: 30 msec.
std::map => Insert: 3990 msec, Search: 2005 msec.

=== HArrayVarRAM VS std::map<BinKey,int> testing ===
Insert/Search 1000000 SEQUENCE keys (16 bytes each) ...
HArrayVarRAM => Insert: 143 msec, Search: 221 msec.
std::map => Insert: 776 msec, Search: 820 msec.

Insert/Search 3000000 SEQUENCE keys (16 bytes each) ...
HArrayVarRAM => Insert: 590 msec, Search: 846 msec.
std::map => Insert: 2986 msec, Search: 2999 msec.

Insert/Search 5000000 SEQUENCE keys (16 bytes each) ...
HArrayVarRAM => Insert: 1094 msec, Search: 1449 msec.
std::map => Insert: 5273 msec, Search: 5369 msec.

Insert/Search 7000000 SEQUENCE keys (16 bytes each) ...
HArrayVarRAM => Insert: 1588 msec, Search: 2114 msec.
std::map => Insert: 7894 msec, Search: 8856 msec.

Insert/Search 9000000 SEQUENCE keys (16 bytes each) ...
HArrayVarRAM => Insert: 2225 msec, Search: 2830 msec.
std::map => Insert: 10583 msec, Search: 11053 msec.

Insert/Search 1000000 RANDOM keys (16 bytes each) ...
HArrayVarRAM => Insert: 70 msec, Search: 89 msec.
std::map => Insert: 709 msec, Search: 710 msec.

Insert/Search 3000000 RANDOM keys (16 bytes each) ...
HArrayVarRAM => Insert: 185 msec, Search: 221 msec.
std::map => Insert: 2683 msec, Search: 2705 msec.

Insert/Search 5000000 RANDOM keys (16 bytes each) ...
HArrayVarRAM => Insert: 297 msec, Search: 391 msec.
std::map => Insert: 4933 msec, Search: 5025 msec.

Insert/Search 7000000 RANDOM keys (16 bytes each) ...
HArrayVarRAM => Insert: 607 msec, Search: 653 msec.
std::map => Insert: 7448 msec, Search: 7504 msec.

Insert/Search 9000000 RANDOM keys (16 bytes each) ...
HArrayVarRAM => Insert: 765 msec, Search: 887 msec.
std::map => Insert: 10028 msec, Search: 10331 msec.

Insert/Search 1000000 PERIOD keys (16 bytes each) ...
HArrayVarRAM => Insert: 112 msec, Search: 167 msec.
std::map => Insert: 714 msec, Search: 711 msec.

Insert/Search 3000000 PERIOD keys (16 bytes each) ...
HArrayVarRAM => Insert: 412 msec, Search: 563 msec.
std::map => Insert: 2681 msec, Search: 2703 msec.

Insert/Search 5000000 PERIOD keys (16 bytes each) ...
HArrayVarRAM => Insert: 694 msec, Search: 984 msec.
std::map => Insert: 4961 msec, Search: 4999 msec.

Insert/Search 7000000 PERIOD keys (16 bytes each) ...
HArrayVarRAM => Insert: 1277 msec, Search: 1444 msec.
std::map => Insert: 7328 msec, Search: 7537 msec.

Insert/Search 9000000 PERIOD keys (16 bytes each) ...
HArrayVarRAM => Insert: 1606 msec, Search: 1889 msec.
std::map => Insert: 9901 msec, Search: 10218 msec.

=== HArrayVarRAM VS std::map<StrKey,int> testing ===
Insert/Search 1000000 SIMILAR keys (64 bytes each) ...
HArrayVarRAM => Insert: 261 msec, Search: 276 msec.
std::map => Insert: 1229 msec, Search: 1161 msec.

Insert/Search 2000000 SIMILAR keys (64 bytes each) ...
HArrayVarRAM => Insert: 592 msec, Search: 682 msec.
std::map => Insert: 2792 msec, Search: 2577 msec.

Insert/Search 3000000 SIMILAR keys (64 bytes each) ...
HArrayVarRAM => Insert: 1022 msec, Search: 1173 msec.
std::map => Insert: 4413 msec, Search: 4362 msec.

Insert/Search 1000000 RANDOM keys (64 bytes each) ...
HArrayVarRAM => Insert: 269 msec, Search: 272 msec.
std::map => Insert: 984 msec, Search: 889 msec.

Insert/Search 2000000 RANDOM keys (64 bytes each) ...
HArrayVarRAM => Insert: 640 msec, Search: 651 msec.
std::map => Insert: 2164 msec, Search: 2007 msec.

Insert/Search 3000000 RANDOM keys (64 bytes each) ...
HArrayVarRAM => Insert: 1053 msec, Search: 1072 msec.
std::map => Insert: 3570 msec, Search: 3271 msec.


Больше о проекте
https://github.com/Bazist/HArray
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39350228
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HArrayВсе еще думаете...Вот польстил себе так польстил :)
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39350262
HArray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но ведь правда.
Эта СУБД единственная кто начала с переработки базовых принципов поисковых алгоритмов.
Она единственная кто основана на супербыстром Trie, а не на какихто попсовых модификациях бинарных деревьев или хештаблицах.
Это почти революция в СУБД строении.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39351233
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HArray, с RavenDB посоревнуйся ещё :)

А не зашкалит сервер от 100,000 запросов/сек?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39351389
HArray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А причем тут Равен ?
В данном случае речь о низкоуровневых Key\Value контейнерах.
Их сравниваем.
Что касается Равен будет конечно медленее работать, чуда не произойдет.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39351406
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё равно база хранящая информацию в регистрах процессора всех порвёт по быстродействию.
Миллиарды транзакций в секунду - легко!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39351412
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HArrayА причем тут Равен ?
В данном случае речь о низкоуровневых Key\Value контейнерах.
Их сравниваем.
Тогда где сравнение с Couchbase и Redis?
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39351441
HArray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovВсё равно база хранящая информацию в регистрах процессора всех порвёт по быстродействию.
Миллиарды транзакций в секунду - легко!


Регистров в процессоре всего несколько, это будет база которая будет хранить всего несколько значений.
...
Рейтинг: 0 / 0
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #39351445
HArray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAHArrayА причем тут Равен ?
В данном случае речь о низкоуровневых Key\Value контейнерах.
Их сравниваем.
Тогда где сравнение с Couchbase и Redis?

Если их сравнивать с DniproDB то у них значительно более куцый функционал (нет транзакций, не работают с джисон и тд).
Если их сравнивать с HArray то последний это просто очень удачная реализация Trie, которую сравнивают с разными контейнерами.
...
Рейтинг: 0 / 0
305 сообщений из 305, показаны все 13 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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