Translate

segunda-feira, 21 de outubro de 2013

💾 CI e CA no VSAM — A base física que você precisa dominar

 

Bellacosa Mainframe nos datasets vsam entenda ci e ca

💾 CI e CA no VSAM — A base física que você precisa dominar

📦 Control Interval (CI)

O CI (Control Interval) é a menor unidade de armazenamento e leitura do VSAM.

👉 Pense nele como uma “página” de dados.

🔎 O que existe dentro de um CI?

  • Registros de dados
  • Espaço livre (free space)
  • Informações de controle (overhead)

⚙️ Características:

  • Tamanho típico: 4K, 8K, 16K...
  • É a unidade de I/O (leitura/gravação)
  • Pode conter vários registros

💡 Analogia:

CI é como uma página de um livro — você não lê letra por letra, lê a página inteira.


🧱 Control Area (CA)

O CA (Control Area) é um conjunto de vários CIs.

👉 É uma unidade maior de organização e alocação.

⚙️ Características:

  • Contém vários CIs
  • Usado para gerenciamento de espaço
  • Unidade de split mais “pesada”

💡 Analogia:

CA é como um capítulo do livro, formado por várias páginas (CIs).


⚡ O que são SPLITS no VSAM?

Quando você insere dados (principalmente em KSDS), o VSAM precisa manter a ordem das chaves.

👉 E aí entra o problema:
E se o CI estiver cheio?

💥 Surge o SPLIT


🔹 CI Split (Split de Control Interval)

📌 O que acontece:

  • O CI está cheio
  • VSAM cria um novo CI
  • Divide os registros entre os dois

⚠️ Impacto:

  • Mais I/O
  • Queda de performance
  • Fragmentação

🔸 CA Split (Split de Control Area)

📌 O que acontece:

  • Todos os CIs do CA estão cheios
  • VSAM precisa alocar um novo CA
  • Redistribui os dados

⚠️ Impacto:

  • Muito mais custoso que CI split
  • Pode degradar bastante o desempenho

💡 Regra prática:

CI Split = ruim
CA Split = MUITO ruim 😅


🧠 Por que os splits acontecem?

Principal motivo:
👉 Inserções fora de ordem de chave (KSDS)

Exemplo:

  • Arquivo está ordenado por CPF
  • Você insere um CPF “no meio”

💥 Resultado:

  • VSAM precisa reorganizar → split

🛠️ Como evitar SPLITS?

Aqui entra conhecimento de “gente grande”:

🔧 Definindo espaço livre

No IDCAMS você pode usar:

FREESPACE(CI CA)

Exemplo:

FREESPACE(20 10)
  • 20% livre em cada CI
  • 10% livre em cada CA

👉 Isso reduz drasticamente splits


🎯 Boas práticas

  • Inserir dados em ordem de chave
  • Definir FREESPACE corretamente
  • Reorganizar dataset (REPRO)
  • Monitorar performance

⚖️ Resumo rápido

ConceitoO que éImpacto
CIUnidade mínima de I/OBase do VSAM
CAGrupo de CIsOrganização maior
CI SplitDivide um CIMédio impacto
CA SplitDivide um CAAlto impacto

🔥 Visão estilo Bellacosa

  • CI é onde o jogo acontece
  • CA é onde o sistema respira
  • Split é o “sintoma de má modelagem ou carga fora de ordem”

👉 VSAM bem definido = performance absurda
👉 VSAM mal definido = gargalo invisível


Sem comentários:

Enviar um comentário