리인덱싱

Hermaeus Mora ·

  1. 초기 상태 (모든 요청은 Alias만 바라봄) 앱은 post라는 Alias만 바라보도록 설계 ​
  2. 신규 인덱스 생성
PUT /post_v2
{
  "settings": { ... },
  "mappings": { ... }
}
  1. 리인덱스 실행 (백그라운드)
POST /_reindex?wait_for_completion=false
{
  "source": { "index": "post_v1" },
  "dest": { "index": "post_v2" }
}
  1. 원자적 Alias 스왑 (핵심) Elasticsearch는 _aliases 작업을 원자적(Atomic)으로 처리하므로 다운타임이 0초
POST /_aliases
{
  "actions": [
    { "remove": { "index": "post_v1", "alias": "post" } },
    { "add": { "index": "post_v2", "alias": "post" } }
  ]
}
  1. 구형 인덱스 삭제