The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Microsoft опубликовал код движка хранения Extensible Storage Engine

03.02.2021 12:02

Компания Microsoft открыла исходные тексты встраиваемого в приложения движка хранения Extensible Storage Engine (ESE), реализующего механизм хранения ISAM, при котором данные сохраняются последовательно, а для быстрого доступа к произвольным записям применяются отдельные индексы. ESE используется в Windows 10, но впервые появился в Windows NT 3.51, выпущенном в 1995 году, и с тех пор несколько раз переписывался. В Microsoft движок ESE используется для хранения содержимого почтовых ящиков в Office 365 и MS Exchange Server, лежит в основе API JET, а также применяется в службах Active Directory, Windows Search и Windows Update. Код написан на языке С++ и открыт под лицензией MIT.

Движок относится к категории NoSQL-систем и может использоваться в приложениях для организации хранения структурированных данных, к которым необходимо получить быстрый доступ, но обычные файлы или реестр не подходят в силу размера и отсутствия индексированного доступа. Поддерживается перемещение по данным с использованием курсора, задание гибких схем данных, ACID-транзакции, механизм восстановления целостности данных в случае краха, кэширование наиболее востребованных данных в ОЗУ.

ESE может эффективно применяться для хранилищ размером от нескольких мегабайт до 16 терабайт. Обеспечивается высокий параллелизм выполнения транзакций, которые реализованы при помощи лога упреждающей записи и модели изоляции на основе снапшотов. Движок также включает несколько вспомогательных библиотек, которые могут использоваться отдельно. В частности, поставляются библиотеки для синхронизации, управления блокировками, манипуляции STL-подобными структурами данных, абстрагирования доступа к операционной системе, управления кэшированием и блочными устройствами.

В текущем виде исходные тексты опубликованы без комментариев, сборочных сценариев и тестового набора. Отмечается, что недостающие части будут опубликованы в будущем, после того как будет завершено рецензирование и анализ корректности (код имеет очень давнюю историю, изначально не был рассчитан на публичность, и, судя по всему, при написании комментариев разработчики не ограничивали себя должным образом).

  1. Главная ссылка к новости (https://www.theregister.com/20...)
  2. OpenNews: Micron открыл код движка хранения HSE, оптимизированного для SSD
  3. OpenNews: Компания Google открыла исходные тексты БД LevelDB
  4. OpenNews: Facebook открыл код NoSQL БД RocksDB, оптимизированной для Flash-накопителей
  5. OpenNews: Microsoft Research открыл код быстрого хранилища в формате ключ/значение
  6. OpenNews: Facebook открыл код распределённой системы хранения LogDevice
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54518-ese
Ключевые слова: ese, microsoft, database, nosql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (57) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:34, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Нафиг ненужное ненужно, но тут вдруг

    >  при написании комментариев разработчики не ограничивали себя должным образом)

    Стоит глянуть )

     
     
  • 2.3, Леголас (ok), 12:42, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > при написании комментариев разработчики не ограничивали себя должным образом

    Профессиональная этика разработчиков M$ такая, угу.

     
  • 2.5, InuYasha (??), 12:43, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Когда-то давно я сравнивал разные каменты в win-header-ах. Встречалось такое:
    old > #pragma disable warning xxx // this is a stupid warning anyway
    new < #pragma disable warning xxx // this is an unneeded warning anyway
     
  • 2.8, Историк (?), 12:51, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А вот если бы не комментировали код ничего бы вычищать не нужно было сейчас!
     
     
  • 3.10, Аноним (10), 13:05, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чиcтят 0xb00b5 :)
     
     
  • 4.45, Dzen Python (ok), 23:34, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    0xB16B00B5
     
  • 2.24, tvoiroditeliuebki (?), 15:23, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    очевидно) это байт что бы ну хоть кто то просмотрел ненужное не нужно)) лал ару ахах
     
  • 2.42, Аноним (42), 22:48, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Нафиг ненужное ненужно,

    Нууу, парсить какие-нибудь базы AD или Exchange не только в маздае, наверное, не так уж плохо?

     
     
  • 3.64, Аноним (-), 07:20, 07/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Нууу, парсить какие-нибудь базы AD или Exchange не только в маздае, наверное,

    Это в каком месте то ?

     

  • 1.9, Аноним (10), 13:02, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Microsoft, есть Akonadi. Поддерживает несколько бекендов хранения, в отличие от вашего.
     
     
  • 2.11, ms (??), 13:36, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Наш, в отличие от вашего ненужно - работает в миллионах систем по всему миру.

     
     
  • 3.18, Мастер (?), 14:09, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо вам, что и про Линукс не забываете, а то бы он уже  загнулся в проде!
     
     
  • 4.20, Linux (??), 14:15, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    От души!
     
  • 3.21, ананим.orig (?), 14:29, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > в миллионах систем

    угу.
    если не вспоминать (уже ушедший) MyISAM. (3-я ссылка в новости кстати)
    и не говоря уже про андроиды с айфонами c их энджинами

    зыж
    а как там называлась мобильная ось от мс? эта "горящая" платформа? кто-нибудь ещё помнит?

     
     
  • 4.31, пох. (?), 18:32, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > если не вспоминать (уже ушедший) MyISAM

    дык а чего - хороший же был myisam, если не требовать от него невозможного, типа acid.
    Действительно, может не миллионы, но многие сотни тыщ систем (и не всегда с одной рекламой) держал.

    Сейчас приходится заменять sqlite, а это далеко не равноценная замена.

    Кстати, у ms acid с 2003, по-моему ;-)

    > а как там называлась мобильная ось от мс?

    windows10 она называлась. И умерла вовсе не потому что была плоха.

     
     
  • 5.37, ананим.orig (?), 19:23, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > дык а чего - хороший же был myisam

    как и сабж.
    просто уже не нужен. с современным развитием техники и по.

    >> а как там называлась мобильная ось от мс?
    > windows10 она называлась.

    не-не! как-то по другому было.
    вот трухина который за неё тут топил,помню, а ось уже забылась.
    маемо споминается, а на что её в нокиа променяли на поделку от мс — нет.

     
     
  • 6.39, _ (??), 20:29, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >просто уже не нужен. с современным развитием техники и по.

    Во первых - сначала надо посмотреть. Мало ли ..
    Во вторых - круглое колесо уже заменил на современной технике? :-р

     
     
  • 7.61, ананим.orig (?), 01:57, 05/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Во первых - сначала надо посмотреть. Мало ли ..

    но из цитаты myisam все-таки убрал… ты же на него смотреть собираешься, не? :D
    > Во вторых - круглое колесо уже заменил на современной технике? :-р

    карты лучше передергиваются, чем колеса.

     
  • 5.59, Аноним (59), 23:33, 04/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >windows10 она называлась. И умерла

    То ты её бжественной называешь, а то, вдруг, умерла.

     
  • 3.43, Аноним (42), 22:49, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > работает в миллионах систем по всему миру.

    При том миллионы - разве что в индексаторе файлов, натужно тормозящем диском по жизни в винде. АДа и эксченжей явно меньше.

     
  • 2.14, Аноним (14), 13:43, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У меня Аконади несколько раз херил все данные. Ну вот, например, когда место на диске кончается. Венда конечно тоже умирает, когда место кончается, но в 10 она потом ещё может загрузится и нормально работает, ничего не портит. До 10 правда тоже умирала с концами. Будем надеяться, Аконади найдёт для себя что-нибудь полезное в этой реализации. А комментарии зря вычистили, вряд ли там какие-то важные секреты в них.
     
     
  • 3.17, Аноним (14), 14:02, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя вот с включённым сжатием не проверял, сжатие тоже только в 10 починили, но в 2018 что ли, до того ntfs при этом рассыпалась.
     

  • 1.13, КО (?), 13:39, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Дада, поставишь - поменяют лицензию и доить.
     
  • 1.16, Аноним (16), 13:49, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Какой же там дерьмовый код!
     
     
  • 2.46, Dzen Python (ok), 23:36, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну дык, лучших макакенов со всего мира собрали, дедлайны поставили, надзирателей с плетками оплатили и мотивировали. Откуда там взяться красивому коду?
     

  • 1.22, Аноним (22), 14:53, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >> В Microsoft движок ESE используется для хранения содержимого почтовых ящиков в Office 365 и MS Exchange Server, лежит в основе API JET, а также применяется в службах Active Directory, Windows Search и Windows Update

    Вот похоже и причина win-специфичных тупняков и крашей.

     
     
  • 2.47, Dzen Python (ok), 23:37, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ...и падений базы NTDS. Ух.
     
     
  • 3.57, Аноним (-), 20:12, 04/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > ...и падений базы NTDS. Ух.

    Да оно и без баз кончается влет. Пруфлинк: cd C:\:$i30:$bitmap

     
     
  • 4.67, lee (?), 19:11, 08/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    а что должно было случиться???

    C:\Windows\system32>cd C:\:$i30:$bitmap
    The directory name is invalid.

     

  • 1.23, Ag (ok), 15:15, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    О, ISAM! А аналог легендарной IEBISAM будет? :)
     
     
  • 2.49, Dzen Python (ok), 23:40, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Enterprise
    Business
    Illuminati
    Solid
    Storage
    Active
    Makaken

    будет только по прямому запросу, по цене от 999$ за одну клиентскую лицензию на 1 рабочее место.

     
  • 2.52, Ordu (ok), 11:26, 04/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > IEBISAM

    Запрещено на территории РФ, в силу вульгарности названия.

     

  • 1.26, Аноним (-), 16:00, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    От Майкрософт нам ничего не нужно.
     
     
  • 2.34, Аноним (34), 18:46, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    🙂 А сдохнуть кто постоянно требует?
     

  • 1.27, Онаним (?), 16:55, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это наконец-то можно будет AD'шные и Exchange'вские недобазы руками разбирать в случае чего?
    Накотец-то.
     
     
  • 2.29, Аноним (29), 17:04, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Их и раньше можно было разбирать. API для любого желающего они открыли еще в середине нулевых.
     
     
  • 3.44, Аноним (42), 22:51, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Апи - еще не код для работы с базой. Как мне твоим апи в линухе такую базу открыть? Никак? Ну и грошь твоему апи в базарный день тогда.
     
     
  • 4.48, пох. (?), 23:38, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А вот и не воруй данные.

    Ничего кроме воровства - с данными exchange в твоем слинуксе делать никому в голову не придет.

    А там где надо для работы - там api есть, сто лет, действительно, как. И очень навряд ли тысячегласс что-то в нем улучшит. Вот троянцев теперь прибавится, эт поверю.

     
     
  • 5.50, Аноним (-), 02:11, 04/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Уворовать данные именно с exchange, именно как базу - весьма экзотично, я бы сказал. Ну и знаешь, если это что-то такое, кмк, народ виртуалку с виндой и exchange все же поставит, не? А дальше прицепит к нему базу да им самим и распарсит, гули.

    Но бывают всякие прикольные случаи, когда допустим база кораптнута по той или иной причине. И если чудное апи тебя вообще совсем шлет в пень - ну ты и пролетаешь. Вообще без доступа к данным.

    p.s. и таки для линя есть парсеры pst аутглюка и mdbtools...

     
     
  • 6.55, пох. (?), 15:21, 04/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > воровать данные именно с exchange, именно как базу - весьма экзотично, я бы сказал.

    скопировал виртуалку или диски, и пошел, называетсо, нашел.

    > Ну и знаешь, если это что-то такое, кмк, народ виртуалку с виндой и exchange все же поставит, не?

    ты местный уровень что, не видишь? Поставит, "снесет штатными средствами fax&scan" (где он его отдельный нашел в десятой отдельный вопрос), оно загружаться перестанет.

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

    думаю, если она не краденая - это как-нибудь на месте будут решать, без использования ненужнолинухов.

    > И если чудное апи тебя вообще совсем шлет в пень - ну ты и пролетаешь.

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

    > и таки для линя есть парсеры pst аутглюка и mdbtools...

    конечно, их-то гораздо чаще воруют чем целиком эксченжи, там все же надо суметь упереть такой объем.

    Вот есть у меня пара любимых pst (пароли, правда, позабывал небось давно наглухо) - ну и зачем тут линух? Очевидно что аутглюком и будут открываться, если вдруг. Что еще-то мне с ними делать?

     
     
  • 7.56, Аноним (-), 19:10, 04/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так там тогда и Exchange будет, он может почту отдать, хоть тупо imap ом - апи ... большой текст свёрнут, показать
     
     
  • 8.58, пох. (?), 22:51, 04/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И, иииии 99 опеннета получат сервак который возможно сразу спалится, полезш... большой текст свёрнут, показать
     
     
  • 9.63, Аноним (-), 22:05, 06/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да Сольют с него почту, хоть имапом - вот тебе и апи Я, типа, должен расстр... большой текст свёрнут, показать
     
     
  • 10.65, пох. (?), 16:00, 08/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Э вот у тебя краденый чужой сервак Возможно со слетевшей активацией, поскол... текст свёрнут, показать
     
     
  • 11.69, Аноним (-), 10:13, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Быть халявной отчетностью прерогатива скрипткидизов и растишек В vm железки ви... большой текст свёрнут, показать
     
     
  • 12.70, пох. (?), 11:25, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    хаха, специалиста по энтерпрайзным vm издалека видать Не, не сохранишь ты даже ... текст свёрнут, показать
     

  • 1.38, Аноним (38), 20:27, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Столько едких комментариев на пустом месте...

    ISAM - это дешевый высокопроизводительный метод для доступа к информации. В нем совершенно нет ничего плохого.

    Стыдно читать комментарии, когда одни ESE (реализацию ISAM) сравнивают с Akonadi, а другие на полном серьёзе вдаются в сравнение тёплого с мягким, как бы забывая, что Akonadi сам работал с ISAM в том числе. Не с ESE реализацией, а с MyISAM что в принципе примерно одно и то же. Помнится мне, когда много лет назад Akonadi начал требовать MySQL в качестве зависимости вою было на весь OpenNet. Дескать, целый мускуль им в систему притащили, будто создание ISAM-базы в ОС это какая-то чудовищная нагрузка. А теперь Akonadi стал уже торт и несколько бекендов поддерживает, и лучше чем армяне, что явно на 40% лучше обычного порошка... ой всё.

    ISAM это такая штука которая никогда не потеряет популярность. Представьте себе задачу, например такого типа:
    1. Есть некий демон/приложение, который принимает локальные и сетевые запросы.
    2. Демон/приложение должно быстро находить нужные данные, будь то полнотекстовый поиск или SQL запросы или что-то еще
    3. Данные - это одна таблица размером в несколько от 200 MB до 200 GB.
    4. Вам не надо ничего удалять или обновлять.

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

    С обычными ISAM-движками нельзя работать как с настоящей базой данных. Цена DELETE/UPDATE запросов там бывает настолько высока что проще дописывать изменения в конец и вводить "пометки удаления" строки отдельным столбцом. Для сокращения размеров тогда придётся делать дефрагментации и "реструктуризации". Для всего этого нужен специфический клиент и сервер приложений. INSERT при больших размерах будет выполняться быстрее SELECT, но если вы можете партиционировать ISAM по какому-то принципу, то этой проблемы не будет, причем вы даже UPDATE сможете себе позволить.

    Так-то реализация ESE понадежнее MyISAM с учетом поддержки транзакционности и восстановления после сбоя. Раз открыли, значит кому-то пригодится... они же его не в Apache хоронить пошли. А тем кому транзакционность не нужна, есть Aria.

    P.S. Пользователи Linux, которые зачастую в венде не разбираются, эту штуку знают не как Extensible Storage Engine, а как ESENT. Те из них которые хоть раз заглядывали в стандартный Application Log должны были видеть это слово как источник событий.

     
     
  • 2.41, SubGun (??), 22:40, 03/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Согласен, для своей ниши - отличное решение.
     
  • 2.62, Аноним (62), 01:58, 05/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Раз открыли, значит кому-то пригодится... они же его не в Apache хоронить пошли.

    Мертвое нельзя похоронить дважды

     

  • 1.40, borbacuca (ok), 22:37, 03/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    JET древний как говно мамонта
     
  • 1.51, Брат Анон (ok), 09:57, 04/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очередное не надо. Мелкомягкие всё понять никак не могут: время шальных успехов уже прошло.
     
  • 1.53, анонимно (?), 11:38, 04/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Сколько хейтеров то, а. Что же вы такие токсичные.
     
     
  • 2.54, Аноним (54), 14:18, 04/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    От Майкрософт нам ничего не нужно.
     

  • 1.60, Аноним (62), 01:53, 05/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Форматирование кода в стиле: пишу в вижуал студии с широким монитором. Тьфу
     
     
  • 2.66, пох. (?), 16:01, 08/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Форматирование кода в стиле: пишу в вижуал студии с широким монитором. Тьфу

    Да, никакой заботы об альтернативно одаренных, по сей день пишущих свои хеловроты в 80x24.

     

  • 1.68, Аноним (68), 01:32, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Поржал с новости, особенно с пунктов

    "механизм восстановления целостности данных в случае краха" и "ESE может эффективно применяться для хранилищ размером от нескольких мегабайт до 16 терабайт".

    Кто админил ексчендж тот поймет уровень булшита :) И про эффективность и про возможность восстановления.

     
     
  • 2.71, None (??), 18:58, 23/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ну так восстанавливает же. Лет 15-20 назад была битая база эксчейнджа гигов на 700, сутки eseutil шуршал - но восстановил же.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру