KR20220065072A - 트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체 - Google Patents

트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체 Download PDF

Info

Publication number
KR20220065072A
KR20220065072A KR1020227014341A KR20227014341A KR20220065072A KR 20220065072 A KR20220065072 A KR 20220065072A KR 1020227014341 A KR1020227014341 A KR 1020227014341A KR 20227014341 A KR20227014341 A KR 20227014341A KR 20220065072 A KR20220065072 A KR 20220065072A
Authority
KR
South Korea
Prior art keywords
node
participating
request
transaction
subsql
Prior art date
Application number
KR1020227014341A
Other languages
English (en)
Inventor
타오 웬
다 엘브이
한 장
Original Assignee
지티이 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 지티이 코포레이션 filed Critical 지티이 코포레이션
Publication of KR20220065072A publication Critical patent/KR20220065072A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24535Query rewriting; Transformation of sub-queries or views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체에 있어서, 방법은, 코디네이팅 노드가 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하는 단계; 코디네이팅 노드가 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드에 송신하는 단계; 참여 노드가 서브 요청 SubSQL을 수신하여 처리하고, 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드 및/또는 다른 참여 노드에 송신하며, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드의 실행 상태 정보를 수신하는 단계; 및 참여 노드가 마스터 노드 또는 코디네이팅 노드에 의해 개시된 상태 조회 정보에 따라, 현재 참여 노드의 기존의 국부적 트랜잭션 상태 집합을 피드백하는 단계를 포함한다.

Description

트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체
관련 출원의 상호 참조
본 발명은 출원 번호가 201910965337.9이고 출원일이 2019년 10월 11일인 중국 특허 출원에 기반하여 제출하였고, 상기 중국 특허 출원의 우선권을 주장하는바, 상기 중국 특허 출원의 전부 내용은 참조로서 본 발명에 인용된다.
본 발명의 실시예는 컴퓨터 기술 분야에 관한 것이지만 이에 한정되지 않으며, 구체적으로 트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체에 관한 것이지만 이에 한정되지 않는다.
분산 데이터베이스의 경우, 분산 트랜잭션 커밋은 핵심 기능이다. 분산 트랜잭션 커밋의 실시형태는 시스템의 트랜잭션 제약 수준을 직접 결정한다.
현재 주류 분산 데이터베이스는 모두 수평 샤딩의 특성을 가지고 있다. 즉, 데이터 테이블이 수평(행 키에 따라) 확장 형태를 나타내며, 상이한 물리적 노드에 분산되고; 사용자가 개시한 구조화 조회 언어(Structured Query Language, SQL) 조회 요청은 분산 데이터베이스를 통해 마스터 노드(Master)에 액세스하며, 각 참여자(Slave)에게 라우팅되거나 참여 노드라고 지칭되고, 각각의 참여 노드에서 실행 후 2단계 커밋 프로토콜(2PC)에 따라 코디네이터 또는 코디네이팅 노드로 지칭되는 트랜잭션 코디네이터(Coordinator)와 인터랙션하며, 트랜잭션의 커밋 또는 롤백을 완료한다.
구체적으로, 2단계 커밋 프로토콜(2PC)에서 제1 단계는 투표 단계로 지칭되는바, 트랜잭션 코디네이터에 의해 각각의 물리적 노드에 투표 요청을 송신하고, 각각의 참여 노드는 본 노드에서 상기 트랜잭션의 실행 상태("준비"(prepare) 또는 "종료" (abort))를 로그에 기록하며 상기 상태를 트랜잭션 코디네이터에 송신한다. 제2 단계는 의사결정 단계로 지칭되는바, 트랜잭션 코디네이터에 의해 제1 단계에서 각각의 참여 노드의 실행 상태에 따라 의사를 결정하고, 전체 참여 노드가 모두 "준비" 상태에 있으면 전체 참여 노드에 "커밋(commit)" 명령을 송신하며; 참여 노드의 상태가 "종료"이면 전체 참여 노드에 "롤백(rollback)" 명령을 송신한다. 참여 노드는 트랜잭션 코디네이터의 명령을 수락하고 로컬에서 "커밋" 또는 "롤백" 동작을 실행하며, "커밋" 또는 "롤백" 상태를 로그에 기록한 다음 트랜잭션 코디네이터에 회신한다. 마지막으로 트랜잭션 코디네이터는 상기 트랜잭션의 실행 상황을 마스터 노드(Master)에 피드백한다("커밋"이면 리턴이 성공적이고, "롤백"이면 리턴이 실패임).
본 발명의 실시예는, 코디네이팅 노드가 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하는 단계; 상기 코디네이팅 노드가 상기 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드에 송신하는 단계; 참여 노드가 상기 서브 요청 SubSQL을 수신하여 처리하고, 상기 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드 및/또는 다른 참여 노드에 송신하며, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드의 실행 상태 정보를 수신하는 단계; 및 상기 참여 노드가 상기 마스터 노드 또는 코디네이팅 노드에 의해 개시된 상태 조회 정보에 따라, 현재 상기 참여 노드의 기존의 국부적 트랜잭션 상태 집합을 피드백하는 단계를 포함하는 트랜잭션 관리 방법을 제공한다.
본 발명의 실시예는 마스터 노드, 코디네이팅 노드 및 복수의 참여 노드를 포함하는 트랜잭션 관리 시스템을 더 제공하며, 여기서 상기 코디네이팅 노드는 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하고; 상기 코디네이팅 노드는 상기 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드에 송신하고; 참여 노드는 상기 서브 요청 SubSQL을 수신하여 처리하며, 상기 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드 및/또는 다른 참여 노드에 송신하고, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드의 실행 상태 정보를 수신하며; 상기 참여 노드는 상기 마스터 노드 또는 코디네이팅 노드에 의해 개시된 상태 조회 정보에 따라, 현재 상기 참여 노드의 기존의 국부적 트랜잭션 상태 집합을 피드백한다.
본 발명의 실시예는 프로세서, 메모리 및 통신 버스를 포함하되, 통신 버스는 프로세서와 메모리 사이의 연결 통신을 구현하고; 프로세서는 메모리에 저장된 하나 이상의 컴퓨터 프로그램을 실행하여 상기 트랜잭션 관리 방법의 단계를 수행하는 네트워크 기기를 더 제공한다.
본 발명의 실시예는 하나 이상의 프로그램이 저장되되, 하나 이상의 프로그램은 하나 이상의 프로세서에 의해 실행되어 상기 트랜잭션 관리 방법의 단계를 수행할 수 있는 컴퓨터 저장 매체를 더 제공한다.
도 1은 본 발명의 실시예1에서 제공된 트랜잭션 관리 방법의 흐름도이고,
도 2는 본 발명의 실시예2에서 제공된 트랜잭션 관리 방법의 흐름도이고,
도 3은 본 발명의 실시예 3에서 제공된 트랜잭션 관리 시스템 구성 모식도이고,
도 4는 본 발명의 실시예4에서 제공된 네트워크 기기 구조 모식도이다.
본 발명의 목적, 기술적 해결수단 및 장점이 보다 명확해지도록 하기 위해, 아래에 구체적인 실시형태에 도면을 결부하여 본 발명의 실시예를 더 상세하게 설명한다. 이해해야 할 것은, 여기서 설명되는 구체적인 실시예는 단지 본 발명을 해석하기 위한 것일 뿐 본 발명을 한정하려는 것이 아니다.
일부 경우에, 2PC 프로토콜에는 주요 단점이 존재한다. 즉 제1 단계의 참여 노드가 자체 상태를 트랜잭션 코디네이터에 송신한 후, "준비" 상태에 있으면 계속해서 트랜잭션 코디네이터의 의사결정 명령을 기다려야 하며 타임아웃 로직이 없다. 이상의 프로토콜에서 각각의 참여 노드 사이에는 상호 통신 메커니즘이 없기 때문에 최종 "커밋" 또는 "롤백"은 트랜잭션 코디네이터에 의해 결정되어야 한다. 트랜잭션 코디네이터가 고장나면 참여 노드는 계속하여 복구한 후 명확한 명령을 내릴 때까지 기다려야 하며, 이 과정에서 상기 트랜잭션에 대해 참여 노드가 보유하고 있는 잠금 리소스는 해제되지 않으며, 이상의 과정을 "블로킹"으로 지칭한다. 종합해보면, 2단계 커밋 프로토콜에서 트랜잭션 코디네이터가 고장나면 블로킹이 발생하여 시스템의 트랜잭션 처리 기능을 감소시킨다.
본 발명의 실시예에서 제공된 트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체가 주로 해결하고자 하는 기술적 과제는, 관련 기술에서 로그 관리가 블로킹하기 쉽고 트랜잭션 처리 효율이 낮은 것이다.
실시예1
본 실시예는 트랜잭션 관리 방법을 제공하며, 도 1을 참조하면 상기 방법은 하기와 같은 단계를 포함한다.
단계(S101)에서, 코디네이팅 노드(Coordinator)는 마스터 노드(Master)에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신한다.
단계(S102)에서, 코디네이팅 노드는 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드(Slave)에 송신한다.
단계(S103)에서, 참여 노드는 서브 요청 SubSQL을 수신하여 처리하고, 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드 및/또는 다른 참여 노드에 송신하며, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드의 실행 상태 정보를 수신한다.
단계(S104)에서, 참여 노드는 마스터 노드 또는 코디네이팅 노드에 의해 개시된 상태 조회 정보에 따라, 현재 참여 노드의 기존의 국부적 트랜잭션 상태 집합을 피드백한다.
마스터 노드는 시스템과 외부, 즉 사용자 간의 상호 작용을 일으키며 마스터 노드를 통해 사용자가 개시한 SQL 요청을 수신하여 본 실시예에서의 트랜잭션 관리 프로세스를 더 작동한다. 이후, 마스터 노드는 코디네이팅 노드 또는 참여 노드에 선택적으로 조회 요청을 송신하고 그 응답 메시지를 기다릴 수 있다.
마스터 노드는 SQL 요청을 코디네이팅 노드로 송신한다. 코디네이팅 노드는 마스터 노드와 각 참여 노드 사이의 중계 역할을 하며, 코디네이팅 노드는 SQL 요청을 분해하여 서브 요청 SubSQL을 획득한 다음, 서브 요청 SubSQL을 각각의 참여 노드에 송신하여 처리 및 실행한다. 또한, 코디네이팅 노드는 또한 참여 노드로부터 전송된 관련 실행 상태 정보를 수신하게 되는데, 한편으로는 참여 노드의 상태를 기록하고 다른 한편으로는 마스터 노드에서 개시된 조회 요청에 응답할 수도 있다.
참여 노드는 코디네이팅 노드에 의해 송신된 서브 요청 SubSQL을 수신하여 처리하고, 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드 및/또는 다른 참여 노드에 송신하며, 동시에 다른 참여 노드에 의해 송신된 실행 상태 정보도 수신할 수 있다. 이러한 방식으로 참여 노드 자체가 결정을 내리기 위한 정보를 얻을 수 있으므로 시스템의 유연성이 향상되고 시스템의 블로킹률이 감소된다.
본 실시예에서, 마스터 노드, 코디네이팅 노드 및 참여 노드 사이에 존재할 수 있는 다양한 메시지 프리미티브는 다음을 포함하지만 이에 한정되지 않는다.
"전역 트랜잭션 작동" 메시지: 마스터 노드(Master)가 트랜잭션 코디네이터(Coordinator)에 송신하며, SQL 요청 및 트랜잭션 시퀀스 번호 TX를 포함한다.
"전역 트랜잭션 완료" 메시지: 참여 노드(Slave)가 마스터 노드(Master)에 송신한다. TX, 전역 플래그(GlobalFlag)를 포함한다(여기서 "Success"는 전역 성공을 의미하고, "Fail"은 전역 실패를 의미함).
"국부적 트랜잭션 작동" 메시지: 트랜잭션 코디네이터(Coordinator)가 TXmsgMgr을 통해 Slave에 송신한다. TX, 서브 요청 SubSQL(전역 트랜잭션 SQL 요청이 Coordinator에 의해 분할된 후 획득됨), 이번 트랜잭션이 Master에 전역 결과를 피드백한 Slave, TXLogMgr의 파라미터 P1, TXmsgMgr의 파라미터 P2, 타임아웃 시간을 포함한다.
"국부적 트랜잭션 상태 알림" 메시지: Slave가 TXmsgMgr을 통해 다른 Slave 및/또는 Coordinator에 송신한다. TX, Slave 식별자(ID), Status("Prepare"은 로컬 준비를 의미하고, "Abort"는 로컬 중단을 의미함)를 포함한다. 여기서 StatusSet는 트랜잭션 TX의 데이터 세트를 의미하고 상기 세트 중 각각의 요소는 특정된 참여자에서 상기 TX의 상태("준비" 또는 "중단")를 의미한다.
"전역 트랜잭션 상태 조회" 메시지: Slave/Master가 Coordinator/Slave에 송신한다. TX를 포함한다.
"전역 트랜잭션 상태 응답" 메시지: Coordinator/Slave가 Slave/Master에 송신한다. TX, StatusSet(지금까지, 이의 로컬에 저장되고 번호가 TX인 전역 트랜잭션의 각각의 노드에서의 국부적 트랜잭션 상태 집합)를 포함한다.
"타임아웃 알림" 메시지: Slave에 의해 설정된 타임아웃 타이머가 자체에 송신한다. TX를 포함한다.
"경고 알림" 메시지: Master/Slave에 의해 설정된 경고 타이머가 자체에 송신한다. TX를 포함한다.
참여 노드는 트랜잭션 처리 과정에서 하기와 같은 동작을 갖는다.
로컬 트랜잭션 실행 동작 OpExecute: 우선 TXLogMgr 컴포넌트를 통해 로컬 스토리지 기기에 "TXBegin"을 기입하여 기록하고, 다음으로 SQL 요청 동작을 실행하여 로컬 잠금 리소스를 획득하며, 그 기간에 TXLogMgr 컴포넌트를 통해 로컬 스토리지 기기에 데이터 변화 정보를 기입한다.
로컬 트랜잭션 커밋 동작 OpCommit: 우선 로컬 잠금 리소스를 해제하고, 다음으로 TXLogMgr 컴포넌트를 통해 로컬 스토리지 기기에 "Commit"를 기입하여 기록하며; 별도로 본 Slave가 Master로 응답을 리턴하도록 지정되면 Master에 "전역 트랜잭션 완료" 메시지를 송신하여 GlobalFlag가 "전역 성공 Success"가 되도록 한다.
로컬 트랜잭션 롤백 동작 OpRollback: 우선 로컬 스토리지 기기 정보를 판독하고 본 트랜잭션 데이터 변화 정보를 이용하여 데이터 커버를 수행하며, 다음으로 로컬 잠금 리소스를 해제하고, 마지막에 TXLogMgr 컴포넌트를 통해 로컬 스토리지 기기에 "Rollback"을 기입하여 기록하며; 별도로, 본 Slave가 Master로 응답을 리턴하도록 지정되면 Master에 "전역 트랜잭션 완료" 메시지를 송신하여 GlobalFlag가 "전역 실패 Fail"가 되도록 한다.
일부 실시예에서, 코디네이팅 노드가 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하는 단계에서, 마스터 노드가 SQL 요청을 전달하는 경우, 경고 타이머를 작동하는 단계를 더 포함할 수 있다.
일부 실시예에서, 코디네이팅 노드가 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드에 송신하는 단계는,
코디네이팅 노드가 각 참여 노드를 위해 SQL 요청을 서브 요청 SubSQL로 분해하고 참여 노드의 네트워크 파라미터를 설정하는 단계를 포함할 수 있으며, 네트워크 파라미터는 로그 TXLogMgr 파라미터, 메시지 TXmsgMgr 파라미터, 타임아웃 시점 정보 중 적어도 하나를 포함한다. 적절한 네트워크 파라미터는 시스템의 트랜잭션 처리 효율을 향상시킬 수 있다. 여기서,
TXLogMgr: 코디네이팅 노드 및 참여 노드의 프로그램에서 이 프로그램의 로그 읽기 및 쓰기 동작을 처리한다. TXLogMgr 컴포넌트가 기입한 타깃 매체는 디스크 또는 NAND 플래시 메모리 또는 PCM 위상 메모리와 같은 비휘발성 저장 기기일 수 있다. TXLogMgr은 기입 요청을 수신하면 로컬 버퍼링을 수행하는 데 버퍼링 시간은 "기입 간격 파라미터" P1이며, 버퍼링이 만료되어야만 실제로 타깃 매체에 기입된다. 다시 말해서 TXLogMgr 파라미터는 기입 간격 파라미터 P1을 의미한다.
TXmsgMgr: 코디네이팅 노드 및 참여 노드의 프로그램에서 이 프로그램의 네트워크 통신 동작을 처리한다. TXLogMgr 컴포넌트는 기존의 통신 기기 또는 RDMA 프로토콜 지원에 의한 통신 기기와 같은 원격 직접 데이터 액세스(Remote Direct Memory Access, RDMA) 프로토콜 지원에 의한 통신 기기를 이용하여 통신할 수 있다. TXmsgMgr 컴포넌트의 통신은, 예를 들어 멀티캐스트 프로토콜 또는 유니캐스트를 사용할 수 있으며; TXmsgMgr이 송신 요청을 수신하면 로컬 버퍼링을 수행하는데 버퍼링 시간은 "송신 간격 파라미터" P2이며, 버퍼링이 만료되어야만 실제로 송신된다. 다시 말해서 TXmsgMgr 파라미터는 송신 간격 파라미터 P2를 의미한다.
일부 실시예에서, 참여 노드의 네트워크 파라미터는, 코디네이팅 노드가 참여 노드에서 마스터 노드에 회신할 특정 참여 노드를 지정하는 정보를 더 포함할 수 있다. 참여 노드는 마스터 노드에서 개시된 조회 요청을 직접 회신할 수 있고, 코디네이팅 노드는 이전에 복수의 참여 노드에서 마스터 노드에 회신할 특정 참여 노드를 지정할 수 있다.
일부 실시예에서, 코디네이팅 노드는 TXmsgMgr을 통해 네트워크 파라미터를 대응하는 참여 노드에 송신한다.
일부 실시예에서, 참여 노드가 서브 요청 SubSQL을 수신하고 처리하는 단계는,
참여 노드가 준비 상태 또는 중단 상태에 도달할 때까지 로컬 트랜잭션 실행 동작을 수행하는 단계를 포함할 수 있다.
일부 실시예에서, 참여 노드가 로컬 트랜잭션 실행 동작을 수행하는 단계에서 중단 상태에 도달할 경우,
참여 노드가 롤백(rollback) 동작을 수행하는 단계를 더 포함한다.
일부 실시예에서, 참여 노드가 로컬 트랜잭션 실행 동작을 수행하는 단계에서 준비 상태에 도달할 경우,
준비 상태에 대응되는 실행 상태 정보와 함께 준비 상태를 코디네이팅 노드 및/또는 다른 참여 노드에 송신하고 준비 상태를 로컬 스토리지에 기입하는 단계를 더 포함할 수 있다.
일부 실시예에서, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드의 실행 상태 정보를 수신하는 단계 이후에,
로컬의 실행 상태 정보와, 서브 요청 SubSQL을 처리하는 다른 노드의 수신된 실행 상태 정보를 국부적 트랜잭션 상태 집합에 병합하고 로컬 스토리지에 기입하는 단계를 더 포함할 수 있다.
일부 실시예에서, 참여 노드가 마스터 노드 및/또는 코디네이팅 노드에 전역 트랜잭션 상태 조회 메시지를 개시하여 트랜잭션 TX의 최신 상태를 능동적으로 조회하는 단계를 더 포함할 수 있다.
일부 실시예에서, 코디네이팅 노드가 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하는 단계 이전에,
시스템을 초기화하는 단계;
마스터 노드, 코디네이팅 노드 및 참여 노드를 멀티캐스트 그룹에 추가하는 단계;
기설정된 지속 시간 내에 시스템에 의한 트랜잭션 작동 및 완료 상황을 통계하는 단계; 및
시스템에 의한 트랜잭션 작동 및 완료 상황에 기반하여 로그 TXLogMgr 파라미터, 메시지 TXmsgMgr 파라미터의 값을 설정하는 단계를 더 포함한다.
분산 트랜잭션의 복구 프로세스의 경우, 참여자(Slave)의 행동이 트랜잭션 일관성을 준수하도록 확보해야 한다.
TXLogMgr이 기입한 Slave 로그를 탐색하면, 각각의 트랜잭션에 대해,
"TXBegin" 및 "Prepare", "Commit" 기록이 있으면 조작할 필요 없고;
"TXBegin" 및 "Prepare", "Rollback" 기록이 있으면 조작할 필요 없으며;
"TXBegin" 및 "Rollback" 기록만 있으면 조작할 필요 없고;
"TXBegin" 기록만 있으면 로컬 트랜잭션 롤백 동작 OpRollback을 수행하며;
"TXBegin" 및 "Prepare" 기록만 있으면 전체 참여자 상태가 모두 획득될 때까지 TXmsgMgr을 통해 코디네이터 및 다른 참여자에 "전역 트랜잭션 상태 조회" 메시지를 송신하고; TX 전체 참여자가 모두 "준비" 상태에 있으면 로컬 트랜잭션 커밋 동작 OpCommit을 수행하며, 그렇지 않으면 로컬 트랜잭션 롤백 동작 OpRollback을 수행한다.
본 실시예는 트랜잭션 관리 방법을 제공하며, 코디네이팅 노드는 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하고; 코디네이팅 노드는 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드에 송신하며; 참여 노드는 서브 요청 SubSQL을 수신하여 처리하고, 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드 및/또는 다른 참여 노드에 송신하며, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드의 실행 상태 정보를 수신하고; 참여 노드는 마스터 노드 또는 코디네이팅 노드에 의해 개시된 상태 조회 정보에 따라, 현재 참여 노드의 기존의 국부적 트랜잭션 상태 집합을 피드백한다. 이로써 각 참여 노드를 통해 실행 상태 정보의 독립적인 송수신과, 상태 조회 정보에 대한 피드백을 수행할 수도 있으므로, 시스템의 유연성이 향상되고 블로킹률이 감소되어 트랜잭션 처리 효율이 향상된다.
실시예2
본 실시예는 트랜잭션 처리 방법 및 대응되는 트랜잭션 처리 시스템을 제공하며, 도 2를 참조하면 우선 하기와 같은 정의를 내린다.
Ps를 본 주기 내에서 시스템에 의해 작동된 트랜잭션 기입 수의 이산 공간으로 하면 |P|는 Ps 공간의 규모이고;
P는 본 주기 내에서 시스템에 의해 작동된 트랜잭션 기입 수가 Ps 구간에 속한 번호이며 여기서 |P|>p>=0이고;
Fs를 본 주기 내에서 시스템에 의해 완료된 트랜잭션 기입 수의 이산 공간으로 하면 |F|는 Fs 공간의 규모이고;
f는 본 주기 내에서 시스템에 의해 완료된 트랜잭션 기입 수가 Fs 구간에 속한 번호이며 여기서 |F|>f>=0이고;
Es를 시스템에 의해 향상된 TXLogMgr의 로그 기입 간격 비율의 이산 공간으로 하면 |E|는 Es의 규모이고;
e는 Es 구간에서 시스템 관련 행동의 번호이며 여기서 |E|>e>=0이고;
Ds를 시스템에 의해 향상된 TXmsgMgr의 메시지 송신 간격 비율의 이산 공간으로 하면 |D|는 Ds의 규모이고;
d는 Ds 구간에서 시스템 관련 행동의 번호이며 여기서 |D|>d>=0이고;
상태 공간 S: 1차원 이산화<Ps, Fs>, S 중 아래첨자 i=p*|F|+f;
행동 공간 A: 1차원 이산화<Es, Ds>, A 중 아래첨자 j=e*|D|+d;
행동 값 테이블 Q: 2차원 어레이, 여기서 Q[i, j]는 상태 Si에서 행동 Aj의 평가 점수를 나타냄;
보상 R: 본 주기 내에서 시스템에 의한 트랜잭션 기입의 평균 소모 시간의 가속도;
학습률 LearningRate: 행동 값 테이블 Q에 대한 업데이트 결정 효율;
활용도 eps: 시스템의 현재 최적 파라미터를 사용한 설정의 결정 확률.
상기 트랜잭션 처리 시스템은 하기와 같은 시스템 행동을 갖는다.
시스템 초기화; 시스템 초기화에는 하기와 같은 내용이 포함된다.
행동 값 테이블 Q를 랜덤으로 초기화하고;
본 주기 내에서 시스템에 의해 작동 및 완료된 트랜잭션 기입 수에 따라 초기화 상태 Sinit를 결정하며;
Ainit 초기화 선택: 현재 상태 Sinit에 따라, eps 확률로 Q 테이블 중 상태 Sinit에서 평가 점수가 가장 높은 동작 Ainit를 선택하고; 1-eps 확률로 S0에서 동작 Ainit를 랜덤으로 선택하며;
Ac = Ainit; Sc = Sinit로 하고; Ac 중의 행동을 실행하며 TXLogMgr의 기입 간격 P1 및 TXmsgMgr의 송신 간격 P2를 설정한다.
행동 값 테이블을 정기적으로 트레이닝하고 현재 행동을 선택하며;
본 주기 내에서 Ac 실행에 대한 환경 보상 R을 계산하고;
본 주기 내에서 시스템에 의해 작동 및 완료된 트랜잭션 기입 수에 따라 현재 상태 Snext를 결정하며;
Anext 선택: 상태 Snext에 따라, eps 확률로 Q 테이블 중 상태 Snext에서 평가 점수가 가장 높은 동작 Anext를 선택하고; 1-eps 확률로 Snext에서 동작 Anext를 랜덤으로 선택하며;
행동 값 학습:
Q[Sc, Ac] = Q[Sc, Ac] + LearningRate *(R + 0.5 * Q[Snext, Anext] - Q[Sc, Ac]).
Ac =Anext; Sc = Snext로 하고; Ac 중의 행동을 실행하며 TXLogMgr의 기입 간격 P1 및 TXmsgMgr의 송신 간격 P2를 조정한다.
상태 공간 S를 정의하면 표 1과 같다.
Figure pct00001
행동 S를 정의하면 표 2와 같다.
Figure pct00002
행동 값 테이블 Q를 정의하면, 랜덤 일반 초기화: Q[i,j]는 상태 Si에서 행동 Aj의 값이고; 표 3을 참조한다.
Figure pct00003
학습률 LearningRate를 0.1로 정의하고;
활용도 eps를 0.7로 정의하며;
TXLogMgr 기입 간격을 150us로 설정하고;
TXmsgMgr 송신 간격을 30us로 설정한다.
단계(S201)에서, 시스템을 초기화한다.
본 주기 내에서 시스템에 의해 작동 및 완료된 트랜잭션 기입 수에 따라 초기화 상태 Sinit를 결정하며(예를 들어, 현재 시스템이 5분 내에 개시한 트랜잭션이 5000이고 트랜잭션 4000을 완료하면 Sinit는 S4임);
Ainit 초기화 선택: 현재 상태 Sinit에 따라, eps 확률로 Q 테이블 중 상태 Sinit에서 평가 점수가 가장 높은 동작 Ainit를 선택하고; 1-eps 확률로 S0에서 동작 Ainit를 랜덤으로 선택한다(예를 들어, 마지막에 선택된 Ainit가 A8이면 P1/P2 파라미터는 각각 10% 상향됨).
Ac = Ainit; Sc = Sinit로 하고; Ac 중의 행동을 실행하며 TXLogMgr의 기입 간격 P1 및 TXmsgMgr의 송신 간격 P2를 설정한다.
각각의 네트워크 요소 Master/Slave/Coordinator는 서로 통신 연결을 구축하고, 본 실시예에서 각각의 네트워크 요소는 멀티캐스트 통신 방식을 사용하여 동일한 멀티캐스트 그룹에 추가된다.
단계(S02)에서, 시스템을 실행한다.
TXmsgMgr 컴포넌트 통신 하위 계층은 RDMA 기기와 멀티캐스트 통신 프로토콜을 사용하고; TXLogMgr 컴포넌트 저장 기기는 플래시 메모리 기기를 기반으로 한다. 전술한 분산 커밋 프로토콜에 따라 트랜잭션 커밋을 수행하고 그 동안 TXLogMgr의 작업 전략은 P1에 의해 결정되고 TXmsgMgr의 작업 전략은 P2에 의해 결정된다.
현재 시간대에서 트랜잭션 커밋의 평균 소모 시간을 통계하고;
현재 시간대에서 시스템에 의해 작동된 트랜잭션 횟수 TXStarts를 통계하며;
현재 시간대에서 시스템에 의해 완료된 트랜잭션 횟수 TXEnd를 통계한다.
단계(S203)에서, 시스템을 동적으로 업데이트한다.
본 주기 내에서 환경 보상 R을 계산하고(본 주기 내에서 시스템에 의한 트랜잭션 기입 평균 시간 소모의 이전에 대한 가속도);
본 주기 내에서 시스템에 의한 트랜잭션 작동 수 TXStarts 및 완료 수 TXEnds에 따라 현재 상태 Snext를 결정하며;
Anext 선택: 상태 Snext에 따라, eps 확률로 Q 테이블 중 상태 Snext에서 평가 점수가 가장 높은 동작 Anext를 선택하고; 1-eps 확률로 Snext에서 동작 Anext를 랜덤으로 선택한다.
단계(S204)에서, 행동 값을 학습한다.
Q[Sc, Ac] = Q[Sc, Ac] + LearningRate *(R + 0.5 * Q[Snext, Anext] - Q[Sc, Ac]).
Ac =Anext; Sc = Snext로 하고; Ac 중의 행동을 실행하며 TXLogMgr의 기입 간격 P1 및 TXmsgMgr의 송신 간격 P2를 조정한다.
실시예 3
본 실시예는 트랜잭션 관리 시스템을 제공하며, 도 3을 참조하면 상기 시스템은 마스터 노드(31), 코디네이팅 노드(32) 및 복수의 참여 노드(33)를 포함하고, 여기서,
코디네이팅 노드(32)는 마스터 노드(31)에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하고;
코디네이팅 노드(32)는 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드(33)에 송신하며;
참여 노드(33)는 서브 요청 SubSQL을 수신하여 처리하고, 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드(32) 및/또는 다른 참여 노드(33)에 송신하며, 다른 참여 노드(33)에 의해 각각의 서브 요청 SubSQL이 처리되는 실행 상태 정보를 수신하고;
참여 노드(33)는 마스터 노드(31) 또는 코디네이팅 노드(32)에 의해 개시된 상태 조회 정보에 따라, 현재 참여 노드(33)의 기존의 국부적 트랜잭션 상태 집합을 피드백한다.
마스터 노드(31)는 시스템과 외부, 즉 사용자 간의 상호 작용을 일으키며 마스터 노드(31)를 통해 사용자가 개시한 SQL 요청을 수신하여 본 실시예에서의 트랜잭션 관리 프로세스를 더 작동한다. 이후, 마스터 노드(31)는 코디네이팅 노드(32) 또는 참여 노드(33)에 선택적으로 조회 요청을 송신하고 그 응답 메시지를 기다릴 수 있다.
마스터 노드(31)는 SQL 요청을 코디네이팅 노드(32)로 송신한다. 코디네이팅 노드(32)는 마스터 노드(31)와 각 참여 노드(33) 사이의 중계 역할을 하며, 코디네이팅 노드(32)는 SQL 요청을 분해하여 서브 요청 SubSQL을 획득한 다음, 서브 요청 SubSQL을 각각의 참여 노드(33)에 송신하여 처리 및 실행한다. 또한, 코디네이팅 노드(32)는 또한 참여 노드(33)로부터 전송된 관련 실행 상태 정보를 수신하게 되는데, 한편으로는 참여 노드(33)의 상태를 기록하고 다른 한편으로는 마스터 노드(31)에서 개시된 조회 요청에 응답할 수도 있다.
참여 노드(33)는 코디네이팅 노드(32)에 의해 송신된 서브 요청 SubSQL을 수신하여 처리하고, 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드(32) 및/또는 다른 참여 노드(33)에 송신하며, 동시에 다른 참여 노드(33)에 의해 송신된 실행 상태 정보도 수신할 수 있다. 이러한 방식으로 참여 노드(33) 자체가 결정을 내리기 위한 정보를 얻을 수 있으므로 시스템의 유연성이 향상되고 시스템의 블로킹률이 감소된다.
일부 실시예에서, 코디네이팅 노드(32)가 마스터 노드(31)에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하는 단계에서, 마스터 노드(31)가 SQL 요청을 전달하는 경우, 경고 타이머를 작동하는 단계를 더 포함할 수 있다.
일부 실시예에서, 코디네이팅 노드(32)가 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드(33)에 송신하는 단계는,
코디네이팅 노드(32)가 각 참여 노드(33)를 위해 SQL 요청을 서브 요청 SubSQL로 분해하고 참여 노드(33)의 네트워크 파라미터를 설정하는 단계를 포함할 수 있으며, 네트워크 파라미터는 로그 TXLogMgr 파라미터, 메시지 TXmsgMgr 파라미터, 타임아웃 시점 정보 중 적어도 하나를 포함한다. 적절한 네트워크 파라미터는 시스템의 트랜잭션 처리 효율을 향상시킬 수 있다.
일부 실시예에서, 참여 노드(33)의 네트워크 파라미터는, 코디네이팅 노드(32)가 참여 노드(33)에서 마스터 노드(31)에 회신할 특정 참여 노드(33)를 지정하는 정보를 더 포함할 수 있다. 참여 노드(33)는 마스터 노드(31)에서 개시된 조회 요청을 직접 회신할 수 있고, 코디네이팅 노드(32)는 이전에 복수의 참여 노드(33)에서 마스터 노드(31)에 회신할 특정 참여 노드(33)를 지정할 수 있다.
일부 실시예에서, 코디네이팅 노드(32)는 TXmsgMgr을 통해 네트워크 파라미터를 대응하는 참여 노드(33)에 송신한다.
일부 실시예에서, 참여 노드(33)가 서브 요청 SubSQL을 수신하고 처리하는 단계는,
참여 노드(33)가 준비 상태 또는 중단 상태에 도달할 때까지 로컬 트랜잭션 실행 동작을 수행하는 단계를 포함할 수 있다.
일부 실시예에서, 참여 노드(33)가 로컬 트랜잭션 실행 동작을 수행하는 단계에서 중단 상태에 도달할 경우, 참여 노드(33)가 롤백(rollback) 동작을 수행하는 단계를 더 포함한다.
일부 실시예에서, 참여 노드(33)가 로컬 트랜잭션 실행 동작을 수행하는 단계에서 준비 상태에 도달할 경우,
준비 상태에 대응되는 실행 상태 정보와 함께 준비 상태를 코디네이팅 노드(32) 및/또는 다른 참여 노드(33)에 송신하고 준비 상태를 로컬 스토리지에 기입하는 단계를 더 포함할 수 있다.
일부 실시예에서, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드(33)의 실행 상태 정보를 수신하는 단계 이후에,
로컬의 실행 상태 정보와, 서브 요청 SubSQL을 처리하는 다른 노드의 수신된 실행 상태 정보를 국부적 트랜잭션 상태 집합에 병합하고 로컬 스토리지에 기입하는 단계를 더 포함할 수 있다.
일부 실시예에서, 참여 노드(33)가 마스터 노드(31) 및/또는 코디네이팅 노드(32)에 전역 트랜잭션 상태 조회 메시지를 개시하여 트랜잭션 TX의 최신 상태를 능동적으로 조회하는 단계를 더 포함할 수 있다.
일부 실시예에서, 코디네이팅 노드(32)가 마스터 노드(31)에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하는 단계 이전에,
시스템을 초기화하는 단계;
마스터 노드(31), 코디네이팅 노드(32) 및 참여 노드(33)를 멀티캐스트 그룹에 추가하는 단계;
기설정된 지속 시간 내에 시스템에 의한 트랜잭션 작동 및 완료 상황을 통계하는 단계; 및
시스템에 의한 트랜잭션 작동 및 완료 상황에 기반하여 로그 TXLogMgr 파라미터, 메시지 TXmsgMgr 파라미터의 값을 설정하는 단계를 더 포함한다.
본 실시예는 트랜잭션 관리 시스템을 제공하며, 코디네이팅 노드(32)는 마스터 노드(31)에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하고; 코디네이팅 노드(32)는 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드(33)에 송신하며; 참여 노드(33)는 서브 요청 SubSQL을 수신하여 처리하고, 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드(32) 및/또는 다른 참여 노드(33)에 송신하며, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드(33)의 실행 상태 정보를 수신하고; 참여 노드(33)는 마스터 노드(31) 또는 코디네이팅 노드(32)에 의해 개시된 상태 조회 정보에 따라, 현재 참여 노드(33)의 기존의 국부적 트랜잭션 상태 집합을 피드백한다. 이로써 각 참여 노드(33)를 통해 실행 상태 정보의 독립적인 송수신과, 상태 조회 정보에 대한 피드백을 수행할 수도 있으므로, 시스템의 유연성이 향상되고 블로킹률이 감소되어 트랜잭션 처리 효율이 향상된다.
실시예4
본 실시예는 네트워크 기기를 더 제공하며, 도 4를 참조하면 이는 프로세서(41), 메모리(42) 및 통신 버스(43)를 포함하되, 여기서,
통신 버스(43)는 프로세서(41)와 메모리(42) 사이의 연결 통신을 구현하고;
프로세서(41)는 메모리(42)에 저장된 하나 이상의 컴퓨터 프로그램을 실행하여 상기 각 실시예에서 트랜잭션 관리 방법의 단계를 수행하며, 여기서 더 이상 반복 서술하지 않는다.
본 실시예는 정보(예를 들어, 컴퓨터 판독 가능 명령, 데이터 구조, 컴퓨터 프로그램 모듈 또는 다른 데이터)를 저장하기 위한 임의의 방법 또는 기술로 구현되는 휘발성 또는 비휘발성, 착탈 가능 또는 착탈 불가능 매체를 포함하는 컴퓨터 판독 가능 저장 매체를 더 제공한다. 컴퓨터 판독 가능 저장 매체는 랜덤 액세스 메모리(Random Access Memory, RAM), 판독 전용 메모리(Read-Only Memory, ROM), 전기적 소거 가능 프로그램 가능 판독 전용 메모리(Electrically Erasable Programmable read only memory, EEPROM), 플래시 메모리 또는 다른 메모리 기술, 콤팩트 디스크 판독 전용 메모리(CD-ROM, Compact Disc Read-Only Memory), 디지털 다기능 디스크(DVD) 또는 다른 광 디스크 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 저장 시스템, 또는 원하는 정보를 저장하고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 이에 한정되지 않는다.
본 실시예에서의 컴퓨터 판독 가능 저장 매체는 하나 이상의 컴퓨터 프로그램을 저장할 수 있으며, 저장된 하나 이상의 컴퓨터 프로그램은 프로세서에 의해 실행되어 상기 각 실시예에서의 트랜잭션 관리 방법의 적어도 하나의 단계를 수행할 수 있다.
본 실시예는 컴퓨터 프로그램(또는 컴퓨터 소프트웨어로 지칭됨)을 더 제공하며, 상기 컴퓨터 프로그램은 컴퓨터 판독 가능 매체에 분산될 수 있고 컴퓨터 시스템에 의해 실행되어 상기 각 실시예에서의 트랜잭션 관리 방법의 적어도 하나의 단계를 수행할 수 있다.
본 실시예는 컴퓨터 판독 가능 시스템을 포함하는 컴퓨터 프로그램 제품을 더 제공하며, 상기 컴퓨터 판독 가능 시스템에는 상술한 바와 같은 컴퓨터 프로그램이 저장된다. 본 실시예에서 상기 컴퓨터 판독 가능 시스템은 상술한 바와 같은 컴퓨터 판독 가능 저장 매체를 포함할 수 있다.
보다시피, 본 기술분야의 기술자는 상기에서 개시된 방법 중의 전부 또는 일부 단계, 시스템, 시스템 중의 기능 모듈/유닛이 소프트웨어(컴퓨팅 시스템에서 실행 가능한 컴퓨터 프로그램 코드로 구현될 수 있음), 펌웨어, 하드웨어 및 이들의 적절한 조합으로 구현될 수 있음을 이해해야 할 것이다. 하드웨어 구현 방식에서, 이상의 설명에서 언급된 기능 모듈/유닛 사이의 구획은 반드시 물리적 컴포넌트의 구획에 대응되는 것이 아니며; 예를 들어 하나의 물리적 컴포넌트는 복수의 기능을 구비할 수 있거나, 하나의 기능 또는 단계는 복수의 물리적 컴포넌트와 협력하여 수행될 수 있다. 일부 물리적 컴포넌트 또는 모든 물리적 컴포넌트는 중앙처리장치, 디지털 신호 프로세서 또는 마이크로 프로세서와 같은 프로세서에 의해 실행되는 소프트웨어로서 구현되거나, 하드웨어로서 구현되거나, 전용 집적 회로와 같은 집적 회로로서 구현될 수 있다.
또한, 본 기술분야의 통상의 기술자에게 주지된 것은, 통신 매체는 일반적으로 컴퓨터 판독 가능 명령, 데이터 구조, 컴퓨터 프로그램 모듈 또는 반송파 또는 다른 전송 메커니즘과 같은 변조 데이터 신호 중의 다른 데이터를 포함하며, 또한 임의의 정보 전달 매체를 포함할 수 있다. 따라서, 본 발명은 임의의 특정된 하드웨어 및 소프트웨어 결합에 한정되지 않는다.
이상의 내용은 구체적인 실시형태를 결합하여 본 발명의 실시예에 대한 추가적인 설명으로서, 본 발명의 구체적인 구현이 이러한 설명에 한정되는 것으로 간주할 수 없다. 본 발명의 기술분야의 통상의 기술자라면 본 발명의 구상을 벗어나지 않고 복수의 간단한 추론 또는 교체를 수행할 수 있으며, 모두 본 발명의 보호 범위에 속하는 것으로 간주해야 한다.

Claims (14)

  1. 트랜잭션 관리 방법으로서,
    코디네이팅 노드가 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하는 단계;
    상기 코디네이팅 노드가 상기 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드에 송신하는 단계;
    참여 노드가 상기 서브 요청 SubSQL을 수신하여 처리하고, 상기 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드 및/또는 다른 참여 노드에 송신하며, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드의 실행 상태 정보를 수신하는 단계; 및
    상기 참여 노드가 상기 마스터 노드 또는 코디네이팅 노드에 의해 개시된 상태 조회 정보에 따라, 현재 상기 참여 노드의 기존의 국부적 트랜잭션 상태 집합을 피드백하는 단계를 포함하는, 트랜잭션 관리 방법.
  2. 제1항에 있어서,
    상기 코디네이팅 노드가 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하는 단계에서, 상기 마스터 노드가 SQL 요청을 전달하는 경우,
    경고 타이머를 작동하는 단계를 더 포함하는, 트랜잭션 관리 방법.
  3. 제1항에 있어서,
    상기 코디네이팅 노드가 상기 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드에 송신하는 단계는,
    상기 코디네이팅 노드가 각각의 상기 참여 노드를 위해 상기 SQL 요청을 서브 요청 SubSQL로 분해하고 상기 참여 노드의 네트워크 파라미터를 설정하는 단계를 포함하되, 상기 네트워크 파라미터는 로그 TXLogMgr 파라미터, 메시지 TXmsgMgr 파라미터, 타임아웃 시점 정보 중 적어도 하나를 포함하는, 트랜잭션 관리 방법.
  4. 제3항에 있어서,
    상기 참여 노드의 네트워크 파라미터는, 상기 코디네이팅 노드가 상기 참여 노드에서 상기 마스터 노드에 회신할 특정 참여 노드를 지정하는 정보를 더 포함하는, 트랜잭션 관리 방법.
  5. 제4항에 있어서,
    상기 코디네이팅 노드는 상기 TXmsgMgr을 통해 상기 네트워크 파라미터를 대응하는 상기 참여 노드에 송신하는, 트랜잭션 관리 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 참여 노드가 상기 서브 요청 SubSQL을 수신하고 처리하는 단계는,
    상기 참여 노드가 준비 상태 또는 중단 상태에 도달할 때까지 로컬 트랜잭션 실행 동작을 수행하는 단계를 포함하는, 트랜잭션 관리 방법.
  7. 제6항에 있어서,
    상기 참여 노드가 로컬 트랜잭션 실행 동작을 수행하는 단계에서 중단 상태에 도달할 경우,
    상기 참여 노드가 롤백(rollback) 동작을 수행하는 단계를 더 포함하는, 트랜잭션 관리 방법.
  8. 제6항에 있어서,
    상기 참여 노드가 로컬 트랜잭션 실행 동작을 수행하는 단계에서 준비 상태에 도달할 경우,
    준비 상태에 대응되는 실행 상태 정보와 함께 상기 준비 상태를 상기 코디네이팅 노드 및/또는 다른 참여 노드에 송신하고 상기 준비 상태를 로컬 스토리지에 기입하는 단계를 더 포함하는, 트랜잭션 관리 방법.
  9. 제8항에 있어서,
    상기 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드의 실행 상태 정보를 수신하는 단계 이후에,
    로컬의 실행 상태 정보와, 서브 요청 SubSQL을 처리하는 다른 노드의 수신된 실행 상태 정보를 상기 국부적 트랜잭션 상태 집합에 병합하고 로컬 스토리지에 기입하는 단계를 더 포함하는, 트랜잭션 관리 방법.
  10. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 참여 노드가 마스터 노드 및/또는 코디네이팅 노드에 전역 트랜잭션 상태 조회 메시지를 개시하여 트랜잭션 TX의 최신 상태를 능동적으로 조회하는 단계를 더 포함하는, 트랜잭션 관리 방법.
  11. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 코디네이팅 노드가 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하는 단계 이전에,
    시스템을 초기화하는 단계;
    상기 마스터 노드, 코디네이팅 노드 및 참여 노드를 멀티캐스트 그룹에 추가하는 단계;
    기설정된 지속 시간 내에 시스템에 의한 트랜잭션 작동 및 완료 상황을 통계하는 단계; 및
    상기 시스템에 의한 트랜잭션 작동 및 완료 상황에 기반하여 로그 TXLogMgr 파라미터, 메시지 TXmsgMgr 파라미터의 값을 설정하는 단계를 더 포함하는, 트랜잭션 관리 방법.
  12. 트랜잭션 관리 시스템으로서,
    마스터 노드, 코디네이팅 노드 및 복수의 참여 노드를 포함하고,
    상기 코디네이팅 노드는 마스터 노드에 의해 전달된 외부에서 개시된 구조화 조회 언어(SQL) 요청을 수신하며;
    상기 코디네이팅 노드는 상기 SQL 요청을 서브 요청 SubSQL로 분해하여 각각의 대응되는 참여 노드에 송신하고;
    참여 노드는 상기 서브 요청 SubSQL을 수신하여 처리하며, 상기 서브 요청 SubSQL의 실행 상태 정보를 코디네이팅 노드 및/또는 다른 참여 노드에 송신하고, 각각의 서브 요청 SubSQL을 처리하는 다른 참여 노드의 실행 상태 정보를 수신하며;
    상기 참여 노드는 상기 마스터 노드 또는 코디네이팅 노드에 의해 개시된 상태 조회 정보에 따라, 현재 상기 참여 노드의 기존의 국부적 트랜잭션 상태 집합을 피드백하는, 트랜잭션 관리 시스템.
  13. 네트워크 기기로서,
    상기 네트워크 기기는 프로세서, 메모리 및 통신 버스를 포함하되,
    상기 통신 버스는 프로세서와 메모리 사이의 연결 통신을 구현하고;
    상기 프로세서는 메모리에 저장된 하나 이상의 컴퓨터 프로그램을 실행하여 제1항 내지 제11항 중 어느 한 항에 따른 트랜잭션 관리 방법의 단계를 수행하는, 네트워크 기기.
  14. 컴퓨터 판독 가능 저장 매체로서,
    상기 컴퓨터 판독 가능 저장 매체에는 하나 이상의 컴퓨터 프로그램이 저장되고, 상기 하나 이상의 컴퓨터 프로그램은 하나 이상의 프로세서에 의해 실행되어 제1항 내지 제11항 중 어느 한 항에 따른 트랜잭션 관리 방법의 단계를 수행할 수 있는, 컴퓨터 판독 가능 저장 매체.
KR1020227014341A 2019-10-11 2020-09-30 트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체 KR20220065072A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910965337.9A CN112650561B (zh) 2019-10-11 2019-10-11 事务管理方法、系统、网络设备和可读存储介质
CN201910965337.9 2019-10-11
PCT/CN2020/119646 WO2021068850A1 (zh) 2019-10-11 2020-09-30 事务管理方法、系统、网络设备和可读存储介质

Publications (1)

Publication Number Publication Date
KR20220065072A true KR20220065072A (ko) 2022-05-19

Family

ID=75342807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227014341A KR20220065072A (ko) 2019-10-11 2020-09-30 트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체

Country Status (6)

Country Link
US (1) US20240095236A1 (ko)
EP (1) EP4024236A4 (ko)
JP (1) JP7461468B2 (ko)
KR (1) KR20220065072A (ko)
CN (1) CN112650561B (ko)
WO (1) WO2021068850A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113807924A (zh) * 2021-09-24 2021-12-17 华院分析技术(上海)有限公司 基于批量处理算法的业务处理分配方法、系统、存储介质及设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04199339A (ja) * 1990-11-29 1992-07-20 Hitachi Ltd 分散処理システムの分散トランザクションファイル制御方法
US6081801A (en) * 1997-06-30 2000-06-27 International Business Machines Corporation Shared nothing parallel execution of procedural constructs in SQL
JP4199339B2 (ja) 1998-10-20 2008-12-17 株式会社小松製作所 パルスレーザ用電源装置
CN100429622C (zh) * 2003-08-01 2008-10-29 甲骨文国际公司 数据管理方法
US7849223B2 (en) * 2007-12-07 2010-12-07 Microsoft Corporation Virtually synchronous Paxos
US7900085B2 (en) * 2008-05-29 2011-03-01 Red Hat, Inc. Backup coordinator for distributed transactions
JP5480046B2 (ja) * 2010-07-12 2014-04-23 日本電信電話株式会社 分散トランザクション処理システム、装置、方法およびプログラム
US9471593B1 (en) * 2010-12-30 2016-10-18 Emc Corporation Method and apparatus for ensuring consistent ordering of writes in a distributed database storage system
US9576026B2 (en) * 2013-03-13 2017-02-21 Futurewei Technologies, Inc. System and method for distributed SQL join processing in shared-nothing relational database clusters using self directed data streams
CN105608086B (zh) * 2014-11-17 2021-07-27 中兴通讯股份有限公司 分布式数据库系统的事务处理方法及装置
US9953053B2 (en) * 2014-12-18 2018-04-24 International Business Machines Corporation Reliability improvement of distributed transaction processing optimizations based on connection status
CN105183544B (zh) * 2015-09-17 2018-08-31 中国科学院计算技术研究所 一种非阻塞式容错的分布式事务提交方法及系统
CN106547796B (zh) * 2015-09-23 2022-01-25 南京中兴新软件有限责任公司 数据库的执行方法及装置
CN106649418A (zh) * 2015-11-04 2017-05-10 江苏引跑网络科技有限公司 一种在驱动中直连分片实现分布式数据库数据导入的高性能方法
US10185755B2 (en) * 2015-12-28 2019-01-22 Business Objects Software Limited Orchestration of data query processing in a database system
CN105824957B (zh) * 2016-03-30 2019-09-03 电子科技大学 分布式内存列式数据库的查询引擎系统及查询方法
CN106445644B (zh) * 2016-08-30 2019-11-05 中国民生银行股份有限公司 基于改进的一阶段提交的分布式事务的处理方法和装置
US10409811B1 (en) * 2017-01-27 2019-09-10 Intuit, Inc. Decomposition of queries
US10936578B2 (en) * 2017-06-01 2021-03-02 Sap Se Client-driven commit of distributed write transactions in a database environment
US10698897B2 (en) * 2017-09-25 2020-06-30 Splunk Inc. Executing a distributed execution model with untrusted commands
CN109783204A (zh) * 2018-12-28 2019-05-21 咪咕文化科技有限公司 一种分布式事务处理方法、装置及存储介质
CN109710388B (zh) * 2019-01-09 2022-10-21 腾讯科技(深圳)有限公司 数据读取方法、装置、电子设备以及存储介质
CN109977171B (zh) * 2019-02-02 2023-04-28 中国人民大学 一种保证事务一致性和线性一致性的分布式系统和方法

Also Published As

Publication number Publication date
EP4024236A1 (en) 2022-07-06
CN112650561B (zh) 2023-04-11
EP4024236A4 (en) 2022-10-26
JP7461468B2 (ja) 2024-04-03
CN112650561A (zh) 2021-04-13
WO2021068850A1 (zh) 2021-04-15
US20240095236A1 (en) 2024-03-21
JP2022550536A (ja) 2022-12-02

Similar Documents

Publication Publication Date Title
CN109977171B (zh) 一种保证事务一致性和线性一致性的分布式系统和方法
JP4612715B2 (ja) 情報処理システム、データ更新方法およびデータ更新プログラム
US9779128B2 (en) System and method for massively parallel processing database
US9037677B2 (en) Update protocol for client-side routing information
US11550819B2 (en) Synchronization cache seeding
CN106899648B (zh) 一种数据处理方法和设备
KR20210002574A (ko) 데이터 백업 방법, 저장 매체 및 컴퓨팅 기기
CN113268472A (zh) 一种分布式数据存储系统及方法
US10048983B2 (en) Systems and methods for enlisting single phase commit resources in a two phase commit transaction
KR20140047230A (ko) 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
CN113010549A (zh) 基于异地多活系统的数据处理方法、相关设备及存储介质
CN110417882B (zh) 主节点的确定方法、装置和存储介质
EP2416526B1 (en) Task switching method, server node and cluster system
US7219106B2 (en) System for distributing files and transmitting/receiving distributed files
KR20220065072A (ko) 트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체
US8725708B2 (en) Resolving a unit of work
CN113342507A (zh) 一种分布式锁服务实现方法、装置及计算机设备
CN109992575B (zh) 大数据的分布式存储系统
US10735515B2 (en) Layered distributed storage system and techniques for edge computing systems
WO2023274409A1 (zh) 在区块链系统中执行交易的方法和区块链节点
CN112749172A (zh) 一种缓存与数据库之间的数据同步方法及系统
Pankowski Consistency and availability of Data in replicated NoSQL databases
CN113468200B (zh) 对区块链系统中的分片进行扩容的方法及装置
CN110290215B (zh) 一种信号传输方法及装置
US11381642B2 (en) Distributed storage system suitable for sensor data