Rozszerzalny silnik pamięci masowej

Rozszerzalny silnik pamięci masowej

Informacja
Opracowany przez Microsoft
Kaucja github.com/microsoft/Extensible-Storage-Engine
Środowisko Windows
Rodzaj Silnik bazy danych
Licencja Licencja MIT
Stronie internetowej [1]

Extensible Storage Engine (Rep. ESE), zwany także Jet Blue, to silnik bazy danych z założonym w 1996 roku Microsoftem . Jest on włączony w systemy operacyjne serii Windows NT oraz produkty używane przez Active Directory i Exchange Server .

Jest to biblioteka oprogramowania, która manipuluje bazami danych zgodnie z indeksowaną metodą sekwencyjną ( ISAM ). Wdraża mechanizmy do przeprowadzania transakcji atomowych, spójnych, izolowanych i trwałych ( ACID ), a także mechanizmy cache to lock i gazety ( log angielski ) w celu zapewnienia bezpieczeństwa i wydajności działania bazy danych.

Extensible Storage Engine jest używany w przypadku baz danych o rozmiarze od 1 megabajta do ponad 1 terabajta .

Historia

Rozwój produktu rozpoczął się w 1996 roku, początkowo nosił nazwę Jet Blue (JET od Joint Engine Technology ), w nawiązaniu do jego konkurenta Jet Red , silnika bazy danych dla Microsoft Access . Następnie zmieniono nazwę Extensible Storage Engine, ponieważ te dwa produkty mają różne oprogramowanie, inną historię, inną funkcjonalność i nie są wymienne.

istnieją dwie wersje ESE97 i ESE98, w odniesieniu do ich roku wydania. Wersja ESENT, na podstawie ESE97, służy do Active Directory Katalogu serwisu .

funkcje

Extensible Storage Engine jest używany przez wywoływanie funkcji jego interfejsu programistycznego . Interfejs ten daje możliwość zapisywania danych w tabelach, a następnie pobierania ich za pomocą indeksów i kursorów . Niepodzielność, spójność, izolacja i trwałość współbieżnych danych i zmian metadanych są zapewniane przez transakcje .

Extensible Storage Engine jest wyposażony w mechanizm pamięci podręcznej , który z wyprzedzeniem odczytuje zawartość bazy danych i zapisuje z opóźnieniem, co przyspiesza operacje.

Dzięki wielowariantowemu mechanizmowi współbieżności oprogramowanie, które odczytuje zawartość bazy danych podczas transakcji, zobaczy zawartość bazy danych tak, jak była w momencie rozpoczęcia transakcji . Późniejsze zmiany dokonane w innych transakcjach nie będą widoczne. Extensible Storage Engine wycofa transakcję, jeśli zmiany nakładają się na inne zmiany wprowadzone w międzyczasie w innych transakcjach.

Extensible Storage Engine manipuluje plikami bazy danych znajdującymi się na komputerze. Pliki można również umieścić na innym komputerze i manipulować za pośrednictwem rozproszonego systemu plików , jednak takie użycie nie jest zalecane przez producenta.

Baza danych

Pliki bazy danych Extensible Storage Engine składają się z zestawu o stałym rozmiarze 4 lub 8 kilobajtów - rozmiar strony jest określany podczas tworzenia pliku. Strony są połączone ze sobą w drzewie struktury B i zawierają sumę kontrolną (angielską sumę kontrolną ), która może wykryć możliwe błędy. Strony zawierają dane i metadane na schemacie i indeksów . Strony są tworzone w miarę dodawania danych do bazy danych. Jeśli strona zaczyna się zapełniać, Extensible Storage Engine dzieli ją na pół, tworzy nową stronę i dostosowuje drzewo B.

Każda baza danych składa się z pliku głównego, któremu mogą towarzyszyć pliki tymczasowe zawierające transakcje , indeksy i dziennik operacji. Extensible Storage Engine automatycznie tworzy indeksy i są one automatycznie usuwane, jeśli nie były używane przez 8 dni.

tabela w bazie danych ESE może mieć nieortogonalna organizacji, z pól , które nie są obecne we wszystkich wierszach w multi-wartości z tabeli i polowych. W polowe nagrania mogą być różnych typów danych , w tym pieniężnej, data, GUID , CLOB lub BLOB .

Każda kopia Extensible Storage Engine może obsługiwać do 6 baz danych naraz. Każdy proces wykorzystujący ESE może mieć do 1024 kopii ESE.

Bazę danych można odłączyć od bieżącej instancji ESE, a następnie dołączyć do tej samej lub innej instancji. Odłączoną bazę danych można skopiować za pomocą standardowych narzędzi systemu Windows.

Tabele

Ilość miejsca na dysku przydzielona do tabeli w bazie danych jest określana przez dany parametr podczas tworzenia tabeli za pomocą operacji CreateTable. Tabele rosną automatycznie w odpowiedzi na tworzenie (nagrywanie) danych.

Tabele mają co najmniej jeden indeks. Musi istnieć co najmniej jeden indeks skupień do zapisywania danych. Gdy nie ma indeksu klastra zdefiniowanego przez aplikację, używany jest sztuczny indeks, który porządkuje i grupuje rekordy w chronologicznej kolejności wstawiania rekordów.

Indeksy są reprezentowane za pomocą drzew B +. ESE ma funkcję zagęszczania on-line, która ponownie kompaktuje dane. Jeśli tabela powinna być często aktualizowana, można zarezerwować dla niej miejsce na przyszłe wstawienia, określając odpowiednie zagęszczenie stron podczas tworzenia strony lub indeksu.

Rekordy i kolumny

Maksymalny rozmiar rekordu to 8110 bajtów dla stron 8-kilobajtowych, z wyjątkiem kolumn o długich wartościach. Typy kolumn „LongText” i „LongBinary” mogą zawierać dane, których rozmiar jest znacznie większy niż rozmiar strony bazy danych. Te „długie wartości” mogą mieć rozmiar do 2 gigabajtów.

Rekordy są zwykle jednolite, ponieważ każdy rekord zawiera zestaw wartości dla tego samego zestawu kolumn. W ESE można również zdefiniować dużą liczbę kolumn dla tabeli i mieć tylko kilka wypełnionych wartościami niezerowymi dla niektórych rekordów. Podobnie tabela może być również zbiorem heterogenicznych rekordów.

ESE oferuje obsługę szerokiej gamy wartości kolumn, od rozmiaru pojedynczego bitu do wartości 2 gigabajtów. Wybór prawidłowego typu kolumny jest ważny, ponieważ typ kolumny określa wiele jej właściwości, w tym kolejność indeksów. Oto lista typów, które mają wsparcie w ESE:

Typy kolumn

Nazwisko Opis
Kawałek wartość trójskładnikowa (NULL, 0 lub 1)
Niepodpisany bajt 1-bajtowa liczba całkowita bez znaku
short („Short”) 2-bajtowa liczba całkowita ze znakiem
Krótki bez znaku 2-bajtowa liczba całkowita bez znaku
Długo 4-bajtowa liczba całkowita ze znakiem
Długo bez znaku 4-bajtowa liczba całkowita bez znaku
Długo Długo 8-bajtowa liczba całkowita ze znakiem
Zmiana 8-bajtowa liczba całkowita ze znakiem
IEEE Single 4-bajtowa liczba zmiennoprzecinkowa
IEEE Double 8-bajtowa liczba zmiennoprzecinkowa
Data i godzina Data lub czas zakodowane na 8 bajtach (pełna data, czas ułamkowy)
GUID unikalny identyfikator na 16 bajtach
Dwójkowy ciąg binarny o długości ⇐ 255 bajtów
Tekst Ciąg znaków ANSI lub Unicode o długości ⇐ 255 bajtów
Długi plik binarny Duży ciąg binarny o długości <2 gigabajty
Długi tekst Duży ciąg znaków ANSI lub Unicode o długości <2 gigabajty

Kolumny stałe, zmienne i zaznaczone
Każda tabela ESE może zdefiniować do 127 kolumn o stałej długości, 128 kolumn o zmiennej długości i 64 993 oznaczonych kolumn.
Kolumny stałe to w zasadzie kolumny, które zajmują taką samą ilość pamięci dla każdego rekordu, niezależnie od ich wartości. Stałe kolumny używają 1 bitu do reprezentowania wartości null (NULL) i stałej ilości pamięci dla każdego rekordu.
Kolumny zmienne używają 2 bajtów do określenia wartości null (NULL) i zmiennej ilości miejsca w pamięci dla każdego rekordu, w którym ta kolumna jest zdefiniowana.

Zaznaczone kolumny to kolumny, które nie zajmują miejsca w pamięci, jeśli nie zawierają żadnych rekordów. Ta sama oznaczona kolumna może zawierać wiele wartości w jednym rekordzie. Gdy oznaczone kolumny są zdefiniowane w rekordzie, każde wystąpienie oznaczonej kolumny zajmuje około 4 bajty miejsca w pamięci oprócz rozmiaru wartości wystąpienia kolumny ze znacznikami. Gdy liczba wystąpień pojedynczej oznaczonej kolumny jest duża, nagłówek każdej oznaczonej kolumny ma około 2 bajty.

Bibliografia

  1. https://www.informatiquenews.fr/une-brique-ancestrale-et-fondamentale-de-windows-passe-en-open-source-76822
  2. (en) http://msdn.microsoft.com/en-us/library/ms684493(EXCHG.10).aspx Extensible Storage Engine - Microsoft Developer Network
  3. (in) Tony Redmond, Microsoft Exchange Server dla Windows 2000 , Digital Press - 2001 ( ISBN  9781555582241 )
  4. Jean-François Apréa, Przygotowanie do certyfikacji MCSE Windows Server 2003 active directory , wydania ENI - 2005, ( ISBN  9782746024984 )
  5. (PL) https://technet.microsoft.com/en-us/library/aa998171(EXCHG.65).aspx Extensible Storage Architecture Silnik - Microsoft TechNet

Linki zewnętrzne