AWS Aurora mysql 3 version 에서는 innodb_flush_log_at_trx_commit의 값에 대한 동작이 변경된다고 합니다.

 

기존 innodb_flush_log_at_trx_commit 동작의 경우 많은 분들이 잘 설명해 주셨기 때문에 참고 부탁 드립니다.

https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit

 

MySQL :: MySQL 5.7 Reference Manual :: 14.15 InnoDB Startup Options and System Variables

 

dev.mysql.com

https://minsql.com/mysql/innodb_flush_log_at_trx_commit-%EA%B0%9C%EB%85%90%EB%8F%84%EC%99%80-%ED%8A%9C%EB%8B%9D-%ED%8F%AC%EC%9D%B8%ED%8A%B8/

 

innodb_flush_log_at_trx_commit 개념도와 튜닝 포인트

innodb_flush_log_at_trx_commit 개념도와 튜닝 포인트

minsql.com

 

기존에는 innodb_flush_log_at_trx_commit 의 값이 2의 경우, OS buffer 까지 Transaction 내용을 작성하여, DB Crush 에 대해서는 Transaction 의 정합성을 보호해 주었습니다.

이로 인하여 DB 상에서는 Commit, Write latency 등의 각종 Transaction 지표를 향상시켜주는 마법을 보여줬지만, OS Crush에 대해서는 데이터 유실에 대한 위험성은 감수해야 했습니다. (DBA 입장에서는 피하고 싶은 Parameter 수정 중 하나 입니다.)

 

Aurora mysql 3 version 에서는 innodb_flush_log_at_trx_commit 의 1과 2의 동작이 동일하게 변경 되었습니다. 즉, 기존 2를 사용하여 DML 관련 latency 성능 지표들을 통해 효과를 본 것이, 없어지게 되었습니다.

이건 redo log 동작(Engine Instance에서 log flushing을 처리하는 방식)이 Aurora storage engine 에서 처리하는 것으로 일괄 변경되면서, 기존 Aurora instance 에서 동작+storage engine에서 동작하던 것이 변경된 것으로 이해하면 됩니다.

 

이는 Aurora mysql 의 Write 에 대한 강점을 더 높인 것이라고 생각합니다.

 

그래서, 혹시라도 Aurora mysql 3에서의 DML latency를 좀 더 높이면서, 데이터 유실을 감수하겠다고 한다면, 기존 innodb_flush_log_at_trx_commit 의 값을 2가 아닌, 0으로 설정해야 합니다. innodb_flush_log_at_trx_commit 값을 설정하기 전, innodb_trx_commit_allow_data_loss parameter 를 1로 설정한 후, innodb_flush_log_at_trx_commit 변경이 가능합니다. innodb_flush_log_at_trx_commit 를 1로 설정한다는 것 자체가, 다시 한번 데이터 유실에 대한 경감식과 고객이 스스로 인지하고 있다는 것을 확인 받는 것이라고 생각되어 현웃이 터졌네요..ㅎㅎ

 

자세한 내용은 아래 공홈 확인 부탁 드립니다.

DBA 는 데이터 유실에 대해서는 항상 애민해질 수 밖에 없는 이슈이며, 또한 서비스 운영하는 개발자 분들의 서비스 성능에 대한 논의를 할때 해당 Parameter 가 꼭 거론 되는 내용이라 공유해 봅니다.

서비스 성능은 DB를 잘 사용하면, 엄청난 효과를 가져오지만, 그렇다고 데이터 유실에 대한 Risk를 가져가면서 서비스 성능을 높이는 것은 다른 이야기 입니다. 

 

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.BestPractices.html#AuroraMySQL.BestPractices.Flush

 

Amazon Aurora MySQL 모범 사례 - Amazon Aurora

교착 상태가 발생할 가능성을 줄이기 위한 예방 조치를 취할 수는 있지만, 교착 상태는 예상된 데이터베이스 동작이며 계속 발생할 수 있습니다. 애플리케이션에는 교착 상태가 발생했을 때 이

docs.aws.amazon.com

 

Aurora Storage 동작 방식에 대해서는 아래 사이트의 이미지 참고하시면 좋을거 같습니다. 가장 좋아하는 이미지인데, 유튜브에서만 보던 것을 정리해 주셨네요.

https://choieungi.github.io/posts/amazon-aurora-storage-with-innodb/

 

Amazon Aurora 스토리지 엔진과 MySQL InnoDB 스토리지 엔진 비교

우리 회사를 포함해 많은 회사는 RDBMS를 사용할 때 MySQL Amazon Aurora DB(이하 오로라)를 사용하는 경우가 존재한다. 왜 오로라를 사용하는 지 궁금했는데 기존 전통적인 MySQL보다 가용성, 확장성, 연

choieungi.github.io

 

반응형

Postgresql 에 대해 한번 공부 할때, 확실히 합시다.

무엇이 중요한지 모릅니다. 하지만, DBA 관점에서 시작합니다.

Real mysql 책의 목차를 이용하여 목차 만들었습니다.

 

Admin 에 대해 고급까지는 아니지만, 중급까지는 공부합니다.
아키텍처 및 동작 방식까지 공부 합니다.
5명(모집자 포함) 모두 발표 합니다. (하루전에 발표 자료 공유 부탁 드립니다.)
모집 인원은 모두 찾았습니다.
Postgresql 운영만 최소 3년 이상 리더 한분 섭외(리더는 내용에 대해 경험에 대해 발표-리더도 발표합니다.) 
2주에 한번 합니다. 현생이 힘듭니다...

 

목차

  • Postgresql 에 대한 소개
  • Postgresql 설치
    • rpm 패키징 설치는 간략하게
    • Source 설치에 대해서 진행합니다.
      • 원하는 곳에 Log, Data file 지정이 필요
      • Source 수정까지는 아니지만 필요할때는 코드라는걸 한법 봅시다.
    • 업그레이드 / 다운그레이드
      • 무중단 업그레이드 위주로 테스트
    • HA
    • Major 설정값(parameter) 위주로 확인 (메모리, path, character set 등)
    • Aurora Postgresql 간략하게(자세하게 확인은 맨 마지막에)
  • Postgresql Architecture
    • 내부 구조에 대해 두리뭉실하게...
    • client
    • Server
      • process
        • 내부 process (Wal, vacuum 등)
      • memory
      • Files
  • 계정 및 권한
    • 내부 Architecture 와 연관
    • Schema,  Database, table 에 대한 권한과 권한에 따른 영향
    • 계정에 대한 관리
  • Transaction 과 Lock 관리
  • Index
  • Optimize 와 Hint, Explain
  • 내부 명령어 및 system 테이블
  • 백업 복구
    • 반드시 한번씩 해봅시다.
      • Full backup / restore, Incremental backup, PITR
    • 옵션도 공부합시다.
    • Third party 하나 정도 이용해 봅시다.
      • 동작 방식도 이해합니다.
    • DB 이관 (Oracle to Postgresql)
      • 주의 점
      • 단순 Migration 외의 서로 다른 엔진 특성 상 수정 되어야 하는 설계
  • 모니터링
    • 모니터링 지표들과 조회 방식
    • Third party tool
  • 그 외 추가 되어야 하는 내용들

참고 사이드

개인적으로 북마크하는 곳이지만, 그 외 많은 숨고 사이트가 있습니다.
공홈 : https://www.postgresql.org/
postgresql dba 커뮤니티 : https://www.postgresdba.com/
페이스북 통해서 확인 : https://postgresql.kr/
넘사벽 김두비 : https://kimdubi.github.io/postgresql/

 

반응형

+ Recent posts