|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
Владимир2012stopОдин из первых разделов по архитектуре, с иллюстрациями Dnipro In Using Спасибо. Вот почитал некоторые страницы с http://blog.pikosec.com/ У вас имеется одно любопытное утверждение / http://blog.pikosec.com/?p=163/ Нет, давайте на чистоту. Если Вы хотите создать высокопроизводительную базу данных и в голову приходят только разные виды бинарных деревьев, хештаблицы и радиусные деревья описаные в разных трудах свыше 20 лет назад, то не стоит даже начинать. Скорей всего прийдется боротся за те пресловутые 5% усовершенствования технологии и конечноже проиграть. Поскольку до Вас это поле вспахали множество ученных и инженеров и врядли они чегото действительно ценного там пропустили. Спорить не люблю. Просто выскажу некое иное суждение. Еще толком и пахать то не начинали ... /намек на то, что неиспользованный потенциал огромен/ Наконецто, хоть первый комментарий человека, который в чем то пытается разобраться. Еще раз Спасибо. Этот абзац относится скорее к реляционным базам данных, совершенствование которых проходит уже около 30 лет. Мне кажется с этих технологий уже выжали максимум. Поэтому, если нужно добиться других качественных результатов, пора выходить на новый виток эволюции. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 22:01 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
skyANAМинимальная блокировка зависит от используемого движка (монга позволяет реализовать свой собственный concurrency control). Да, еще хочу здесь добавить свой комментарий. Не один хорошо спроектированый нормальный продукт, не позволяет менять двигатели как перчатки. Такая универсальность, первый враг эффективности, ведь для коммуникации дополнительных лееров между собой нужно время, которое на уровне ядра системы должно использоваться черезвычайно эффективно. Разработчики и инженеры системы сами должни все просчитать и заложить наиболее эффективную модель. Поэтому вообще концепция "сменить движок Монги на более современный". WiredTiger или какой там последний ? Кажется мне достаточно странной. Это чтоже, разработчики сразу не угадали и не смогли собрать эффективное ядро системы ? Вообщем, спорить не буду, но сам по себе момент очень спорный. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 22:14 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
stopПод капотом Днипры расположены два высокооборотистых Key\Value движка, основаных на Trie структурах Почему trie? Тут говорится, что на выборках сбалансированное avl-дерево будет быстрее, да и памяти меньше забирает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 22:20 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
Я бы все-таки искренне советовал ТС обратить внимание на грамотность языка в документации, как английского, так и русского. Неграмотность заметно понижает шансы на успех. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 22:47 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
Arm79stopПод капотом Днипры расположены два высокооборотистых Key\Value движка, основаных на Trie структурах Почему trie? Тут говорится, что на выборках сбалансированное avl-дерево будет быстрее, да и памяти меньше забирает. trie - это и есть модификация префиксного дерева. На хабре достаточно примитивная "иллюстративная" имплементация. Но общую идею конечно понять можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 22:58 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
stoptrie - это и есть модификация префиксного дерева. На хабре достаточно примитивная "иллюстративная" имплементация. Но общую идею конечно понять можно. HArrayInt VS std::map http://wiki.pikosec.com/index.php?title=HArrayInt_VS_std::map Неплохо, неплохо, ... Код boost и stl трудноватенько понять /для меня по крайней мере/. Как по мне - "бред сивой кобылы". ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 23:11 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
stopskyANAОРМ для документоориентированной СУБД - это пять :) Действительно для монги нет ОРМ, но есть ODM. Под .NET версия есть ? Или только для ПХП. Родной C# Driver.. Но есть и сторонние ODM. stopПрокси десериализация (частичная вычитка обьекта по шаблону без его пересоздания полностью) имеется ? Проекции что-ли? Так с самого начала. stopskyANAМинимальная блокировка зависит от используемого движка (монга позволяет реализовать свой собственный concurrency control). Я сомневаюсь что это вообще возможно. Почитай документацию. stopskyANAКстати что насчёт валидации? Всё хорошо. Покажи как задать валидатор на уровне коллекции. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 23:30 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
stopskyANAМинимальная блокировка зависит от используемого движка (монга позволяет реализовать свой собственный concurrency control). Да, еще хочу здесь добавить свой комментарий. Не один хорошо спроектированый нормальный продукт, не позволяет менять двигатели как перчатки. Такая универсальность, первый враг эффективности, ведь для коммуникации дополнительных лееров между собой нужно время, которое на уровне ядра системы должно использоваться черезвычайно эффективно. Разработчики и инженеры системы сами должни все просчитать и заложить наиболее эффективную модель. Поэтому вообще концепция "сменить движок Монги на более современный". WiredTiger или какой там последний ? Кажется мне достаточно странной. Это чтоже, разработчики сразу не угадали и не смогли собрать эффективное ядро системы ? Вообщем, спорить не буду, но сам по себе момент очень спорный. Слушай, зачем гадать? Почитай документацию, она в открытом доступе. Почитай примеры переходов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 23:33 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
skyANAПокажи как задать валидатор на уровне коллекции. Если работать через ORM то сами бизнесс обьекты являются валидаторами схемы документов. Нельзя вставить левый атрибут в документ, нельзя ошибиться типом данных. Поэтому я рекомендую работать через ORM, там где это возможно. Если речь про чтото сложней, то нет. Не имплементировано еще. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 01:27 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
skyANAРодной C# Driver.. Но есть и сторонние ODM. Речь не о драйвере, а ORM. И что за странное название ODM. (Object Document Mapping ?) Тогда почему для RDBMS не назвали OTM (Object Table Mapping) Мне больше нравится название ORM, незачем тут выдумывать какихто велосипедов. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 01:29 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
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, следуя своей логике? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 08:32 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
stop, что касается драйвера, то что у тебя "можно записать в ламповом шарпе на няшном синтаксисе чтото вроде (ORM)" есть и в .NET MongoDB Driver. Плюс наряду с "няшным синтаксисом" также поддерживается Linq и просто создание фильтров, проекций и т.п. в виде объектов. Также Fluent API, поддержка dynamic, подержка async и await... В качестве экспериментальных фич добавили логирование и счётчики производительности, чтобы можно было при желание посмотреть, что происходит realtime внутри... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 08:49 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
stopskyANAПокажи как задать валидатор на уровне коллекции. Если работать через ORM то сами бизнесс обьекты являются валидаторами схемы документов. Нельзя вставить левый атрибут в документ, нельзя ошибиться типом данных. Поэтому я рекомендую работать через ORM, там где это возможно. Если речь про чтото сложней, то нет. Не имплементировано еще. Речь про валидацию на уровне базы, а не классов C#. Запишем, что у тебя её нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 08:53 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
А когда сравнивали с мс скл по скорости, про инмемори не забыли? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 10:57 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
Mike_zaА когда сравнивали с мс скл по скорости, про инмемори не забыли? У СУБД класса импортозамещение, вроде, нет никаких инмемори и колончноориентированных таблиц, секционирований. Поэтому какой смысл не забывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 11:02 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
Mike_zaА когда сравнивали с мс скл по скорости, про инмемори не забыли? Если и там и там данные гарантировано комитятся на диск, соблюдая ACID, то InMemory (на самом деле не совсем так, ибо блоб лежит на диске, но упустим) то достаточное наличие памяти на сервере здесь выступает просто как требование оборудования. К томуже MS SQL тоже не бегает постоянно на диск, а вполне себе позволяет кешировать данные, особенно в случае бенчмарков с однотипными запросами на одних и техже небольших таблицах. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 11:11 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
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.
Вопросов два. Как избавится от дополнительной прослойки Bson, чтобы вставлять обьекты напрямую. Ведь это же ОРМ ? Как сделать короче код, чтобы он выглядел както так, как у Днипры Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 11:18 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
Прошу прощения, эта строчка неправильная List<string> docs = new List<string>(); List<object> docs = new List<object>(); ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 11:20 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
stop AdxОткат базы на дату - это для крошечных проектов, которым не нужна скорость. В серьезных базах есть backup, который решает критические проблемы. Откат базы на дату категорически не допустим при штатной работе. Впрочем, лишней возможность не будет. Так работает Оракл или Днипро. Остальные рассказывают что "это не нужно". Я прекрасно знаю, что в ORACLE это есть. В MS SQL есть сторонний продукт, который это реализует без проблем. Но это действительно не нужно. Впрочем ничего плохого про эту возможность я не говорил, есть разные ситуации. Где-то откатить базу на день назад не страшно. Возможность можно отнести к плюсам базы, не возражаю. stopAdx"Резолв деадлоков" невозможен по определению. Если он возможен - то это не дедлок. Мой резолв, это обычный килл одной из транзакций. Но в отличии от разных MS SQL я в лог бросаю, кто залочился, на каких документах, на каких атрибутах, какие именно атрибуты документов вошли в взаимный дедлок. Это штатный режим работы сервера. Посмешили. Дедлоки везде так "разрешаются", это базовая особенность СУБД. И с чего Вы решили, что MS SQL в лог такую информацию не пишет? stopAdxИ для самообразования - в MS SQL пять видов транзакций. Я думаю в новых версиях даже больше. Но основных я бы выделил три. Ровно пять. И все основные. Просто у Вас три, и Вы считаете их основными. Что касается "новых версий". Вы что, хотите конкурировать со старыми? MS SQL 7.0? Вообще я бы не стал бы сравнивать Ваш продукт с MS SQL. PostgreSQL, Mysql, Mongodb - сравнивать нужно с ними. PS Остальные заявления я комментировать не буду, для меня там все очевидно. Свое мнение я высказал, конструктива нет. Пусть другие комментируют, если есть желание. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 11:28 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
Вопрос снимается, с Монго драйвером . ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 11:30 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
Добавлю по скорости MS SQL. Посмотрел Ваше сравнение. Если бы у меня сотрудник написал написал такой код, какой написали Вы, я бы его уволил. Ну не уволил, но такого на работу бы точно не взял. Вы абсолютно ничего не понимаете в RDBMS. Да-да, я понимаю что Вы не "чукча читатель", но тогда не позорьтесь, не приводите такие примеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 11:40 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
AdxВы решили, что MS SQL в лог такую информацию не пишет? Можно посмотреть вид и формат лога, в котором можно совершенно недвузначно разобраться какие запросы и на каких строчках вошли в дедлок ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 11:42 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
AdxДобавлю по скорости MS SQL. Посмотрел Ваше сравнение. Если бы у меня сотрудник написал написал такой код, какой написали Вы, я бы его уволил. Ну не уволил, но такого на работу бы точно не взял. Вы абсолютно ничего не понимаете в RDBMS. Да-да, я понимаю что Вы не "чукча читатель", но тогда не позорьтесь, не приводите такие примеры. Этот код писал не я, а писал такойже как Вы девелопер, который решил во что бы то нистало "показать как надо". У Вас есть шанс переписать его правильно. Обещаю перемерять и перевыложить бенчмарки с "правильным кодом" у себя. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 11:44 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
stopAdxВы решили, что MS SQL в лог такую информацию не пишет? Можно посмотреть вид и формат лога, в котором можно совершенно недвузначно разобраться какие запросы и на каких строчках вошли в дедлок ? Можно. В документации все есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 12:14 |
|
В рамках импортозамещения предлагаю обсудить новую базу (Днипра)
|
|||
---|---|---|---|
#18+
Adxstopпропущено... Можно посмотреть вид и формат лога, в котором можно совершенно недвузначно разобраться какие запросы и на каких строчках вошли в дедлок ? Можно. В документации все есть. Нет, я хочу увидеть от Вас. И правильный код, и пример лога. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 12:19 |
|
|
start [/forum/topic.php?fid=35&msg=39208830&tid=1552251]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 299ms |
0 / 0 |