MySQL 8.0 - Components 와 Plugin - 컴포넌트 - 플러그인 - MySQL 8.0 신기능

Share

Last Updated on 11월 20, 2022 by Jade(정현호)

안녕하세요 
이번 포스팅에서는 MySQL 8.0 에서 추가된 component(컴포넌트) 에 대해서 간단히 살펴보려고 합니다.

MySQL 8 컴포넌트와 플러그인

component(컴포넌트)와 플러그인간의 관계는 어떻게 되는 것인가요?

먼저 최종적으로 사용자에게는 이 둘이 동일하게 보일 것 입니다.

즉 사용자 입장에서는 서버의 기능을 동적으로 확장하는 방법 2가지 이며 기능을 확장한다는 의미에서 추구하는 바는 유사 합니다.


그러나 구현된 아키텍처 측면에서는 많은 차이가 나게 됩니다.
      

Plugin

플러그인은 스토리지 엔진 이나 오래전 부터 사용하던 MySQL 의 확장 방법 입니다.

플러그인에는 스토리지 엔진을 비롯하여 전문 검색 엔진을 위한 검색어 파서, 사용자 인증을 위한 플러그인 등 여러가지 있으며 MySQL 의 기능을 확장하는 방법 중에 하나 입니다.

사용 예시)

mysql> install plugin federated soname 'ha_federated.so'


Plugin 의 일부 아키텍처의 문제로는

1) 플러그인은 오직 MySQL 서버와 인터페이스 할 수 있고, 플러그인끼리 통신 할수 없습니다.
2) 플러그인은 플러그인 API를 구현하고 MySQL서버에서 확인 되는 플러그인 서비스 API를 호출하도록 선택할 수 있습니다.
    그러나 실제로는 모든 MySQL 서버 바이너리 전역 기호(binary global symbols)에 액세스할 수 있습니다.
3) 플러그인은 MySQL 서버의 변수나 함수를 직접 호출 하기 때문에 안전하지 않을 수 있습니다(캡슐화 안됨)
4) 플러그인은 상호 의존 관계를 설정할 수 없어서 초기화가 어려움이 있습니다.
      

component

component 는 MySQL 8.0 에서 서버를 확장하는 기능으로 추가 도입 되었습니다.

사용 예시)

mysql> INSTALL COMPONENT 'file://component_validate_password';


MySQL component subsystem
은 위에서 언급한 plugin subsystem의 일부 아키텍처 문제를 극복하도록 설계되었습니다.


component infrastructure는 MySQL 서버 subsystems이 논리적 component 집합으로 캡슐화될 수 있도록 하는 것을 목표로 합니다.
기능을 확장하기 위해 실행 중인 서버에 추가 구성 component를 추가할 수 있으며 component는 동적으로 또는 정적으로 연결할 수 있습니다.

각 component 는 다른 component 가 사용할 수 있는 광범위한 명명된 API 와 서비스의 구현을 제공합니다.
이를 용이하게 하기 위해 모든 component 에서 사용할 수 있는 모든 서비스의 레지스트리가 있습니다

component는 서비스 API를 통해 다른 구성 component와 통신할 수 있으며, 그리고 다른 component가 사용할 서비스 API 구현을 제공할 수 있습니다
component 인프라를 통해 component 는 관련 서비스 API를 다시 구현하여 다른 component 재정의하고 보완할 수 있습니다.


참고) AWS Aurora MySQL 3.0(MySQL 8.0) 과 RDS for MySQL 8.0 버전은 기존 플러그인 형태로 진행하시면 되며 아래 포스팅에서 상세한 내용을 확인 해보시면 됩니다.

           

Reference

Reference Book
 • Real MySQL 8.0

Reference Link
 • dev.mysql.com/PAGE_EXTENDING
 • dev.mysql.com/PAGE_componentS
 • dev.mysql.com/page_ext_plugins
 • dev.mysql.com/page_components_layering_plugins


관련된 다른 글

 

 

 

 

       

2
0
글에 대한 당신의 생각을 기다립니다. 댓글 의견 주세요!x