KR102103063B1 - 분산 컴퓨팅 시스템에서 데이터베이스 트랜잭션들을 프로세싱하는 방법 - Google Patents
분산 컴퓨팅 시스템에서 데이터베이스 트랜잭션들을 프로세싱하는 방법 Download PDFInfo
- Publication number
- KR102103063B1 KR102103063B1 KR1020177031717A KR20177031717A KR102103063B1 KR 102103063 B1 KR102103063 B1 KR 102103063B1 KR 1020177031717 A KR1020177031717 A KR 1020177031717A KR 20177031717 A KR20177031717 A KR 20177031717A KR 102103063 B1 KR102103063 B1 KR 102103063B1
- Authority
- KR
- South Korea
- Prior art keywords
- locks
- transaction
- data items
- order
- time interval
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 146
- 230000008569 process Effects 0.000 title claims abstract description 87
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000013500 data storage Methods 0.000 claims abstract description 35
- 238000005096 rolling process Methods 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 8
- 230000026676 system process Effects 0.000 claims 2
- 238000004422 calculation algorithm Methods 0.000 description 67
- 239000012634 fragment Substances 0.000 description 9
- 239000002253 acid Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
도 2는 두 개의 데이터베이스 트랜잭션들 간의 교착을 도시한다.
도 3은 우선적(pre-emptive) 교착 회피 알고리즘의 흐름도이다.
도 4는 도 3의 상기 알고리즘을 제 1 잠정적 교착 상황에 적용한 것을 도시한다.
도 5는 도 3의 상기 알고리즘을 제 2 잠정적 교착 상황에 적용한 것을 도시한다.
도 2는 두 개의 데이터베이스 트랜잭션들 간의 교착을 도시한다.
도 3은 우선적 교착 회피 알고리즘의 흐름도이다.
도 4는 도 3의 상기 알고리즘의 제 1 잠재적 교착 상황에 적용한 것을 도시한다.
도 5는 도 3의 상기 알고리즘의 제 2 잠재적 교착 상황에 적용한 것을 도시한다.
Claims (50)
- 다중 프로세싱 모듈들을 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법에서, 상기 방법은
상기 분산 컴퓨팅 시스템에서 동작하는 다중 프로세스들에 접근 가능한 데이터 저장 시스템에 데이터 항목들을 저장하는 단계 - 상기 데이터 항목들은 순서화 규칙에 따라 전체적으로(totally) 순서화되며, 상기 프로세스들의 적어도 일부는 다른 프로세싱 모듈들에서 동작함 - ; 및
복수의 상기 다중 프로세스들을 사용하여 트랜잭션들을 프로세싱하는 단계를 포함하되, 상기 복수의 상기 다중 프로세스들 중 하나를 사용하여 트랜잭션을 프로세싱하는 단계는
상기 데이터 저장 시스템에 저장된 데이터 항목들에 접근하기 위한 요청들 - 상기 요청들이 제 1 순서에 있음 - 의 세트를 수신하는 단계,
각각의 잠금들이 제 1 시간 간격 내에서 획득되는 경우에 상기 데이터 항목들에 대한 상기 잠금들을 상기 제 1 순서로 순차적으로 획득하는 단계,
상기 제 1 시간 간격 내에서 상기 잠금들 중 어느 것도 획득되지 않는 경우에 적어도 두 개의 상기 잠금들에 대한 상기 순서화 규칙과 일치하는 제 2 순서를 결정하는 단계, 및
프로세스되고 있는 상기 트랜잭션을 재시작하는 단계 - 데이터 항목들에 대한 잠금들을 상기 제 2 순서로 순차적으로 획득하는 단계를 포함함 - 를 더 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법. - 제 1 항에 있어서, 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계는 상기 트랜잭션을 롤백 (rolling back)하는 단계, 상기 데이터 항목들에 대한 임의의 기존의 잠금들을 해제하는 단계를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항 내지 제 2 항 중 어느 한 항에 있어서, 상기 제 2 순서는 상기 제 1 시간 간격 내에서 잠금들이 획득된 적어도 데이터 항목들에 대한 상기 순서화 규칙과 일치하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 프로세싱 단계는 상기 제 1 시간 간격 내에서 잠금들이 획득된 데이터 항목들의 상기 순서화 규칙에 기초하여 위치들을 식별하는 정보를 저장하는 단계를 더 포함하며, 상기 제 2 순서를 결정하는 단계는 상기 위치들을 식별하는 상기 저장된 정보에 적어도 부분적으로 기초하여 상기 제 2 순서를 결정하는 단계를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 제 2 순서를 결정하는 단계는 상기 순서화 규칙에 따라 상기 잠금들을 획득하기 위한 오퍼레이션들의 목록을 분류(sorting)하는 단계를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 프로세싱 단계는 상기 제 1 순서가 상기 순서화 규칙과 일치하는지 여부를 결정하는 단계, 그리고 상기 제 1 순서가 상기 순서화 규칙에 일치하는 경우에 상기 제 1 시간 간격 내에서 잠금이 획득되지 않은 임의의 데이터 항목들에 대한 잠금들을 위해 상기 제 1 시간 간격보다 길게 대기하는 단계를 더 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 프로세싱 단계는 상기 복수의 상기 다중 프로세스들 중 다른 프로세스들에 대한 요청들의 세트를 수신한 상기 프로세스의 우선 순위를 결정하는 단계를 더 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 7 항에 있어서, 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계는 상기 우선 순위를 결정하는 단계 이후에 수행되는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계는 상기 요청들의 세트에 의해 접근이 요청된 적어도 하나의 데이터 항목에 대한 잠금 상태가 변경된 것으로 결정하는 단계 이후에 수행되는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 프로세싱 단계는 상기 제 1 순서가 상기 순서화 규칙과 일치하는지 여부를 결정하는 단계를 더 포함하고, 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계는 제 1 순서가 상기 순서화 규칙과 일치하지 않는다는 결정 단계로부터 제 2 시간 간격 후에 수행되는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 10 항에 있어서, 상기 제 2 시간 간격은 상기 제 1 시간 간격보다 긴 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 제 1 시간 간격은 1 초 미만인 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 프로세싱 단계는 프로세스되고 있는 상기 트랜잭션이 커밋, 중단 또는 재시작될 때까지 상기 데이터 항목들에 대해 획득된 임의의 잠금들을 유지하는 단계 ; 및 프로세스되고 있는 상기 트랜잭션이 커밋, 중단, 재시작될 때 상기 데이터 항목들에 대한 상기 잠금들을 해제하는 단계를 더 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 데이터 항목들에 대한 상기 잠금들은 단일 잠금 해제된 상태 및 하나 이상의 잠금된 상태들을 포함하는 적어도 두 개의 상태들을 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 14 항에 있어서, 데이터 항목에 대한 잠금을 획득하는 단계는 상기 데이터 항목과 관련된 상기 잠금 상태를 상기 잠금된 상태들 중 하나로 변경하는 단계를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 14 항에 있어서, 데이터 항목에 대한 잠금을 해제하는 단계는 상기 데이터 항목과 관련된 상기 잠금 상태를 상기 잠금된 상태들 중 하나로부터 상기 잠금 해제된 상태로 변경하는 단계를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 14 항에 있어서, 상기 데이터 항목들에 대한 상기 잠금들은 단일 프로세스만이 잠금된 데이터 항목에 완전한 접근를 허용하는 적어도 하나의 배타적인 잠금된 상태를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 14 항에 있어서, 상기 데이터 항목들에 대한 상기 잠금들은 다중 프로세스들이 잠금된 데이터 항목에 읽기 전용 접근을 허용하는 적어도 하나의 공유된 잠금된 상태를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 다중 프로세스들 중 적어도 일부는 서로 비동기적으로 동작하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 트랜잭션들은 데이터베이스 트랜잭션들을 포함하고, 상기 데이터 항목들은 데이터베이스 내부의 레코드들인 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 20항에 있어서, 상기 데이터베이스는 메모리 내 (in-memory) 데이터베이스인 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 20 항에 있어서, 상기 데이터 저장 시스템은 상기 데이터베이스의 다수의 노드들 사이에 분산되는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 1 항에 있어서, 상기 복수의 상기 다중 프로세스들 중 적어도 일부는 상기 프로세싱 모듈들 중 다른 모듈들에서 동작하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 하나 이상의 컴퓨터들에 의해 실행될 때, 하나 이상의 컴퓨터들로 하여금 제1항 내지 제2항 및 제4항 내지 제23항 중 어느 하나의 항의 오퍼레이션들을 수행하게 하는 명령들을 저장하는 컴퓨터 판독 가능한 저장 매체.
- 트랜잭션들을 프로세싱하는 분산 컴퓨팅 시스템에서, 상기 분산 컴퓨팅 시스템은
복수의 프로세싱 모듈들; 및
데이터 항목들을 저장하기 위해 구성되는 데이터 저장 시스템 - 상기 데이터 저장 시스템은 상기 분산 컴퓨팅 시스템에서 동작하는 다중 프로세스들에 접근 가능하며, 상기 데이터 항목들은 순서화 규칙에 따라 전체적으로 순서화되며, 상기 프로세스들의 적어도 일부는 다른 프로세싱 모듈들에서 동작함 - 을 포함하며,
복수의 상기 다중 프로세스들은 트랜잭션들을 프로세스하기 위해 구성되며, 상기 복수의 상기 다중 프로세스들의 하나를 사용하여 트랜잭션을 프로세싱하는 단계는
상기 데이터 저장 시스템에 저장된 데이터 항목들에 접근하기 위한 요청들의 세트 - 상기 요청들이 제 1 순서에 있음 - 를 수신하는 단계,
잠금들의 각각이 제 1 시간 간격 내에서 획득되는 경우에 상기 데이터 항목들에 대한 상기 잠금들을 상기 제 1 순서로 순차적으로 획득하는 단계,
상기 제 1 시간 간격 내에서 상기 잠금들 중 어느 것도 획득되지 않는 경우에 적어도 두 개의 상기 잠금들에 대한 상기 순서화 규칙과 일치하는 제 2 순서를 결정하는 단계, 및
프로세스되고 있는 상기 트랜잭션을 재시작하는 단계 - 데이터 항목들에 대한 잠금들을 상기 제 2 순서로 순차적으로 획득하는 단계를 포함 - 를 더 포함하는 분산 컴퓨팅 시스템.
- 다중 프로세싱 모듈들을 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법에서, 상기 방법은
상기 분산 컴퓨팅 시스템에서 동작하는 다중 프로세스들에 접근 가능한 데이터 저장 시스템에 데이터 항목들을 저장하는 단계 - 상기 데이터 항목들은 순서화 규칙에 따라 전체적으로 순서화되며, 상기 프로세스들의 적어도 일부는 다른 프로세싱 모듈들에서 동작함 - ; 및
복수의 상기 다중 프로세스들을 사용하여 트랜잭션들을 프로세싱하는 단계를 포함하되, 상기 복수의 상기 다중 프로세스들의 하나를 사용하여 트랜잭션을 프로세싱하는 단계는
상기 데이터 저장 시스템에 저장된 데이터 항목들에 접근하기 위한 요청들의 세트 - 상기 요청들이 제 1 순서에 있음 - 를 수신하는 단계,
제 1 시간 간격 내에서 각각의 잠금들이 얻어지는 경우에 상기 데이터 항목들에 대한 상기 잠금들을 상기 제 1 순서로 순차적으로 획득하는 단계,
상기 제 1 시간 간격 내에서 상기 잠금들 중 어느 것도 획득되지 않는 경우에 상기 제 1 순서가 상기 순서화 규칙과 일치하는지 여부를 결정하는 단계, 및
상기 제 1 순서가 상기 순서화 규칙과 일치하지 않는 경우 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계를 더 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법. - 제 26 항에 있어서, 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계는 상기 트랜잭션을 롤백하는 단계, 상기 데이터 항목들에 대한 임의의 기존의 잠금들을 해제하는 단계 및 상기 제 1 순서와 다른 제 2 순서로 순차적으로 데이터 항목들에 대한 잠금들을 획득하는 단계를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항 내지 제 27 항 중 어느 한 항에 있어서, 상기 제 2 순서는 적어도 상기 제 1 시간 간격 내에서 잠금들이 획득된 적어도 상기 데이터 항목들에 대한 상기 순서화 규칙과 일치하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 프로세싱 단계는 상기 제 1 시간 간격 내에서 잠금들이 획득된 데이터 항목들의 상기 순서화 규칙에 기초하여 위치들을 식별하는 정보를 저장하는 단계, 및 상기 위치들을 식별하는 상기 저장된 정보에 적어도 부분적으로 기초하여 상기 제 2 순서를 결정하는 단계를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 제 2 순서는 상기 순서화 규칙에 따라 상기 잠금들을 획득하기 위한 오퍼레이션들의 목록 분류에 기초하여 결정되는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 프로세싱 단계는 상기 제 1 순서가 상기 순서화 규칙과 일치하는 경우 상기 제 1 시간 간격 내에서 잠금이 획득되지 않은 임의의 데이터 항목들에 대한 잠금들을 위한 상기 제 1 시간 간격보다 길게 대기하는 단계를 더 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 프로세싱은 상기 복수의 상기 다중 프로세스들 중 다른 프로세스들에 대한 상기 요청들의 세트를 수신한 프로세스의 우선 순위를 결정하는 단계를 더 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 32 항에 있어서, 상기 제 1 순서가 상기 순서화 규칙과 일치하지 않는 경우에 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계는 상기 우선 순위를 결정하는 단계 이후에 수행되는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 제 1 순서가 상기 순서화 규칙과 일치하지 않는 경우에 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계는 상기 요청들의 세트에 의해 접근이 요청된 적어도 하나의 데이터 항목에 대한 잠금 상태가 변경된 것으로 결정하는 단계 이후에 수행되는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 제 1 순서가 상기 순서화 규칙과 일치하지 않는 경우에 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계는 상기 제 1 순서가 상기 순서화 규칙과 일치하지 않는다고 결정하는 단계로부터 제 2 시간 간격 이후에 수행되는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 35 항에 있어서, 상기 제 2 시간 간격은 상기 제 1 시간 간격보다 긴 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 제 1 시간 간격은 1 초 미만인 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 프로세싱 단계는 프로세스되고 있는 상기 트랜잭션이 커밋, 중단, 또는 재시작될 때까지 상기 데이터 항목들에 대해 획득된 임의의 잠금들을 유지하는 단계; 및 프로세스되고 있는 상기 트랜잭션이 커밋, 중단 또는 재시작될 때 상기 데이터 항목들에 대한 상기 잠금들을 해제하는 단계를 더 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 데이터 항목들에 대한 상기 잠금들은 단일 잠금 해제된 상태 및 하나 이상의 잠금된 상태들을 포함하는 적어도 두 개의 상태들을 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 39 항에 있어서, 데이터 항목에 대한 잠금을 획득하는 단계는 상기 데이터 항목과 관련된 상기 잠금의 상태를 상기 잠금된 상태들 중 하나로 변경시키는 단계를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 39 항에 있어서, 데이터 항목에 대한 잠금을 해제하는 단계는 상기 데이터 항목과 관련된 상기 잠금의 상태를 상기 잠금된 상태들 중의 하나로부터 상기 잠금 해제된 상태로 변경하는 단계를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 39 항에 있어서, 상기 데이터 항목들에 대한 상기 잠금들은 단일 프로세스만이 잠금된 데이터 항목에 완전한 접근을 허용하는 적어도 하나의 배타적인 잠금된 상태를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 39 항에 있어서, 상기 데이터 항목에 대한 상기 잠금들은 다중 프로세스들이 잠금된 데이터 항목에 읽기 전용 접근을 허용하는 적어도 하나의 공유된 잠금된 상태를 포함하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 다중 프로세스들 중 적어도 일부는 서로 비동기적으로 동작하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 트랜잭션들은 데이터베이스 트랜잭션을 포함하고 상기 데이터 항목들은 데이터베이스 내부의 레코드들인 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 45 항에 있어서, 상기 데이터베이스는 메모리 내(in-memory) 데이터베이스인 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 45 항에 있어서, 상기 데이터 저장 시스템은 상기 데이터베이스의 다수의 노드들 사이에 분산되는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 제 26 항에 있어서, 상기 복수의 상기 다중 프로세스들 중 적어도 일부는 상기 프로세싱 모듈들 중 다른 모듈들에서 동작하는 분산 컴퓨팅 시스템에서 트랜잭션들을 프로세싱하는 방법.
- 삭제
- 트랜잭션들을 프로세싱하는 분산 컴퓨팅 시스템에서, 상기 분산 컴퓨팅 시스템은
복수의 프로세싱 모듈들; 및
데이터 항목들을 저장하기 위해 구성되는 데이터 저장 시스템 - 상기 데이터 저장 시스템은 상기 분산 컴퓨팅 시스템에서 동작하는 다중 프로세스들에 접근 가능하며, 상기 데이터 항목들은 순서화 규칙에 따라 전체적으로 순서화되며, 상기 프로세스들 중 적어도 일부는 다른 프로세싱 모듈들에서 동작함 - 을 포함하며,
복수의 상기 다중 프로세스들은 트랜잭션들을 프로세스하기 위해 구성되며, 상기 복수의 상기 다중 프로세스들 중 하나를 사용하여 트랜잭션을 프로세싱하는 단계는
상기 데이터 저장 시스템에 저장된 데이터 항목들에 접근하기 위한 요청들의 세트 - 상기 요청들이 제 1 순서에 있음 - 를 수신하는 단계,
잠금들의 각각이 제 1 시간 간격 내에서 획득되는 경우에 상기 데이터 항목들에 대한 상기 잠금들을 상기 제 1 순서로 순차적으로 획득하는 단계,
상기 제 1 시간 간격 내에서 상기 잠금들 중 어느 것도 획득되지 않는 경우에 상기 제 1 순서가 상기 순서화 규칙과 일치하는지 여부를 결정하는 단계, 및
상기 제 1 순서가 상기 순서화 규칙과 일치하지 않는 경우에 프로세스되고 있는 상기 트랜잭션을 재시작하는 단계를 더 포함하는 트랜잭션들을 프로세싱하는 분산 컴퓨팅 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562141388P | 2015-04-01 | 2015-04-01 | |
US62/141,388 | 2015-04-01 | ||
PCT/US2016/023554 WO2016160416A1 (en) | 2015-04-01 | 2016-03-22 | Processing database transactions in a distributed computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170132873A KR20170132873A (ko) | 2017-12-04 |
KR102103063B1 true KR102103063B1 (ko) | 2020-05-29 |
Family
ID=55750446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177031717A KR102103063B1 (ko) | 2015-04-01 | 2016-03-22 | 분산 컴퓨팅 시스템에서 데이터베이스 트랜잭션들을 프로세싱하는 방법 |
Country Status (10)
Country | Link |
---|---|
US (1) | US10140329B2 (ko) |
EP (1) | EP3278239B1 (ko) |
JP (1) | JP6724039B2 (ko) |
KR (1) | KR102103063B1 (ko) |
CN (1) | CN108337911B (ko) |
AU (1) | AU2016244128B2 (ko) |
CA (1) | CA2981476C (ko) |
HK (1) | HK1257454A1 (ko) |
SG (1) | SG11201707983QA (ko) |
WO (1) | WO2016160416A1 (ko) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390154B1 (en) | 2015-08-28 | 2016-07-12 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US10747753B2 (en) | 2015-08-28 | 2020-08-18 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US9529923B1 (en) | 2015-08-28 | 2016-12-27 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
JP6966544B2 (ja) | 2016-11-10 | 2021-11-17 | スワールズ,インコーポレイテッド | 匿名エントリを含む分散型データベースのための方法および装置 |
CN106775974B (zh) * | 2016-12-07 | 2019-12-10 | 国云科技股份有限公司 | 一种分布式优先级排队锁的实现方法 |
CN116820695A (zh) * | 2016-12-19 | 2023-09-29 | 海德拉哈希图有限责任公司 | 用于启用事件删除的分布式数据库的方法和设备 |
US10614039B2 (en) * | 2017-04-04 | 2020-04-07 | International Business Machines Corporation | Testing of lock managers in computing environments |
US11334678B2 (en) * | 2017-07-06 | 2022-05-17 | Chromaway Ab | Method and system for a distributed computing system |
WO2019014337A1 (en) | 2017-07-11 | 2019-01-17 | Swirlds, Inc. | METHODS AND APPARATUS FOR EFFICIENT IMPLEMENTATION OF A DISTRIBUTED DATABASE IN A NETWORK |
KR102188667B1 (ko) | 2017-11-01 | 2020-12-08 | 스월즈, 인크. | 고속 카피가능 데이터베이스를 효율적으로 구현하기 위한 방법들 및 장치 |
US11182379B2 (en) | 2018-08-24 | 2021-11-23 | Oracle International Corporation | DAG based methods and systems of transaction processing in a distributed ledger |
CN109471735A (zh) * | 2018-11-14 | 2019-03-15 | 常熟理工学院 | 分布式集中控制系统的现场数据信息安全控制方法及系统 |
JP7544733B2 (ja) | 2019-05-22 | 2024-09-03 | ヘデラ ハッシュグラフ,エルエルシー | 分散データベース内に状態証明及び台帳識別子を実装するための方法及び機器 |
CN110765143B (zh) * | 2019-10-10 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、服务器和存储介质 |
US11409559B2 (en) * | 2019-10-24 | 2022-08-09 | EMC IP Holding Company, LLC | System and method for weak lock allowing force preemption by high priority thread |
US11941611B2 (en) * | 2019-12-11 | 2024-03-26 | Intuit Inc. | Shareable and nested transactions on hash chains |
US11698898B2 (en) * | 2020-11-04 | 2023-07-11 | Salesforce, Inc. | Lock wait tracing |
US11822538B2 (en) | 2020-11-05 | 2023-11-21 | Oracle International Corporation | Systems and methods of transaction identification generation for transaction-based environment |
CN113111099B (zh) * | 2021-06-15 | 2021-08-24 | 蚂蚁金服(杭州)网络技术有限公司 | 一种环路检测方法、装置、电子设备与存储介质 |
CN114546705B (zh) * | 2022-02-28 | 2023-02-07 | 北京百度网讯科技有限公司 | 操作响应方法、操作响应装置、电子设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040199734A1 (en) * | 2003-04-03 | 2004-10-07 | Oracle International Corporation | Deadlock resolution through lock requeuing |
KR100611739B1 (ko) | 2003-12-24 | 2006-08-11 | 한국전자통신연구원 | 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원할당 및 반납 방법 |
KR101296778B1 (ko) | 2012-09-18 | 2013-08-14 | (주)카디날정보기술 | NoSQL 데이터베이스를 위한 결과적 트랜잭션 처리 방법 |
US20130325827A1 (en) * | 2012-05-31 | 2013-12-05 | Red Hat Inc. | Incremental optimistic locking of data distributed on multiple nodes to avoid transaction deadlock |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0679284B2 (ja) * | 1986-04-02 | 1994-10-05 | 株式会社日立製作所 | 分散デ−タベ−スシステムのデツドロツク防止方式 |
JP2850863B2 (ja) * | 1996-06-29 | 1999-01-27 | 日本電気株式会社 | 排他制御装置 |
CN101183377B (zh) * | 2007-12-10 | 2010-09-08 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群系统 |
CN101425070B (zh) * | 2008-08-11 | 2011-04-20 | 深圳市金蝶中间件有限公司 | 一种死锁定位的方法、死锁定位装置和数据系统 |
CN101727629A (zh) * | 2008-10-10 | 2010-06-09 | 北京资和信担保有限公司 | 自组织分布式金融业务系统 |
CN101576830B (zh) | 2009-06-04 | 2011-11-30 | 中兴通讯股份有限公司 | 数据库事务锁机制的死锁检测方法及装置 |
JP5352421B2 (ja) * | 2009-10-30 | 2013-11-27 | 株式会社エヌ・ティ・ティ・データ | データアクセス装置、データアクセス方法およびデータアクセスプログラム |
CN103136308A (zh) * | 2011-11-23 | 2013-06-05 | 英业达股份有限公司 | 应用系统数据库更新的方法和系统 |
US9208190B2 (en) | 2012-05-03 | 2015-12-08 | Red Hat, Inc. | Lock reordering for optimistic locking of data on a single node to avoid transaction deadlock |
CN102831156B (zh) * | 2012-06-29 | 2014-12-31 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
US20140136571A1 (en) * | 2012-11-12 | 2014-05-15 | Ecole Polytechnique Federale De Lausanne (Epfl) | System and Method for Optimizing Data Storage in a Distributed Data Storage Environment |
US9367346B2 (en) | 2013-02-20 | 2016-06-14 | Nec Corporation | Accelerating distributed transactions on key-value stores through dynamic lock localization |
US9652491B2 (en) * | 2013-04-15 | 2017-05-16 | International Business Machines Corporation | Out-of-order execution of strictly-ordered transactional workloads |
CN104252545B (zh) * | 2014-10-11 | 2017-05-31 | 南京国电南自维美德自动化有限公司 | 一种实时内存数据库的对象类型属性类型锁的实现方法 |
CN104317944B (zh) * | 2014-10-31 | 2018-07-06 | 上海实方软件有限公司 | 一种基于公式的时间戳动态调整并发控制方法 |
-
2016
- 2016-03-22 CA CA2981476A patent/CA2981476C/en active Active
- 2016-03-22 AU AU2016244128A patent/AU2016244128B2/en active Active
- 2016-03-22 SG SG11201707983QA patent/SG11201707983QA/en unknown
- 2016-03-22 KR KR1020177031717A patent/KR102103063B1/ko active IP Right Grant
- 2016-03-22 JP JP2017551177A patent/JP6724039B2/ja active Active
- 2016-03-22 EP EP16716093.6A patent/EP3278239B1/en active Active
- 2016-03-22 WO PCT/US2016/023554 patent/WO2016160416A1/en active Application Filing
- 2016-03-22 US US15/077,108 patent/US10140329B2/en active Active
- 2016-03-22 CN CN201680031962.0A patent/CN108337911B/zh active Active
-
2018
- 2018-12-28 HK HK18116689.2A patent/HK1257454A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040199734A1 (en) * | 2003-04-03 | 2004-10-07 | Oracle International Corporation | Deadlock resolution through lock requeuing |
KR100611739B1 (ko) | 2003-12-24 | 2006-08-11 | 한국전자통신연구원 | 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원할당 및 반납 방법 |
US20130325827A1 (en) * | 2012-05-31 | 2013-12-05 | Red Hat Inc. | Incremental optimistic locking of data distributed on multiple nodes to avoid transaction deadlock |
KR101296778B1 (ko) | 2012-09-18 | 2013-08-14 | (주)카디날정보기술 | NoSQL 데이터베이스를 위한 결과적 트랜잭션 처리 방법 |
Also Published As
Publication number | Publication date |
---|---|
AU2016244128A1 (en) | 2017-10-19 |
KR20170132873A (ko) | 2017-12-04 |
JP2018511886A (ja) | 2018-04-26 |
US20160292213A1 (en) | 2016-10-06 |
WO2016160416A1 (en) | 2016-10-06 |
CN108337911A (zh) | 2018-07-27 |
US10140329B2 (en) | 2018-11-27 |
JP6724039B2 (ja) | 2020-07-15 |
CA2981476C (en) | 2020-03-24 |
AU2016244128B2 (en) | 2018-08-30 |
SG11201707983QA (en) | 2017-10-30 |
CN108337911B (zh) | 2022-05-24 |
EP3278239A1 (en) | 2018-02-07 |
EP3278239B1 (en) | 2019-08-14 |
CA2981476A1 (en) | 2016-10-06 |
HK1257454A1 (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102103063B1 (ko) | 분산 컴퓨팅 시스템에서 데이터베이스 트랜잭션들을 프로세싱하는 방법 | |
US11003689B2 (en) | Distributed database transaction protocol | |
CN107977376B (zh) | 分布式数据库系统及事务处理方法 | |
US9208191B2 (en) | Lock-free, scalable read access to shared data structures | |
US9501502B2 (en) | Locking protocol for partitioned and distributed tables | |
US9367346B2 (en) | Accelerating distributed transactions on key-value stores through dynamic lock localization | |
US8713046B2 (en) | Snapshot isolation support for distributed query processing in a shared disk database cluster | |
EP3185142A1 (en) | Distributed database transaction protocol | |
US10402285B2 (en) | Hybrid database concurrent transaction control | |
US20080215586A1 (en) | Simulating Multi-User Activity While Maintaining Original Linear Request Order for Asynchronous Transactional Events | |
US9053153B2 (en) | Inter-query parallelization of constraint checking | |
US9576038B1 (en) | Consistent query of local indexes | |
US20180210914A1 (en) | Consistent query of local indexes | |
Padhye et al. | Scalable transaction management with snapshot isolation for NoSQL data storage systems | |
Levandoski et al. | Multi-version range concurrency control in deuteronomy | |
CN113168371A (zh) | 多主共享存储数据库的写-写冲突检测 | |
Padhye et al. | Scalable transaction management with snapshot isolation on cloud data management systems | |
US11392576B2 (en) | Distributed pessimistic lock based on HBase storage and the implementation method thereof | |
CN113886403B (zh) | 一种针对高竞争电商业务的数据管理系统及事务处理方法 | |
CN116974775A (zh) | 死锁检测方法、装置、计算机设备和存储介质 | |
JP6477169B2 (ja) | データベースの処理制御方法、処理制御プロラム及びデータベースサーバ | |
Haroon | Challenges of concurrency control in object oriented distributed database systems | |
Padhye | Transaction and data consistency models for cloud applications | |
CN119173863A (zh) | 用于更新查询的认证后的锁的方法和系统 | |
US20200310862A1 (en) | Adaptive hardware transactional memory based concurrency control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0105 | International application |
Patent event date: 20171101 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20181217 Patent event code: PE09021S01D |
|
E90F | Notification of reason for final refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Final Notice of Reason for Refusal Patent event date: 20190627 Patent event code: PE09021S02D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20200123 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20200414 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20200414 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20230328 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20240326 Start annual number: 5 End annual number: 5 |