• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 1. MySQL Cluster 개요
    2. MySQL Cluster 설치
    3. MySQL Cluster 설정
    1. MySQL Cluster의 빠른 테스트 설정
    2. MySQL Cluster 구성 매개 변수의 개요
    3. MySQL Cluster 구성 파일
    1. MySQL Cluster 구성의 기본적인 예제
    2. MySQL Cluster의 권장 초기 구성
    3. MySQL Cluster의 연결 문자열
    4. MySQL Cluster의 컴퓨터의 정의
    5. MySQL Cluster 관리 서버의 정의
    6. MySQL Cluster 데이터 노드의 정의
    7. MySQL Cluster의 SQL 노드 및 기타 API 노드의 정의
    8. MySQL 클러스터의 TCP/IP 연결
    9. 직접 연결을 사용하는 MySQL Cluster의 TCP/IP 연결
    10. MySQL Cluster의 공유 메모리 연결
    11. MySQL Cluster에서 SCI 전송 연결
    12. MySQL Cluster의 전송 버퍼 매개 변수 구성
    4. MySQL Cluster용 MySQL Server 옵션 및 변수
    5. MySQL Cluster에서 고속 인터커넥트 사용
    4. MySQL Cluster 프로그램
    5. MySQL Cluster 관리
    6. MySQL Cluster Replication
    7. MySQL Cluster Release Notes
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

18.3.3.6 MySQL Cluster 데이터 노드의 정의

클러스터의 데이터 노드의 동작을 구성하려면 [ndbd] 및 [ndbd default] 섹션을 사용합니다.

데이터 노드의 프로세스로 ndbd 바이너리와 ndbmtd 바이너리 중 어느 것을 사용하더라도 섹션 이름은 항상 [ndbd] 와 [ndbd default] 가 사용됩니다.

버퍼 크기, 풀 크기, 시간 등을 제어하는​​ 여러 매개 변수가 있습니다. 유일한 필수 매개 변수는 ExecuteOnComputer 또는 HostName 중 하나입니다. 이것은 로컬 [ndbd] 섹션에서 정의해야합니다.

NoOfReplicas 매개 변수는 모든 클러스터 데이터 노드에 공통이기 때문에 [ndbd default] 섹션에 정의하십시오. NoOfReplicas 를 설정할 필요는 반드시 없습니다 만, 이것을 명시 적으로 설정하는 것이 좋습니다.

대부분의 데이터 노드 파라미터는 [ndbd default] 섹션에 설정합니다. [ndbd] 섹션에서 변경이 허용되는 로컬 값 설정을 명시 적으로 규정되어있는 파라미터뿐입니다. HostName , NodeId 및 ExecuteOnComputer (존재하는 경우)는 config.ini 다른 섹션이 아닌 로컬 [ndbd] 에서 정의해야합니다. 즉, 이러한 매개 변수의 설정은 하나의 데이터 노드에 고유의 것입니다.

메모리 사용량 및 버퍼 크기에 영향을 미치는 매개 변수는 1024,1024 * 1024 또는 1024 * 1024 * 1024의 단위를 나타내는 접미사로 K , M 또는 G 를 사용할 수 있습니다. (예를 들어, 100K 는 100 * 1024 = 102400을 의미합니다.) 현재 매개 변수의 이름과 값은 대소 문자를 구분합니다.

MySQL Cluster 디스크 데이터 테이블에 특정 구성 매개 변수에 대해서는이 섹션 뒷부분합니다 ( 디스크 데이터의 구성 매개 변수 를 참조하십시오).

이러한 모든 매개 변수는 ndbmtd (ndbd의 멀티 스레드 버전)에도 적용됩니다. 추가 3 개의 데이터 노드 구성 매개 변수 ( MaxNoOfExecutionThreads , ThreadConfig 및 NoOfFragmentLogParts )는 ndbmtd에만 적용됩니다. 이러한 ndbd에 사용하여도 비활성화됩니다. 자세한 내용은 멀티 스레드 구성 매개 변수 (ndbmtd) 를 참조하십시오. 섹션 18.4.3 "ndbmtd - MySQL Cluster 데이터 노드 데몬 (멀티 스레드)" 를 참조하십시오.

데이터 노드의 식별 NodeId 또는 Id 값 (즉, 데이터 노드 식별자)은 노드 시작시 명령 행 또는 구성 파일에서 할당 할 수 있습니다.

  • Id

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned[none]1 - 48IS
    고유 한 노드 ID는 클러스터의 모든 내부 메시지 노드 주소로 사용됩니다. 데이터 노드는이 1-48의 (이들을 포함) 사이의 정수입니다. 클러스터의 각 노드는 고유 식별자를 가지고 있어야합니다.

    NodeId 는 데이터 노드의 식별시에 사용이 권장되는 매개 변수 이름입니다. 오래된 Id 는 하위 호환성을 계속 지원하지만 현재는 비추천이며, 사용시 경고를 생성합니다. Id 는 MySQL Cluster의 향후 릴리스에서 제거 될 예정입니다.

  • NodeId

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned[none]1 - 48IS
    고유 한 노드 ID는 클러스터의 모든 내부 메시지 노드 주소로 사용됩니다. 데이터 노드는이 1-48의 (이들을 포함) 사이의 정수입니다. 클러스터의 각 노드는 고유 식별자를 가지고 있어야합니다.

    NodeId 는 데이터 노드의 식별시에 사용이 권장되는 매개 변수 이름입니다. Id 는 하위 호환성을 계속 지원하지만 현재는 비추천이며, 사용시 경고를 생성합니다. 또한 MySQL Cluster의 향후 버전에서 제거 될 예정입니다.

  • ExecuteOnComputer

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0name[none]...S

    이것은 [computer] 섹션에 정의 된 하나의 컴퓨터에 설정되어있는 Id 를 참조하십시오.

  • HostName

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0name or IP addresslocalhost...N

    이 매개 변수를 지정하면 데이터 노드를 배치하는 컴퓨터의 호스트 이름이 정의됩니다. localhost 이외의 호스트 이름을 지정하려면이 매개 변수 또는 ExecuteOnComputer 중 하나가 필요합니다.

  • ServerPort

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned[none]1 - 64KS
    클러스터의 각 노드는 다른 노드에 연결하기 위해 포트를 사용합니다. 기본적으로이 포트는 동일한 호스트 컴퓨터에서 2 개의 노드에 동일한 포트 번호를받지 않게 동적으로 할당되기 때문에 일반적으로이 매개 변수의 값을 지정할 필요가 없습니다.

    그러나 데이터 노트와 API 노드 (SQL 노드 포함) 사이의 통신을 허용하도록 방화벽에서 특정 포트를 열어야하는 경우, config.ini 파일의 [ndbd] 섹션 또는 (여러 데이터 노드에 대해 이렇게 필요가있는 경우) [ndbd default] 섹션에서이 매개 변수를 필요한 포트 번호로 설정하면 SQL 노드 API 노드 또는 둘 다에서 들어오는 연결을 위해 그 번호의 포트를 열 수 있습니다.

    참고

    데이터 노드에서 관리 노드에 연결 ndb_mgmd 관리 포트 (관리 서버 PortNumber . 섹션 18.3.2.5 "MySQL Cluster 관리 서버의 정의" 를 참조하십시오)를 사용하여 이루어 지므로 데이터 노드에서 포트에 아웃 바운드 연결은 항상 허용됩니다.

  • TcpBind_INADDR_ANY

    이 매개 변수를 TRUE 또는 1 로 설정하면 IP_ADDR_ANY 가 바인딩 된 모든 위치에서 연결 할 수 있습니다 (자동 생성 연결의 경우). 기본값은 FALSE ( 0 )입니다.

  • NodeGroup

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0
    [none]0 - 65536IS
    이 매개 변수를 사용하여 데이터 노드를 특정 노드 그룹에 할당 할 수 있습니다. 이것은 클러스터를 처음 시작했을 때는 읽기 전용이며, 온라인으로 데이터 노드를 다른 노드 그룹에 재 할당 할 수 없습니다. config.ini 파일의 [ndbd default] 섹션에서이 매개 변수를 사용하는 것은 일반적으로 바람직하지 않습니다. 또한 노드를 노드 그룹에 할당 할 때 노드 그룹에 잘못된 수의 노드를 할당하지 않도록주의해야합니다.

    NodeGroup 매개 변수의 주된 용도는 롤링 재시작을 수행하지 않고 실행중인 MySQL Cluster에 새로운 노드 그룹을 추가하는 것입니다. 그러기 위해서는이를 65536 (최대 값)로 설정합니다. NodeGroup 값은 모든 클러스터 데이터 노드가 아니라 나중에 시작되고 새로운 노드 그룹으로 클러스터에 추가되는 노드에만 설정해야합니다. 자세한 내용은 섹션 18.5.13.3 "MySQL Cluster 데이터 노드의 온라인 추가 : 자세한 예제" 를 참조하십시오.

  • NoOfReplicas

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer21 - 4IS
    이 글로벌 파라미터는 [ndbd default] 섹션에서만 설정할 수 있으며, 클러스터에 저장되어있는 각 테이블의 복제본 수를 정의합니다. 이 매개 변수는 노드 그룹의 크기도 지정합니다. 노드 그룹은 모두 동일한 정보를 저장하는 노드의 세트입니다.

    노드 그룹은 암묵적으로 형성됩니다. 첫 번째 노드 그룹은 노드 ID가 가장 작은 데이터 노드 세트에서 형성된 다음 노드 그룹은 노드 ID가 다음 데이터 노드의 집합으로 형성됩니다 (이하 동일). 예를 들어, 4 개의 데이터 노드가 있고, NoOfReplicas 가 2로 설정되어 있다고합니다. 4 개의 데이터 노드의 ID는 각각 2,3,4 및 5입니다. 이 경우 첫 번째 노드 그룹은 노드 2와 3으로 형성되고, 두 번째 노드 그룹은 노드 4와 5에서 형성됩니다. 하나의 하드웨어 장애로 인해 전체 클러스터가 작동 중지 동일한 노드 그룹의 노드가 같은 컴퓨터에 배치되지 않도록 클러스터를 구성하는 것이 중요합니다.

    노드 ID가 지정되어 있지 않으면 데이터 노드의 순서가 노드 그룹의 결정 요인이됩니다. 명시적인 할당이 행해졌는지 여부에 관계없이 관리 클라이언트의 SHOW 명령의 출력에 표시됩니다.

    NoOfReplicas 의 기본값은 2입니다. 이것은 대부분의 일반적인 사용 시나리오에서 권장되는 설정입니다.

    지정 가능한 최대 값은 4이며, 현재 실제로 지원되는 값은 1과 2뿐입니다.

    중요

    NoOfReplicas 을 1로 설정하는 것은 모든 클러스터 데이터의 사본이 하나만 존재하는 것을 의미합니다. 이 경우 해당 데이터에 저장되어있는 데이터의 추가 사본이 존재하지 않기 때문에 하나의 데이터 노드의 상실에 의해 클러스터가 작동 중지합니다.

    이 매개 변수의 값은 클러스터의 데이터 노드의 수 등분해야합니다. 예를 들어, 데이터 노드가 2 개의 경우 2 / 3과 2/4는 모두 소수하므로 NoOfReplicas 는 1 또는 2 일 필요가 있습니다. 데이터 노드가 4 개의 경우 NoOfReplicas 는 1, 2 또는 4 일 필요가 있습니다.

  • DataDir

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0path....IN
    이 매개 변수는 추적 파일, 로그 파일, PID 파일 및 오류 로그가 배치되는 디렉토리를 지정합니다.

    기본값은 데이터 노드 프로세스의 작업 디렉토리입니다.

  • FileSystemPath

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0pathDataDir...IN
    이 매개 변수는 메타 데이터에 생성 된 모든 파일, Redo 로그 Undo 로그 (디스크 데이터 테이블 용) 및 데이터 파일이 배치되는 디렉토리를 지정합니다. 디폴트는 DataDir 에서 지정된 디렉토리입니다.
    참고

    이 디렉토리는 ndbd 프로세스가 시작되기 전에 존재해야합니다.

    MySQL Cluster의 권장 디렉토리 계층은 /var/lib/mysql-cluster 가 포함되어 있으며,이 아래에 노드의 파일 시스템 디렉토리가 생성됩니다. 이 하위 디렉토리 이름에는 노드 ID가 포함됩니다. 예를 들어, 노드 ID가 2 인 경우이 서브 디렉토리의 이름은 ndb_2_fs 입니다.

  • BackupDataDir

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0path[see text]...IN
    이 매개 변수는 백업이 배치 될 디렉토리를 지정합니다.
    중요

    이 값의 끝에 항상 ' /BACKUP '라는 문자열이 추가됩니다. 예를 들어, BackupDataDir 값을 /var/lib/cluster-data 로 설정하면 모든 백업 /var/lib/cluster-data/BACKUP 아래에 ​​저장됩니다. 이것은 사실상 기본 백업 위치를 FileSystemPath 매개 변수로 지정된 위치 아래 BACKUP 라는 디렉토리 있다는 것을 의미합니다.

    데이터 메모리, 인덱스 메모리, 그리고 스트링 메모리

    DataMemory 및 IndexMemory 는 실제 레코드와 인덱스를 저장하는 데 사용되는 메모리 세그먼트의 크기를 지정하는 [ndbd] 매개 변수입니다. 이 값을 설정하는 경우, DataMemory 및 IndexMemory 가 어떻게 사용되는지를 이해하는 것이 중요합니다. 이들은 일반적으로 클러스터의 실제 사용 상황을 반영하여 업데이트 할 필요가 있기 때문입니다.

  • DataMemory

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes80M1M - 1024GN
    이 매개 변수는 데이터베이스 레코드를 저장하는 데 사용할 수있는 공간의 양 (바이트 단위)를 정의합니다. 이 값에 의해 지정되는 금액 전체가 메모리에 할당되기 때문에 이에 대응할 수있는 충분한 물리적 메모리가 시스템에 탑재되어있는 것이 매우 중요합니다.

    DataMemory 가 할당 한 메모리는 실제 레코드와 인덱스를 모두 저장하는 데 사용됩니다. 각 레코드에는 16 바이트의 오버 헤드가 있습니다. 각 레코드는 128 바이트 페이지 오버 헤드를 포함한 32K 바이트의 페이지에 저장되기 때문에 각 레코드에 추가 금액이 발생합니다 (다음을 참조하십시오). 또한 각 레코드가 하나의 페이지 만 저장되기 때문에 페이지마다 소량의 낭비가 발생합니다.

    가변 크기의 테이블 속성은 DataMemory 에서 할당 된 별도의 데이터 페이지에 데이터가 저장됩니다. 가변 길이 레코드는 가변 크기 부분을 참조하기 위해 4 바이트의 추가 오버 헤드를 포함한 고정 크기 부분을 사용합니다. 가변 크기 부분은 2 바이트의 오버 헤드와 특성 당 2 바이트가 포함됩니다.

    최대 레코드 크기는 14000 바이트입니다.

    DataMemory 에 의해 정의 된 메모리 공간은 순서화 된 인덱스를 저장하는 데 사용됩니다. 여기에는 레코드 당 약 10 바이트가 사용됩니다. 각 테이블 행은 정렬 된 인덱스로 표시됩니다. 사용자들 사이에서 공통적으로 모든 인덱스가 IndexMemory 가 할당 한 메모리에 저장된다는 오해가 있지만, 이것은 올바르지 않습니다. 기본 키 및 고유 해시 인덱스 만이 메모리를 사용합니다. 정렬 된 인덱스는 DataMemory 가 할당 한 메모리를 사용합니다. 그러나 기본 키 또는 고유 해시 인덱스를 만들 때 인덱스 생성 구문에 USING HASH 를 지정하지 않은 경우는 같은 키에 정렬 된 인덱스도 생성됩니다. 이것은 관리 클라이언트에서 ndb_desc -d db_name table_name 를 실행하면 확인할 수 있습니다.

    현재 MySQL Cluster에서는 해시 인덱스 파티션 당 최대 512M 바이트를 사용할 수 있습니다. 즉, 경우에 따라서는 ndb_mgm -e "ALL REPORT MEMORYUSAGE"에서 DataMemory 에 큰 공간이 표시되어 있어도 Table is full 오류가 MySQL 클라이언트 응용 프로그램에서 나타날 수 있습니다. 따라서 데이터의 부하가 높은 노드에서 데이터 노드를 다시 시작할 때 문제가 발생할 수 있습니다. CREATE TABLE 에 MAX_ROWS 옵션을 사용하면 MySQL Cluster 테이블에 추가 파티션을 작성하여 해시 인덱스에 사용할 수있는 메모리를 늘리도록 NDB 에 적용 할 수 있습니다. 일반적으로 테이블에 저장하는 것으로 예상되는 행 수의 2 배의 수치를 MAX_ROWS 로 설정하면 충분합니다. MinFreePct 구성 매개 변수를 사용하여 노드 재부팅 문제를 해결 할 수 있습니다. (Bug # 13436216)

    DataMemory 에 의해 할당 된 메모리 공간은 32K 바이트의 페이지로 구성된 테이블 조각에 할당됩니다. 각 테이블은 일반적으로 클러스터의 데이터 노드와 같은 수의 조각으로 분할됩니다. 따라서 각 노드는 NoOfReplicas 의 설정과 같은 몇 조각이 있습니다.

    페이지의 할당 후 테이블을 삭제하는 이외의 방법으로 빈 페이지 풀로 반환하는 것은 현재 불가능합니다. (이것은 특정 페이지에 할당 된 DataMemory 페이지를 다른 테이블에서 사용할 수없는 것을 의미합니다.) 데이터 노드 복구를 실행하면 모든 레코드가 다른 실행중인 노드에서 빈 파티션 에 삽입되기 때문에 파티션도 압축됩니다.

    DataMemory 메모리 공간에는 Undo 정보도 포함되어 있습니다. 업데이트 때마다 변경되지 않은 레코드 복사본이 DataMemory 에 할당됩니다. 정렬 된 테이블 인덱스에도 각 사본에 대한 참조가 포함되어 있습니다. 고유 해시 인덱스는 고유 인덱스 컬럼이 업데이트 된 경우에만 업데이트됩니다. 이 경우 위탁시에 인덱스 테이블에 새 항목이 삽입되어 오래된 항목이 삭제됩니다. 따라서 클러스터를 사용하는 응용 프로그램에 의해 실행되는 대규모 트랜잭션을 처리 할 수​​있는 충분한 메모리를 할당해야합니다. 어쨌든도 다음의 이유로 소수의 대규모 트랜잭션을 실행하는 것보다 많은 수의 작은 트랜잭션을 사용하는 것이 장점이 있습니다.

    • 대규모 트랜잭션은 작은 트랜잭션보다 빠르게 수행 할 수 없습니다

    • 대규모 트랜잭션은 트랜잭션 실패시에 소실 반복해야하는 작업의 수가 많아집니다

    • 대규모 트랜잭션은 더 많은 메모리를 사용합니다

    DataMemory 의 디폴트 값은 80M 바이트입니다. 최소 1M 바이트입니다. 최대 크기는 아니지만 실제로는 제한에 도달하면 프로세스가 스와핑을 시작하지 않도록 최대 크기를 결정해야합니다. 이 제한은 시스템에서 사용 가능한 실제 RAM의 양과 운영 체제가 하나의 프로세스에 commit 할 수 있는 메모리 양에 따라 결정됩니다. 32 비트 운영 체제에서는 보통 프로세스 당 2-4G 바이트로 제한되지만 64 비트 운영 체제에서 더 많은 메모리를 사용할 수 있습니다. 따라서 대규모 데이터베이스에서는 64 비트 운영 체제를 사용하는 것이 좋습니다.

  • IndexMemory

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes18M1M - 1TN
    이 매개 변수는 MySQL Cluster의 해시 인덱스에 사용되는 스토리지의 양을 제어합니다. 해시 인덱스는 항상 기본 키 인덱스 고유 인덱스 및 UNIQUE 제약 조건에 사용됩니다. 기본 키 또는 고유 인덱스를 정의하면 2 개의 인덱스가 생성되고 그 중 하나의 해시 인덱스는 모든 튜플에 대한 액세스 및 잠금 처리에 사용됩니다. 이 인덱스는 UNIQUE 제약 조건을 적용하는 데에도 사용됩니다.

    해시 인덱스의 크기는이 식을 사용하여 계산할 수 있습니다.

                 size = (( fragments * 32K) + ( rows * 18)) 
                 * replicas
    
              

    fragments 는 조각의 수, replicas 는 복제 수 (보통 2) rows 행의 수입니다. 테이블에 100 만개의 행 8 개 조각 두 복제본이 포함 된 경우 예상되는 인덱스의 메모리 사용량은 여기에 같이 계산됩니다.

                
       ((8 * 32K) + (1000000 * 18)) * 2 = ((8 * 32768) + (1000000 * 18)) * 2
       = (262144 + 18000000) * 2
       = 18262144 * 2 = 36524288 bytes = ~ 35MB
    

    MySQL Cluster NDB 7.2 이상에서는 정렬 된 인덱스의 인덱스 통계가 (활성화되어있는 경우) mysql.ndb_index_stat_sample 테이블에 저장됩니다. 이 테이블은 해시 인덱스가 있기 때문에 이에 따라 인덱스의 메모리 사용량이 추가됩니다. 특정 정렬 된 인덱스의 행수의 상한은 다음과 같이 계산할 수 있습니다.

       sample_size = key_size + ((key_attributes + 1) * 4)
      
       sample_rows = IndexStatSaveSize 
                     * ((0.01 * IndexStatSaveScale * log2 (rows * sample_size)) + 1) 
                     / sample_size
    

    이전 식에서 key_size 은 정렬 된 인덱스 키의 크기 (바이트) key_attributes 은 정렬 된 인덱스 키의 속성 수, rows 는 기본 테이블의 행수입니다.

    테이블 t1 에 100 만 개의 행과 2 개의 4 바이트 정수에 대한 ix1 라는 정렬 된 인덱스가 있다고합니다. 또한 IndexStatSaveSize 과 IndexStatSaveScale 이 기본값 (각각 32K 및 100)에 설정되어 있다고합니다. 이전 두 표현식을 사용하여 다음과 같이 계산할 수 있습니다.

       sample_size = 8 + ((1 + 2) * 4) = 20 bytes
      
       sample_rows = 32K 
                     * ((0.01 * 100 * log 2 (1000000 * 20)) + 1) 
                     / 20 
                     = 32768 * ((1 * ~ 16.811) + 1) / 20
                     = 32768 * ~ 17.811 / 20 
                     = ~ 29182 rows
    

    예상되는 인덱스의 메모리 사용량은 2 * 18 * 29182 = 약 1050550 바이트입니다.

    IndexMemory 의 디폴트 값은 18M 바이트입니다. 최소는 1M 바이트입니다.

  • StringMemory

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0% or bytes250 - 4294967039 (0xFFFFFEFF)S
    이 매개 변수는 테이블 이름과 같은 문자열에 할당 된 메모리 양을 결정하는 것으로, config.ini 파일의 [ndbd] 또는 [ndbd default] 섹션에 지정됩니다. 0 에서 100 까지의 (이들을 포함) 값은 기본 최대 값의 백분율로 해석됩니다. 기본 최대 값은 테이블의 수, 테이블 이름의 크기, .FRM 파일의 최대 크기, MaxNoOfTriggers 컬럼 이름의 최대 크기 및 기본 최대 컬럼 값을 포함한 여러 요소에 따라 계산됩니다.

    100 이상의 값은 바이트로 해석됩니다.

    기본값은 25 (즉, 기본 최대 25 %)입니다.

    대부분의 상황에서 기본값으로 충분하지만, 클러스터 테이블의 수가 매우 많다 (1000 개 이상) 경우 오류 773 Out of string memory, please modify StringMemory config parameter : Permanent error : Schema error가 발생할 수 이 때문에, 그 경우는이 값을 늘리도록하십시오. 25 (25 %)이면 너무 것은 아니라 가장 극단적 인 경우를 제외하고이 오류가 다시 발생하지 않습니다.

    다음 예제는 하나의 테이블에 메모리가 어떻게 사용되는지를 보여줍니다. 이 테이블 정의에 대해 생각합니다.

     CREATE TABLE example (
       a INT NOT NULL,
       b INT NOT NULL,
       c INT NOT NULL,
       PRIMARY KEY (a)
       UNIQUE (b)
     ) ENGINE = NDBCLUSTER;
    

    각 레코드에 12 바이트의 데이터와 12 바이트의 오버 헤드가 있습니다. NULL 허용 컬럼이없는 경우는 4 바이트의 오버 헤드를 줄일 수 있습니다. 또한 컬럼 a 와 b 에 2 개의 정렬 된 인덱스가 레코드 당 약 10 바이트가 소모됩니다. 기본 테이블에 기본 키의 해시 인덱스가 레코드 당 약 29 바이트가 사용됩니다. b 를 기본 키로하고 a 를 컬럼으로하는 다른 테이블에 의해 UNIQUE 제약 조건이 구현되어 있습니다. 이 다른 테이블에서는 8 바이트의 레코드 데이터와 12 바이트의 오버 헤드뿐만 아니라, example 테이블에서 레코드 당 29 바이트의 인덱스 메모리가 추가로 소모됩니다.

    따라서 100 만개의 레코드에 대한 기본 키 및 고유 제약의 해시 인덱스를 처리하려면 58M 바이트의 인덱스 메모리가 필요합니다. 또한 기본 테이블 레코드 고유 인덱스 테이블, 그리고 두 개의 정렬 된 인덱스 테이블에 64M 바이트가 필요합니다.

    해시 인덱스가 상당한 메모리를 차지하지만, 데이터에 대한 액세스는 매우 빨라집니다. 이들은 MySQL Cluster는 고유 제약을 처리하는 데 사용됩니다.

    현재 유일한 분할 알고리즘은 해시이며, 정렬 된 인덱스는 각 노드에 로컬로 사용됩니다. 따라서 일반적인 경우 정렬 된 인덱스를 사용하여 고유 제약을 처리 할 수​​ 없습니다.

    IndexMemory 및 DataMemory 모두에서 중요한 점은 각 노드 그룹의 모든 데이터 메모리와 인덱스 메모리의 합이 데이터베이스의 총 크기가 될 것입니다. 각 노드 그룹은 복제 된 정보를 저장하는 데 사용되므로 두 개의 복제본을 포함하는 노드가 4 개있는 경우, 2 개의 노드 그룹이 생성됩니다. 따라서 사용 가능한 데이터 메모리의 총 데이터 노드마다 2 * DataMemory 입니다.

    모든 노드에서 DataMemory 및 IndexMemory 값을 동일하게 설정하는 것이 좋습니다. 데이터의 분포는 클러스터의 모든 노드에 균등이기 때문에 각 노드에서 사용할 수있는 공간의 최대 크기는 클러스터 내에서 가장 작은 노드의 최대 크기와 동일합니다.

    DataMemory 및 IndexMemory 는 변경할 수 있지만,이 중 하나를 줄이는 것은 위험합니다. 이 경우 노드 또는 MySQL Cluster 전체 메모리 공간의 부족으로 다시 시작하지 못할 가능성이 높아집니다. 이 값을 늘리는 것은 문제가되지 않지만 이러한 업그레이드는 소프트웨어 업그레이드와 같은 방법으로 할 것을 권장합니다. 즉, 먼저 구성 파일을 업데이트 한 다음 관리 서버를 시작하고 각 데이터 노드를 차례로 다시 시작합니다.

    MinFreePct DataMemory 및 IndexMemory 를 포함한 데이터 노드 자원의 일정 비율 (기본적으로 5 %)는 데이터 노드가 재시작 할 때 그 메모리를 소모하지 않도록 여분으로 남아 있습니다. 이것은 MinFreePct 데이터 노드 구성 매개 변수를 사용하여 조정할 수 있습니다 (기본값은 5).

Effective VersionType/UnitsDefaultRange/ValuesRestart Type
NDB 7.3.0unsigned50 - 100N
업데이트를 통해 사용되는 인덱스 메모리의 양은 증가하지 않습니다. 삽입은 즉시 적용되지만, 행 삭제는 트랜잭션이 커밋 될 때까지 실제로는 발생하지 않습니다.

트랜잭션 매개 변수 아래에서 설명하는 [ndbd] 의 몇 가지 매개 변수는 시스템에서 처리 할 수있는 병렬 트랜잭션의 수와 트랜잭션의 크기에 영향을 준다는 점에서 중요합니다. MaxNoOfConcurrentTransactions 노드에서 실행할 수있는 병렬 트랜잭션의 수를 설정합니다. MaxNoOfConcurrentOperations 는 동시에 업데이트 단계에 들어가거나 잠 그거나 수있는 레코드 수를 설정합니다.

이러한 매개 변수는 모두 (특히 MaxNoOfConcurrentOperations 는) 기본값을 사용하지 않고 특정 값을 설정하는 사용자의 대상이 될 가능성이 있습니다. 기본값은 소규모 트랜잭션을 사용하는 시스템에서 과도한 메모리가 사용되지 않도록 설정되어 있습니다.

MaxDMLOperationsPerTransaction 은 특정 트랜잭션에서 수행 할 수있는 DML 작업의 최대 수를 설정합니다.

  • MaxNoOfConcurrentTransactions

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer409632 - 4294967039 (0xFFFFFEFF)N
    각 클러스터 데이터 노드는 클러스터의 각 활성 트랜잭션에 대한 트랜잭션 레코드가 필요합니다. 트랜잭션을 조정하는 작업은 모든 데이터 노드에 분배됩니다. 클러스터의 거래 기록의 총 개수는 특정 노드의 트랜잭션 수에 클러스터 노드 수를 곱한 값입니다.

    트랜잭션 레코드는 개별 MySQL 서버에 할당됩니다. MySQL 서버에 각 연결은 하나의 트랜잭션 레코드와 연결 액세스되는 테이블마다 추가 트랜잭션 개체가 필요합니다. 즉, 클러스터의 트랜잭션 총 수의 타당한 최소 값을 다음과 같이 나타낼 수 있습니다.

     MinTotalNoOfConcurrentTransactions =
         (maximum number of tables accessed in any single transaction + 1)
         * number of SQL nodes
    

    클러스터를 사용하는 10 개의 SQL 노드가 있다고합니다. 10 개의 테이블이 관여 한 번 결합에는 11 개의 트랜잭션 레코드가 필요합니다. 트랜잭션 내에 이러한 결합이 10 회있는 경우,이 트랜잭션에는 MySQL 서버 당 10 * 11 = 110 개의 트랜잭션 레코드 (또는 총 110 * 10 = 1100 개의 트랜잭션 레코드)가 필요합니다. 각 데이터 노드는 MinTotalNoOfConcurrentTransactions / 데이터 노드가 처리됩니다. 이 경우, 4 개의 데이터 노드를 포함 MySQL Cluster에서는 각 데이터 노드의 MaxNoOfConcurrentTransactions 를 1100/4 = 275으로 설정하는 것입니다.또한 하나의 노드 그룹에서 모든 병렬 트랜잭션에 대응할 수 있도록함으로써 장애 복구를 제공합니다. 즉, 각 데이터 노드의 MaxNoOfConcurrentTransactions을 MinTotalNoOfConcurrentTransactions / 노드 그룹 수와 같은 수의 트랜잭션에 대응할 수있는 충분한 수를 설정합니다. 이 클러스터에 노드 그룹이 하나만있는 경우 MaxNoOfConcurrentTransactions 1100 (전체 클러스터의 병렬 트랜잭션의 수와 동일)로 설정하도록하십시오.

    또한 각 트랜잭션에 적어도 하나의 조작이 관여합니다. 따라서 MaxNoOfConcurrentTransactions 에 설정하는 값은 항상 MaxNoOfConcurrentOperations 값 이하로합니다.

    이 매개 변수는 모든 클러스터 데이터 노드에 같은 값으로 설정해야합니다. 이것은 데이터 노드의 기능 정지시에 잔존하는 가장 오래된 노드가 작동 중지 된 노드에서 실행 된 트랜잭션의 상태를 다시 작성하는 것입니다.

    롤링 재시작을 사용하여이 값을 변경할 수 있지만 실행중인 클러스터의 트래픽은 발생하는 트랜잭션이 신구 중 낮은 수준을 넘지 않는 정도로해야합니다.

    기본값은 4096입니다

  • MaxNoOfConcurrentOperations

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer32K32 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수의 값은 트랜잭션의 수와 크기에 맞게 조정하는 것이 좋습니다. 약간 조작과 레코드 만 관여하지 않는 트랜잭션을 실행하는 경우 일반적으로이 매개 변수의 기본값으로 충분합니다. 많은 레코드가 참여하는 대규모 트랜잭션을 수행하는 경우 일반적으로 그 값을 늘려야합니다.

    클러스터 데이터를 업데이트하는 각 트랜잭션은 트랜잭션 코디네이터와 실제 업데이트가 실행되는 노드 모두에서 레코드가 유지됩니다. 이러한 레코드에는 롤백, 잠금 큐 및 기타 목적에 사용하는 Undo 레코드를 찾기 위해 필요한 상태 정보가 포함되어 있습니다.

    이 매개 변수는 최소한 트랜잭션에서 동시에 업데이트되는 레코드의 수를 클러스터 데이터 노드의 수로 나눈 값으로 설정하도록하십시오. 예를 들어, 4 개의 데이터 노드가 클러스터에서 트랜잭션을 사용하여 100 만건의 병렬 업데이트를 처리 할 것으로 예상되는 경우에는이 값을 1000000/4 = 250000로 설정합니다. 장애 복구 능력을 제공 할 수 있도록이 매개 변수를 각 데이터 노드에서 노드 그룹의 부하를 처리 할 수있는 충분한 크기의 값으로 설정할 것을 권장합니다. 즉, 병렬 작업의 총 수 / 노드 그룹의 수 와 같은 값으로 설정하도록하십시오. (노드 그룹이 하나의 경우 이것은 전체 클러스터의 병렬 작업의 총 수와 동일합니다.)

    각 트랜잭션은 항상 하나의 조작이 관여하고 있기 때문에 MaxNoOfConcurrentOperations 값은 항상 MaxNoOfConcurrentTransactions 값 이상합니다.

    잠금을 설정하는 읽기 쿼리도 작업 레코드가 생성됩니다. 노드 사이의 분포가 완전하지 않은 경우에 대응할 수 있도록 각 노드에 어느 정도의 추가 공간이 할당됩니다.

    쿼리에 고유 해시 인덱스가 사용되면 실제로 트랜잭션의 레코드 당 2 개의 작업 레코드가 사용됩니다. 첫 번째 레코드는 인덱스 테이블의 읽기를 나타내며, 두 번째는 기본 테이블에 대한 작업을 처리합니다.

    기본값은 32768입니다.

    이 매개 변수는 실제로는 개별적으로 구성 할 수있는 두 가지 값을 처리합니다. 이들 중 첫 번째는 트랜잭션 코디네이터에 의해 배치하는 작업 레코드 수를 지정합니다. 두 번째 부분은 데이터베이스에 로컬로 저장하는 작업 레코드 수를 지정합니다.

    8 노드 클러스터에서 실행되는 매우 큰 트랜잭션은 그 트랜잭션에 참여하는 읽기, 업데이트 및 삭제와 같은 수의 작업 레코드가 트랜잭션 코디네이터에 필요합니다. 그러나 이러한 작업 레코드는 8 개의 노드에 분산되어 있습니다. 따라서 하나의 매우 큰 거래를 위해 시스템을 구성 할 필요가있는 경우,이 두 부분을 따로 구성하는 것이 좋습니다. MaxNoOfConcurrentOperations 는 항상 노드의 트랜잭션 코디네이터 부분 작업 레코드 수를 계산하는 데 사용됩니다.

    작업 레코드 메모리 요구 사항을 고려하는 것도 중요합니다. 이들은 레코드 당 약 1K 바이트를 소모합니다.

  • MaxNoOfLocalOperations

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integerUNDEFINED32 - 4294967039 (0xFFFFFEFF)N

    기본적으로이 매개 변수는 1.1 * MaxNoOfConcurrentOperations 으로 계산됩니다. 이것은 많은 동시 트랜잭션을 포함하고, 그 모두가 대규모가 아닌 시스템에 적합합니다. 한 번에 하나의 매우 큰 트랜잭션이 실행되어 다수의 노드가있는 경우이 매개 변수를 명시 적으로 지정하고 기본을 무시하는 것이 좋습니다.

  • MaxDMLOperationsPerTransaction

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0operations (DML)429496729532 - 4294967295N

    이 매개 변수는 트랜잭션의 크기를 제한합니다. 이것은보다 많은 DML 작업이 필요할 경우 트랜잭션이 중단됩니다. 트랜잭션 당 최소 조작 수는 32이지만, MaxDMLOperationsPerTransaction 를 0으로 설정하면 트랜잭션 당 DML 작업의 수에 대한 제한을 해제 할 수 있습니다. 최대 (디폴트)은 4294967295입니다.

    트랜잭션의 임시 저장소 다음의 일련의 [ndbd] 매개 변수는 클러스터 트랜잭션의 일부인 문 실행시 임시 저장소를 결정하는 데 사용됩니다. 이 문이 완료되고 클러스터가 커밋 또는 롤백을 대기하고있을 때, 모든 레코드가 해제됩니다.

    이러한 매개 변수의 기본값은 대부분의 상황에 적합합니다. 그러나 많은 수의 행 또는 조작이 관여하는 트랜잭션을 지원해야하는 경우 값을 늘려 시스템의 병렬성을 높일 필요가있을 수 있습니다. 한편, 비교적 작은 트랜잭션을 필요로하는 응용 프로그램은이 값을 줄여 메모리를 절약 할 수 있습니다.

  • MaxNoOfConcurrentIndexOperations

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer8K0 - 4294967039 (0xFFFFFEFF)N

    고유 해시 인덱스를 사용하는 쿼리는 쿼리의 실행 단계에서 다른 임시 작업 레코드 세트가 사용됩니다. 이 매개 변수는 레코드 풀의 크기를 설정합니다. 따라서이 레코드는 쿼리의 일부를 실행하는 동안에 만 할당됩니다. 이 부분의 실행이 완료된 직후에 레코드가 해제됩니다. 중지와 커밋을 처리하는 데 필요한 상태에서는 정상 작동 레코드가 처리 된 풀 크기는 MaxNoOfConcurrentOperations 파라미터로 설정됩니다.

    이 매개 변수의 기본값은 8192입니다. 고유 해시 인덱스를 사용하여 매우 높은 병렬성을 실현시키는 드문 경우에만이 값을 늘려야합니다. 클러스터에 높은 수준의 병렬 처리가 필요하지 않은 DBA가 확신하는 경우 작은 값을 사용하여 메모리를 절약 할 수 있습니다.

  • MaxNoOfFiredTriggers

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer40000 - 4294967039 (0xFFFFFEFF)N

    MaxNoOfFiredTriggers 의 기본값은 4000입니다. 대부분의 상황에서는 이것으로 충분합니다. 경우에 따라서는 클러스터에 병렬성은 그다지 필요 없다고 DBA가 확신하는 경우 값을 줄일 수 있습니다.

    고유 해시 인덱스에 영향을주는 작업을 수행 할 때 레코드가 생성됩니다. 고유 해시 인덱스를 사용하여 테이블의 레코드를 삽입 또는 삭제하거나 고유 한 해시 인덱스의 일부인 열을 업데이트 할 때 인덱스 테이블에서 삽입 또는 삭제가 발생합니다. 생성 된 레코드는이 인덱스 테이블 작업을 발생시킨 원래 작업의 완료를 기다리는 동안 인덱스 테이블 조작을 나타내는 데 사용됩니다. 이 작업은 단기간이지만, 고유의 해시 인덱스 세트를 포함한 기본 테이블에 대해 다수의 병렬 쓰기 작업이 이루어지는 상황에서 레코드 풀에 많은 레코드를 필요로 할 수 있습니다.

  • TransactionBufferMemory

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes1M1K - 4294967039 (0xFFFFFEFF)N

    이 매개 변수의 영향을받는 메모리는 인덱스 테이블의 업데이트와 고유 인덱스를 읽을 때 발생하는 작업을 추적하는 데 사용됩니다. 이 메모리는 이러한 조작 키 및 컬럼 정보를 저장하는 데 사용됩니다. 이 매개 변수의 값을 기본값에서 변경할 필요가있는 것은 매우 드문 경우뿐입니다.

    TransactionBufferMemory 의 기본값은 1M 바이트입니다.

    일반적인 읽기 및 쓰기 작업에서도 비슷한 버퍼가 사용되지만 그 사용 기간은 더 짧아집니다. 컴파일시의 파라미터 ZATTRBUF_FILESIZE ( ndb/src/kernel/blocks/Dbtc/Dbtc.hpp 에 있습니다)은 4000 * 128 바이트 (500K 바이트)로 설정되어 있습니다. 키 정보의 유사한 버퍼 ZDATABUF_FILESIZE (이것도 Dbtc.hpp 에 있습니다)은 4000 * 16 = 62.5K 바이트의 버퍼 공간이 포함되어 있습니다. Dbtc 트랜잭션의 조정을 취급하는 모듈입니다.

    스캔 및 버퍼링 ( ndb/src/kernel/blocks/Dblqh/Dblqh.hpp 의) Dblqh 모듈은 읽기 및 업데이트에 영향을 미치는 추가 [ndbd] 매개 변수가 있습니다. 여기에는 기본적으로 10000 * 128 바이트 (1250K 바이트)로 설정되는 ZATTRINBUF_FILESIZE 와 기본적으로 10000 * 16 바이트 (약 156K 바이트)의 버퍼 공간에 설정되는 ZDATABUF_FILE_SIZE 가 포함되어 있습니다. 지금까지 이러한 컴파일시 제한 중 하나를 늘릴 것을 나타내는 사용자의보고 또는 당사의 대규모 테스트의 결과가 없습니다.

  • MaxNoOfConcurrentScans

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer2562 - 500N

    이 매개 변수는 클러스터에서 실행할 수있는 병렬 스캔의 수를 제어하는 데 사용됩니다. 각 트랜잭션 코디네이터는이 매개 변수에 정의 된 수의 병렬 스캔을 할 수 있습니다. 각 검색 쿼리는 모든 파티션을 병렬로 스캔 실행됩니다. 각 파티션 스캔은 파티션이 배치되는 노드의 스캔 레코드가 사용됩니다. 레코드 수는이 파라미터 값에 노드의 수를 곱한 값입니다. 클러스터는 클러스터의 모든 노드에서 동시에 발생한 MaxNoOfConcurrentScans 개의 스캔을 유지할 수 있습니다.

    스캔은 실제로 두 가지 경우에 실행됩니다. 이들 중 첫 번째 케이스는 쿼리를 처리하기위한 해시 또는 정렬 된 인덱스가 존재하지 않을 때 발생합니다. 이 경우 전체 테이블 스캔을 실행하면 쿼리가 실행됩니다. 두 번째 사례는 쿼리를 지원하는 해시 인덱스가 존재하지 않고 정렬 된 인덱스가 존재하는 경우에 발생합니다. 정렬 된 인덱스의 사용은 병렬 범위 스캔의 실행을 의미합니다. 이 순서는 로컬 파티션에서만 유지되므로, 모든 파티션에서 인덱스 스캔을 수행해야합니다.

    MaxNoOfConcurrentScans 의 기본값은 256입니다. 최대 값은 500입니다.

  • MaxNoOfLocalScans

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer[see text]32 - 4294967039 (0xFFFFFEFF)N

    많은 검사가 완전히 병렬화되어 있지 않은 경우의 로컬 스캔 레코드 수를 지정합니다. 로컬 스캔 레코드 수를 지정하지 않은 경우에는 다음과 같이 계산됩니다.

    4 * MaxNoOfConcurrentScans * [# data nodes] + 2
    

    최소값은 32입니다.

  • BatchSizePerLocalScan

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer2561 - 992N

    이 매개 변수는 병렬 스캔 작업을 처리하는 데 사용되는 잠금 레코드 수를 계산하는 데 사용됩니다.

    BatchSizePerLocalScan 은 SQL 노드로 정의되는 BatchSize 과 깊은 관계가 있습니다.

  • LongMessageBuffer

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes64M512K - 4294967039 (0xFFFFFEFF)N
    NDB 7.3.1bytes4M512K - 4294967039 (0xFFFFFEFF)N
    NDB 7.3.5bytes64M512K - 4294967039 (0xFFFFFEFF)N

    이것은 개별 노드와 노드간에 메시지를 전달하는 데 사용되는 내부 버퍼입니다. 기본은 64M 바이트입니다. (MySQL Cluster NDB 7.3.5 이전에는, 이것은 4M 바이트였습니다.)

    대부분의 경우이 매개 변수를 기본값에서 변경할 필요가 없습니다.

  • MaxParallelScansPerFragment

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes2561 - 4294967039 (0xFFFFFEFF)N

    순차 처리의 대기가 시작되기 전에 허용되는 병렬 스캔 ( TUP 스캔 및 TUX 스캔)의 최대 수를 구성 할 수 있습니다. 이것을 늘려 다수의 스캔을 병렬로 실행할 때 사용되지 않는 CPU를 이용하여 성능을 향상시킬 수 있습니다.

    MySQL Cluster NDB 7.3 이상에서는이 매개 변수의 기본값은 256입니다.

메모리 할당

MaxAllocate

Effective VersionType/UnitsDefaultRange/ValuesRestart Type
NDB 7.3.0unsigned32M1M - 1GN

이것은 테이블에 대한 메모리를 할당 할 때 사용하는 메모리 유닛의 최대 크기입니다. NDB 에서 Out of memory 오류가 발생했지만 클러스터 로그 또는 DUMP 1000 ( DUMP 1000 을 참조하십시오)의 출력을 보면 사용 가능한 모든 메모리가 아직 사용되지 않는 것이 명백한 경우 이 매개 변수 (또는 MaxNoOfTables 또는 둘 다)의 값을 늘리면 NDB 가 충분한 메모리를 사용할 수있게됩니다

해시 맵 크기

DefaultHashMapSize

Effective VersionType/UnitsDefaultRange/ValuesRestart Type
NDB 7.3.0LDM threads38400 - 3840N

MySQL Cluster NDB 7.2.7 이상에서는 이전 릴리스 (240)보다 큰 테이블 해시 맵의 기본 크기 (3840)가 사용됩니다. MySQL Cluster NDB 7.2.11 이후 버전에서는이 매개 변수를 사용하여 NDB 가 사용하는 테이블 해시 맵의 크기를 구성 할 수 있습니다 (이전에는이 ​​값은 하드 코딩되어있었습니다). DefaultHashMapSize 에는 3 개의 값 (0,240,3840) 중 하나를 지정할 수 있습니다. 이러한 값과 그 효과에 대해 다음 표에서 설명합니다.

ValueDescription / Effect
0클러스터의 모든 데이터 및 API 노드에서이 매개 변수에 설정된 가장 작은 값을 (있으면) 사용합니다. 어떤 데이터 또는 API 노드에 설정되어 있지 않으면 기본값을 사용합니다
240MySQL Cluster NDB 7.2.7 이전의 모든 MySQL Cluster 릴리스에서 기본적으로 사용되어 원래 해시 맵 크기입니다.
3840

MySQL Cluster NDB 7.2.7 이상에서 기본적으로 사용되는 더 큰 해시 맵 크기

이 매개 변수의 주된 용도는 더 큰 해시 맵 사이즈 (3840)가 기본 인 MySQL Cluster NDB 7.2.7 이후의 MySQL Cluster 버전과 이전 버전 (기본이 240이었다) 사이의 업그레이드와 (특히 ) 다운 그레이드를 용이하게하는 것입니다. 이것은이 변경 호환성이없는 (Bug # 14800539) 때문입니다. 이 매개 변수를 240으로 설정하고이 값을 사용하는 이전 버전에서 업그레이드를 실행하면 클러스터는 테이블 해시 맵에 이어 작은 크기를 사용하기 위해 업그레이드 된 테이블에서 이전 버전 호환성이 유지됩니다. DefaultHashMapSize 는 개별 데이터 노드 API 노드 또는 둘 모두에 설정할 수 있지만, config.ini 파일의 [ndbd default] 섹션에 한 번만 설정하는 방법을 권장합니다.

이 매개 변수를 늘린 후 기존 테이블에 새로운 크기를 사용하려면 해당 테이블에 ALTER TABLE ... REORGANIZE PARTITION 을 실행합니다. 그런 다음 테이블에서 더 큰 해시 맵 크기를 사용할 수있게됩니다. 이것은 롤링 재시작 실행 이외에합니다. 롤링 재시작을 수행하면 더 큰 해시 맵을 새로운 테이블로 사용 할 수 있지만, 기존의 테이블에서는 사용할 수 없습니다.

DefaultHashMapSize 을 3840으로 설정하여 테이블을 생성하거나 수정 한 후 온라인으로이 매개 변수를 줄이는 방법은 현재 지원되지 않습니다.

로깅 및 체크 포인트 다음 [ndbd] 파라미터는 로그와 체크 포인트의 동작을 제어합니다.

  • NoOfFragmentLogFiles

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer163 - 4294967039 (0xFFFFFEFF)IN

    이 매개 변수는 노드의 Redo 로그 파일의 수 (즉, Redo 로그에 할당 된 공간의 양)을 설정합니다. Redo 로그 파일은 링 형태로 구성되기 때문에 세트의 처음과 마지막 로그 파일 (각각 " head " 와 " tail " 로그 파일이라고도 함)이 교차하지 않는 것이 매우 중요합니다. 이들이 서로 다가 너무 새 로그 레코드를 추가 할 여유가 없기 때문에 노드는 업데이트를 포함한 모든 트랜잭션을 중단하기 시작합니다.

    Redo 로그 레코드가 삽입 된 후 필요한만큼의 로컬 체크 포인트가 완료 될 때까지 삭제되지 않습니다. (MySQL Cluster NDB 7.3 이상에서는 2 개의 로컬 체크 포인트 만 필요). 체크 포인트의 빈도는이 장에서 별도로 설명하는 특정 구성 매개 변수 세트에 의해 결정됩니다.

    기본 매개 변수 값은 16입니다. 이것은 기본적으로 16M 바이트의 파일 4 개가 16 세트 (총 1024M 바이트) 있음을 의미합니다. 개별 로그 파일의 크기는 FragmentLogFileSize 매개 변수를 사용하여 구성 할 수 있습니다. 많은 업데이트가 필요한 시나리오에서는 Redo 로그에 충분한 공간을 제공하기 위해, NoOfFragmentLogFiles 값을 300 이상으로 설정해야하는 경우가 있습니다.

    체크 포인트가 늦게 데이터베이스에 기록이 많기 때문에 로그 파일이 가득 복구에 영향을주지 않고 로그의 끝을 절단 할 수없는 경우 모든 업데이트 트랜잭션이 내부 오류 코드 410 "Out of log file space temporarily " 에 의해 중지됩니다. 이 상태는 체크 포인트가 완료 비상 로그 전에 이동할 수있을 때까지 계속됩니다.

    중요

    이 매개 변수는 " 실행 중 " 변경할 수 없습니다. --initial 을 사용하여 노드를 다시 시작해야합니다. 실행중인 클러스터의 모든 데이터 노드에이 값을 변경할 필요가있는 경우 (각 데이터 노드를 시작할 때 --initial 을 사용하여) 노드의 롤링 재시작을 사용합니다.

  • FragmentLogFileSize

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes16M4M - 1GIN

    이 매개 변수를 설정하면 Redo 로그 파일의 크기를 직접 제어 할 수 있습니다. 이것은 MySQL Cluster가 부하가 높은 상태에서 실행하고 조각 로그 파일을 닫을 때까지 시간이 걸려 새로운 파일을 열 수 없습니다. (한 번에 열 조각 로그 파일은 2 개 뿐이다) 경우에 편리합니다. 조각 로그 파일의 크기를 늘리면 클러스터에서 새로운 조각 로그 파일을 열어야까지의 시간이 길어집니다. 이 매개 변수의 기본값은 16M입니다.

    조각 로그 파일의 자세한 내용은 NoOfFragmentLogFiles 의 설명을 참조하십시오.

  • InitFragmentLogFiles

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0[see values]SPARSESPARSE, FULLIN

    기본적으로 데이터 노드의 초기 부팅 실행시 조각 로그 파일이 띄엄 띄엄 생성됩니다. 즉, 사용하는 운영 체제 및 파일 시스템은 반드시 모든 바이트가 디스크에 기록되는 것은 아닙니다. 그러나이 매개 변수를 사용하면 사용되는 플랫폼과 파일 시스템의 유형에 관계없이이 동작을 재정의하고 모든 바이트가 강제적으로 기입하도록 설정할 수 있습니다. InitFragmentLogFiles 는 두 값 중 하나를 취합니다.

    • SPARSE . 조각 로그 파일이 띄엄 띄엄 작성됩니다. 이것은 기본값입니다.

    • FULL . 조각 로그 파일의 모든 바이트가 강제로 디스크에 기록됩니다.

    운영 체제 및 파일 시스템에서는 InitFragmentLogFiles = FULL 를 설정하는 것으로, Redo 로그에 기록 할 때 I / O 오류가 해결 될 수 있습니다
  • MaxNoOfOpenFiles

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned020 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 열린 파일에 할당 내부 스레드 수의 상한을 설정합니다. 이 매개 변수의 변경이 필요한 상황이 발생했을 경우, 그것을 버그로보고하도록하십시오 .

    기본값은 0입니다.그러나이 매개 변수에 설정할 수있는 최소값은 20입니다.

  • InitialNoOfOpenFiles

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0files2720 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 열린 파일에 할당 초기 내부 스레드 수를 설정합니다.

    기본값은 27입니다.

  • MaxNoOfSavedMessages

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer250 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 이전 파일을 덮어 쓰기 전에 유지되는 추적 파일의 최대 개수를 설정합니다. 추적 파일은 어떤 이유로 노드가 충돌 할 때 생성됩니다.

    기본값은 25 개의 추적 파일입니다

  • MaxLCPStartDelay

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0seconds00 - 600N

    데이터 노드의 병렬 복구는 사실 테이블 데이터 만 병렬로 복사되고 동기화됩니다. 사전 정보와 체크 포인트 정보 등의 메타 데이터의 동기화는 순차적으로 이루어집니다. 또한 사전 및 체크 포인트 정보 복구는 로컬 체크 포인트의 실행과 병렬로 실행할 수 없습니다. 즉, 많은 데이터 노드를 동시에 시작하거나 다시 시작 할 때 데이터 노드가 로컬 체크 포인트를 실행하는 동안 기다려야 노드 복구 시간이 길어질 수 있습니다.

    더 (경우에 따라서는 모든) 데이터 노드에서 메타 데이터의 동기화를 완료 할 수 있도록 로컬 체크 포인트의 지연을 강제 할 수 있습니다. 각 데이터 노드에서 메타 데이터 동기화가 완료된 후에는 로컬 체크 포인트의 실행 중에도 모든 데이터 노드에 병렬로 테이블 데이터를 복구 할 수 있습니다. 이러한 지연을 강제하려면 MaxLCPStartDelay 을 설정합니다. 이것은 데이터 노드에서 메타 데이터의 동기화가 계속되고있는 동안 클러스터가 로컬 체크 포인트의 시작을 기다리는 초 수를 결정합니다. 이 매개 변수는 모든 데이터 노드에서 동일하도록 config.ini 파일의 [ndbd default] 섹션에 설정하도록하십시오. 최대 값은 600, 기본값은 0입니다.

  • LcpScanProgressTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.3second600 - 4294967039 (0xFFFFFEFF)N

    로컬 체크 포인트의 조각 스캔 워치 독은 로컬 체크 포인트의 일부로 실행되는 각 조각 스캔이 진행되고 있는지 정기적으로 확인하고 특정 시간이 경과해도 진행하지 않으면 그 노드를 종료합니다. MySQL Cluster NDB 7.3.3 이전에는이 ​​간격은 60 초였습니다 (Bug # 16630410). MySQL Cluster NDB 7.3.3 이상에서 LcpScanProgressTimeout 데이터 노드 구성 매개 변수를 사용하여이 간격을 설정할 수 있습니다. 이것은 LCP의 조각 스캔 워치 독 노드가 종료되기 전에 로컬 체크 포인트의 정체가 허용되는 최대 시간을 설정합니다.

    기본값은 60 초입니다 (이전 릴리스와의 호환성이 있습니다). 이 매개 변수를 0으로 설정하면 LCP의 조각 스캔 워치 독을 완전히 비활성화됩니다.

    메타 데이터 오브젝트 다음의 일련의 [ndbd] 매개 변수는 인덱스, 이벤트 및 클러스터 간 복제에 사용되는 속성 테이블, 인덱스 및 트리거 오브젝트의 최대 개수를 정의하는 데 사용되는 메타 데이터 개체 풀 크기를 정의합니다. 이들은 클러스터에 대한 ' 추천 ' 역할 만하며, 지정되지 않은 것은 모두 표시된 기본값으로 돌아갑니다.

  • MaxNoOfAttributes

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer100032 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 클러스터 정의 할 수있는 속성의 최대 권장 개수를 설정합니다. MaxNoOfTables 뿐만 아니라 엄격한 제한의 역할을위한 것이 아닙니다.

    (오래된 MySQL Cluster 릴리스에서는이 매개 변수는 특정 작업에 대한 엄격한 제한으로 간주 할 수있었습니다.이 때문에 MySQL Cluster 복제에 복제 할 수 이상의 테이블을 만들 때 문제가 발생하고 MaxNoOfAttributes 를 보다 많은 속성을 만든 (상황에 따라 할 수없는) 때 혼란을 초래할 수있었습니다.)

    기본값은 1000입니다. 지정 가능한 최소 값은 32입니다. 최대는 4294967039입니다. 모든 메타 데이터가 서버에서 완전히 복제되기 때문에 각 속성은 노드 당 200 바이트 정도의 스토리지를 소비합니다.

    MaxNoOfAttributes 를 설정할 때 향후 실행 가능성이있는 ALTER TABLE 문을 사전에 준비하는 것이 중요합니다. 이것은 클러스터 테이블에서 ALTER TABLE 을 실행하는 동안 원래의 테이블에 포함 된 3 배나 많은 특성이 사용되기 때문이고,이 숫자의 2 배를 허용하는 것이 좋습니다. 예를 들어, 속성의 수가 가장 많다 ( greatest_number_of_attributes ) MySQL Cluster 테이블에 100 개의 속성이있는 경우, MaxNoOfAttributes 의 적절한 초기 값은 6 * greatest_number_of_attributes = 600 입니다.

    또한 테이블 당 평균 속성 수를 예측하고 그것에 MaxNoOfTables 를 바르기도 좋습니다. 이 값이 이전 단락에서 얻어진 값보다 크면 큰 값을 사용하도록하십시오.

    필요한 모든 테이블이 성공적으로 만들 수 있다고 가정하여 매개 변수를 구성한 후 실제로 ALTER TABLE 을 시도하고이 수가 충분한 지 확인하도록하십시오. 이것이 성공하지 못한 경우 MaxNoOfAttributes 를 더 MaxNoOfTables 만큼 늘려 다시 테스트하십시오
  • MaxNoOfTables

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer1288 - 20320N

    테이블 개체는 클러스터의 각 테이블 및 고유 해시 인덱스마다 할당됩니다. 이 매개 변수는 클러스터 전체의 테이블 오브젝트의 최대 권장 개수를 설정합니다. MaxNoOfAttributes 뿐만 아니라 엄격한 제한의 역할을위한 것이 아닙니다.

    (오래된 MySQL Cluster 릴리스에서는이 매개 변수는 특정 작업에 대한 엄격한 제한으로 간주 할 수있었습니다.이 때문에 MySQL Cluster 복제에 복제 할 수 이상의 테이블을 만들 때 문제가 발생하고 MaxNoOfTables 을 개 이상의 테이블을 만든 (상황에 따라 할 수없는) 때 혼란을 초래할 수있었습니다.)

    BLOB 데이터 형식의 각 속성은 BLOB 데이터의 대부분을 저장하기 위해 추가 테이블이 사용됩니다. 테이블의 총 수를 정의 할 때 이러한 테이블도 고려할 필요가 있습니다.

    이 매개 변수의 기본값은 128입니다. 최소값은 8, 최대 값은 20320입니다. 각 테이블 객체는 노드 당 약 20K 바이트를 소모합니다.

    참고

    MaxNoOfTables , MaxNoOfOrderedIndexes 및 MaxNoOfUniqueHashIndexes 의 합계가 2 32 - 2 (4294967294)를 초과하지 않도록해야합니다.

  • MaxNoOfOrderedIndexes

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer1280 - 4294967039 (0xFFFFFEFF)N

    클러스터의 정렬 된 인덱스에 대해 인덱스 된 내용과 스토리지 세그먼트를 기술하는 객체가 할당됩니다. 기본적으로 그렇게 정의 된 각 인덱스에 따라 정렬 된 인덱스도 정의됩니다. 개별 고유 인덱스 및 기본 키는 정렬 된 인덱스와 해시 인덱스가 모두 포함되어 있습니다. MaxNoOfOrderedIndexes 은 시스템에서 한 번에 사용할 수있는 순서화 된 인덱스의 총 수를 설정합니다.

    이 매개 변수의 기본값은 128입니다. 각 인덱스 객체는 노드 당 약 10K 바이트의 데이터를 소비합니다.

    참고

    MaxNoOfTables , MaxNoOfOrderedIndexes 및 MaxNoOfUniqueHashIndexes 의 합계가 2 32 - 2 (4294967294)를 초과하지 않도록해야합니다.

  • MaxNoOfUniqueHashIndexes

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer640 - 4294967039 (0xFFFFFEFF)N

    기본 키가 아닌 개별 고유 인덱스는 고유 키를 인덱스 된 테이블의 기본 키에 매핑하는 전용 테이블이 할당됩니다. 기본적으로 개별 고유 인덱스에 정렬 된 인덱스도 정의됩니다. 이것을 금지하려면 고유 인덱스를 정의 할 때 USING HASH 옵션을 지정해야합니다.

    기본값은 64입니다. 각 인덱스는 노드 당 약 15K 바이트를 소모합니다.

    참고

    MaxNoOfTables , MaxNoOfOrderedIndexes 및 MaxNoOfUniqueHashIndexes 의 합계가 2 32 - 2 (4294967294)를 초과하지 않도록해야합니다.

  • MaxNoOfTriggers

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer7680 - 4294967039 (0xFFFFFEFF)N

    개별 고유 해시 인덱스는 내부 업데이트, 삽입 및 삭제 트리거가 할당됩니다. (이것은 고유 해시 인덱스마다 3 개의 트리거가 생성되는 것을 의미합니다.) 그러나 정렬 된 인덱스에 필요한 트리거 객체는 1 개뿐입니다. 백업에서 클러스터의 보통 테이블마다 3 개의 트리거 오브젝트가 사용됩니다.

    클러스터 간의 복제에서도 내부 트리거가 사용됩니다.

    이 매개 변수는 클러스터 내의 트리거 오브젝트의 최대 개수를 설정합니다.

    기본값은 768입니다.

  • MaxNoOfIndexes

    이 매개 변수는 사용되지 않으며, MySQL Cluster의 향후 버전에서 제거 될 예정입니다. 대신 MaxNoOfOrderedIndexes 및 MaxNoOfUniqueHashIndexes 을 사용하도록하십시오.

    이 매개 변수는 고유 해시 인덱스에서만 사용됩니다. 클러스터에 정의 된 고유 해시 인덱스 당 하나의 레코드가이 풀에 존재해야합니다.

    이 매개 변수의 기본값은 128입니다.

  • MaxNoOfSubscriptions

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned00 - 4294967039 (0xFFFFFEFF)N

    일부 NDB API 응용 프로그램에서는이 매개 변수의 변경이 필요하거나 바람직한 경우가 있습니다. 그러나 SQL 노드 역할을하는 MySQL 서버를 정상적으로 사용하려면 이렇게 필요가 없습니다.

    MaxNoOfSubscriptions 의 기본값은 0입니다. 이것은 MaxNoOfTables 와 등가로 취급됩니다. 각 구독은 108 바이트를 소비합니다.

  • MaxNoOfSubscribers

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned00 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 MySQL Cluster 복제 사용시에만 관련이 있습니다. 기본값은 0입니다.이것은 2 * MaxNoOfTables 로 처리됩니다. 즉, 2 개의 MySQL 서버 (하나는 복제 마스터 역할을하고 다른 하나는 슬레이브로 작동합니다) 각각에 대해 NDB 테이블 당 하나의 구독이 있습니다. 각 가입자는 16 바이트의 메모리를 사용합니다.

    순환 복제 다중 마스터 복제 및 3 개 이상의 MySQL 서버가 관여하는 다른 복제 설정을 사용하는 경우에는이 매개 변수를 복제에 포함 된 mysqld 프로세스 수 (이것은 보통 (항상은 아니지만) 클러스터 수와 같습니다)까지 늘리도록하십시오. 예를 들어, 3 개의 MySQL Cluster를 사용하는 순환 복제 설정이 하나의 mysqld 가 각 클러스터에 연결된 이러한 mysqld 프로세스가 각각 마스터 및 슬레이브로 작동하는 경우 MaxNoOfSubscribers 을 3 * MaxNoOfTables 로 설정하도록 하십시오.

    자세한 내용은 섹션 18.6 "MySQL Cluster 복제" 를 참조하십시오.

  • MaxNoOfConcurrentSubOperations

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned2560 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 클러스터의 모든 API 노드가 한 번에 수행 할 수있는 작업 수의 상한을 설정합니다. 정상 작동시 기본값 (256)으로 충분하지만, API 노드가 다수있어, 각각이 대량의 작업을 동시에 실행하는 시나리오에서만 조정이 필요할 수 있습니다.

    boolean 매개 변수 데이터 노드의 동작은 boolean 값을 가지고 일련의 [ndbd] 매개 변수에도 영향됩니다. 이러한 매개 변수는 TRUE 로 지정하는 경우는 1 또는 Y 로 설정하고 FALSE 로 지정하는 경우는 0 또는 N 으로 설정합니다.

  • LateAlloc

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0numeric10 - 1N

    관리 서버에 연결이 된 후에,이 데이터 노드의 메모리를 할당합니다. 기본적으로 활성화.

  • LockPagesInMainMemory

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0numeric00 - 2N

    Solaris와 Linux를 포함한 여러 운영 체제에서는 프로세스를 메모리에 고정하면 디스크에 스왑을 피할 수 있습니다. 이것을 사용하면 클러스터의 실시간 특성을 보장하기 쉽습니다.

    이 매개 변수는 정수 값 0 , 1 또는 2 중 하나를 취합니다. 이러한 기능을 다음의 목록입니다.

    • 0 : 잠금을 해제합니다. 이것은 기본값입니다.

    • 1 : 프로세스의 메모리를 할당 한 후에 잠금을 실행합니다.

    • 2 : 프로세스의 메모리를 할당하기 전에 잠금을 실행합니다.

    권한이없는 사용자가 페이지를 잠글 수 있도록 운영 체제가 구성되어 있지 않은 경우이 매개 변수를 사용하는 데이터 노드 프로세스를 시스템의 root로 실행해야 할 수 있습니다. ( LockPagesInMainMemory 는 mlockall 함수가 사용됩니다 .Linux kernel 2.6.9 이후에서는 권한이없는 사용자가 max locked memory 제한에 따라 메모리를 잠글 수 있습니다. 자세한 내용은 ulimit -l 및 http : //linux.die .net / man / 2 / mlock 을 참조하십시오).

    참고

    이전 MySQL Cluster 릴리스에서는이 매개 변수는 boolean이었습니다. 기본 설정 인 0 또는 false 는 잠금이 해제되었습니다. 1 또는 true 는 프로세스의 메모리가 할당 한 후에 잠금이 활성화되었습니다. MySQL Cluster NDB 7.3 이상에서는이 매개 변수의 값으로 true 또는 false 를 사용하면 오류로 처리됩니다.

    중요

    glibc 2.10 이상에서는 glibc 가 공유 풀에서 잠금 경합을 줄이기 위해 스레드 단위 경기장을 사용하고이를 통해 실제 메모리가 소비됩니다. 일반적으로 데이터 노드 프로세스는 부팅 후 메모리 할당을 수행하지 않기 때문에 스레드 단위 경기장을 필요로하지 않습니다. (이 할당의 차이가 성능에 심각한 영향을 미칠 수는 없습니다.)

    이 glibc 의 동작은 MALLOC_ARENA_MAX 환경 변수를 사용하여 구성 할 수있게되어 있습니다 만, glibc 2.16 이전 버전에서는이 메커니즘의 버그 때문에이 변수를 8 미만으로 설정할 수 없기 때문에 낭비 된 메모리 을 재사용 할 수 없습니다. (Bug # 15907219이 문제의 자세한 내용은 http://sourceware.org/bugzilla/show_bug.cgi?id=13137 참조하십시오.)

    이 문제의 가능한 해결 방법은 LD_PRELOAD 환경 변수를 사용하여 jemalloc 메모리 할당 라이브러리를 탑재하고 glibc 와 함께 제공되는 라이브러리 대신 사용하는 것입니다.

  • StopOnError

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0boolean10, 1N

    이 매개 변수는 데이터 노드 프로세스에서 오류 조건이 발생했을 때 프로세스를 종료하거나 자동으로 다시 시작하거나 지정합니다.

    이 매개 변수의 기본값은 1 입니다. 이것은 기본적으로 오류 발생시 데이터 노드 프로세스가 중지하는 것을 의미합니다.

  • CrashOnCorruptedTuple

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0booleantruetrue, falseS

    이 매개 변수를 사용하면 손상된 튜플이 검출 된 때 데이터 노드가 강제 종료됩니다. MySQL Cluster NDB 7.3 이상에서는 이것은 기본적으로 활성화되어 있습니다.

  • Diskless

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0true|false (1|0)falsetrue, falseIS

    MySQL Cluster의 테이블을 디스크없는 로 지정할 수 있습니다. 이것은 테이블이 디스크에 체크 포인트되지 않고 로깅이 발생하지 않는 것을 의미합니다. 이러한 테이블은 메인 메모리에만 존재합니다. 디스크없는 테이블을 사용하면 충돌 발생시에 테이블도 테이블의 레코드도 삭제됩니다. 그러나 디스크없는 모드에서 작동 할 때 디스크없는 컴퓨터에서 ndbd 를 실행할 수 있습니다.

    중요

    이 기능을 사용하면 클러스터 전체 가 디스크없는 모드에서 작동합니다.

    이 기능을 사용하면 클러스터의 온라인 백업이 사용됩니다. 또한 클러스터의 부분 시작 수 없습니다.

    Diskless 은 기본적으로 비활성화되어 있습니다.

  • ODirect

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0booleanfalsetrue, falseN

    이 매개 변수를 사용하면 NDB 가 LCP, 백업 및 Redo 로그에 O_DIRECT 쓰려고 종종 kswapd 및 CPU 사용률이 떨어집니다. Linux에서 MySQL Cluster를 사용할 때 커널 2.6 이상을 사용하는 경우 ODirect 을 사용하십시오.

    ODirect 은 기본적으로 비활성화되어 있습니다.

  • RestartOnErrorInsert

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0error code20 - 4N

    이 기능은 코드의 각 블록을 테스트의 일부로 실행할 때 오류 삽입이 가능한 디버그 버전을 빌드하는 경우에만 사용할 수 있습니다.

    이 기능은 기본적으로 비활성화되어 있습니다.

  • CompressedBackup

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0booleanfalsetrue, falseN

    사용되는 압축은 gzip --fast 과 같으며 데이터 노드에서 비 압축 백업 파일의 저장에 필요한 공간의 50 % 이상을 절약 할 수 있습니다. 압축 백업은 개별 데이터 노드 또는 ( config.ini 파일의 [ndbd default] 섹션에이 매개 변수를 설정하여) 모든 데이터 노드에서 활성화 할 수 있습니다.

    중요

    압축 백업이 기능을 지원하지 않는 MySQL 버전을 실행하는 클러스터로 복원 할 수 없습니다.

    기본값은 0 (해제)입니다.

  • CompressedLCP

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0booleanfalsetrue, falseN

    이 매개 변수를 1 로 설정하면 로컬 체크 포인트가 압축됩니다. 사용되는 압축은 gzip --fast 과 같으며 데이터 노드에서 비 압축 체크 포인트 파일의 저장에 필요한 공간의 50 % 이상을 절약 할 수 있습니다. 압축 LCP는 개별 데이터 노드 또는 ( config.ini 파일의 [ndbd default] 섹션에이 매개 변수를 설정하여) 모든 데이터 노드에서 활성화 할 수 있습니다.

    중요

    압축 로컬 체크 포인트는이 기능을 지원하지 않는 MySQL 버전을 실행하는 클러스터로 복원 할 수 없습니다.

    기본값은 0 (해제)입니다.

시간, 간격 및 디스크 페이징 제어

클러스터 데이터 노드의 다양한 동작 사이의 시간과 간격을 지정하는 몇 가지 [ndbd] 매개 변수가 있습니다. 대부분의 시간 제한 값은 밀리 초 단위로 지정합니다. 이 예외는 해당 부분에서 설명합니다.

  • TimeBetweenWatchDogCheck

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds600070 - 4294967039 (0xFFFFFEFF)N

    메인 스레드가 특정 시점에 무한 루프에 빠지는 것을 방지하기 위해 " 감시 " 스레드가 메인 스레드를 확인합니다. 이 매개 변수는 체크 사이의 밀리 초 단위로 지정합니다. 프로세스가 3 회 검사 후에도 동일한 상태의 경우, 감시 스레드는 프로세스를 종료합니다.

    이 매개 변수는 실험 또는 로컬 상태에 따라 쉽게 변경할 수 있습니다. 이 노드 단위로 지정할 수 있지만 지정하는 경우는 거의 없습니다.

    기본 시간은 6000 밀리 세컨드 (6 초)입니다
  • TimeBetweenWatchDogCheckInitial

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds600070 - 4294967039 (0xFFFFFEFF)N

    This is similar to the TimeBetweenWatchDogCheck parameter, except that TimeBetweenWatchDogCheckInitial controls the amount of time that passes between execution checks inside a database node in the early start phases during which memory is allocated.

    The default timeout is 6000 milliseconds (6 seconds).

  • StartPartialTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds300000 - 4294967039 (0xFFFFFEFF)N

    이것은 TimeBetweenWatchDogCheck 매개 변수와 거의 동일하지만 TimeBetweenWatchDogCheckInitial 는 메모리 할당이 이루어지는 초기 시작 단계에서 데이터베이스 노드 내부의 실행 체크 사이에 경과 시간을 제어합니다.

    기본 시간은 6000 밀리 세컨드 (6 초)입니다.

  • StartPartitionedTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds600000 - 4294967039 (0xFFFFFEFF)N

    StartPartialTimeout 밀리 초 대기 후 클러스터를 시작할 수 상태도 아직 분할 된 상태의 가능성이있는 경우 클러스터는이 시간이 경과 할 때까지 기다립니다. StartPartitionedTimeout 를 0으로 설정하면 클러스터는 무기한 대기합니다.

    이 매개 변수는 클러스터의 초기 시작 또는 초기 재부팅을 수행 할 때 무시됩니다.

    기본 시간 제한은 60000 밀리 초 (60 초)입니다.

  • StartFailureTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds00 - 4294967039 (0xFFFFFEFF)N

    데이터 노드에서이 매개 변수에 지정된 시간 내에 시작 시퀀스가​​ 완료되지 않은 경우 노드의 시작은 실패합니다. 이 매개 변수를 0 (기본값)로 설정하면 데이터 노드의 제한은 적용되지 않습니다.

    이 매개 변수는 0이 아닌 값은 밀리 초 단위로 측정됩니다. 많은 데이터를 포함한 데이터 노드에서는이 매개 변수를 늘리도록하십시오. 예를 들어, 수 기가 바이트의 데이터를 포함한 데이터 노드에서 노드를 다시 시작하는데 10 ~ 15 분 (즉, 600000-1000000 밀리 초)의 시간이 필요합니다.

  • StartNoNodeGroupTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds150000 - 4294967039 (0xFFFFFEFF)N

    Nodegroup = 65536 에서 데이터 노드를 구성하면 해당 노드는 어떤 노드 그룹에 할당 할 수없는 것으로 간주됩니다. 이 경우 클러스터는 StartNoNodegroupTimeout 밀리 초 기다렸다가 그러한 노드를 --nowait-nodes 옵션에 전달 된 목록에 추가 된 것으로 간주 시작합니다. 기본값은 15000 입니다 (즉, 관리 서버는 15 초 대기합니다). 이 매개 변수를 0 으로 설정하면 클러스터는 무기한 대기합니다.

    StartNoNodegroupTimeout 는 클러스터의 모든 데이터 노드에서 동일해야합니다. 따라서 이것은 개별 데이터 노드가 아니라 항상 config.ini 파일의 [ndbd default] 섹션에 설정하도록하십시오.

    자세한 내용은 섹션 18.5.13 "MySQL Cluster 데이터 노드의 온라인 추가" 를 참조하십시오.

  • HeartbeatIntervalDbDb

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds500010 - 4294967039 (0xFFFFFEFF)N

    실패한 노드를 검출하는 주요 방법 중 하나는 하트 비트를 사용하는 것입니다. 이 매개 변수는 하트 비트 신호의 전송 횟수 것으로 예상된다 수신 횟수를 지정합니다. 3 회 연속 하트 비트 간격이 실패하면 그 노드는 데드가 선언됩니다. 따라서 하트 비트 메커니즘에 의한 고장 검출의 최대 시간은 하트 비트 간격의 4 배입니다.

    MySQL Cluster NDB 7.3 이상에서는 기본 하트 비트 간격은 5000 밀리 초 (5 초)입니다. 이 매개 변수를 크게 변경하지 마십시오. 또한 노드 간의 차이가 크지 않도록하십시오. 노드가 5000 밀리 초를 사용하고 그것을 감시하는 노드가 1000 밀리 초를 사용하는 경우, 그 노드는 매우 빨리 데드가 선언됩니다. 이 매개 변수는 온라인 소프트웨어 업그레이드 중에 변경할 수 있지만 조금씩 늘리십시오.

    네트워크 통신 대기 시간 도 참조하십시오.

  • HeartbeatIntervalDbApi

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds1500100 - 4294967039 (0xFFFFFEFF)N

    각 데이터 노드는 각 MySQL 서버 (SQL 노드)에 하트 비트 신호를 전송하여 연결된 상태인지 확인합니다. MySQL 서버가 시간 내에 하트 비트를 전송하지 못한 경우 " 데드 " 라고 선언됩니다. 이 경우 진행중인 모든 트랜잭션이 완료되고 자원이 해제됩니다. 이전 MySQL 인스턴스가 시작 된 모든 활동이 완료 될 때까지 SQL 노드는 다시 연결할 수 없습니다. 이 판정에 사용되는 3 하트 비트의 조건은 HeartbeatIntervalDbDb 에서 설명한 것과 동일합니다.

    기본 간격은 1500 밀리 초 (1.5 초)입니다. 각 데이터 노드는 다른 모든 데이터 노드와 관계없이 연결중인 MySQL 서버를 모니터링하기 위해이 간격은 각 데이터 노드 다를 수 있습니다.

    자세한 내용은 네트워크 통신 대기 시간 을 참조하십시오.

  • HeartbeatOrder

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0numeric00 - 65535S

    데이터 노드는 각 데이터 노드가 이전 데이터 노드를 모니터하는 순환적인 방식으로 서로 하트 비트를 전송합니다. 하트 비트가 특정 데이터 노드에서 감지되지 않은 경우,이 노드는 순환 직전의 데이터 노드를 " 죽은 " (즉, 클러스터에서 액세스 할 수 없게되었다) 고 선언합니다. 데이터 노드가 죽은하다는 판정은 세계적으로 이루어집니다. 즉, 데이터 노드 데드가 선언되면 그 노드는 클러스터의 모든 노드에서 그렇게 간주됩니다.

    다 른 호스트에 배치 된 데이터 노드 간의 하트 비트 (예를 들어, 매우 긴 하트 비트 간격이나 일시적인 연결 문제로) 다른 노드 쌍 사이의 하트 비트에 비해 너무 늦게 위해 데이터 노드가 아직 클러스터의 일부로 기능하고 있음에도 불구하고, 데드가 선언 될 수 있습니다.

    이러한 상황에서는 데이터 노드 간의 하트 비트 전송 순서가 특정 데이터 노드가 죽은 선언 여부에 영향을주고있는 가능성이 있습니다. 이 선언이 불필요하게 발생하면, 그것은 노드 그룹의 손실을 초래하고, 또한 클러스터의 장애로 이어질 수 있습니다.

    다음 표와 같이 두 개의 호스트 컴퓨터 host1 및 host2 에서 실행되는 4 개의 데이터 노드 A, B, C 및 D가 이러한 데이터 노드가 2 개의 노드 그룹을 구성하고있다 설치 생각합니다.

    Node Group

    Nodes Running on host1

    Nodes Running on host2

    Node Group 0:

    Node A

    Node B

    Node Group 1:

    Node C

    Node D

    하트 비트가 A-> B-> C-> D-> A 순으로 전송된다고합니다. 이 경우 호스트간에 하트 비트가 손실되면 노드 B가 노드 A 끊어짐 선언 노드 C가 B 끊어짐 선언합니다. 이 결과, 노드 그룹 0이 손실되므로 클러스터가 작동 중지합니다. 한편, 전송 순서가 A-> B-> D-> C-> A이다 (및 다른 모든 조건이 위에 남아있는 경우) 하트 비트가 손실되면 노트북 A와 D가 데드가 선언됩니다. 이 경우 각 노드 그룹에 하나씩 노드가 남아 있기 때문에 클러스터는 유지됩니다.

    HeartbeatOrder 구성 매개 변수는 사용자가 하트 비트 전송 순서를 구성 할 수 있도록합니다. HeartbeatOrder 의 기본값은 0입니다. 모든 데이터 노드에서 기본값을 사용할 수 있도록하면 하트 비트 전송 순서는 NDB 에 의해 결정됩니다. 이 매개 변수를 사용하는 경우 클러스터의 모든 데이터 노드에 0 이외의 값 (65535)으로 설정해야합니다. 또한이 값은 각 데이터 노드에서 고유해야합니다. 이로 인해 심장 박동이 HeartbeatOrder 값이 작은 노드에서 큰 노드에 순서대로 전송된다 (이후 HeartbeatOrder 이 가장 큰 노드에서 가장 작은 노드에 전송되어 순환이 완결) 수 있습니다. 예를 들어, 위의 시나리오에서 하트 비트 전송 순서 A-> B-> D-> C-> A를 강제로 값을 연속시킬 필요는 없습니다. 여기에 나타낸 바와 같은 HeartbeatOrder 값을 설정할 수 있습니다.

    NodeHeartbeatOrder
    A10
    B20
    C30
    D25

    이 매개 변수를 사용하여 실행중인 MySQL Cluster의 하트 비트 전송 순서를 변경하려면 먼저 글로벌 구성 ( config.ini ) 파일에 클러스터의 각 데이터 노드의 HeartbeatOrder 을 설정해야합니다. 변경 사항을 적용하려면 다음 중 하나를 수행해야합니다.

    • 전체 클러스터의 완전한 종료하고 다시 시작합니다.

    • 2 회 연속 클러스터의 롤링 다시 시작합니다. 두 롤링 재시작에서 모든 노드가 동일한 순서로 다시 시작해야합니다 .

    DUMP 908 을 사용하면 데이터 노드 로그에서이 매개 변수의 효과를 관찰 할 수 있습니다.

  • ConnectCheckIntervalDelay

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds00 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 데이터 노드 간의 연결 검사를 활성화합니다. ConnectCheckIntervalDelay 초 간격 이내에 응답 할 수없는 데이터 노드 의심치로 간주되며, 이러한 간격이 2 회 계속 된 뒤에서 죽은 것으로 간주됩니다.

    이 매개 변수의 기본값은 0입니다. 이것은 MySQL Cluster NDB 7.1에서 변경된 사항입니다.

  • TimeBetweenLocalCheckpoints

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0number of 4-byte words, as a base-2 logarithm200 - 31N

    이 매개 변수는 새 로컬 포인트를 시작할 때까지의 대기 시간을 지정하지 않는다는 점에서 예외입니다. 어느 쪽인가하면 상대적으로 적은 갱신 될 클러스터에서 로컬 체크 포인트가 실행되지 않도록하는 데 사용됩니다. 업데이트 횟수가 많은 대부분의 클러스터는 직전의 로컬 체크 포인트가 완료 한 직후에 새로운 로컬 체크 포인트가 시작 될 가능성이 있습니다.

    이전 로컬 체크 포인트가 시작된 이후에 실행 된 모든 쓰기 작업의 크기가 추가됩니다. 이 매개 변수는 4 바이트 워드의 수의 바닥 2의 대수로 지정되는 점에서도 예외입니다. 따라서 기본값 20은 4M 바이트 (4 * 2 20 )의 쓰기 작업을 의미하고 21은 8M 바이트를 의미하고, 최대 값 31는 8G 바이트의 쓰기 작업과 동일합니다.

    클러스터의 모든 쓰기 작업이 함께 추가됩니다. TimeBetweenLocalCheckpoints 를 6 이하로 설정하면 로컬 체크 포인트는 클러스터의 워크로드와 관계없이 끊김없이 연속적으로 실행됩니다.

  • TimeBetweenGlobalCheckpoints

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds200020 - 32000N

    트랜잭션이 커밋되면 데이터가 미러링 된 노드의 메인 메모리에 커밋됩니다. 그러나 트랜잭션 로그 레코드는 커밋의 일부로 디스크에 플러시되지 않습니다. 트랜잭션을 적어도 2 개의 자립적 인 호스트 시스템에서 안전하게 커밋하여 지속 가능성에 대한 합리적인 기준이 충족 될 것이라는 것이이 동작의 근거입니다.

    또한 최악의 경우 (클러스터의 완전한 충돌)도 적절히 처리되도록하는 것이 중요합니다. 이 수행을 보장하기 위해 특정 거리 이내에 이루어지는 모든 거래는 글로벌 체크 포인트에 포함됩니다. 이것은 디스크에 플래시 된 커밋 된 트랜잭션으로 간주 될 수 있습니다. 즉, 트랜잭션은 커밋 프로세스의 일부로서 글로벌 체크 포인트 그룹에 포함됩니다. 그 후,이 그룹의 로그 레코드가 디스크로 플러시되면 트랜잭션 그룹 전체 클러스터의 컴퓨터에서 디스크에 안전하게 커밋됩니다.

    이 매개 변수는 글로벌 체크 포인트 사이의 간격을 정의합니다. 기본값은 2000 밀리 초입니다.

  • TimeBetweenGlobalCheckpointsTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.4.5milliseconds12000010 - 4294967039 (0xFFFFFEFF)N
    NDB 7.3.9milliseconds12000010 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 글로벌 체크 포인트 사이의 최소 시간 제한을 정의 합니다. 기본값은 120000밀리 초입니다.

    This parameter was added in MySQL Cluster NDB 7.3.9 and MySQL Cluster 7.4.5. (Bug #20069617)

  • TimeBetweenEpochs

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds1000 - 32000N

    이 매개 변수는 MySQL Cluster 복제 동기화 신기원 사이의 간격을 정의합니다. 기본값은 100 밀리 초입니다.

    TimeBetweenEpochs 는 MySQL Cluster 복제 성능을 향상시키는 데 사용할 수있는 " micro-GCP " 구현의 일부입니다.

  • TimeBetweenEpochsTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds00 - 256000N

    이 매개 변수는 MySQL Cluster 복제 동기화 신기원의 시간을 정의합니다. 이 매개 변수 결정된 시간 내에 노드가 글로벌 체크 포인트에 참석하지 못한 경우 노드는 종료됩니다. MySQL Cluster NDB 7.3 이상에서는 기본값은 0입니다 (즉, 시간 제한이 비활성화되어 있습니다).

    TimeBetweenEpochsTimeout 는 MySQL Cluster 복제 성능을 향상시키는 데 사용할 수있는 " micro-GCP " 구현의 일부입니다.

    GCP의 저장에 1 분 이상 소요되거나 GCP의 저장에 10 초 이상의 시간이 걸린 경우에는 항상이 매개 변수의 현재 값과 경고가 클러스터 로그에 기록됩니다.

    이 매개 변수를 0으로 설정하면 저장 시간, 위탁의 제한 또는 둘 다에 의해 발생하는 GCP의 정지를 해제합니다. 이 매개 변수의 최대 값은 256,000 밀리 초입니다.

  • MaxBufferedEpochs

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0epochs1000 - 100000N

    구독 노드가 연기 할 처리되지 않은 신기원 수. 이 수를 초과하면 지연 가입자가 절단됩니다.

    대부분의 일반 작업에서는 기본값 100으로 충분합니다. 구독 노드의 지연으로 인해 손실이 발생하는 경우, 그 원인은 일반적으로 프로세스 또는 스레드에 대한 네트워크 또는 스케줄링 문제입니다. (드문 경우이지만, NDB 클라이언트의 버그로 인해이 문제가 발생할 수 있습니다.) 신기원이 큰 경우에는이 값을 기본값보다 작게 설정하는 것이 바람직 할 수 있습니다.

    절단하여 클라이언트의 문제로 인해 데이터 노드 서비스가 영향을 받아 데이터를 버퍼링하기위한 메모리가 부족하여 결국 종료 할 수 없습니다. 대신, 절단의 결과로 (예를 들어, 바이너리 로그의 격차 이벤트에 의해) 클라이언트에 영향을 클라이언트가 강제로 프로세스를 다시 연결하거나 다시 시작합니다.

  • MaxBufferedEpochBytes

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes2621440026214400 (0x01900000) - 4294967039 (0xFFFFFEFF)N

    이 노드가 신기원을 버퍼링하는데 할당 바이트의 합계 수.

  • TimeBetweenInactiveTransactionAbortCheck

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds10001000 - 4294967039 (0xFFFFFEFF)N

    타임 아웃 처리는 각 트랜잭션의 타이머를 매개 변수로 지정된 간격마다 한 번씩 체크하고 실행됩니다. 따라서이 파라미터를 1000 밀리 초로 설정하면 모든 트랜잭션 제한 시간이 1 초에 한번씩 체크됩니다.

    기본값은 1000 밀리 초 (1 초)입니다.

  • TransactionInactiveTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds[see text]0 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 트랜잭션이 중지 될 때까지 동일한 트랜잭션에서 작업간에 경과가 허용되는 최대 시간을 지정합니다.

    이 매개 변수의 기본값은 4G (최대도 마찬가지입니다). 트랜잭션이 잠금을 보유하는 기간이 너무 길지 않게 할 필요가있는 실시간 데이터베이스의 경우,이 매개 변수를 비교적 낮은 값으로 설정하도록하십시오. 단위는 밀리 초입니다

  • TransactionDeadlockDetectionTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds120050 - 4294967039 (0xFFFFFEFF)N

    노드는 트랜잭션을 포함한 쿼리를 실행할 때 클러스터의 다른 노드가 응답 할 때까지 기다린 후 작업을 계속합니다. 응답의 실패는 다음 중 하나의 이유로 발생합니다.

    • 노드가 " 죽은 " 입니다

    • 조작이 잠금 큐에 들어갔습니다

    • 액션의 실행을 요구 한 노드에 매우 높은 부하가 걸려있을 수 있습니다.

    이 시간 초과 매개 변수는 트랜잭션이 중단 될 때까지 트랜잭션 코디네이터가 다른 노드에 의한 쿼리의 실행을 기다리는 시간을 지정하는 것으로, 노드 장애 처리 및 교착 상태 감지에 중요합니다.

    기본 시간 초과 값은 1200 밀리 초 (1.2 초)입니다.

    이 매개 변수의 최소 50 밀리 초입니다.

  • DiskSyncSize

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes4M32K - 4294967039 (0xFFFFFEFF)N

    이것은 로컬 체크 포인트 파일에 데이터를 플래시까지 저장되는 최대 바이트 수입니다. 이것은 성능을 크게 저하시킬 수있는 쓰기 버퍼링을 금지하기 위해 이루어집니다. 이 매개 변수는 TimeBetweenLocalCheckpoints 대신 사용하기위한 것이 아닙니다 .

    참고

    ODirect 이 활성화되어있는 경우 DiskSyncSize 를 설정할 필요가 없습니다. 실제로 그런 경우는 그 값이 무시됩니다.

    기본값은 4M (4 메가 바이트)입니다.

  • DiskCheckpointSpeed

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes10M1M - 4294967039 (0xFFFFFEFF)N

    로컬 체크 포인트 동안 디스크에 전송되는 데이터의 양 (바이트 / 초). 이 할당은 DML 작업과 백업 (백업 기록은 제외)에서 공유됩니다. 이것은 집약적 인 DML 실행 중에 시작된 백업이 Redo 로그 버퍼의 대량 발생에 의해 저지되어 충돌이 심각한 경우 완전히 실패 할 가능성이 있다는 것을 의미합니다.

    기본값은 10M (10 메가 바이트 / 초)입니다.

    MySQL Cluster 7.4.1 이후 버전에서는이 매개 변수는 사용되지 않으며 대신 구성 매개 변수 MinDiskWriteSpeed ​​, MaxDiskWriteSpeed ​​, MaxDiskWriteSpeedOtherNodeRestart 및 MaxDiskWriteSpeedOwnRestart 을 사용하여 LCP 및 백업의 쓰기 속도를 제어 할 수 있습니다.

  • DiskCheckpointSpeedInRestart

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes100M1M - 4294967039 (0xFFFFFEFF)N

    다시 시작 작업의 일부인 로컬 체크 포인트 동안 디스크에 전송되는 데이터의 양 (바이트 / 초).

    기본값은 100M (100 메가 바이트 / 초)입니다.

    MySQL Cluster 7.4.1 이후 버전에서는이 매개 변수는 사용되지 않으며 대신 구성 매개 변수 MinDiskWriteSpeed ​​, MaxDiskWriteSpeed ​​, MaxDiskWriteSpeedOtherNodeRestart 및 MaxDiskWriteSpeedOwnRestart 을 사용하여 LCP 및 백업의 쓰기 속도를 제어 할 수 있습니다.

  • NoOfDiskPagesToDiskAfterRestartTUP

    이 매개 변수는 사용되지 않으며, MySQL Cluster의 향후 버전에서 제거 될 예정입니다. 대신 DiskCheckpointSpeedInRestart 및 DiskSyncSize 를 사용하십시오. MySQL Cluster 7.4.1 이후에서는, 대신에 그 릴리스에서 도입 된 구성 매개 변수 MinDiskWriteSpeed ​​, MaxDiskWriteSpeed ​​, MaxDiskWriteSpeedOtherNodeRestart 및 MaxDiskWriteSpeedOwnRestart 을 사용하도록하십시오.

  • MaxDiskWriteSpeed

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.4.1numeric20M1M - 1024GS

    Set the maximum rate for writing to disk, in bytes per second, by local checkpoints and backup operations when no restarts (by this data node or any other data node) are taking place in this MySQL Cluster.

    For setting the maximum rate of disk writes allowed while this data node is restarting, use MaxDiskWriteSpeedOwnRestart. For setting the maximum rate of disk writes allowed while other data nodes are restarting, use MaxDiskWriteSpeedOtherNodeRestart. The minimum speed for disk writes by all LCPs and backup operations can be adjusted by setting MinDiskWriteSpeed.

    MaxDiskWriteSpeed was added in MySQL Cluster NDB 7.4.1.

  • MaxDiskWriteSpeedOtherNodeRestart

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.4.1numeric50M1M - 1024GS

    이 MySQL Cluster에 포함 된 노드 이외의 1 개 이상의 데이터 노드가 다시 시작하는 경우 로컬 체크 포인트 및 백업 작업에 의한 디스크 쓰기 최대 속도 (바이트 / 초)을 설정합니다.

    이 데이터 노드를 다시 시작하는 동안 허용되는 디스크 쓰기 최대 속도를 설정하려면 MaxDiskWriteSpeedOwnRestart 을 사용합니다. 클러스터에서 데이터 노드가 다시 시작되지 않은 경우에 허용되는 디스크 쓰기 최대 속도를 설정하려면 MaxDiskWriteSpeed ​​을 사용합니다. 모든 LCP 및 백업 작업에 의한 디스크 쓰기의 최소 속도를 조정하려면 MinDiskWriteSpeed ​​을 설정합니다.

    MaxDiskWriteSpeedOtherNodeRestart 은 MySQL Cluster NDB 7.4.1에서 추가되었습니다.

  • MaxDiskWriteSpeedOwnRestart

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.4.1numeric200M1M - 1024GS

    이 데이터 노드를 다시 시작 로컬 체크 포인트 및 백업 작업에 의한 디스크 쓰기 최대 속도 (바이트 / 초)을 설정합니다.

    다른 데이터 노드를 다시 시작하는 동안 허용되는 디스크 쓰기 최대 속도를 설정하려면 MaxDiskWriteSpeedOtherNodeRestart 을 사용합니다. 클러스터에서 데이터 노드가 다시 시작되지 않은 경우에 허용되는 디스크 쓰기 최대 속도를 설정하려면 MaxDiskWriteSpeed ​​을 사용합니다. 모든 LCP 및 백업 작업에 의한 디스크 쓰기의 최소 속도를 조정하려면 MinDiskWriteSpeed ​​을 설정합니다.

    MaxDiskWriteSpeedOwnRestart 은 MySQL Cluster NDB 7.4.1에서 추가되었습니다.

  • MinDiskWriteSpeed

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.4.1numeric10M1M - 1024GS

    로컬 체크 포인트 및 백업 작업에 의한 디스크 쓰기의 최소 속도 (바이트 / 초)을 설정합니다.

    다양한 조건에서 LCP 및 백업에 허용되는 디스크 쓰기 최대 속도는 파라미터 MaxDiskWriteSpeed ​​, MaxDiskWriteSpeedOwnRestart 및 MaxDiskWriteSpeedOtherNodeRestart 를 사용하여 조정할 수 있습니다. 자세한 내용은 이러한 매개 변수의 설명을 참조하십시오.

    MinDiskWriteSpeed ​​은 MySQL Cluster NDB 7.4.1에서 추가되었습니다.

  • NoOfDiskPagesToDiskAfterRestartACC

    이 매개 변수는 사용되지 않으며, MySQL Cluster의 향후 버전에서 제거 될 예정입니다. MySQL Cluster NDB 7.3에서는 대신 DiskCheckpointSpeedInRestart 및 DiskSyncSize 를 사용하십시오. MySQL Cluster NDB 7.4.1 이상에서는 매개 변수 MinDiskWriteSpeed ​​, MaxDiskWriteSpeed ​​, MaxDiskWriteSpeedOtherNodeRestart 및 MaxDiskWriteSpeedOwnRestart 을 사용하도록하십시오.

  • NoOfDiskPagesToDiskDuringRestartTUP (DEPRECATED)

    이 매개 변수는 사용되지 않으며, MySQL Cluster의 향후 버전에서 제거 될 예정입니다. MySQL Cluster NDB 7.3에서는 대신 DiskCheckpointSpeedInRestart 및 DiskSyncSize 를 사용하십시오. MySQL Cluster NDB 7.4.1 이상에서는 매개 변수 MinDiskWriteSpeed ​​, MaxDiskWriteSpeed ​​, MaxDiskWriteSpeedOtherNodeRestart 및 MaxDiskWriteSpeedOwnRestart 을 사용하도록하십시오.

  • NoOfDiskPagesToDiskDuringRestartACC (DEPRECATED)

    이 매개 변수는 사용되지 않으며, MySQL Cluster의 향후 버전에서 제거 될 예정입니다. MySQL Cluster NDB 7.3에서는 대신 DiskCheckpointSpeedInRestart 및 DiskSyncSize 를 사용하십시오. MySQL Cluster NDB 7.4.1 이상에서는 매개 변수 MinDiskWriteSpeed ​​, MaxDiskWriteSpeed ​​, MaxDiskWriteSpeedOtherNodeRestart 및 MaxDiskWriteSpeedOwnRestart 을 사용하도록하십시오.

  • ArbitrationTimeout

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0milliseconds750010 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 데이터 노드가 중재 메시지에 대한 중재자의 응답을 기다리는 시간을 설정합니다. 이를 초과하는 경우는 네트워크가 끊어진 것으로 간주됩니다.

    MySQL Cluster NDB 7.3 이상에서는 기본값은 7500 밀리 초 (7.5 초)입니다.

  • Arbitration

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0enumerationDefaultDefault, Disabled, WaitExternalN

    Arbitration 매개 변수를 사용하여이 매개 변수에 사용할 수있는 세 가지 값 중 하나에 해당하는 중재 제도를 선택할 수 있습니다.

    • 기본 이 경우 관리 및 API 노드의 ArbitrationRank 설정에 지정된대로 중재가 정상적으로 진행합니다. 이것은 기본값입니다.

    • disabled config.ini 파일의 [ndbd default] 섹션에 Arbitration = Disabled 를 설정하면 모든 관리 및 API 노드에서 ArbitrationRank 의 0을 설정 한 경우와 동일한 결과를 얻을 수 있습니다. Arbitration 를 이렇게 설정하면 ArbitrationRank 설정은 무시됩니다.

    • WaitExternal Arbitration 매개 변수를 사용하여 클러스터가 내부에서 중재를 처리하는 대신 ArbitrationTimeout 에서 지정된 시간이 경과 할 때까지 외부 클러스터 관리자 응용 프로그램에 의한 중재의 실행을 대기하는 방법으로 중재를 구성 할 수 합니다. 이렇게는 config.ini 파일의 [ndbd default] 섹션에 Arbitration = WaitExternal 을 설정합니다. WaitExternal 설정에서 최상의 결과를 얻기 위해서는 ArbitrationTimeout 을 외부 클러스터 관리자가 중재를 수행하는 데 필요한 간격의 2 배로 설정하는 것이 좋습니다.

    중요

    이 매개 변수는 클러스터 구성 파일의 [ndbd default] 섹션에서만 사용하도록하십시오. Arbitration 개별 데이터 노드에서 다른 값으로 설정하면 클러스터의 동작은 불특정됩니다.

    버퍼링 및 로깅 고급 사용자는 몇 가지 [ndbd] 구성 매개 변수를 사용하면함으로써 노드 프로세스가 사용하는 자원을보다 효율적으로 관리하고 필요에 따라 다양한 버퍼 크기를 조정할 수 있습니다.

    이러한 버퍼는 로그 레코드를 디스크에 기록 할 때 파일 시스템에 대한 프론트 엔드로 사용됩니다. 노드가 디스크없는 모드에서 실행되는 경우는 NDB 스토리지 엔진의 파일 시스템 추상화 계층에서 디스크 쓰기 " 위장 " 되기 때문에 페널티없이이 매개 변수를 최소로 설정할 수 있습니다.

  • UndoIndexBuffer

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned2M1M - 4294967039 (0xFFFFFEFF)N

    이 매개 변수 크기가 설정되는 Undo 인덱스 버퍼는 로컬 체크 포인트 중에 사용됩니다. NDB 스토리지 엔진은 사용 가능한 Redo 로그와 체크 포인트의 일관성에 기반 복구 체계를 사용합니다. 시스템 전체의 쓰기를 차단하지 않고 일관성있는 체크 포인트를 만들기 위해 로컬 체크 포인트를 실행하는 동안 Undo 로깅이 이루어집니다. Undo 기록은 한 번에 하나의 테이블 조각에 대해 활성화됩니다. 이 최적화가 가능한 것은 테이블이 모두 메인 메모리에 저장되어 있기 때문입니다.

    Undo 인덱스 버퍼는 기본 키의 해시 인덱스 업데이트 사용됩니다. 삽입과 삭제는 해시 인덱스가 재구성됩니다. NDB 스토리지 엔진은 모든 육체적 인 변화를 시스템 재부팅시에 취소 할 수 있도록 변경 사항을 하나의 인덱스 페이지에 매핑 Undo 로그 레코드를 기록합니다. 또한 로컬 체크 포인트를 시작할 때 각 조각의 활성 삽입 작업을 기록합니다.

    읽기 및 업데이트에서는 록 비트가 설정되어 해시 인덱스 항목의 헤더가 업데이트됩니다. 이러한 변경은 페이지 쓰기 알고리즘에 의해 처리되기 때문에 이러한 작업 Undo 로깅이 필요하지 않습니다.

    이 버퍼는 기본적으로 2M 바이트입니다. 최소 1M 바이트입니다. 대부분의 어플리케이션에서는 이것으로 충분합니다. 대규모 트랜잭션이나 대규모 기본 키와 함께 매우 크거나 다수의 삽입 및 삭제를 수행하는 응용 프로그램이 버퍼의 크기를 늘릴 필요가있을 수 있습니다. 이 버퍼가 너무 작 으면 NDB 스토리지 엔진은 내부 오류 코드 677 "Index UNDO buffers overloaded" 를 발행합니다.

    중요

    롤링 다시 시작하는 동안이 매개 변수의 값을 줄이는 것은 안전하지 않습니다.

  • UndoDataBuffer

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned16M1M - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 Undo 데이터 버퍼의 크기를 설정합니다. Undo 데이터 버퍼는 Undo 인덱스 버퍼와 거의 동일한 기능을 수행하지만, 인덱스 메모리가 아닌 데이터 메모리에 대해 사용됩니다. 이 버퍼는 조각의 로컬 체크 포인트 단계에서 삽입, 삭제 및 업데이트를 위해 사용됩니다.

    Undo 로그 항목을 기록하는 작업이 증가함에 따라 커지는 경향이 있으므로이 버퍼에도 대응하는 인덱스 메모리보다 큽니다 (기본값은 16M 바이트입니다).

    일부 응용 프로그램이 메모리 양이 불필요하게 큰 경우가 있습니다. 그런 경우이 크기를 최소 1M 바이트로 줄일 수 있습니다.

    대부분의 경우이 버퍼의 크기를 늘릴 필요가 없습니다. 그런 필요가있는 경우 데이터베이스의 갱신 활동에 의해 발생하는 부하를 디스크가 실제로 처리 할 수​​ 있는지 여부를 확인하는 것이 좋습니다. 이 버퍼 크기를 늘려도 디스크 공간 부족을 해소 할 수 없습니다.

    이 버퍼가 너무 작아 과밀 상태가 된 경우, NDB 스토리지 엔진은 다음 내부 오류 코드를 발행합니다 : 891 ( Data UNDO buffers overloaded ).

    중요

    롤링 다시 시작하는 동안이 매개 변수의 값을 줄이는 것은 안전하지 않습니다.

  • RedoBuffer

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes32M1M - 4294967039 (0xFFFFFEFF)N

    갱신 활동도 모두 기록해야합니다. Redo 로그는 시스템이 재부팅 될 때마다 이러한 업데이트를 재현 할 수 있습니다. NDB 복구 알고리즘은 Undo 로그와 데이터의 " 퍼지 " 체크 포인트를 사용하여 Redo 로그를 적용하여 복원 시점까지의 모든 변경을 재현합니다.

    RedoBuffer 은 Redo 로그가 기록되는 버퍼의 크기를 설정합니다. 기본값은 32M 바이트입니다. 최소 1M 바이트입니다.

    이 버퍼가 너무 작 으면 NDB 스토리지 엔진은 내부 오류 코드 1221 ( REDO log buffers overloaded )를 발행합니다. 따라서 클러스터 구성의 온라인 변경의 일부로 RedoBuffer 값을 줄이려고하는 경우주의하십시오.

    ndbmtd 는 LDM 스레드마다 별도의 버퍼를 할당합니다 ( ThreadConfig 를 참조하십시오). 예를 들어, 4 개의 LDM 스레드가있는 경우 ndbmtd 데이터 노드는 실제로는 4 개의 버퍼가 있으며 각각 RedoBuffer 바이트 (총 4 * RedoBuffer 바이트)가 할당됩니다.

  • EventLogBufferSize

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes81920 - 64KS

    데이터 노드 내부의 NDB 로그 이벤트에 사용되는 순환 버퍼 크기를 제어합니다.

    로그 메시지의 제어 클러스터 관리는 stdout 로 전송되는 다양한 이벤트 유형의 로그 메시지 수를 제어 할 수있는 것이 매우 중요합니다. 이벤트 범주마다 16 개의 설정 가능한 이벤트 레벨 (번호 0-15)이 있습니다. 특정 이벤트 범주의 이벤트 보고서를 레벨 15로 설정하면 해당 범주의 모든 이벤트 보고서가 stdout 로 전송됩니다. 0으로 설정하면 해당 카테고리의 이벤트 보고서를 전혀하지 않게됩니다.

    기본적으로 부팅 메시지 만 stdout 에 전송되고 나머지 이벤트 보고서의 수준은 기본 0으로 설정됩니다. 이것은 이러한 메시지가 관리 서버의 클러스터 로그에 전송되기 때문입니다.

    관리 클라이언트에서 유사한 수준의 세트를 설정하면 클러스터 로그에 기록 할 이벤트 수준을 지정할 수 있습니다.

  • LogLevelStartup

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer10 - 15N

    프로세스를 시작하는 동안 생성되는 이벤트의보고 수준.

    기본 레벨은 1입니다.

  • LogLevelShutdown

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer00 - 15N

    노드의 정상적인 종료의 일부로 생성되는 이벤트의보고 수준.

    기본 레벨은 0입니다

  • LogLevelStatistic

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer00 - 15N

    기본 키 읽기의 수, 업데이트 수, 삽입 수, 버퍼 사용량에 대한 정보 등의 통계 이벤트의보고 수준.

    기본 레벨은 0입니다.

  • LogLevelCheckpoint

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0log level00 - 15N

    로컬 및 글로벌 체크 포인트에 의해 생성되는 이벤트의보고 수준.

    기본 레벨은 0입니다.

  • LogLevelNodeRestart

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer00 - 15N

    노드를 다시 시작할 때 생성되는 이벤트의보고 수준.

    기본 레벨은 0입니다.

  • LogLevelConnection

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer00 - 15N

    클러스터 노드 사이의 연결에 의해 생성되는 이벤트의보고 수준.

    기본 레벨은 0입니다.

  • LogLevelError

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer00 - 15N

    전체 클러스터의 오류 및 경고에 ​​의해 생성되는 이벤트의보고 수준. 이러한 오류는 노드 장애의 원인이되지는 않지만보고 할 가치는 있다고 생각됩니다.

    기본 레벨은 0입니다.

  • LogLevelCongestion

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0levelr00 - 15N

    혼잡에 의해 생성되는 이벤트의보고 수준. 이러한 오류는 노드 장애의 원인이되지는 않지만보고 할 가치는 있다고 생각됩니다.

    기본 레벨은 0입니다.

  • LogLevelInfo

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer00 - 15N

    클러스터의 일반적인 상태 정보로 생성되는 이벤트의보고 수준.

    기본 레벨은 0입니다.

  • MemReportFrequency

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned00 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 데이터 노드의 메모리 사용 상황 보고서를 클러스터 로그에 기록하는 빈도를 제어합니다. 이 보고서 사이의 초 수를 나타내는 정수 값입니다.

    각 데이터 노드의 데이터 메모리와 인덱스 메모리 사용량은 config.ini 파일에 설정된 DataMemory 및 IndexMemory 의 비율과 32K 바이트의 페이지 모두에서 각각 기록됩니다. 예를 들어, DataMemory 가 100M 바이트이며 특정 데이터 노드가 데이터 메모리 스토리지로 50M 바이트를 사용하는 경우 클러스터 로그의 해당 행이있게됩니다.

    2006-12-24 01:18:16 [MgmSrvr] INFO -- Node 2: Data usage is 50%(1280 32K pages of total 2560)
    

    MemReportFrequency 는 필수 매개 변수가 없습니다. 사용하는 경우, config.ini 의 [ndbd default] 섹션에서 모든 클러스터 데이터 노드에 설정하거나 구성 파일의 해당 [ndbd] 섹션에서 각 데이터 노드에 설정하거나 재정의 할 수 합니다. 최소 (기본 값도 동일)은 0입니다. 이 경우 섹션 18.5.6.2 "MySQL Cluster 로그 이벤트 ' 통계 이벤트 설명에서 지적했듯이, 메모리 사용량이 특정 비율 (80 %, 90 % 및 100 %)에 달했다 때만 메모리의 보고서가 기록됩니다.

  • StartupStatusReportFrequency

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0seconds00 - 4294967039 (0xFFFFFEFF)N

    --initial 을 지정하고 데이터 노드를 시작하면 시작 단계 4 ( 섹션 18.5.1 "MySQL Cluster의 시작 단계 요약" 을 참조하십시오)에서 Redo 로그 파일이 초기화됩니다. NoOfFragmentLogFiles , FragmentLogFileSize 또는 둘 모두에 매우 큰 값을 설정하면이 초기화 시간이 오래 걸릴 수 있습니다. StartupStatusReportFrequency 구성 매개 변수를 사용하여이 프로세스의 진행에 관한 보고서를 정기적으로 기록하도록 강제 할 수 있습니다. 이 경우에는 여기에 같이 초기화 된 파일의 수와 공간의 양에 대한 진행 상황을 클러스터 로그에보고됩니다.

    2009-06-20 16:39:23 [MgmSrvr] INFO -- Node 1: Local redo log file initialization status:
    #Total files: 80, Completed: 60
    #Total MBytes: 20480, Completed: 15557
    2009-06-20 16:39:23 [MgmSrvr] INFO -- Node 2: Local redo log file initialization status:
    #Total files: 80, Completed: 60
    #Total MBytes: 20480, Completed: 15570
    

    이 보고서는 시작 단계 4에서 StartupStatusReportFrequency 초마다 기록됩니다. StartupStatusReportFrequency 이 0 (디폴트)의 경우, Redo 로그 파일의 초기화 프로세스의 시작과 완료시에만 보고서가 클러스터 로그에 기록됩니다.

    디버그 매개 변수 MySQL Cluster NDB 7.3 이상에서는 DictTrace 을 사용하여 테이블 만들기 및 삭제에 의해 생성 된 이벤트의 추적을 기록 할 수 있습니다. 이 매개 변수는 NDB 커널 코드를 디버깅하는 경우에만 유용합니다. DictTrace 는 정수 값을 취합니다. 현재 지원되는 유일한 값은 0 (기본. 로깅 없음) 1 (로깅 사용)입니다.

    백업 매개 변수 이 절에서 설명하는 [ndbd] 파라미터는 온라인 백업 수행을 위해 확보 된 메모리 버퍼를 정의합니다.

  • BackupDataBufferSize

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes16M0 - 4294967039 (0xFFFFFEFF)N

    백업 생성은 데이터를 디스크에 전송하는 데 사용되는 2 개의 버퍼가 있습니다. 백업 데이터 버퍼는 노드의 테이블을 스캔하여 기록 된 데이터를 작성하는 데 사용됩니다. 이 버퍼에 쓸 BackupWriteSize 에서 지정된 레벨에 도달하면 페이지가 디스크로 전송됩니다. 백업 프로세스는 데이터를 디스크로 플러시하면서 공간이 없어 질 때까지이 버퍼에 쓰기 계속할 수 있습니다. 이것이 발생하면 백업 프로세스에서 검색을 일시 중지하고 디스크 쓰기가 어느 정도 완료 메모리가 해제되지 스캔을 계속할 수있을 때까지 기다립니다.

    이 매개 변수의 기본값은 16M 바이트입니다.

  • BackupLogBufferSize

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes16M0 - 4294967039 (0xFFFFFEFF)N

    백업 로그 버퍼는 백업 데이터 버퍼와 같은 역할을하지만 백업이 실행되는 동안 열린 테이블 쓰기 로그를 생성하는 데 사용됩니다. 이 페이지의 쓰기는 백업 데이터 버퍼와 같은 원칙이 적용되지만 백업 로그 버퍼 공간이 부족하면 백업이 실패합니다. 따라서 백업 로그 버퍼의 크기는 백업 실행중인 쓰기 활동에 의해 발생하는 부하를 처리하기에 충분한 크기 일 필요가 있습니다. 섹션 18.5.3.3 "MySQL Cluster 백업 구성" 을 참조하십시오.

    대부분의 응용 프로그램에서는이 매개 변수의 기본값으로 충분합니다. 실제 백업 로그 버퍼가 가득 찼을 경우보다 디스크 쓰기 속도가 불충분 한 경우가 더 백업이 실패 할 가능성이 높습니다. 디스크 서브 시스템이 응용 프로그램에서 발생하는 쓰기 부하에 맞게 구성되어 있지 않으면 클러스터가 필요한 작업을 수행 할 수 없을 가능성이 높아집니다.

    디스크 나 네트워크 연결보다 프로세서가 병목 같은 방법으로 클러스터 노드를 구성하는 것이 좋습니다.

    이 매개 변수의 기본값은 16M 바이트입니다.

  • BackupMemory

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes32M0 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 단순히 BackupDataBufferSize 과 BackupLogBufferSize 의 합계입니다.

    MySQL Cluster NDB 7.3 이상에서는이 매개 변수의 기본값은 16M 바이트 + 16M 바이트 = 32M 바이트입니다.

    중요

    BackupDataBufferSize 과 BackupLogBufferSize 총 BackupMemory 의 기본값을 초과하는 경우에는 config.ini 파일에서이 매개 변수를이 총에 명시 적으로 설정해야합니다.

  • BackupReportFrequency

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0seconds00 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 백업하는 동안 관리 클라이언트에서 백업 상태 보고서를 발행하는 빈도와 같은 보고서를 클러스터 로그에 기록 빈도를 제어합니다 (클러스터 이벤트 로깅 허용하도록 구성되어있는 경우 로깅과 체크 포인트 를 참조하십시오). BackupReportFrequency 백업 상태 보고서 사이의 시간 (초)을 나타냅니다.

    기본값은 0입니다.
  • BackupWriteSize

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes256K2K - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 백업 로그와 백업 데이터 버퍼에 의해 디스크에 기록 된 메시지의 디폴트 크기를 지정합니다.

    이 매개 변수의 기본값은 256K 바이트입니다.

  • BackupMaxWriteSize

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes1M2K - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 백업 로그와 백업 데이터 버퍼가 디스크에 기록되는 메시지의 최대 크기를 지정합니다.

    이 매개 변수의 기본값은 1M 바이트입니다.

    중요

    이러한 매개 변수를 지정할 때는 다음의 관계가 유효해야합니다. 그렇지 않은 경우는 데이터 노드를 시작할 수 없습니다.

  • BackupDataBufferSize >= BackupWriteSize + 188KB

  • BackupLogBufferSize >= BackupWriteSize + 16KB

  • BackupMaxWriteSize >= BackupWriteSize

MySQL Cluster의 실시간 성능 매개 변수

이 섹션에서 설명하는 [ndbd] 매개 변수는 다중 프로세서의 데이터 노드 호스트의 특정 CPU에 대한 스레드 스케줄링 및 잠금에 사용됩니다.

참고

이러한 매개 변수를 사용하려면 시스템의 root로 데이터 노드 프로세스를 실행해야합니다.

  • LockExecuteThreadToCPU

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0CPU ID64K0 - 64KN

    ndbd 에서 사용하는 경우이 매개 변수 (현재는 문자열)은 NDBCLUSTER 의 실행 스레드를 처리하기 위해 할당 된 CPU의 ID를 지정합니다. ndbmtd 에서 사용하는 경우이 매개 변수의 값은 실행 스레드를 처리하기 위해 할당 된 CPU ID의 쉼표로 구분 된 목록입니다. 목록의 각 CPU ID는 0-65535의 (이들을 포함) 범위의 정수로합니다.

    지정하는 ID의 수는 MaxNoOfExecutionThreads 에 의해 지정되는 실행 스레드 수와 일치하도록하십시오. 그러나이 매개 변수를 사용하면 특정 순서로 스레드가 CPU에 할당되는 보증은 없습니다. ThreadConfig 를 사용하면 이러한보다 세부적으로 제어 할 수 있습니다.

    LockExecuteThreadToCPU 기본값은 없습니다.

  • LockMaintThreadsToCPU

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0CPU ID[none]0 - 64KN

    이 매개 변수는 NDBCLUSTER 관리 스레드를 처리하기 위해 할당 된 CPU의 ID를 지정합니다.

    이 매개 변수의 값은 0-65535의 (이들을 포함) 사이의 정수입니다. MySQL Cluster NDB 7.3 이상에서는 기본값은 없습니다.

  • RealtimeScheduler

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0booleanfalsetrue, falseN

    이 매개 변수를 1로 설정하면 데이터 노드 스레드의 실시간 스케줄링이 활성화됩니다.

    MySQL Cluster NDB 7.3.3 이전 버전에서는이 매개 변수는 ndbmtd 을 실행하는 노드에서 제대로 작동하지 않았습니다. (Bug # 16961971)

    기본값은 0 (예약이 비활성화)입니다
  • SchedulerExecutionTimer

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0µsec500 - 11000N

    이 매개 변수는 스레드 스케줄러 실행에서 보낸 시간 (밀리 초)을 지정합니다. 이것을 0으로 설정하면 응답 시간이 최소화됩니다. 처리량을 향상시키기 위해이 값을 늘릴 수 있지만, 그 대가로 응답 시간은 길어집니다.

    기본값은 50 마이크로 초입니다. 당사의 테스트에서는 이로 인해 고부하의 경우 실질적으로 요구를 지연시키지 않고 처리량이 약간 향상하는 것을 알 수 있습니다.

  • SchedulerSpinTimer

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0µsec00 - 500N

    이 매개 변수는 스레드 스케줄러 실행에서 잠들기까지의 시간 (밀리 초)을 지정합니다.

    기본값은 0입니다.

  • BuildIndexThreads

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0numeric00 - 128S

    이 매개 변수는 시스템 또는 노드를 시작하는 동안 정렬 된 인덱스 재 구축시 및 ndb_restore --rebuild-indexes 를 실행할 때 작성하는 스레드 수를 지정합니다. 이것은 데이터 노드 당 여러 조각이 테이블에 존재하는 경우 (예를 들어, CREATE TABLE 에서 MAX_ROWS 옵션이 사용 된 경우)에만 지원됩니다.

    이 매개 변수를 0 (기본값)로 설정하면 멀티 스레드에 의한 정렬 된 인덱스의 구축이 해제됩니다.

    이 매개 변수는 ndbd 또는 ndbmtd 를 사용할 때 지원됩니다.

    데이터 노드의 초기 재부팅 중에 멀티 스레드에 의한 구축을 활성화하려면 TwoPassInitialNodeRestartCopy 데이터 노드 구성 매개 변수를 TRUE 로 설정합니다.

  • TwoPassInitialNodeRestartCopy

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0booleanfalsetrue, falseN

    데이터 노드의 초기 재부팅 멀티 스레드에 의한 정렬 된 인덱스의 구축을 활성화하려면이 구성 매개 변수를 TRUE 로 설정합니다. 이렇게하면 노드의 초기 다시 시작하는 동안 데이터의 2 경로 복사가 활성화됩니다.

    동시에 BuildIndexThreads 를 0 이외의 값으로 설정해야합니다.

  • Numa

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0boolean1...N

    NDB 는 Non-Uniform Memory Access 설정과 (발생 시간 초과) 멀티 CPU 시스템의 영향을 상당히 민감합니다. 이 사실과 대부분의 MySQL Cluster 사용자가 numactl 을 채용하지 않기 때문에, Linux 시스템에서 ndbd 를 실행하는 경우, NUMA 지원은 기본적으로 무시됩니다. Linux 시스템이 NUMA를 지원하여 데이터 노드의 메모리를 NUMA으로 제어 할 필요가있는 경우에는이 매개 변수를 0으로 설정할 수 있습니다.

    Numa 구성 매개 변수는 libnuma.so 가 설치되어있는 Linux 시스템에서만 지원됩니다.

    멀티 스레드 구성 매개 변수 (ndbmtd) ndbmtd 는 기본적으로 단일 스레드 프로세스로 실행하기 위해 두 가지 방법 중 하나를 사용하여 다중 스레드를 사용하도록 구성해야합니다. 두 경우 모두, config.ini 파일에 구성 매개 변수를 설정해야합니다. 첫 번째 방법은 MaxNoOfExecutionThreads 구성 매개 변수에 적절한 값을 설정합니다. MySQL Cluster NDB 7.3 이상에서는 ThreadConfig 를 사용하여 ndbmtd 멀티 스레드에 대한 더 복잡한 규칙을 설정할 수있는 두 번째 방법도 지원됩니다. 이 매개 변수와 멀티 스레드 데이터 노드에서의 사용에 대해 다음 몇 단락에서 설명합니다.

  • MaxNoOfExecutionThreads

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0integer22 - 36IS
    NDB 7.3.3integer22 - 72IS

    이 매개 변수는 ndbmtd 의해 사용되는 실행 스레드의 수를 제어합니다. 최대 72입니다 (MySQL Cluster NDB 7.3.3 이전에는, 이것은 36이었습니다). 이 매개 변수는 config.ini 파일의 [ndbd] 또는 [ndbd default] 섹션에 설정되지만 ndbmtd 전용이며 ndbd 에는 적용되지 않습니다.

    MaxNoOfExecutionThreads 을 설정하면 storage / ndb / kernel / src / vm / mt_thr_config.cpp 파일의 매트릭스에서 결정되는 각 유형의 스레드 수가 설정됩니다. 이 테이블은 MySQL Cluster NDB 7.4.3 이상에서 MaxNoOfExecutionThreads 에 사용할 수있는 값에 대응하는 이러한 스레드 수를 보여줍니다 (Bug # 75220, Bug # 20215689). (이전 버전의 MySQL Cluster에 적용되는 매트릭스에 대한 정보를 나타내는 표는이 뒤에 있습니다.) MySQL Cluster NDB 7.4.3에서 변경된 값을 포함하는 행은 강조 표시 텍스트로 보여줍니다.

    MaxNoOfExecutionThreads ValueLDM ThreadsTC ThreadsSend ThreadsReceive Threads
    0 .. 31101
    4 .. 62101
    7 .. 84101
    94201
    104211
    114311
    126312
    136212
    146312
    156322
    168312
    178412
    188422
    198522
    2010422
    2110522
    2210523
    2310623
    2412523
    2512623
    2612633
    2712733
    2812734
    2912834
    3012844
    3112944
    3216833
    3316834
    3416844
    3516944
    36161044
    37161045
    38161145
    39161155
    40201044
    41201045
    42201145
    43201155
    44201255
    45201256
    46201356
    47201366
    48241255
    49241256
    50241356
    51241366
    52241466
    53241467
    54241567
    55241577
    56241677
    57241678
    58241778
    59241788
    60241888
    61241889
    62241989
    63241999
    64321677
    65321678
    66321778
    67321788
    68321888
    69321889
    70321989
    71322089
    723220810

    다음 표는 MySQL CLuster NDB 7.4.2 이전 MaxNoOfExecutionThreads 의 값에 대응하는 각 유형의 스레드 수를 취득하는 방법을 보여줍니다. 이 표는 MySQL Cluster NDB 7.3.2 이전에도 사용할 수 있지만,이 버전에서는 MaxNoOfExecutionThreads 의 최대치가 36이기 때문에이 표 36보다 큰 값에 해당하는 행은 MySQL Cluster NDB 7.3.3보다 이전에는 적용되지 않습니다

    MaxNoOfExecutionThreads ValueLDM ThreadsTC ThreadsSend ThreadsReceive Threads
    0 .. 31101
    4 .. 62101
    7 .. 84101
    94201
    104211
    114311
    124312
    134322
    144422
    154522
    168312
    178412
    188422
    198522
    208523
    218533
    228633
    238733
    2412523
    2512623
    2612633
    2712733
    2812734
    2912834
    3012844
    3112944
    3216833
    3316834
    3416844
    3516944
    36161044
    37161045
    38161145
    39161155
    40161255
    41161256
    42161356
    43161366
    44161466
    45161467
    46161567
    47161577
    48241255
    49241256
    50241356
    51241366
    52241466
    53241467
    54241567
    55241577
    56241677
    57241678
    58241778
    59241788
    60241888
    61241889
    62241989
    63241999
    64321677
    65321678
    66321778
    67321788
    68321888
    69321889
    70321989
    71322089
    723220810

    MySQL Cluster NDB 7.3 이상에서는 SUMA (복제) 스레드가 항상 하나 존재합니다.

    LDM 스레드의 수가 NoOfFragmentLogParts 를 초과하지 않도록해야합니다. 따라서이 매개 변수의 값이 기본 (4)의 경우는 MaxNoOfExecutionThreads 을 16 이상으로 설정하면이 값도 늘려야합니다. 즉, NoOfFragmentLogParts 을 위의 표에 나타난 MaxNoOfExecutionThreads 이 매개 변수의 값에 대응하는 LDM 스레드 수의 값으로 설정하십시오.

    스레드 유형은이 섹션 뒷부분합니다 ( ThreadConfig 를 참조하십시오).

    이 매개 변수를 허용 범위를 벗어난 값으로 설정하면 관리 서버 시작이 중단되고 다음 오류가 발생합니다 : Error line Number : Illegal value value for parameter MaxNoOfExecutionThreads .

    MaxNoOfExecutionThreads 는 값 0 또는 1은 NDB 내부에서 2로 반올림되기 때문에 2이 매개 변수의 디폴트 값 및 최소값으로 간주됩니다.

    MaxNoOfExecutionThreads 는 일반적으로 사용 가능한 CPU 스레드 수와 동일한 값으로 설정하고 각 유형의 스레드 수를 일반적인 워크로드에 맞게 할당하는 것을 목적으로하고 있습니다. 지정된 CPU에 특정 스레드를 할당하지는 않습니다. 제공되는 설정을 변경하는 것이 바람직하거나 스레드를 CPU에 바인딩하려면 대신 필요한 유형, CPU 또는 둘 다에 직접 스레드를 할당 할 수 ThreadConfig 을 사용하도록하십시오.

    멀티 스레드 데이터 노드 프로세스는 적어도 여기에 나타내는 5 개의 스레드를 항상 생성합니다.

    • 1 개의 로컬 쿼리 처리기 (LDM) 스레드

    • 1 개의 트랜잭션 코디네이터 (TC) 스레드

    • 1 개의 전송 스레드

      (이 섹션의 다른 곳에서 설명하도록 별도의 전송 스레드를 사용하지 않도록 할 수 있습니다.)

    • 1 개의 수신 스레드

    • 1 개의 서브 스크립 션 관리자 (SUMA 또는 복제) 스레드

    LDM 스레드의 수를 변경하려면이 매개 변수와 ThreadConfig 중 어느 것을 사용하여 변경하는 경우에도 항상 시스템을 다시 시작해야합니다. 클러스터의 IndexMemory 의 사용률이 50 %를 초과하는 경우이를 변경하려면 클러스터의 초기 다시 시작해야합니다. (이런 경우는 최대 30-35 %의 IndexMemory 사용률이 권장됩니다.) 그렇지 않으면 노드간에 리소스 활용도 및 LDM 스레드 할당의 균형을 유지하지 못하고, 결과적으로 LDM 스레드의 이용이 불충분하거나 과도하게되고, 결국 데이터 노드에 오류가 발생합니다.

  • NoOfFragmentLogParts

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0numeric44, 8, 12, 16IN
    NDB 7.3.3numeric44, 8, 12, 16, 24, 32IN

    이 ndbmtd 에 속하는 Redo 로그의 로그 파일 그룹의 수를 설정합니다. MySQL Cluster NDB 7.3.3 이전에는이 ​​값은 4에서 16까지 (이들을 포함) 4의 짝수 배수 여야합니다. MySQL Cluster NDB 7.3.3 이상에서 최대 32입니다. 이전과 마찬가지로, 값은 4의 짝수 배수 여야합니다.

    ndbmtd 가 사용하는 LQH 스레드의 수가 NoOfFragmentLogParts 를 초과하지 않도록해야합니다. 또한 MaxNoOfExecutionThreads 을 늘리면이 수가 증가하는 경우가 있습니다. 자세한 내용은이 매개 변수의 설명을 참조하십시오.

  • ThreadConfig

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0string''...IS

    이 매개 변수는 ndbmtd 에서 다른 유형의 스레드를 다른 CPU에 할당하는 데 사용됩니다. 이 값은 다음 구문을 가지는 형식의 문자열입니다.

    ThreadConfig := entry[,entry[,...]]
    
    entry := type={param[,param[,...]]}
    
    type := ldm | main | recv | send | rep | io
    
    param := count=number | cpubind=cpu_list
    

    매개 변수의 목록을 둘러싸는 중 괄호 ( { ... } )는 목록에 매개 변수가 1 개 밖에없는 경우에도 필요합니다.

    param (매개 변수)는 특정 유형의 스레드 수 ( count ) 특정 ​​유형의 스레드가 바인딩되는 CPU ( cpubind ) 또는 둘 모두를 지정합니다.

    type 속성은 NDB 스레드 유형을 나타냅니다. MySQL Cluster NDB 7.3 이상에서 지원되는 스레드 유형과 각 유형에 허용되는 count 값의 범위를 다음 목록을 보여줍니다.

    • ldm : 데이터를 처리하는 로컬 쿼리 처리기 ( DBLQH 커널 블록). 사용되는 LDM 스레드의 수가 많을수록 데이터가 더 높은 분할됩니다. 각 LDM 스레드에 고유 한 데이터 및 인덱스 파티션 세트와 고유의 Redo 로그가 보존됩니다. MySQL Cluster NDB 7.3.3 이후에서는 이러한 스레드의 최대 수는 32입니다. MySQL Cluster NDB 7.3.2 이전 버전에서는 최대 16입니다.

      중요

      LDM 스레드의 수를 변경하려면 시스템을 재부팅 클러스터 작업에 효과적이고 안전하게 할 필요가 있습니다. (이것은 MaxNoOfExecutionThreads 를 사용하여 실행하는 경우에도 적용됩니다.) IndexMemory 의 사용률이 50 %를 초과하는 경우에는 클러스터의 초기 다시 시작해야합니다. 이러한 경우 IndexMemory 의 사용률을 최대 30-35 %에하는 것이 좋습니다. 그렇지 않은 경우는 IndexMemory 및 DataMemory 활용도 및 LDM 스레드 노드 사이의 할당 균형을 잡지 못하고 결국은 데이터 노드의 장애로 이어질 수 있습니다.

    • tc : 진행중인 트랜잭션의 상태를 포함 트랜잭션 코디네이터 스레드 ( DBTC 커널 블록). MySQL Cluster NDB 7.3에서는 TC 스레드 수를 구성 할 수 있습니다. MySQL Cluster NDB 7.3.3 이상에서 총 32 개가 사용 가능합니다. 이전 16 개였습니다.

      새로운 트랜잭션을 각각 하나의 새로운 TC 스레드에 적절하게 할당 할 수 있습니다. 대부분의 경우이 실행이 보장되는 두 개의 LDM thread에 대해서 하나의 TC 스레드 충분합니다. 읽기의 수에 비해 쓰기의 수가 적은 경우에는 4 개의 LQH 스레드 당 1 개의 TC thread가 있으면 트랜잭션 상태를 유지할 수 가능성이 있습니다. 반대로 매우 많은 업데이트를 수행하는 응용 프로그램은 LDM 스레드에 대한 TC 스레드의 비율을 1에 가깝게 (예를 들어, 4 개의 LDM thread에 대해서 TC 스레드를 3 개로한다)해야하는 경우가 있습니다.

      범위 : ( NDB 7.3.3 이후 ) 1-32 ( NDB 7.3.2 이전 ) 1-16.

    • main : 스키마 관리를 제공하는 데이터 사전 및 트랜잭션 코디네이터 ( DBDIH 및 DBTC 커널 블록). 이것은 항상 하나의 전용 스레드에서 처리됩니다.

      범위 : 1 만.

    • recv : 수신 스레드 ( CMVMI 커널 블록). 각 수신 스레드는 MySQL Cluster 내의 다른 노드와 통신하기위한 하나 이상의 소켓 (노드 당 1 소켓)을 처리합니다. MySQL Cluster NDB 7.3 이상에서는 여러받는 스레드가 지원됩니다. MySQL Cluster NDB 7.3.2 이전 버전에서는 이러한 스레드의 최대 수는 8입니다. MySQL Cluster NDB 7.3.3 이상에서 최대 16입니다.

      범위 : ( NDB 7.3.3 이후 ) 1-16 ( NDB 7.3.2 이전 ) 1-8.

    • send : 전송 스레드 ( CMVMI 커널 블록). 처리량을 향상시키기 위해 하나 이상의 (최대 8 개)의 독립적 인 전용 스레드에서 전송을 실행할 수 있습니다.

      이전에는 모든 스레드가 자신의 전송을 직접 처리하고있었습니다. 지금도 전송 스레드 수를 0으로 설정하여이를 수행 할 수 있습니다 ( MaxNoOfExecutionThreads 를 9로 설정 한 경우에도이 이루어집니다). 이렇게하면 처리량에 부정적인 영향을 미칠 수 있지만, 경우에 따라서는 대기 시간이 줄어들 가능성도 있습니다.

      범위 : ( NDB 7.3.3 이후 ) 0-16 ( NDB 7.3.2 이전 ) 0-8.

    • rep : 복제 스레드 ( SUMA 커널 블록). 비동기 복제 작업은 항상 하나의 전용 스레드에서 처리됩니다.

      범위 : 1 만.

    • io : 파일 시스템 및 기타 작업. 이들은 까다로운 작업이 아니라 항상 하나의 I / O 전용 스레드에서 함께 처리됩니다.

      범위 : 1 만.

Simple examples:

# Example 1.

ThreadConfig=ldm={count=2,cpubind=1,2},main={cpubind=12},rep={cpubind=11}

# Example 2.

Threadconfig=main={cpubind=0},ldm={count=4,cpubind=1,2,5,6},io={cpubind=3}

일반적으로 스레드의 사용법을 구성 할 때 데이터 노드 호스트의 하나 이상의 CPU를 운영 체제 및 기타 작업을 위해 예약합니다. 따 라서 24 개의 CPU를 탑재 한 호스트 머신에서 20 개의 CPU 스레드 (8 개 LDM 스레드 4 개의 TC 스레드 (LDM 스레드의 절반), 3 개의 송신 스레드 3 개의 수신 스레드 및 스키마 관리 비동기 복제 I / O 작업의 각각에 1 개의 스레드)를 사용할 수 있습니다 (다른 용도를 위해 4 개를 남깁니다). (이것은 MaxNoOfExecutionThreads 을 20으로 설정했을 때 사용되는 스레드의 분포와 거의 동일합니다.) 다음 ThreadConfig 설정은 이러한 할당을 실시하여 이러한 스레드를 특정 CPU에 바인딩합니다.

ThreadConfig=ldm{count=8,cpubind=1,2,3,4,5,6,7,8},main={cpubind=9},io={cpubind=9}, \
rep={cpubind=10},tc{count=4,cpubind=11,12,13,14},recv={count=3,cpubind=15,16,17}, \
send{count=3,cpubind=18,19,20}

대부분의 경우이 예시에서 한 것처럼, main (스키마 관리) 스레드 및 I / O 스레드는 동일한 CPU에 바인딩 할 수 있습니다

ThreadConfig 를 사용함으로써 얻을 수있는 높은 안정성을 활용하려면 CPU가 격리되어 인터럽트를 받거나 운영 체제에 따라 다른 작업을 스케줄되기도 할 필요가 있습니다. 많은 Linux 시스템에서는 / etc / sysconfig / irqbalance 의 IRQBALANCE_BANNED_CPUS 을 0xFFFFF0 로 설정하고 grub.conf 의 isolcpus 부트 옵션을 사용하여이를 수행 할 수 있습니다. 구체적인 내용은 운영 체제 또는 플랫폼 설명서를 참조하십시오.

디스크 데이터의 구성 매개 변수 디스크 데이터의 동작에 영향을주는 구성 매개 변수는 다음이 포함됩니다.

  • DiskPageBufferMemory

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes64M4M - 1TN

    이것은 디스크의 페이지를 캐시하는 데 사용되는 공간의 양을 지정하는 것으로, config.ini 파일의 [ndbd] 또는 [ndbd default] 섹션에서 설정됩니다. 이것은 바이트 단위로 측정됩니다. 각 페이지는 최대 32K 바이트를 차지합니다. 이것은 항상 N * 32K 바이트의 메모리가 클러스터 디스크 데이터 저장에 사용되는 것을 의미합니다 ( N 은 음이 아닌 정수입니다).

    이 매개 변수의 기본값은 64M (32K 바이트의 페이지 2000 개분)입니다.

    ndbinfo.diskpagebuffer 테이블을 쿼리하면 불필요한 디스크 검색을 최소화하기 위해이 매개 변수의 값을 늘려야 여부 판정 쉬워집니다. 자세한 내용은 섹션 18.5.10.12 "ndbinfo diskpagebuffer 테이블" 을 참조하십시오.

  • SharedGlobalMemory

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes128M0 - 64TN

    이 매개 변수는 테이블 공간, 로그 파일 그룹 Undo 파일 및 데이터 파일의 로그 버퍼 디스크 작업 (페이지 요청과 대기 큐 등) 및 메타 데이터에 사용되는 메모리 양을 지정합니다. 이 공유 글로벌 메모리 풀에서 CREATE LOGFILE GROUP 및 ALTER LOGFILE GROUP 문에서 사용되는 INITIAL_SIZE 및 UNDO_BUFFER_SIZE 옵션 ( InitialLogFileGroup 데이터 노드 구성 매개 변수의 설정에 의해 나타나는 이러한 옵션의 기본값을 포함)의 메모리 요구 사항을 충족하기 위해 사용되는 메모리도 제공됩니다. SharedGlobalMemory 는 config.ini 구성 파일의 [ndbd] 또는 [ndbd default] 섹션으로 설정할 수 바이트 단위로 측정됩니다.

    기본값은 128M 입니다.

  • DiskIOThreadPool

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0threads20 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 디스크 데이터 파일에 액세스하는 데 사용되는 미 바인드 스레드 수를 지정합니다. DiskIOThreadPool 가 도입되기 전에 디스크 데이터 파일 당 하나의 스레드 만 생성되지 않았기 때문에 특히 매우 큰 데이터 파일을 사용할 때 성능 문제가 발생할 수있었습니다. DiskIOThreadPool 을 사용하면 예를 들어, 병렬로 동작하는 다중 스레드를 사용하여 하나의 큰 데이터 파일에 액세스 할 수 있습니다.

    이 매개 변수는 디스크 데이터 I / O 스레드에만 적용됩니다.

    이 매개 변수의 최적 값은 사용하는 하드웨어 구성에 따라 다음과 같은 요소를 포함합니다.

    • 디스크 데이터 파일의 물리적 분포 데이터 파일 Undo 로그 파일 및 데이터 노드 파일 시스템을 하나의 물리적 디스크에 배치하여 성능을 향상시킬 수 있습니다. 이러한 일부 또는 모든 파일을 사용하여 이렇게하면 각 디스크의 파일을 별도의 스레드에서 처리 할 수 있도록하기 위해 DiskIOThreadPool 를 큰 값으로 설정할 수 있습니다.

    • 디스크의 성능과 유형 디스크 데이터 파일의 처리 용으로 제공 할 수있는 스레드 수는 디스크의 속도와 처리량에 따라 달라집니다. 디스크의 속도가 빠르고, 처리량이 높을수록 더 많은 I / O 스레드를 사용할 수 있습니다. 당사의 테스트 결과는 기존의 디스크보다 솔리드 스테이트 디스크 드라이브 것이 (즉 DiskIOThreadPool 의 값이 클수록) 훨씬 더 많은 디스크 I / O 스레드를 처리 할 수있는 것을 나타내고 있습니다.

    이 매개 변수의 기본값은 2입니다.

  • 디스크 데이터의 파일 시스템 매개 변수 다음 목록의 매개 변수를 사용하면 심볼릭 링크를 사용하지 않고 MySQL Cluster 디스크 데이터 파일을 특정 디렉토리에 배치 할 수 있습니다.

    • FileSystemPathDD

      Effective VersionType/UnitsDefaultRange/ValuesRestart Type
      NDB 7.3.0filename[see text]...IN

      이 매개 변수를 지정하면 MySQL Cluster 디스크 데이터의 데이터 파일 및 Undo 로그 파일이 지정된 디렉토리에 배치됩니다. 데이터 파일 Undo 로그 파일 또는 둘 모두를 무시하려면 FileSystemPathDataFiles , FileSystemPathUndoFiles 또는 둘 다의 값을 이러한 매개 변수의 설명을 따릅니다. 데이터 파일은 CREATE TABLESPACE 또는 ALTER TABLESPACE 문에 ADD DATAFILE 절에 경로를 지정하고 Undo 로그 파일은 CREATE LOGFILE GROUP 또는 ALTER LOGFILE GROUP 문 ADD UNDOFILE 절에서 경로를 지정하여 재정의 할 수 있습니다. FileSystemPathDD 가 지정되어 있지 않은 경우는 FileSystemPath 가 사용됩니다.

      특정 데이터 노드에서 FileSystemPathDD 디렉토리가 지정된 경우 ( config.ini 파일의 [ndbd default] 섹션에서이 매개 변수가 지정된 경우를 포함), --initial 을 지정하고 데이터 노드를 시작하면 디렉토리 모든 파일이 삭제됩니다.

    • FileSystemPathDataFiles

      Effective VersionType/UnitsDefaultRange/ValuesRestart Type
      NDB 7.3.0filename[see text]...IN

      이 매개 변수를 지정하면 MySQL Cluster 디스크 데이터의 데이터 파일이 지정된 디렉토리에 배치됩니다. 이것은 FileSystemPathDD 에 설정된 값을 대체합니다. 특정 데이터 파일의 매개 변수를 재정의하려면 해당 데이터 파일을 만드는 데 사용되는 CREATE TABLESPACE 또는 ALTER TABLESPACE 문에 ADD DATAFILE 절에서 경로를 지정합니다. FileSystemPathDataFiles 가 지정되어 있지 않은 경우는 FileSystemPathDD 가 사용됩니다 ( FileSystemPathDD 도 설정되어 있지 않은 경우는 FileSystemPath 가 사용됩니다).

      특정 데이터 노드에서 FileSystemPathDataFiles 디렉토리가 지정된 경우 ( config.ini 파일의 [ndbd default] 섹션에이 매개 변수가 지정된 경우를 포함), --initial 을 지정하고 그 데이터 노드를 시작하면 디렉토리 내부의 모든 파일이 삭제됩니다.

    • FileSystemPathUndoFiles

      Effective VersionType/UnitsDefaultRange/ValuesRestart Type
      NDB 7.3.0filename[see text]...IN

      이 매개 변수를 지정하면 MySQL Cluster 디스크 데이터 Undo 로그 파일이 지정된 디렉토리에 배치됩니다. 이것은 FileSystemPathDD 에 설정된 값을 대체합니다. 특정 데이터 파일에 대해이 매개 변수를 무시하려면 해당 데이터 파일을 만드는 데 사용되는 CREATE LOGFILE GROUP 또는 CREATE LOGFILE GROUP 문 ADD UNDO 절에 경로를 지정합니다. FileSystemPathUndoFiles 가 지정되어 있지 않은 경우는 FileSystemPathDD 가 사용됩니다 ( FileSystemPathDD 도 설정되어 있지 않은 경우는 FileSystemPath 가 사용됩니다).

      특정 데이터 노드에서 FileSystemPathUndoFiles 디렉토리가 지정된 경우 ( config.ini 파일의 [ndbd default] 섹션에이 매개 변수가 지정된 경우를 포함), --initial 을 지정하고 그 데이터 노드를 시작하면 디렉토리 내부의 모든 파일이 삭제됩니다.

      자세한 내용은 섹션 18.5.12.1 "MySQL Cluster 디스크 데이터 객체" 를 참조하십시오.

  • 디스크 데이터 오브젝트 생성 매개 변수 다음의 2 개의 매개 변수를 사용하면 클러스터를 처음 시작할 때 SQL 문을 사용하지 않고 디스크 데이터 로그 파일 그룹, 테이블 스페이스 또는 둘 모두를 만들 수 있습니다.

    • InitialLogFileGroup

      Effective VersionType/UnitsDefaultRange/ValuesRestart Type
      NDB 7.3.0string[see text]...S

      이 매개 변수를 사용하여 클러스터의 초기 시작의 실행시에 생성되는 로그 파일 그룹을 지정할 수 있습니다. InitialLogFileGroup 는 여기에 같이 지정됩니다.

      InitialLogFileGroup = [name=name;] [undo_buffer_size=size;] file-specification-list
      
      file-specification-list:
          file-specification[; file-specification[; ...]]
      
      file-specification:
          filename:size
      

      로그 파일 그룹의 name 은 옵션이며 기본값은 DEFAULT-LG 합니다. undo_buffer_size 도 옵션입니다. 생략하면 기본값은 64M 입니다. file-specification 은 각각 하나의 Undo 로그 파일에 대응하고 file-specification-list 에 하나 이상 지정해야합니다. Undo 로그 파일은 FileSystemPath , FileSystemPathDD 및 FileSystemPathUndoFiles 에 설정된 값에 따라 CREATE LOGFILE GROUP 또는 ALTER LOGFILE GROUP 문의 결과로 작성된 경우처럼 배치됩니다.

      다음에 대해 생각합니다.

      InitialLogFileGroup = name=LG1; undo_buffer_size=128M; undo1.log:250M; undo2.log:150M
      

      이것은 다음의 SQL 문에 해당합니다.

      CREATE LOGFILE GROUP LG1
          ADD UNDOFILE 'undo1.log'
          INITIAL_SIZE 250M
          UNDO_BUFFER_SIZE 128M
          ENGINE NDBCLUSTER;
      
      ALTER LOGFILE GROUP LG1
          ADD UNDOFILE 'undo2.log'
          INITIAL_SIZE 150M
          ENGINE NDBCLUSTER;
      

      이 로그 파일 그룹은 --initial 을 지정하고 데이터 노드를 시작할 때 작성됩니다.

      초기의 로그 파일 그룹의 자원은 SharedGlobalMemory 데이터 노드 구성 매개 변수의 값으로 크기가 결정되는 글로벌 메모리 풀에서 가져옵니다. 이 파라미터의 설정 값이 너무 작아 로그 파일 그룹의 초기 크기 또는 Undo 버퍼 크기로 InitialLogFileGroup 에 설정된 값이 너무 큰 경우는 클러스터 시작시 기본 로그 파일 그룹이 생성되지 않거나 클러스터 시작 가 완전히 실패 할 수 있습니다.

      이 매개 변수를 사용하는 경우 항상 config.ini 파일의 [ndbd default] 섹션에 설정하도록하십시오. 다른 데이터 노드에 다른 값을 설정 한 경우의 MySQL Cluster의 동작은 정의되어 있지 않습니다.

    • InitialTablespace

      Effective VersionType/UnitsDefaultRange/ValuesRestart Type
      NDB 7.3.0string[see text]...S

      이 매개 변수를 사용하여 클러스터의 초기 부팅 할 때 생성되는 MySQL Cluster 디스크 데이터 테이블 스페이스를 지정할 수 있습니다. InitialTablespace 는 여기에 같이 지정됩니다.

      InitialTablespace = [name=name;] [extent_size=size;] file-specification-list
      

      테이블 스페이스의 name 은 옵션이며 기본값은 DEFAULT-TS 입니다. extent_size 도 옵션입니다. 기본값은 1M 입니다. file-specification-list 에는 InitialLogfileGroup 파라미터에 나타난 것과 동일한 구문이 사용됩니다. 유일한 차이점은 InitialTablespace 에서 사용되는 file-specification 이 각각 하나의 데이터 파일에 해당하는 것입니다. file-specification-list 에는 최소한 하나를 지정해야합니다. 데이터 파일은 FileSystemPath , FileSystemPathDD 및 FileSystemPathDataFiles 에 설정된 값에 따라 CREATE TABLESPACE 또는 ALTER TABLESPACE 문의 결과로 작성된 경우처럼 배치됩니다.

      예를 들어, config.ini 파일의 [ndbd default] 섹션에 InitialTablespace 을 지정하는 다음 줄 생각합니다 ( InitialLogfileGroup 뿐만 아니라 다른 데이터 노드에 다른 값을 설정했을 때의 MySQL Cluster의 동작은 정의되어 있지 않기 때문에, 이 매개 변수는 항상 [ndbd default] 섹션에 설정하도록하십시오).

      InitialTablespace = name=TS1; extent_size=8M; data1.dat:2G; data2.dat:4G
      

      이것은 다음의 SQL 문에 해당합니다.

      CREATE TABLESPACE TS1
          ADD DATAFILE 'data1.dat'
          EXTENT_SIZE 8M
          INITIAL_SIZE 2G
          ENGINE NDBCLUSTER;
      
      ALTER TABLESPACE TS1
          ADD DATAFILE 'data2.dat'
          INITIAL_SIZE 4G
          ENGINE NDBCLUSTER;
      

      이 테이블 공간은 --initial 을 지정하고 데이터 노드를 시작할 때 생성 된 후 MySQL Cluster 디스크 데이터 테이블을 만들 때마다 사용할 수 있습니다.

디스크 데이터와 GCP 중지 오류 디스크 데이터 테이블을 사용할 때 발생하는 오류 : Node nodeid Killed this node Because GCP stop was detected (오류 2303) 등은 종종 " GCP 중지 오류 " 라고합니다. 이러한 오류는 Redo 로그가 충분한 속도로 디스크에 플러시되지 않은 경우에 발생합니다. 이것은 일반적으로 디스크의 속도가 낮고, 디스크의 처리량이 충분하지 않은 것이 원인입니다.

빠른 디스크를 사용하여 디스크 데이터 파일을 데이터 노드 파일 시스템과는 다른 디스크에 배치함으로써 이러한 오류를 피하는데 도움이됩니다. TimeBetweenGlobalCheckpoints 값을 줄이면 글로벌 체크 포인트마다 기록되는 데이터의 양이 줄어 쉽기 때문에 글로벌 체크 포인트를 쓰려고 할 때 Redo 로그 버퍼 오버플로를 어느 정도 방지 할 수 있습니다. 그러나이 값을 줄이면 GCP를 쓸 수있는 시간도 줄어들 기 때문에주의가 필요합니다.

위의 DiskPageBufferMemory 대해 나타낸 고려 사항 이외에 DiskIOThreadPool 구성 매개 변수를 올바르게 설정하는 것도 매우 중요합니다. DiskIOThreadPool 설정 값이 너무 크면 GCP 중지 오류가 발생할 가능성이 매우 높아집니다 (Bug # 37227).

GCP의 정지는 저장 또는 위탁 제한에 의해 발생할 수 있습니다. TimeBetweenEpochsTimeout 데이터 노드 구성 매개 변수는 커밋 제한 시간을 지정합니다. 그러나이 매개 변수를 0으로 설정하면 두 가지 유형의 제한을 해제 할 수 있습니다.

전송 버퍼 메모리 할당을 구성하는 파라미터 전송 버퍼 메모리는 모든 트랜스 포터간에 공유되는 메모리 풀에서 동적으로 할당됩니다. 이것은 전송 버퍼의 크기를 원하는대로 조정할 수있는 것을 의미합니다. (이전에는 클러스터의 모든 노드에서 NDB 커널의 크기가 고정 송신 버퍼를 사용했습니다. 이것은 노드가 시작될 때 할당 노드의 실행 중은 변경할 수 없습니다.) TotalSendBufferMemory 및 OverLoadLimit 데이터 노드 구성 매개 변수를 사용하여이 메모리 할당 제한을 설정할 수 있습니다. 이러한 파라미터 (및 SendBufferMemory ) 사용에 대한 자세한 내용은 섹션 18.3.2.12 "MySQL Cluster의 전송 버퍼 매개 변수 구성" 을 참조하십시오.

  • ExtraSendBufferMemory

    이 매개 변수는 TotalSendBufferMemory , SendBufferMemory 또는 둘 모두를 사용하여 설정된 메모리 이외에 할당 트랜스 포터 전송 버퍼 메모리 양을 지정합니다.

  • TotalSendBufferMemory

    이 매개 변수는 MySQL Cluster NDB 6.4.0 이상에서 사용 가능합니다. 이것은 모든 구성된 트랜스 포터간에 공유되는 송신 버퍼 메모리의이 노드에 할당 된 메모리 양을 지정하는 데 사용됩니다.

    이 매개 변수를 설정하는 경우 허용되는 최소값은 256K 바이트 최대 값은 4294967039입니다.

  • ReservedSendBufferMemory

    이 매개 변수는 MySQL Cluster NDB 6.4.0 이후 NDBCLUSTER 소스 코드 내에 있습니다. 그러나 현재는 활성화되어 있지 않습니다.

    이 매개 변수는 MySQL Cluster NDB 7.2에서 사용되지 않으며, MySQL Cluster의 향후 버전에서 제거 될 예정입니다 (Bug # 11760629, Bug # 53053).

TotalSendBufferMemory 동작과 사용 및 MySQL Cluster에서의 전송 버퍼 메모리 매개 변수 구성 자세한 내용은 섹션 18.3.2.12 "MySQL Cluster의 전송 버퍼 매개 변수 구성" 을 참조하십시오.

섹션 18.5.13 "MySQL Cluster 데이터 노드의 온라인 추가" 를 참조하십시오.

Redo 로그의 오버 커밋 처리 Redo 로그를 디스크에 플러시하는 시간이 너무 긴 경우의 데이터 노드에 의한 조작의 처리를 제어 할 수 있습니다. 이것은 특정 Redo 로그의 플래시가 RedoOverCommitLimit 초보다 긴 시간이 지남에 RedoOverCommitCounter 회 이상의 횟수만큼 수행 보류중인 트랜잭션이 중단 된 경우에 발생합니다. 이것이 발생하면 트랜잭션을 보낸 API 노드는 커밋되는 것이었다 작업을 ( DefaultOperationRedoProblemAction 에 지정된대로) 큐에 배치하여 다시 시도하거나 취소하는 것으로 처리 할 수 있습니다. API 노드에서이 작업을 수행하기 전에 초과가 허용되는 시간과 횟수를 설정하기위한 데이터 노드 구성 매개 변수의 다음 목록에서 설명합니다.

  • RedoOverCommitCounter

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0numeric30 - 4294967039 (0xFFFFFEFF)N

    특정 Redo 로그를 디스크에 쓰려고 할 때 RedoOverCommitLimit 을 초과 한 횟수가이 횟수를 초과하면 결과적으로 커밋되지 않은 트랜잭션이 중단 된 트랜잭션의 발생원 인 API 노드는 이러한 트랜잭션을 구성하는 작업을 DefaultOperationRedoProblemAction 의 값에 따라 (작업을 큐에 넣고 다시 시도하거나 중지) 처리합니다.

    RedoOverCommitCounter 의 기본값은 3입니다. 0으로 설정하면이 제한이 해제됩니다.

  • RedoOverCommitLimit

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0seconds200 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수는 특정 Redo 로그를 디스크에 쓰려고 할 때 시간 초과의 상한 (초 단위)을 설정합니다. 데이터 노드가이 Redo 로그를 플래시하려고 RedoOverCommitLimit 보다 오랜 시간이 걸린 횟수가 저장되어 RedoOverCommitCounter 과 비교됩니다. 플래시 시간이 너무 횟수가이 파라미터의 값보다 많아졌다 때는 플래시 타임 아웃의 결과로 커밋되지 않은 트랜잭션이 중단됩니다. 이것이 발생하면 트랜잭션의 발생 원인 인 API 노드는 이러한 트랜잭션을 구성하는 작업을 DefaultOperationRedoProblemAction 의 설정에 따라 (작업을 큐에 넣고 다시 시도하거나 중지하여) 처리합니다.

    기본적으로 RedoOverCommitLimit 은 20 초입니다. 0으로 설정하면 Redo 로그의 플래시 타임 아웃 체크가 해제됩니다. 이 매개 변수는 MySQL Cluster NDB 7.1.10에서 추가되었다.

Controlling restart attempts. MaxStartFailRetries 및 StartFailRetryDelay 데이터 노드 구성 매개 변수를 사용하면 데이터 노드가 시작 실패시 다시 시도를 제어 할 수 있습니다.

MaxStartFailRetries 는 데이터 노드의 시작을 중지 할 때까지 열리는 재 시도의 총 수를 제한합니다. StartFailRetryDelay 은 재시도 사이의 시간 (초)을 설정합니다. 이러한 매개 변수를 여기에 나타냅니다.

  • StartFailRetryDelay

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned00 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수를 사용하여 데이터 노드에 의한 기동 실패시 다시 시도 사이의 시간 (초)을 설정합니다. 기본값은 0 (지연 없음)입니다.

    StopOnError 가 0이 아닌 경우,이 매개 변수와 MaxStartFailRetries 모두 무시됩니다.

  • MaxStartFailRetries

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0unsigned30 - 4294967039 (0xFFFFFEFF)N

    이 매개 변수를 사용하여 데이터 노드에 의한 기동 실패시 다시 시도 횟수를 제한합니다. 기본값은 3 회입니다.

    StopOnError 가 0이 아닌 경우,이 매개 변수와 StartFailRetryDelay 모두 무시됩니다.

NDB 인덱스 통계의 매개 변수 다음 목록의 매개 변수는 MySQL Cluster NDB 7.2.1에서 도입 된 N​​DB 인덱스 통계의 생성에 관련이 있습니다.

  • IndexStatAutoCreate

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0booleanfalsefalse, trueS

    인덱싱 된 경우 자동 통계 수집을 활성화하거나 비활성화합니다. 기본적으로 비활성화되어 있습니다.

    이 매개 변수는 MySQL Cluster NDB 7.2.1에서 추가되었습니다
  • IndexStatAutoUpdate

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0booleanfalsefalse, trueS

    인덱스 변경 모니터링을 활성화 또는 비활성화하고 변경이 감지되면 자동 통계 업데이트를 트리거합니다. 업데이트를 트리거하는 데 필요한 변경의 양과 수준은 IndexStatTriggerPct 및 IndexStatTriggerScale 옵션의 설정에 의해 결정됩니다.

    이 매개 변수는 MySQL Cluster NDB 7.2.1에서 추가되었습니다.

  • IndexStatSaveSize

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0bytes327680 - 4294967039 (0xFFFFFEFF)IN

    NDB 시스템 테이블 및 mysqld 메모리 캐시에 저장되는 특정 인덱스의 통계에 허용되는 최대 공간 (바이트 단위). 이것은 IndexMemory 를 소비합니다.

    크기 제한에 관계없이 항상 적어도 1 개의 샘플이 생성됩니다. 이 크기는 IndexStatSaveScale 의해 조정됩니다.

    이 매개 변수는 MySQL Cluster NDB 7.2.1에서 추가되었습니다.

    대규모 인덱스에서는 IndexStatSaveSize 에 지정된 크기가 IndexStatTriggerPct 에 0.01를 곱한 값으로 조정됩니다. 이것은 또한 인덱스 크기의 바닥 2의 대수를 곱한됩니다. IndexStatTriggerPct 를 0으로 설정하면이 조정이 비활성화됩니다.

  • IndexStatSaveScale

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0percentage1000 - 4294967039 (0xFFFFFEFF)IN

    대규모 인덱스에서는 IndexStatSaveSize 에 지정된 크기가 IndexStatTriggerPct 에 0.01를 곱한 값으로 조정됩니다. 이것은 또한 인덱스 크기의 바닥 2의 대수를 곱한됩니다. IndexStatTriggerPct 를 0으로 설정하면이 조정이 비활성화됩니다.

  • IndexStatTriggerPct

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0percentage1000 - 4294967039 (0xFFFFFEFF)IN

    인덱스 통계 업데이트를 트리거하는 업데이트의 변경 비율. 이 값은 IndexStatTriggerScale 의해 조정됩니다. 이 트리거를 완전히 비활성화하려면 IndexStatTriggerPct 를 0으로 설정합니다.

    이 매개 변수는 MySQL Cluster NDB 7.2.1에서 추가되었습니다.

  • IndexStatTriggerScale

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0percentage1000 - 4294967039 (0xFFFFFEFF)IN

    대규모 인덱스에서는이 금액에 0.01를 곱한 값으로 IndexStatTriggerPct 를 조정합니다. 값 0으로 조정이 비활성화됩니다.

    이 매개 변수는 MySQL Cluster NDB 7.2.1에서 추가되었습니다.

  • IndexStatUpdateDelay

    Effective VersionType/UnitsDefaultRange/ValuesRestart Type
    NDB 7.3.0seconds600 - 4294967039 (0xFFFFFEFF)IN

    특정 인덱스의 자동 인덱스 통계 업데이트 사이의 최소 지연 (초)입니다. 이 변수를 0으로 설정하면 지연이 해제됩니다. 기본값은 60 초입니다.

    이 매개 변수는 MySQL Cluster NDB 7.2.1에서 추가되었습니다.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved