DanielDimov написа:ако правилно съм разбрал от сайта - вие сте написали база данни на C# - тоест на "managed code" - доста странно решение като се има предвид че гоните бързина
аз съм програмист и смятам че "managed" code не може да е по-бърз от "native" code написан свястно
ако пък нейтив кода е оптимизиран за конкретна платформа (процесор) - тогава нещата ще станат несравними!
това за мен означава че имате още много потенциал за ускоряване на базата...
Всичко, което пиша, е самата истина. Повярвайте - не съм пиян. До ден-два ще публикуваме нашата тестваща програма, заедно с нейния сорс код. Идеята е всеки да се убеди, че правим коректни тестове, и освен това всеки да добави някакви собствени тестове от позицията на неговата си камбанарийка.
Ако си много любопитен и не можеш да почакаш 2-3 дни, пиши ми ЛС и ще ти пратя на мейл тестовата програма още сега, нищо че не е довършена. От 3 месеца правим тестове и ден след ден се убеждаваме, че всички останали бази данни са написани лошо. Не казвам, че сме измислили нещо гениално. Просто отделихме достатъчно внимание на всеки един детайл и спокойно пробвахме по 10 варианта на всеки един слой от софтуера. Нямахме бърза работа и спокойно прецизирахме всичко. Още повече че имаше един глупак (аз), който да плаща редовно заплати и да не притеснява програмистите със срокове. Освен това базовото задание беше жестоко - базата да поема 100 милиарда рекорда и да гарантира достъп до всеки от тях за време, по-малко от 10 милисекунди. Допълнитено изискване беше да има чарт, работещ светкавично въху 1 милиард тика, и грид с подобно бързодействие. Те също са реализирани, но са само една малка допълнителна екстра. Почакай още няколко дни и всичко това ще го видиш.
В момента си правим тестовете с терабайтови бази данни. Имаме екстри от високо ниво, за които другите бази данни дори и не са сънували. Например как ти звучи това в реално време, без да спирам сървъра, да мога да преточа базата от един твърд диск на друг? Или например да правя произволни файлови манипулации върху базата без да я спирам - сплитване, обединяване, дублициране, райд възможности, работа с един файл от ХХХХХХХХ терабайта (ако измислят такъв диск) или нейното преточване в реално време на ХХХХХХХ физически файла на един или повече дискове. Има и още екстри, за които конкурентите дори и не са си помисляли. Например индексиране по много ключове. Или например вертикална компресия по едно единствено поле + криптиране по друго + сорт по трето, пето, седмо? А как ти звучи работа само с 1 килобайт кеш и пак да превъзхождаш всички? А как ти звучи да използваш модифицирано B-дърво, неописано в световната литература, и работещо 10-100 пъти по-бързо?
Оффф...........
Изчакай още малко. След това виж и чак след това си давай мнението. Още веднъж казвам - не съм пиян и всичко това е самата истина, колкото и фантастично да звучи. Предполагам, че тази база, след като се доизчисти и доизглади, ще бъде основата за нова файлова операционна система, премахваща всички недостатъци на NTFS-а и работеща много по-бързо и по-надеждно. Невероятно е, но е така. Произволен елемент информация можем да го намерим с не-повече от 3-4 премествания на главата на диска, а в 99% от случаите - само с 1 или 2 премествания. Random Search теста ни дава резултат между 100 и 200 записа в секунда (конкурентите са под 10). Тоест средно 5-10 милисекунди за случаен достъп до произволен запис. Сравни този резултат с времето за местене на главата на диска и ще разбереш за какво чудо става въпрос. И това при база данни със 150 милиарда записа (конкурентите са между 10 и 100 милиона записа - просто повече не могат и забиват.). Още едно чудо - колкото повече нараства размера на базата, толкова повече нараства специфичното ни бързодействие. При конкурентите е точно обратното - с нарастването на размера базите им започват да се забавят и задръстват (по RAM, CPU, Cache, Swap и т.н.).
Плана ни е до 1 май да направим промоцията на световно ниво. А нататък - каквото сабя покаже.