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

Откуда: http://glaskugel.ru
Сообщений: 4604
И то, что вложенных транзакций нет, это не упрощает поддержку и не делает код более понятным. Это поддержку усложняет и делает код более сложным (цикломатическая сложность кода возрастает, следовательно возрастает сложность тестированич). Это просто техническое ограничение СУБД. Ну нет там транзакционного стэка, видимо сложно его делать, потому и функционала такого нет.
17 апр 16, 09:57    [19068257]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
Sayan Malakshinov
Member

Откуда: Мск
Сообщений: 5947
У оракла и ms sql server есть сейвпойнты, с их помощью "вложенные транзакции" и реализуются
17 апр 16, 10:33    [19068283]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
stop, прежде чем расписывать то, где и как Ваш код нарушает принципы SOLID, хотел бы узнать описание следующих параметров:

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>.
19 апр 16, 09:42    [19075129]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
skyANA
stop, прежде чем расписывать то, где и как Ваш код нарушает принципы SOLID, хотел бы узнать описание следующих параметров:

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
19 апр 16, 11:53    [19076105]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
stop
skyANA
stop, прежде чем расписывать то, где и как Ваш код нарушает принципы SOLID, хотел бы узнать описание следующих параметров:

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 параметра.
19 апр 16, 14:51    [19077743]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
Про UpdPartDoc<T> с 4-мя парамтрами кстати тоже ничего нет в документации.

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

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

верно?
19 апр 16, 15:08    [19077909]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

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


19067466

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

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


Спасибо за замечание. Я добавлю.
19 апр 16, 15:24    [19078118]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
skyANA
Про UpdPartDoc<T> с 4-мя парамтрами кстати тоже ничего нет в документации.

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

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

верно?


Всё верно. Код настолько простой что в нем можно разобраться даже без документации =)
19 апр 16, 15:24    [19078123]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
stop
skyANA
Про UpdPartDoc<T> с 4-мя парамтрами кстати тоже ничего нет в документации.

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

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

верно?


Всё верно. Код настолько простой что в нем можно разобраться даже без документации =)

Не льстите себе :)
19 апр 16, 16:58    [19078903]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6642
Bubba Kush
Вложенной называется транзакция, коммит которой фиксирует операции транзакции только при фиксации обрамляющей транзакции и которая способна откатывать изменения только те, что она совершила от времени старта вложенной транзакции до времени отката.

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

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

+1, правильный и логичный путь

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

это не гуд, только текущую должно

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

если уж хочется глобально, то придумайте какой ни будь abort с месагой, который будет РОЛЛБЕКи делать вверх по иерархии
20 апр 16, 06:45    [19080362]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
Роллбек обрамляющей откатывает все вложенные в нее транзакции, даже если они коммитились. Вверх по уровням роллбек не распространяется.
20 апр 16, 09:46    [19080672]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6642
stop
Роллбек обрамляющей откатывает все вложенные в нее транзакции, даже если они коммитились. Вверх по уровням роллбек не распространяется.

ну да

не так выразился?
stop
И если проггер написал РОЛЛБЕК то он подразумевает что все что внутри благополучно откатится на всех уровнях,
20 апр 16, 19:01    [19084814]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
mikron
Member

Откуда:
Сообщений: 888
Это треш. Тролли в угаре.

int main(int argc, char** argv)
{
	//=====================================================

	system("cls");

	if (argc == 2 && !strcmp(argv[1], "-selftest")) //test mode
29 апр 16, 23:38    [19124232]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
Опять якось невдобно получилось.
Еще один стандартный бенчмарк для Монго.
50 тыс. документов. В каждом массив на 100 целых чисел.
Цель запроса - пробежаться по всем документам и добавить 101 целое число в массив каждого документа,
короче говоря операция $PUSH для Монго и Insert для Днипры.
Запрос вообще самый самый базовый ниразу не подбирался. Например если вы на Монге будете делать
блог, то каждая статья также будет содержать массив с комментариями внизу, а пост комментария добавление этого
самого комментария в конец этого массива.

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

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


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

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

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

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


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

Выводы:
Архитектура Днипры построена так, что не вызывает при добавлении нового элемента в массив документа его перезапись.
Монга, Постгри, Кеш и вся эта братия перезаписывает. При бОльшем количестве элементов, отставание будет только усугублятся.
1 май 16, 11:01    [19126559]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
stop, что за поле Val, по которому делается выборка?
2 май 16, 09:13    [19127922]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
skyANA
stop, что за поле Val, по которому делается выборка?


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

public class Person
        {
            public int Val { get; set; }
            public List<int> Arr { get; set; }
        }


Дальше создается 50 тыс обьектов этого класса, где Val = 1
И дальше этот запрос.
"Добавить в массив Arr один элемент где Val = 1"
3 май 16, 11:33    [19130188]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
Ясно..
3 май 16, 13:04    [19130390]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
Когда перед тобой стоит задача быстро написать понятный и хорошо поддерживаемый проект, всегда стоит задача выбора СУБД.
Бекенд в своей классической форме подразумевает создать модель данных и слой бизнесс логики работы с этими данными, который на начальном этапе скорей всего сводится к 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х запустили на мощном компьютере )
26 май 16, 19:16    [19224824]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
mayton
Member

Откуда: loopback
Сообщений: 52942
Баз привет. Выдалась минутка. Чо как? Есть updates по ветке Java-клиента?
29 июн 16, 12:39    [19349434]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
stop
Member [заблокирован]

Откуда: blog.pikosec.com
Сообщений: 405
mayton
Баз привет. Выдалась минутка. Чо как?


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

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


Пока нет, используется старый Джава драйвер.
Написать ОРМ драйвер под Джаву также как это сделано под Дот Нет
пока только в планах.
6 июл 16, 11:34    [19374394]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
mayton
Member

Откуда: loopback
Сообщений: 52942
Up какие новости?
31 июл 16, 00:22    [19477931]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
HArray
Guest
mayton
Up какие новости?


Выложил в сеть сердце Стебелька.
Все еще думаете что с Монго тесты както подтасованы ?
Шах и мат господа писимисты.
Посмотрите тогда вот сюда, на каком движке собрана СУБД Дн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
18 ноя 16, 21:34    [19910208]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
HArray
Все еще думаете...
Вот польстил себе так польстил :)
19 ноя 16, 09:07    [19910945]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
HArray
Guest
Но ведь правда.
Эта СУБД единственная кто начала с переработки базовых принципов поисковых алгоритмов.
Она единственная кто основана на супербыстром Trie, а не на какихто попсовых модификациях бинарных деревьев или хештаблицах.
Это почти революция в СУБД строении.
19 ноя 16, 12:42    [19911303]     Ответить | Цитировать Сообщить модератору
 Re: В рамках импортозамещения предлагаю обсудить новую базу (Днипра)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
HArray, с RavenDB посоревнуйся ещё :)

А не зашкалит сервер от 100,000 запросов/сек?
21 ноя 16, 16:30    [19917099]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 4 5 6 7 8 9 10 11 [12] 13   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить