powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
25 сообщений из 305, страница 5 из 13
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
    #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
25 сообщений из 305, страница 5 из 13
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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