2/DBMS

Aria Engine / 아리아 엔진

berry-hi 2020. 4. 16. 16:26

Aria Engine

Aria Engine(아리아 엔진)이란?

  • MySQL 시절에 사용하던 MyISAM에서 조금의 기능이 추가된 엔진
  • MyISAM에서 크게 2가지의 기능 추가됨
    • Transactional = 1 옵션을 통해 부분적 트랜잭션 기능 사용 가능
    • 페이징 캐싱 기능을 통해 인덱스뿐만 아니라 데이터도 캐싱 가능
      • 그럼 디스크 접근 횟수가 줄어들어 조회 성능이 향상됨

What is the goal of Aria for the next version?

  • 아리아 엔진의 목표는 무엇일까?
  • 최종 목표는 Transaction 대응과 MySQL 표준 스토리지 엔진이 되는 것!
    • ACID compliant
    • Commit/Rollback
    • Concurrent updates/deletes
    • Row locking
    • Group commit
    • Faster lookup in index pages (Page directory)
      => 읭? InnoDB 에서는 다 지원하는 것들이네?

Detailed Differences between Aria and MyISAM

  • MyISAM과 Aria의 상세한 차이
  • Aria use BIG(1G by default) log files.
    => 로그 파일 크기가 크다.
    => 크기 자제가 큰 것은 단점 같은데 그만큼 로그 파일에 기록되는 것들이 자세하다고 생각하면 장점이다.
  • Aria has a log control file(aria_log_control) and log files(aria\_log.%). The log files can be automatically purged when not needed or purged on demand (after backup).
    => 로그 컨트롤 파일과 로그 파일을 사용한다. 이 파일들은 자동적으로 적용되고 삭제된다.
  • Aria uses 8K pages by default (MyISAM uses 1K). This makes Aria a bit faster when using keys of fixed size, but slower when using variable-length packed keys (until we add a directory to index pages.)
    => 페이지 크기가 8K로 MyISAM의 페이지 크기인 1K보다 크다. 페이지 크기가 크면 캐싱 페이지 크기가 큰 것이므로 디스크 입/출력이 줄어 조금 더 빠른 조회 및 조작이 가능하다. 그러나 key 사이즈가 동적이면 느리다.

Backup and Recovery

  • 3종류의 파일만 있어도 테이블 백업 및 복구가 가능하다.
    • frm, MYI, MAD
  • MyISAM 기반 엔진이기 때문에 myisamchk를 통해서 복구 가능.
    • 그러나 Lock 걸기, 풀기 등 추가 작업이 필요하다.
  • my.cnf에 aria_recover 옵션 사용 가능
  • MariaDB 서비스 시작시, --aria-recover 옵션 사용 가능
    -aria_recover 옵션 단계

Lock 단위

  • Table 단위로 Lock
  • Table에 DML 작업 동시에 불가 및 조회 불가
    Example) MyISAM Table Locking