Antes de conversarmos sobre a arquitetura de armazenamento, vamos ver as versões existentes do ESE (Extensible Storage Engine). O ESE é multi-usuário, usa o método ISAM (indexed sequential access method), gerenciamento de tabelas com uma linguagem de manipulação de dados (DML Data Manipulation Language) e DDL (data definition language). O ESE permite que as aplicações armazenem registro e criem índices para acesso destes registros de diversas maneiras.
O ESE é uma engine (motor) sofisticada baseada em transações. A transação é uma série de operações também conhecidas como unidades atômicas (indivisíveis). Todas operações de uma transação são completas e salvas na base caso isto ocorra não vai nenhuma operação. Exemplo: uma operação envolvendo a movimentação de uma mensagem da Caixa de Entrada para a os Ítens Excluídos. A mensagem será apagada de uma pasta e adicionado em outro, depois disso as propriedades das pastas são atualizadas. Se ocorrer um erro neste processo, não é interessante para você aparecer a cópia da mensagem na Caixa de Entrada e nos Itens Excluídos.
O ESE trabalha para prevenir este tipo de problema, para uma transação ser confirmada na base do Exchange o ESE valida todas operações dentro da transação, ficando desta forma a base íntegra e com informações válidas.
O ESE é responsável pela estrutura da database e gerenciamento de memória. Como a escrita em memória é muito mais rápida que a escrita em disco, em torno de 200.000 vezes! o ESE faz cache da base em memória e faz a transferências destas informações em páginas de 4kb (entrada/saída). O ESE atualiza as páginas em memória e depois escreve e/ou atualiza dos dados no disco. A última versão da database está sempre em memória nunca em disco devido ao design do produto, quando paramos corretamente o serviço do Information Store, ele limpa todas as páginas em memória e adicionado ao arquivo da database com isto temos uma base consistente.
Abaixo relacionamos as versões existentes do ESE:
ESE97 é a engine utilizada no Exchange 5.5
ESENT é a engine utilizado pelo Active Directory e vários outros componentes do Microsoft Windows. Ps.: A implementação do ESENT no Active Directory utiliza arquivos de log e 10MB ao contrário dos 5MB comumente utilizados.
ESE98 é a engine utilizada no Exchange 2000 e Exchange Server 2003
Nota: ESE no passado era referenciada como JET Blue que não é a mesma tecnologia utilizada no Microsoft Access (Jet Red).
O Exchange Server armazena a base de dados em dois arquivos: arquivos com a extensão .edb e .stm. Juntos eles formam a base de dados do Exchange. Um exemplo: o padrão do exchange é o default mailbox store que vem quando o produto é instalado, ele usa o priv1.edb e priv1.stm.
O arquivo .EDB é uma database ESE e ele usado para armazenar mensagens MAPI e anexos, também conhecido como database baseada em MAPI. Por sua vez o arquivo .stm armazena conteúdo nativo de Internet, este conteúdo é escrito em formato nativo, não é necessário converter messages e outros itens para o formato do Exchange (como nas versões Exchange 5.5 e anteriores).O arquivo .stm também é um database ESE, referenciada como database de streaming.
Ambos os arquivos .edb e .stm funcionam como um par, uma assinatura da database de 32bits (número randômico combinado com a data da criação dos arquivos) é adicionado ao cabeçalho de ambos os arquivos. O esquema interno para as páginas .stm são armazenadas no arquivo .edb
Página seguinte |
|
|