Hekaton: Хороший или дурной тон?

    Июль уже подходит к концу, а на «хабре» до сих пор никто не вспомнил о CTP релизе MSSQL Server 2014.
    Релизу будущего года присвоен позывной «Hekaton». Его появление было заявлено еще на конференции PASS 2012 года и тогда это было только название in-memory движка OLTP. Теперь это название целого релиза с встроенной поддержкой и оптимизацией обработки транзакций непосредственно в оперативной памяти.

    Обратимся к истории.
    Если в стародавние времена (аж в суровые 70-е годы когда святые Дэйт и Кодд работали в ИБМ, а жесткий диск на 300 МБ весил как взрослая свиноматка) данные оптимизировались изначально под хранение на… да на чем угодно: на лентах лежали известные нам современные файлы состоящие из заголовка, тела и значка конца файла, на дисках файловых систем в современном виде вообще не было – данные из БД шлепались на диски уже размеченные под хранение данных заданной таблицы, то бишь форматирование делалось самой БД и под хранение собственных данных. А были еще ячейки памяти (data cells). Они были мечтой ибо позволяли случайный доступ на чтение и запись в любой момент времени, но как и положено были дорогие и реально огромные (640 КБ в ячейках памяти на 70-й год хватило бы на олимпийский рекорд в зачете жим от груди). Шли годы: здоровенные бобины лент превратились в аккуратненькие картриджи LTO, жесткие диски обзавелись файловыми системами и тоже основательно сбросили в весе, а ячейки памяти превратились в известную всем RAM и частично в SSD. Технически вроде бы вот оно светлое будущее, но нет. Происки врагов эффективного вычисления и обработки данных наступали на всех фронтах. Появилось ООП которое вместо экономных побайтовых запросов начало под предводительством Java ковырять прямо в оперативной памяти сначала мегабайтные, а потом и гигабайтные массивы и загаживать её трупами недоуничтоженных объектов.

    В это время базы данных по старинке честно веровали что работают с жестким диском, хотя старались побольше затащить в RAM, но делали это без особой наглости и стыдливо называли словом cache (англ.) – наличные деньги. То есть не могли они сказать: «Эта таблица(база) будет лежать в RAM и точка! ». А стыдливо выводили статистику hit cache, то радуя нас числами вроде 99.8, то огорчая и вводя в уныние показав 25.2.
    Встраивание движка Hekaton в ядро MSSQL Server 2014 незначительно расширяет функционалю
    Казалось-бы, как может это помочь простым ДБА в деле?
    Прилагаю несколько снимков с той скандальной конференции 2012 года. (пикантные места выделены):

    image

    image

    То есть имеем следующее. Мало того что таблицу(базу) можно целиком вытащить в оперативную память (до свидания RAM-drive для temp_db, хотя нет – прощай), так еще и рекомпиляция процедур этих баз будет происходить на уровне Native, что для одной части ДБА значительно повысит скорость работы, а для других – позволит писать более кривой код без потери производительности.
    Не скажу, что потрясен этим «революционным» «нововведением», но это просто монументальное изменение в сравнении например с расширением AlwaysOn группы до 8 secondary серверов (Кто-нибудь видел поддержку read-intent в 1С: Предприятие или в Navision? Я нет.), или с введением новых свистелок-перделок интегрированных со свистелками-перделками Office и Sharepoint, для рисования комиксов на тему «Как мы провели квартал».
    Понятно, что аналогичный механизм на разного вида костылях уже существует в множестве других СУБД, но главный фокус в том что на уровне ядра СУБД он есть мягко говоря не у всех.

    Резюме: В целом, как обычно. Выходит новый релиз, а новинки из разряда тех что нужны были еще вчера (сейчас уже скоростные БД активно переползают на ССД и этот фокус с памятью уже не очень то и нужен), или простые украшалки для младшего командного среднего управленческого состава. Рывка, вроде реализации SQL 3.0 или хотя бы PL/SQL – в очередной раз не произошло. Опять недождались.

    UPD: Для интересующихся сслылка на вайтлисты и прочую документацию. А я пойду выпью за безбажность релиза. Всех с праздничком.

    примечание: англ. cache, от фр. cacher — «прятать»; произносится [kæʃ] — «кэш» часто путают с cash — собственно наличные. Учитывая цены на устройства быстрого доступа — второй вариант жизненнее. :)
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 15

      0
      Если что не нравится так по существу уж говорите, а то минус за минусом :)
        0
        >>и стыдливо называли словом cache (англ.) – наличные деньги

        с cash не перепутали? :D
          0
          Вот вы заметили. А то что в половине книг объясняют происхождение этого слова от слова — наличные, так ет нормуль. Хорошо что до факса не добрались. Видать сарказм недопонимает народ совсем.
            0
            Недавеча про инженеров в споре участвовал. Так тоже уже изначальный смысл затерялся слегка до полного извращения.
              0
              Ох… Граммарнаци в атаке :( Грусть. Кэш от буфера вы как отличаете? или вспомнили фильм Tango&Cash и решили защитить любимого героя?
              +2
              cache — изначально означало «схрон» или «запасник». Место где животные запасают еду «на черный» день или место где военные прячут оружие, чтобы можно было его потом легко достать.

              cash — наличные, к cache отношения не имеет.
                0
                Вот кроме как про одно слово даже и сказать никому нечего… А по поводу критики:
                Вдумайтесь что называется кэшем, а что буфером. Оперативная память это в первую очередь буфер и всегда им была. Все что вы пишете на диск пишется туда из оперативной памяти, а не напрямую, все что вы читаете с диска — читается в оперативную память. То что вы данные там не стираете, а оставляете — не превращает их в КЭШ, это называется умной очисткой буфера.
                Люди — вы определения читаете вообще? Или шутку, что «Cache is cash» с этой стороны Атлантики то ли никто кроме меня не слышал, то ли все сначала лезут в википедию, а только потом уже в свои извилины.
                Прости меня господи, блин. Для кого только ISO пишут :(
                П.С.: На будущее: следующая статья будет про Азур — специально для ценителей указываю: Cloud storage — это не NAS под кроватью с выходом в интернет, а серьезная инфраструктура распределенная по десятку датацентров и обеспеченная механизмами обеспечения целостности пользовательских данных и сервисов (и кстати Фейсбук это тоже облако). И кстати да. На ардуинах его можно собрать, но сложно.
                  0
                  А что это меняет в вопросе «откуда произошло слово cache»? Исторически.

                  У вас в статье фактическая ошибка, что cache переводится как «наличные деньги». Это не так и слово произошло не от cash. Независимо от смысла.
            0
            Надеялся увидеть детальный разбор всех нововведений 14 сервера, а тут всхлипывания на тему того что мс опять делает все не так. Жаль, но топику все равно поставил плюс, т.к. инфы по этой теме мало.
              +1
              Стенд развернут в виртуальной среде. Соберу данные по изменениям производительности — будет развернутая статься со скриншотами.
              Насчет соплей — признаю. Но радикальных нововведений кроме этого не нашел, а нововведение так себе. Щенячий восторг от AlwaysOn и Сolumnstore уже публиковался в статье про Denali :)
                0
                А ссылку, на статью про Denail, вас не затруднит сюда запостить?
                    0
                    Ключевой вопрос который меня сейчас интересует: будет ли давать columnstore index какой нибудь профит на базе выгруженной в память.
                  0
                  Промежуточный итог гонок производительности.
                  СТР как и положено СТР показал измененный дизайн и функционал, но вот относительно стабильной работы пока очень вяло.
                  Пока база меньше памяти — все очень хорошо, когда больше — очень плохо. Будем надеяться что в RC уже можно будет тестить.
                  Так что будут только скриншоты и словоблудие :(
                    0
                    Я понимаю что издеваюсь. Но если весь сервер «приседает» когда база оптимизированная под память начинает из памяти вылезать — это очень и очень плохо…

              Only users with full accounts can post comments. Log in, please.