Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8 9 10 .. 13   вперед  Ctrl
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
Владимир2012
stop
Один из первых разделов по архитектуре, с иллюстрациями Dnipro In Using

Спасибо.
Вот почитал некоторые страницы с http://blog.pikosec.com/
У вас имеется одно любопытное утверждение /http://blog.pikosec.com/?p=163/

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

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


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

Этот абзац относится скорее к реляционным базам данных,
совершенствование которых проходит уже около 30 лет.
Мне кажется с этих технологий уже выжали максимум.
Поэтому, если нужно добиться других качественных результатов,
пора выходить на новый виток эволюции.
5 апр 16, 22:01    [19020942]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
skyANA
Минимальная блокировка зависит от используемого движка (монга позволяет реализовать свой собственный concurrency control).


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

Поэтому вообще концепция "сменить движок Монги на более современный".
WiredTiger или какой там последний ? Кажется мне достаточно странной.
Это чтоже, разработчики сразу не угадали и не смогли собрать эффективное ядро системы ?
Вообщем, спорить не буду, но сам по себе момент очень спорный.
5 апр 16, 22:14    [19020975]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
Arm79
Member

Откуда: МО, Раменское
Сообщений: 3697
stop
Под капотом Днипры расположены два высокооборотистых Key\Value движка, основаных на Trie структурах

Почему trie? Тут говорится, что на выборках сбалансированное avl-дерево будет быстрее, да и памяти меньше забирает.
5 апр 16, 22:20    [19020987]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
schi
Member

Откуда: Москва
Сообщений: 2601
Я бы все-таки искренне советовал ТС обратить внимание на грамотность языка в документации, как английского, так и русского. Неграмотность заметно понижает шансы на успех.
5 апр 16, 22:47    [19021029]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
Arm79
stop
Под капотом Днипры расположены два высокооборотистых Key\Value движка, основаных на Trie структурах

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


trie - это и есть модификация префиксного дерева.
На хабре достаточно примитивная "иллюстративная" имплементация.
Но общую идею конечно понять можно.
5 апр 16, 22:58    [19021047]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
stop
trie - это и есть модификация префиксного дерева.
На хабре достаточно примитивная "иллюстративная" имплементация.
Но общую идею конечно понять можно.

HArrayInt VS std::map http://wiki.pikosec.com/index.php?title=HArrayInt_VS_std::map

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

Код boost и stl трудноватенько понять /для меня по крайней мере/.
Как по мне - "бред сивой кобылы".
5 апр 16, 23:11    [19021066]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
stop
skyANA
ОРМ для документоориентированной СУБД - это пять :)
Действительно для монги нет ОРМ, но есть ODM.


Под .NET версия есть ? Или только для ПХП.

Родной C# Driver.. Но есть и сторонние ODM.

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

Проекции что-ли? Так с самого начала.

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


Я сомневаюсь что это вообще возможно.

Почитай документацию.

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


Всё хорошо.

Покажи как задать валидатор на уровне коллекции.
5 апр 16, 23:30    [19021102]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

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


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

Поэтому вообще концепция "сменить движок Монги на более современный".
WiredTiger или какой там последний ? Кажется мне достаточно странной.
Это чтоже, разработчики сразу не угадали и не смогли собрать эффективное ядро системы ?
Вообщем, спорить не буду, но сам по себе момент очень спорный.

Слушай, зачем гадать? Почитай документацию, она в открытом доступе. Почитай примеры переходов.
5 апр 16, 23:33    [19021108]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
skyANA
Покажи как задать валидатор на уровне коллекции.


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

Если речь про чтото сложней, то нет. Не имплементировано еще.
6 апр 16, 01:27    [19021222]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
skyANA
Родной C# Driver.. Но есть и сторонние ODM.


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

Мне больше нравится название ORM, незачем тут выдумывать какихто велосипедов.
6 апр 16, 01:29    [19021226]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
stop
skyANA
Родной 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, следуя своей логике? :)
6 апр 16, 08:32    [19021625]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
stop, что касается драйвера, то что у тебя "можно записать в ламповом шарпе на няшном синтаксисе чтото вроде (ORM)" есть и в .NET MongoDB Driver.

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

Также Fluent API, поддержка dynamic, подержка async и await...
В качестве экспериментальных фич добавили логирование и счётчики производительности, чтобы можно было при желание посмотреть, что происходит realtime внутри...
6 апр 16, 08:49    [19021666]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
stop
skyANA
Покажи как задать валидатор на уровне коллекции.


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

Если речь про чтото сложней, то нет. Не имплементировано еще.

Речь про валидацию на уровне базы, а не классов C#. Запишем, что у тебя её нет.
6 апр 16, 08:53    [19021679]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
А когда сравнивали с мс скл по скорости, про инмемори не забыли?
6 апр 16, 10:57    [19022141]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Mike_za
А когда сравнивали с мс скл по скорости, про инмемори не забыли?

У СУБД класса импортозамещение, вроде, нет никаких инмемори и колончноориентированных таблиц, секционирований. Поэтому какой смысл не забывать?
6 апр 16, 11:02    [19022161]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
Mike_za
А когда сравнивали с мс скл по скорости, про инмемори не забыли?


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

К томуже MS SQL тоже не бегает постоянно на диск, а вполне себе позволяет кешировать данные,
особенно в случае бенчмарков с однотипными запросами на одних и техже небольших таблицах.
6 апр 16, 11:11    [19022204]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
skyANA
stop, что касается драйвера, то что у тебя "можно записать в ламповом шарпе на няшном синтаксисе чтото вроде (ORM)" есть и в .NET MongoDB Driver.


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

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, чтобы вставлять обьекты напрямую. Ведь это же ОРМ ?
  • Как сделать короче код, чтобы он выглядел както так, как у Днипры

    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());
    


    Спасибо.
  • 6 апр 16, 11:18    [19022250]     Ответить | Цитировать Сообщить модератору
     Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
    stop
    Member [заблокирован]

    Откуда: blog.pikosec.com
    Сообщений: 405
    Прошу прощения, эта строчка неправильная
    List<string> docs = new List<string>();
    List<object> docs = new List<object>();
    6 апр 16, 11:20    [19022261]     Ответить | Цитировать Сообщить модератору
     Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
    Adx
    Guest
    stop

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


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



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

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


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


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

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


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



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

    Вообще я бы не стал бы сравнивать Ваш продукт с MS SQL.
    PostgreSQL, Mysql, Mongodb - сравнивать нужно с ними.
    PS
    Остальные заявления я комментировать не буду, для меня там все очевидно. Свое мнение я высказал, конструктива нет. Пусть другие комментируют, если есть желание.
    6 апр 16, 11:28    [19022320]     Ответить | Цитировать Сообщить модератору
     Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
    stop
    Member [заблокирован]

    Откуда: blog.pikosec.com
    Сообщений: 405
    Вопрос снимается, с Монго драйвером.
    6 апр 16, 11:30    [19022338]     Ответить | Цитировать Сообщить модератору
     Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
    Adx
    Guest
    Добавлю по скорости MS SQL. Посмотрел Ваше сравнение.
    Если бы у меня сотрудник написал написал такой код, какой написали Вы, я бы его уволил. Ну не уволил, но такого на работу бы точно не взял. Вы абсолютно ничего не понимаете в RDBMS. Да-да, я понимаю что Вы не "чукча читатель", но тогда не позорьтесь, не приводите такие примеры.
    6 апр 16, 11:40    [19022404]     Ответить | Цитировать Сообщить модератору
     Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
    stop
    Member [заблокирован]

    Откуда: blog.pikosec.com
    Сообщений: 405
    Adx
    Вы решили, что MS SQL в лог такую информацию не пишет?


    Можно посмотреть вид и формат лога, в котором можно совершенно недвузначно разобраться какие запросы и на каких строчках вошли в дедлок ?
    6 апр 16, 11:42    [19022411]     Ответить | Цитировать Сообщить модератору
     Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
    stop
    Member [заблокирован]

    Откуда: blog.pikosec.com
    Сообщений: 405
    Adx
    Добавлю по скорости MS SQL. Посмотрел Ваше сравнение.
    Если бы у меня сотрудник написал написал такой код, какой написали Вы, я бы его уволил. Ну не уволил, но такого на работу бы точно не взял. Вы абсолютно ничего не понимаете в RDBMS. Да-да, я понимаю что Вы не "чукча читатель", но тогда не позорьтесь, не приводите такие примеры.


    Этот код писал не я, а писал такойже как Вы девелопер, который решил во что бы то нистало "показать как надо".
    У Вас есть шанс переписать его правильно. Обещаю перемерять и перевыложить бенчмарки с "правильным кодом" у себя.
    6 апр 16, 11:44    [19022423]     Ответить | Цитировать Сообщить модератору
     Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
    Adx
    Guest
    stop
    Adx
    Вы решили, что MS SQL в лог такую информацию не пишет?


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


    Можно. В документации все есть.
    6 апр 16, 12:14    [19022575]     Ответить | Цитировать Сообщить модератору
     Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
    stop
    Member [заблокирован]

    Откуда: blog.pikosec.com
    Сообщений: 405
    Adx
    stop
    пропущено...


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


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


    Нет, я хочу увидеть от Вас.
    И правильный код, и пример лога.
    6 апр 16, 12:19    [19022588]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8 9 10 .. 13   вперед  Ctrl
    Все форумы / Сравнение СУБД Ответить