KR20220031110A - 데이터 처리 방법 및 관련 장치 - Google Patents

데이터 처리 방법 및 관련 장치 Download PDF

Info

Publication number
KR20220031110A
KR20220031110A KR1020227004713A KR20227004713A KR20220031110A KR 20220031110 A KR20220031110 A KR 20220031110A KR 1020227004713 A KR1020227004713 A KR 1020227004713A KR 20227004713 A KR20227004713 A KR 20227004713A KR 20220031110 A KR20220031110 A KR 20220031110A
Authority
KR
South Korea
Prior art keywords
data
lock
data unit
information
unit
Prior art date
Application number
KR1020227004713A
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 KR20220031110A publication Critical patent/KR20220031110A/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/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • 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
    • G06F16/219Managing data history or versioning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 처리 분야에 관련된 데이터 처리 방법 및 관련 장치가 개시된다. 이 방법은 : 조작 명령어를 취득하는 단계(101), ―조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛의 정보를 포함함―; 조작대상 데이터 유닛의 정보에 따라 데이터 그룹 세트에서 타깃 데이터 그룹을 조회하는 단계(102), ―데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 데이터 유닛을 포함함―; 타깃 데이터 그룹의 잠금 상태 절보를 취득하는 단계(103); 잠금 상태 정보 및 조작 유형 정보에 기초하여, 검출 결과를 획득하도록 조작대상 데이터 유닛에 관한 잠금 검출을 수행하는 단계(104); 검출 결과에 기초하여 조작대상 데이터 유닛을 잠그는 단계(105); 및 잠금이 완료되면, 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하도록 조작 명령어를 실행하는 단계(106)를 포함한다. 이 방법은 조작대상 데이터 유닛이 속하는 타깃 데이터 그룹에 따라 조작대상 유닛에 대해 대응하는 잠금을 수행한다. 따라서, 안전을 보장하면서 데이터 처리의 효율이 향상될 수 있다.

Description

데이터 처리 방법 및 관련 장치
관련 출원
본 출원은, 그 전체 내용이 참조에 의해 본 명세서에 포함되는, 2019년 10월 10일 중국 특허청에 제출된 발명의 명칭이 "DATA PROCESSING METHOD AND APPARATUS, SERVER, AND STORAGE MEDIUM"인 중국 특허 출원 제201910959838.6호의 우선권을 주장한다.
발명의 분야
본 출원은 데이터 처리 분야에 관한 것으로, 구체적으로는, 데이터 처리 방법 및 장치, 서버, 및 저장 매체에 관한 것이다.
관계형 데이터베이스의 데이터는 테이블로서 간주될 수 있는 튜플(tuple) 형태로 저장된다. 테이블의 각각의 행(즉, 데이터베이스의 각각의 데이터 레코드)은 튜플이고 각각의 열은 속성(attribute)이다.
트랜잭션 처리는 데이터베이스의 데이터를 처리하기 위한 기술이다. 트랜잭션을 실행할 때, 컴퓨터는 종종 하나 이상의 튜플에 액세스할 필요가 있다. 동시 액세스 제어 기술은, 컴퓨터가 동시에 복수의 트랜잭션을 실행할 때 동일한 튜플에 대한 동시 액세스에 의해 야기될 수 있는 충돌 문제를 해결하는 것이다. 예를 들어, 트랜잭션 A에 대해 튜플이 판독될 필요가 있다. 그러나, 동시에 트랜잭션 B에 대해 그 튜플이 수정될 필요가 있으므로, 충돌이 발생할 수 있다. 충돌을 해결하기 위해, 일반적인 방법은 트랜잭션 A와 트랜잭션 B의 실행 시간들에서 시차를 갖게 하는 것이다.
그러나, 현재의 동시 액세스 제어 기술은 충돌 오판(conflict misjudgment)이 발생하기 쉽다. 그 결과, 충돌로서 오판되는 복수의 동시 트랜잭션은 실행 시간들에 있어서 시차를 갖게 하여 동시에 실행되지 못하게 할 필요가 있기 때문에, 트랜잭션 실행의 동시성이 낮다. 따라서, 동시 액세스 제어 기술에 기초한 현재의 데이터 처리 방법은 비효율적이다.
본 출원의 실시예들은 데이터 처리 효율을 개선하기 위한 데이터 처리 방법 및 장치, 서버, 및 저장 매체를 제공한다.
본 출원의 실시예들은 데이터 처리 방법을 제공하고, 이 방법은 하기의 단계들을 포함한다:
조작 명령어를 획득하는 단계, ―조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함―;
조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회하는 단계, ―데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함함―;
타깃 데이터 그룹의 잠금 상태 정보를 획득하는 단계;
잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하는 단계;
검출 결과에 기초하여 조작대상 데이터 유닛에 관한 잠금 처리를 수행하는 단계; 및
잠금 처리가 완료된 후 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하는 단계.
일부 실시예에서, 조작 유형 정보는 제1 조작 유형 및 제2 조작 유형을 포함하고, 잠금 검출은 제1 잠금 검출 및 제2 잠금 검출을 포함하고, 검출 결과는 제1 잠금 검출 결과 및 제2 잠금 검출 결과를 포함하며;
잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하는 단계는:
조작 유형 정보가 제1 조작 유형인 경우 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 검출을 수행하여 제1 잠금 검출 결과를 획득하는 단계; 또는
조작 유형 정보가 제2 조작 유형인 경우 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 검출을 수행하여 제2 잠금 검출 결과를 획득하는 단계를 포함하고;
잠금 처리는 제1 잠금 처리 및 제2 잠금 처리를 포함하고, 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 잠금 처리를 수행하는 단계는:
제1 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 처리를 수행하는 단계;
또는 제2 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 처리를 수행하는 단계를 포함한다.
일부 실시예에서, 잠금 상태 정보는 타깃 데이터 그룹의 데이터 유닛들의 데이터 잠금들을 포함하고, 데이터 잠금들은 제1 데이터 잠금 및 제2 데이터 잠금을 포함하며;
잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 검출을 수행하여 제1 잠금 검출 결과를 획득하는 단계는:
잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 대응하는 모든 데이터 잠금을 결정하는 단계; 및
모든 데이터 잠금이 제1 데이터 잠금도 제2 데이터 잠금도 포함하지 않는 경우 제1 잠금 검출 결과를 획득하는 단계를 포함하고;
제1 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 처리를 수행하는 단계는:
조작대상 데이터 유닛에 대해, 제1 잠금 검출 결과에 기초하여 조작 명령어의 제1 데이터 잠금을 잠금 상태 정보에 추가하는 단계를 포함한다.
일부 실시예에서, 잠금 상태 정보는 타깃 데이터 그룹의 데이터 유닛들의 데이터 잠금들을 포함하고, 데이터 잠금들은 제1 데이터 잠금 및 제2 데이터 잠금을 포함하며;
잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 검출을 수행하여 제2 잠금 검출 결과를 획득하는 단계는:
타깃 데이터 그룹의 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 대응하는 모든 데이터 잠금을 결정하는 단계; 및
조작대상 데이터 유닛에 대응하는 데이터 잠금이 제2 데이터 잠금만을 포함하는 경우, 제2 잠금 검출 결과를 획득하는 단계; 또는
조작대상 데이터 유닛에 대응하는 데이터 잠금이 제1 데이터 잠금도 제2 데이터 잠금도 포함하지 않는 경우, 제2 잠금 검출 결과를 획득하는 단계를 포함하고;
제2 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 처리를 수행하는 단계는:
조작대상 데이터 유닛에 대해, 제2 잠금 검출 결과에 기초하여 조작 명령어의 제2 데이터 잠금을 잠금 상태 정보에 추가하는 단계를 포함한다.
일부 실시예에서, 조작 명령어를 획득하기 전에, 이 방법은 하기 단계들을 더 포함한다:
미리설정된 값 범위 및 데이터 유닛들의 과거 조작 정보를 획득하는 단계;
과거 조작 정보에 기초하여 데이터 유닛들의 과거 조작들의 횟수들을 카운팅하는 단계; 및
과거 조작들의 횟수들 및 미리설정된 값 범위에 기초하여 데이터 유닛들을 그룹화하여 데이터 그룹 세트를 획득하는 단계.
일부 실시예에서, 데이터 그룹 세트는 하나의 제1 데이터 그룹 및 복수의 제2 데이터 그룹을 포함하고;
과거 조작들의 횟수들 및 미리설정된 값 범위에 기초하여 데이터 유닛들을 그룹화하여 데이터 그룹 세트를 획득하는 단계는:
과거 조작들의 횟수들에 기초하여 데이터 유닛들의 과거 조작 확률들을 각각 계산하는 단계;
하나의 제1 데이터 그룹을 생성하는 단계; 및
데이터 유닛의 과거 조작 확률이 미리설정된 값 범위에 속하지 않는 경우, 데이터 유닛을 제1 데이터 그룹에 추가하는 단계; 또는
데이터 유닛의 과거 조작 확률이 미리설정된 값 범위에 속하는 경우, 데이터 유닛에 대응하는 제2 데이터 그룹을 생성하고, 데이터 유닛을 데이터 유닛에 대응하는 제2 데이터 그룹에 추가하는 단계를 포함한다.
일부 실시예에서, 데이터 유닛은 복수의 데이터 서브유닛을 포함하고;
데이터 유닛에 대응하는 제2 데이터 그룹을 생성하고, 데이터 유닛을 데이터 유닛에 대응하는 제2 데이터 그룹에 추가하는 단계는:
데이터 유닛에 대응하는 제2 데이터 그룹을 생성하는 단계; 및
복수의 데이터 서브유닛을 데이터 유닛에 대응하는 제2 데이터 그룹에 추가하는 단계를 포함한다.
일부 실시예에서, 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회하기 전에, 이 방법은:
그룹화 업데이트 명령어를 획득하는 단계; 및
그룹화 업데이트 명령어의 명령어 유형이 사용자 그룹화 유형인 경우, 그룹화 업데이트 명령어를 채택함으로써 데이터 그룹 세트 내의 데이터 유닛들을 재그룹화하는 단계; 또는
그룹화 업데이트 명령어의 명령어 유형이 자동 그룹화 유형인 경우, 데이터 그룹 세트 내의 데이터 유닛들을 자동으로 재그룹화하는 단계를 더 포함한다.
일부 실시예에서, 데이터 그룹 세트 내의 데이터 유닛들을 자동으로 재그룹화하는 단계는 하기 단계들을 포함한다:
미리설정된 값 범위 및 데이터 유닛들의 과거 조작 정보를 획득하는 단계;
과거 조작 정보에 기초하여 데이터 그룹 세트 내의 데이터 유닛들의 과거 조작들의 횟수들을 카운팅하는 단계; 및
자동 재그룹화 후 과거 조작들의 횟수들 및 미리설정된 값 범위에 기초하여 데이터 유닛을 그룹화하여 데이터 그룹 세트를 획득하는 단계.
일부 실시예에서, 그룹화 업데이트 명령어는 그룹화 수량을 포함하고;
그룹화 업데이트 명령어를 채택함으로써 데이터 그룹 세트 내의 데이터 유닛들을 재그룹화하는 단계는:
데이터 그룹 세트 내의 데이터 유닛들을 데이터 그룹들의 그룹화 수량으로 균등하게 나누어 그룹화 후 데이터 그룹 세트를 획득하는 단계를 포함한다.
일부 실시예에서, 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행한 후, 이 방법은:
데이터 유닛의 과거 조작 정보를 획득하는 단계; 및
조작 명령어에 기초하여 데이터 유닛의 과거 조작 정보를 업데이트하는 단계를 더 포함한다.
일부 실시예에서, 잠금 상태 정보는 타깃 데이터 그룹 내의 데이터 유닛들의 데이터 잠금들을 포함하고;
조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행한 후, 이 방법은:
조작대상 데이터 유닛에 대해, 조작 명령어에 대응하는 데이터 잠금을 타깃 데이터 그룹의 잠금 상태 정보로부터 삭제하는 단계를 더 포함한다.
본 출원의 실시예들은 데이터 처리 장치를 더 제공하고, 이 장치는 하기 유닛들을 포함한다:
조작 명령어를 획득 ―조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함― 하도록 구성된 획득 유닛;
조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회 ―데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함함― 하도록 구성된 조회 유닛;
타깃 데이터 그룹의 잠금 상태 정보를 획득하도록 구성된 데이터 잠금 유닛;
잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하도록 구성된 검출 유닛;
검출 결과에 기초하여 조작대상 데이터 유닛에 관한 잠금 처리를 수행하도록 구성된 잠금 유닛; 및
잠금 처리가 완료된 후 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하도록 구성된 실행 유닛.
본 출원의 실시예들은 본 출원의 실시예들에 따른 데이터 처리 방법들 중 임의의 하나의 동작들을 수행하는 복수의 명령어 ―명령어들은 프로세서에 의해 로딩되도록 구성됨― 를 저장한 컴퓨터 판독가능한 저장 매체를 더 제공한다.
본 출원의 실시예들은 메모리 및 프로세서를 포함하는 서버를 더 제공하고, 메모리는 복수의 명령어를 저장하며, 프로세서는 본 출원의 실시예들에 따른 데이터 처리 방법들 중 임의의 하나의 동작들을 수행하기 위해 메모리에 저장된 명령어들을 로딩한다.
본 출원의 실시예들은 컴퓨터 프로그램 제품을 더 제공하고, 컴퓨터 프로그램 제품은 실행될 때 본 출원의 실시예들에 따른 데이터 처리 방법들 중 임의의 하나의 동작들을 수행하도록 구성된다.
본 출원의 실시예들에서, 조작 명령어가 획득될 수 있고, 조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함할 수 있고; 데이터 그룹 세트 내의 타깃 데이터 그룹은 조작대상 데이터 유닛 정보에 따라 조회될 수 있고, 데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함할 수 있고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함할 수 있고; 타깃 데이터 그룹의 잠금 상태 정보가 획득되고; 잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관해 잠금 검출이 수행되어 검출 결과를 획득하고; 검출 결과에 기초하여 조작대상 데이터 유닛에 관해 잠금 처리가 수행되고; 잠금 처리가 완료된 후에 조작 명령어가 실행되어, 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행한다.
본 출원에서, 조작 명령어를 실행하도록, 조작대상 데이터 유닛이 속하는 타깃 데이터 그룹에 따라 대응하는 잠금 처리가 조작대상 데이터 유닛에 관해 수행될 수 있다. 따라서, 본 출원에서는, 잠금 상태 정보 획득 및 잠금 처리 동안 계산량을 감소될 수 있음으로써, 보안을 보장하면서 데이터 처리 효율성을 향상시킬 수 있다.
이하에서는, 본 출원의 실시예들에서의 기술적 솔루션들을 더욱 명확하게 설명하기 위해, 실시예들을 설명하는데 요구되는 첨부도면들을 간략히 설명한다. 명백히, 이하의 설명에서의 첨부된 도면들은 본 출원의 일부 실시예만을 도시할 뿐이고, 본 기술분야의 통상의 기술자라면 창조적 노력없이 이들 첨부된 도면들로부터 다른 도면들을 여전히 유도해 낼 수 있을 것이다.
도 1a는 본 출원의 한 실시예에 따른 데이터 처리 방법의 적용 시나리오의 개략도이다.
도 1b는 본 출원의 한 실시예에 따른 데이터 처리 방법의 제1 개략적 플로차트이다.
도 1c는 본 출원의 한 실시예에 따른 데이터 처리 방법에서의 데이터 그룹의 개략적인 구조도이다.
도 1d는 본 출원의 한 실시예에 따른 데이터 처리 방법에서의 잠금 상태 정보의 개략도이다.
도 2a는 본 출원의 한 실시예에 따른 데이터 처리 방법의 제2 개략적 플로차트이다.
도 2b는 본 출원의 한 실시예에 따른 데이터 처리 방법의 특정한 잠금 상태 정보의 개략도이다.
도 2c는 본 출원의 한 실시예에 따른 데이터 처리 방법에서의 분산 데이터 서버의 개략적인 구조도이다.
도 3은 본 출원의 한 실시예에 따른 데이터 처리 장치의 개략적인 구조도이다.
도 4는 본 출원의 한 실시예에 따른 전자 디바이스의 개략적인 구조도이다.
본 출원의 실시예들의 기술적 솔루션은 본 출원의 실시예들에 첨부된 도면들을 참조하여 이하에서 명확하고 완전하게 설명된다. 명백하게, 설명되는 실시예들은 본 출원의 모든 실시예가 아니라 단지 일부일 뿐이다. 창조적 노력없이 본 출원의 실시예들에 기초하여 본 기술분야의 통상의 기술자에 의해 얻어지는 다른 모든 실시예들은 본 출원의 보호 범위 내에 든다.
표 1은 다음과 같은 사용자 데이터 테이블이다:
Figure pct00001
표는 튜플 A와 튜플 B를 포함한다. 각각의 튜플은 사용자의 4가지 속성, 각각 사용자 번호, 사용자 이름, 사용자 연령, 및 사용자 소속 그룹에 관한 데이터를 포함한다.
트랜잭션을 실행할 때, 컴퓨터는 종종 하나 이상의 튜플에 액세스할 필요가 있다. 제1 유형 액세스, 제2 유형 액세스 등을 포함한 많은 액세스 방식이 있다. 예를 들어, 제1 유형 액세스는 데이터 판독을 지칭할 수 있고, 제2 유형 액세스는 데이터 기입을 나타낼 수 있다. 또 다른 예에서, 제1 유형 액세스는 데이터 기입을 지칭할 수 있고, 제2 유형 액세스는 데이터 판독을 나타낼 수 있는 등이다.
종래 기술에서, 충돌을 방지하기 위해, 트랜잭션은 튜플들에 액세스하기 전에 튜플들에 데이터 잠금들을 추가하고, 액세스가 완료된 후에는 튜플에 관한 데이터 잠금을 해제하여, 튜플이 잠금해제될 때까지 또 다른 트랜잭션이 잠긴 튜플들에 액세스할 수 없도록 함으로써, 잘못된 데이터 처리를 방지할 필요가 있기 때문에, 낮은 데이터 처리 효율을 초래한다.
예를 들어, 표 2의 트랜잭션 A와 트랜잭션 B를 참조하면, 트랜잭션 A와 트랜잭션 B는 사용자 데이터 테이블에 관한 조작을 수행할 수 있다.
Figure pct00002
트랜잭션 A가 먼저 실행을 시작한다는 것을 알 수 있다. 튜플 A의 사용자 이름 판독을 실행하기 전에, 트랜잭션 A는 먼저 튜플 A를 잠글 필요가 있다. 트랜잭션 A가 성공적으로 잠그고 판독을 완료한 후, 트랜잭션 B가 실행을 시작한다. 트랜잭션 B는 튜플 A에 관한 데이터 잠금이 없을 때까지 기다린 다음 튜플 A의 사용자 소속 그룹에 기입할 필요가 있기 때문에, 트랜잭션 B는 튜플 A를 잠그기 위해 시점 t10까지 기다릴 필요가 있다.
그러나, 트랜잭션 A에 의한 튜플 A의 사용자 이름 판독과 트랜잭션 B에 의한 튜플 A의 사용자 소속 그룹 기입 사이에는 충돌이 없음을 알 수 있다. 그러나, 현재의 충돌 검출 메커니즘은 이 경우를 여전히 충돌로서 오판한다.
본 출원의 실시예들은, 충돌 오판의 전술된 경우를 해결함으로써 데이터 처리 효율을 향상시키는 데이터 처리 방법 및 관련 장치를 제공한다.
이 데이터 처리 장치는 구체적으로 전자 디바이스에 통합될 수 있다. 전자 디바이스는 단말기 또는 서버 등의 디바이스일 수 있다. 단말기는, 모바일 전화, 태블릿 컴퓨터, 지능형 Bluetooth 디바이스, 노트북 컴퓨터, 또는 개인용 컴퓨터(PC) 등의 디바이스일 수 있다. 서버는 단일 서버이거나, 복수의 서버를 포함하는 서버 클러스터일 수 있다.
일부 실시예에서, 데이터 처리 장치는 대안으로서 복수의 전자 디바이스에 통합될 수 있다. 예를 들어, 데이터 처리 장치는 복수의 서버에 통합될 수 있고, 본 출원의 데이터 처리 방법은 복수의 서버에 의해 구현된다.
도 1a를 참조하면, 전자 디바이스는 서버에 통합될 수 있다. 서버는, 조작 명령어 ―조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함― 를 획득하고; 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회하고, ―데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함함―; 타깃 데이터 그룹의 잠금 상태 정보를 획득하고; 잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관해 잠금 검출을 수행하여 검출 결과를 획득하고; 검출 결과에 기초하여 조작대상 데이터 유닛에 관해 잠금 처리를 수행하고; 잠금 처리가 완료된 후에 조작 명령어를 실행하여, 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행할 수 있다.
따라서, 이 솔루션을 통해, 조작대상 데이터 유닛에 대응하는 타깃 데이터 그룹의 잠금 상태 정보에 따라 잠금이 수행될 수 있는지 및 조작 명령어가 실행될 수 있는지가 결정되어, 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행할 수 있다. 이 솔루션을 통해, 충돌이 더욱 정확하게 판단될 수 있음으로써, 전술된 충돌 오판으로 인한 낮은 데이터 처리 효율 문제를 해결할 수 있다.
상세한 설명은 아래에서 별도로 제공된다. 이하의 실시예들의 시퀀스 번호들은 실시예들의 선호 순서를 제한하려는 의도는 아니다.
이 실시예에서, 데이터 처리 방법이 제공된다. 도 1b에 도시된 바와 같이, 데이터 처리 방법의 구체적인 프로세스는 다음과 같을 수 있다.
101: 조작 명령어를 획득, ―조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함―.
조작 명령어는 데이터베이스의 데이터에 관한 조작 명령어일 수 있고, 조작 명령어의 조작 유형 정보와, 조작 명령어에 의해 조작될 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함할 수 있다.
한 가능한 구현에서, 조작 명령어는 네트워크를 이용하여 네트워크 서버로부터 획득하거나, 데이터 처리 장치에 통합된 전자 디바이스에 의해 정기적으로 생성되거나, 기술자가 전자 디바이스를 조작하고 데이터 처리 장치가 전자 디바이스에 의해 생성된 조작 명령어를 획득하는 방식으로 획득되거나, 등등일 수 있다.
예를 들어, 일부 실시예에서, 데이터 처리 장치는 기술자에 의해 전송된 조작 명령어를 획득할 수 있다. 데이터베이스 업데이트 시나리오에서, 기술자는 업데이트 파일을 데이터베이스 서버에 임포트할 수 있다. 업데이트 파일을 임포트하는 프로세스 동안, 데이터베이스 서버는 기술자의 업데이트 파일 및 업데이트 조작들에 따라 복수의 조작 명령어를 생성할 수 있다.
조작 유형 정보에는, 예를 들어, 데이터 판독, 데이터 삭제, 데이터 업데이트, 데이터 수정, 데이터 기입 등, 특정한 데이터 조작 방법이 기록될 수 있다.
조작 명령어에 의해 조작되는 데이터 유닛은 조작대상 데이터 유닛 정보에 기록될 수 있다. 데이터 유닛은, 데이터 정보를 데이터베이스에 저장하는 데이터 입자(data particle)들에 의해 형성된다. 입도(granularity)는 데이터베이스에 저장된 데이터 입자들의 정제도(refinement degree)를 기술하는데 이용될 수 있다. 데이터베이스 내의 데이터 입자들의 입도가 미세할수록 데이터베이스의 정제도가 높음을 나타내고, 데이터베이스의 데이터 입자들의 입도가 거칠수록 데이터베이스의 정제도가 낮음을 나타낸다.
데이터 입자는 데이터 정보를 데이터베이스에 저장하는데 이용되는 최소 유닛이다.
예를 들어, 표 1을 참조하면, 표 1에는, 각각 0001(튜플 A의 사용자 번호), Alan(튜플 A의 사용자 이름), 18(튜플의 사용자 연령), 및 학생(튜플 A의 사용자 소속 그룹), 0002(튜플 B의 사용자 번호), Bryan(튜플 B의 사용자 이름), 26(튜플 B의 사용자 연령), 및 변호사(튜플 B의 사용자 소속 그룹)인 8개의 데이터 입자가 있다.
데이터 유닛은 하나 이상의 데이터 입자에 의해 형성될 수 있다. 예를 들어, 표 1은, 튜플 A와 튜플 B라는 2개의 데이터 유닛을 포함할 수 있다. 하나의 데이터 유닛(즉, 튜플 A)은 각각 0001, Alan, 18 및 student인 4개의 데이터 입자를 갖고, 다른 데이터 유닛(즉, 튜플 B)은 각각 0002, Bryan, 26 및 변호사인 4개의 데이터 입자를 갖는다.
또 다른 예에서, 표 1은, 각각 사용자 번호, 사용자 이름, 사용자 연령, 및 사용자 소속 그룹(변호사)인 4개의 데이터 유닛을 포함할 수 있다. 하나의 데이터 유닛(즉, 사용자 번호)은 각각 0001과 0002라는 2개의 데이터 입자를 갖고, 또 다른 데이터 유닛(즉, 사용자 이름)은 각각 Alan과 Bryan이라는 2개의 데이터 입자를 갖고, 또 다른 데이터 유닛(즉, 사용자 연령)은 각각 18 및 26이라는 2개의 데이터 입자를 갖고, 마지막 데이터 유닛(즉, 사용자 소속 그룹)은 각각 학생과 변호사라는 2개의 데이터 입자를 갖는다.
현재, 데이터베이스 내의 데이터 유닛은 복수의 데이터 입자로 형성된 튜플이다. 튜플은 데이터베이스에 저장된 데이터 테이블 구조의 데이터의 행이다. 예를 들어, 표 1을 참조하면, 데이터베이스가 표 1 등의 데이터 테이블을 저장할 때, 튜플이란 표 1의 각각의 행을 지칭한다. 즉, 표 1은 2개의 튜플, 각각 튜플 A와 튜플 B를 포함한다. 튜플 A는 4개의 데이터 입자로 형성되고, 튜플 A(0001, Alan, 18, student)로서 표현될 수 있다. 튜플 B는 4개의 데이터 입자로 형성되며, 튜플 B(0002, Bryan, 26, 변호사)로서 표현될 수 있다.
이 솔루션에서, 데이터 유닛이 데이터 입자들에 의해 형성되는 방식은 데이터베이스의 초기 설정에 따라 결정되거나 기술자에 의해 데이터베이스의 설정에 따라 수정될 수 있다. 즉, 데이터 유닛의 입도는 튜플의 입도보다 작게 수정된다.
데이터 그룹 세트는 하나 이상의 데이터 그룹을 포함할 수 있고, 데이터 그룹들 각각은 하나 이상의 데이터 유닛을 포함할 수 있다. 예를 들어, 표 1이 데이터 그룹 세트라고 가정하자. 데이터 그룹 세트에는 하나의 데이터 그룹만이 있다. 데이터 그룹은 튜플 A와 튜플 B이다. 데이터 그룹은 8개의 데이터 유닛, 각각, 튜플 A의 사용자 번호, 튜플 A의 사용자 이름, 튜플 A의 사용자 연령, 튜플 A의 사용자 소속 그룹, 튜플 B의 사용자 번호, 튜플 B의 사용자 이름, 튜플 B의 사용자 연령, 및 튜플 B의 사용자 소속 그룹을 가질 수 있다.
일부 실시예에서, 데이터 유닛들은, 데이터 유닛들이 합리적으로 할당됨으로써 충돌 오판 확률을 더욱 감소시키도록 미리 데이터 그룹에 자동으로 할당될 수 있다. 단계 101 후에, 이 방법은 다음과 같은 단계들을 포함할 수 있다:
미리설정된 값 범위 및 데이터 유닛들의 과거 조작 정보를 획득하는 단계;
과거 조작 정보에 기초하여 데이터 유닛들의 과거 조작들의 횟수들을 카운팅하는 단계; 및
과거 조작들의 횟수들 및 미리설정된 값 범위에 기초하여 데이터 유닛들을 그룹화하여 데이터 그룹 세트를 획득하는 단계.
미리설정된 값 범위는 본 기술분야의 통상의 기술자에 의해 설정되거나, 네트워크를 이용하여 획득되거나, 이전에 계산된 오판 확률 등에 따라 획득될 수도 있다.
데이터 유닛의 과거 조작 정보란 과거 시간에 기록된 조작 명령어들을 지칭한다. 즉, 과거 시간의 조작대상 데이터 유닛의 조작 유형 정보가 기록된다. 과거 시점부터 현재 시점까지 각각의 데이터 유닛이 조작된 횟수, 즉, 과거 조작의 횟수는 과거 조작 정보에 기초하여 카운트될 수 있다.
일부 실시예에서, 데이터 그룹 세트는 하나의 제1 데이터 그룹 및 복수의 제2 데이터 그룹을 포함할 수 있다. 과거 조작들의 횟수들 및 미리설정된 값 범위에 기초하여 데이터 유닛을 그룹화하여 데이터 그룹 세트를 획득하는 단계는 다음과 같은 단계들을 포함할 수 있다:
과거 조작들의 횟수들에 기초하여 데이터 유닛들의 과거 조작 확률들을 각각 계산하는 단계;
하나의 제1 데이터 그룹을 생성하는 단계; 및
데이터 유닛의 과거 조작 확률이 미리설정된 값 범위에 속하지 않는 경우, 데이터 유닛을 제1 데이터 그룹에 추가하는 단계; 또는
데이터 유닛의 과거 조작 확률이 미리설정된 값 범위에 속하는 경우, 데이터 유닛에 대응하는 제2 데이터 그룹을 생성하고, 데이터 유닛을 데이터 유닛에 대응하는 제2 데이터 그룹에 추가하는 단계를 포함한다.
예를 들어, 높은 과거 조작 확률들을 갖는 데이터 유닛들은, 컴퓨터가 이러한 데이터 유닛들을 처리할 때 충돌들이 발생할 가능성이 더 높은 것으로서 간주될 수 있다. 따라서, 충돌들을 일으킬 가능성이 높은 이러한 데이터 유닛들을 하나의 그룹으로 나누고, 충돌들을 일으킬 가능성이 낮은 데이터 유닛들을 또 하나의 그룹으로 나누면, 충돌 오판률을 효과적으로 감소시킬 수 있음과 동시에, 특히 데이터 유닛이 너무 많은 경우 계산량을 감소시킬 수 있다.
일부 실시예에서, 메모리 소비를 감소시키도록 데이터 그룹의 수량을 최소화하기 위해, 데이터 유닛은 복수의 데이터 서브유닛을 포함할 수 있다. 데이터 유닛에 대응하는 제2 데이터 그룹을 생성하고, 데이터 유닛을 데이터 유닛에 대응하는 제2 데이터 그룹에 추가하는 단계들은 다음과 같은 특정한 단계들을 포함할 수 있다:
데이터 유닛에 대응하는 제2 데이터 그룹을 생성하는 단계; 및
복수의 데이터 서브유닛을 데이터 유닛에 대응하는 제2 데이터 그룹에 추가하는 단계.
제2 데이터 그룹(second data group)을 생성하는 방식은 다음과 같다: 각각의 제2 데이터 그룹의 과거 조작 확률은 제2 데이터 그룹 내의 모든 데이터 유닛(data unit)의 과거 조작 확률들의 합과 같은 한편, 각각의 제2 데이터 그룹의 과거 조작 확률은 미리설정된 값 범위에 속한다.
예를 들어, 다음과 같은 공식을 참조한다:
Figure pct00003
여기서 n은 제2 데이터 그룹 내의 데이터 유닛의 수량이다.
단계 102: 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회한다.
도 1c를 참조하면, 데이터 그룹 세트는 복수의 데이터 그룹을 포함할 수 있고, 데이터 그룹들 각각은 복수의 데이터 유닛을 포함할 수 있다.
조작대상 데이터 유닛에 대응하는 타깃 데이터 그룹은 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트에서 조회될 수 있다.
예를 들어, 도 1c에 도시된 데이터 그룹 세트에서, 조작대상 데이터 유닛 정보에 따라, 조작대상 데이터 유닛에 대응하는 타깃 데이터 그룹이 조회될 수 있다. 예를 들어, 조작대상 데이터 유닛 정보에 따라 조작대상 데이터 유닛으로서 데이터 유닛 c가 이용되는 경우, 데이터 그룹 2가 타깃 데이터 그룹으로서 결정될 수 있다.
일부 실시예에서, 솔루션에서, 데이터 그룹 세트는 자주 자동으로 업데이트될 수 있으므로, 충돌이 더 정확하게 결정될 수 있다. 따라서, 이 방법은 충돌들의 누락을 방지하기 위해 단계 102 전에 매번 다음과 같은 단계들을 더 포함할 수 있다:
그룹화 업데이트 명령어를 획득하는 단계; 및
그룹화 업데이트 명령어의 명령어 유형이 사용자 그룹화 유형인 경우, 그룹화 업데이트 명령어를 채택함으로써 데이터 그룹 세트 내의 데이터 유닛들을 재그룹화하는 단계; 또는
그룹화 업데이트 명령어의 명령어 유형이 자동 그룹화 유형인 경우, 데이터 그룹 세트 내의 데이터 유닛들을 자동으로 재그룹화하는 단계.
그룹화 업데이트 명령어는 데이터 그룹 세트를 업데이트하는데 이용되는 명령어일 수 있다. 그룹화 업데이트 명령어는 사용자에 의해 설정되어 전송될 수 있거나, 그룹화 업데이트 명령어에 의해 주기적으로 생성될 수 있거나, 네트워크로부터 획득될 수 있다.
그룹화 업데이트 명령어는 복수의 유형을 가질 수 있다. 예를 들어, 그룹화 업데이트 명령어는 사용자 그룹화 유형 또는 자동 그룹화 유형일 수 있다. 일부 실시예에서, 그룹화 업데이트 명령어는 대안으로서 혼합 그룹화 유형일 수 있다.
사용자 그룹화 유형의 그룹화 업데이트 명령어란, 그룹화 업데이트 명령어가 사용자에 의해 발행된 그룹화 업데이트 명령어임을 말한다. 자동 그룹화 유형의 그룹화 업데이트 명령어란, 그룹화 업데이트 명령어가 컴퓨터에 의해 자동으로 생성된 그룹화 업데이트 명령어임을 말한다.
일부 실시예에서, 데이터 그룹 세트 내의 데이터 유닛들을 자동으로 재그룹화하는 단계는 다음과 같은 단계들을 포함할 수 있다:
미리설정된 값 범위 및 데이터 유닛들의 과거 조작 정보를 획득하는 단계;
과거 조작 정보에 기초하여 데이터 그룹 세트 내의 데이터 유닛들의 과거 조작들의 횟수들을 카운팅하는 단계; 및
자동 재그룹화 후 과거 조작들의 횟수들 및 미리설정된 값 범위에 기초하여 데이터 유닛을 그룹화하여 데이터 그룹 세트를 획득하는 단계.
일부 실시예에서, 그룹화 업데이트 명령어는 그룹화 수량을 포함할 수 있고, 그룹화 업데이트 명령어를 채택함으로써 데이터 그룹 세트 내의 데이터 유닛들을 재그룹화하는 단계는 다음과 같은 단계를 포함할 수 있다:
데이터 그룹 세트 내의 데이터 유닛들을 데이터 그룹들의 그룹화 수량으로 균등하게 나누어 그룹화 후 데이터 그룹 세트를 획득하는 단계.
사용자 그룹화 유형의 그룹화 업데이트 명령어는 사용자에 의해 설정된 그룹화 수량을 포함할 수 있다.
예를 들어, 사용자가 그룹화 수량을 5로 설정했다면, 총 100개의 데이터 유닛이 있다고 가정하면, 100개의 데이터 유닛은 5개의 그룹으로 나뉘고, 각각의 그룹은 20개의 데이터 유닛을 포함한다.
일부 실시예에서, 충돌 검출의 정확도를 향상시키고 사용자의 조작 어려움을 감소시키기 위해, 혼합 그룹화 유형의 그룹화 업데이트 명령어가 더 제공될 수 있다. 구체적인 혼합 그룹화 방식은, 전술한 사용자 그룹화 방식과 컴퓨터 자동 그룹화 방식의 혼합이다.
예를 들어, 사용자 그룹화 유형의 그룹화 업데이트 명령어가 획득될 수 있다. 데이터 유닛들은 사용자 그룹화 유형의 그룹화 업데이트 명령어에 따라 미리 그룹화되고, 사용자에 의해 미리 그룹화된 데이터는 후속 데이터 처리 시나리오에서 자동으로 더 그룹화된다.
103: 타깃 데이터 그룹의 잠금 상태 정보를 획득한다.
잠금 상태 정보란, 데이터 그룹 내의 모든 데이터 유닛의 데이터 잠금들의 상태 정보를 지칭한다. 데이터 잠금은, 데이터 유닛 또는 데이터 그룹의 잠금 상태를 나타내는데 이용되는 가상 개념이다.
데이터 잠금의 상태 정보는 데이터 잠금의 유형을 나타낼 수 있다. 데이터 잠금은 복수의 유형을 포함할 수 있다. 예를 들어, 데이터 잠금은, 데이터 잠금의 판독 잠금(공유 잠금) 유형 및 데이터 잠금의 기입 잠금(독점 잠금) 유형을 포함할 수 있다.
잠금 상태 정보는, 식별자들, 텍스트들, 심볼들 등에 의해 표현될 수 있다. 예를 들어, 0은 데이터 잠금 없음을 나타내고, 1은 데이터 잠금의 판독 잠금 유형을 나타내고, 2는 데이터 잠금의 기입 잠금 유형을 나타낸다.
예를 들어, 일부 실시예에서, 데이터 잠금은 제1 데이터 잠금 및 제2 데이터 잠금으로 분류될 수 있다. 도 1d를 참조하면, 데이터 그룹 A는 잠금 상태 정보 A와 맵핑 관계를 가질 수 있고, 데이터 그룹 B는 잠금 상태 정보 B와 맵핑 관계를 가질 수 있다.
잠금 상태 정보 A는, 데이터 그룹 A 내의 데이터 유닛들의 데이터 잠금들, 예를 들어 트랜잭션 A에 의해 데이터 그룹 A 내의 데이터 유닛 x에 추가된 제1 데이터 잠금, 및 트랜잭션 B에 의해 데이터 그룹 A 내의 데이터 유닛 y에 추가된 제2 데이터 잠금의 상태 정보를 갖는다.
104: 잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득한다.
조작 유형 정보는 제1 조작 유형 및 제2 조작 유형을 포함할 수 있다. 잠금 검출은 제1 잠금 검출 및 제2 잠금 검출을 포함할 수 있다. 검출 결과는 제1 잠금 검출 결과 및 제2 잠금 검출 결과를 포함할 수 있다.
단계 104는 다음과 같은 단계들을 포함할 수 있다.
잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하는 단계는:
조작 유형 정보가 제1 조작 유형인 경우 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 검출을 수행하여 제1 잠금 검출 결과를 획득하는 단계; 또는
조작 유형 정보가 제2 조작 유형인 경우 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 검출을 수행하여 제2 잠금 검출 결과를 획득하는 단계를 포함한다.
데이터 잠금들은 제1 데이터 잠금 및 제2 데이터 잠금을 포함할 수 있다. 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 검출을 수행하여 제1 잠금 검출 결과를 획득하는 단계는 다음과 같은 단계들을 포함할 수 있다:
타깃 데이터 그룹의 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 대응하는 모든 데이터 잠금을 결정하는 단계; 및
모든 데이터 잠금이 제1 데이터 잠금도 제2 데이터 잠금도 포함하지 않는 경우 제1 잠금 검출 결과를 획득하는 단계.
잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 검출을 수행하여 제2 잠금 검출 결과를 획득하는 단계는 다음과 같은 단계들을 포함할 수 있다:
타깃 데이터 그룹의 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 대응하는 모든 데이터 잠금을 결정하는 단계; 및
모든 데이터 잠금이 제2 데이터 잠금만을 포함하는 경우, 제2 잠금 검출 결과를 획득하는 단계; 또는
모든 데이터 잠금이 제1 데이터 잠금도 제2 데이터 잠금도 포함하지 않는 경우 제2 잠금 검출 결과를 획득하는 단계.
105: 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 잠금 처리를 수행한다.
잠금 처리는 제1 잠금 처리 및 제2 잠금 처리를 포함할 수 있다. 단계 105는 다음과 같은 단계들을 포함할 수 있다:
제1 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 처리를 수행하는 단계;
또는 제2 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 처리를 수행하는 단계.
제1 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 처리를 수행하는 단계는 다음과 같은 단계를 포함할 수 있다:
조작대상 데이터 유닛에 대해, 제1 잠금 검출 결과에 기초하여 조작 명령어의 제1 데이터 잠금을 타깃 데이터 그룹의 잠금 상태 정보에 추가하는 단계.
제2 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 처리를 수행하는 단계는 다음과 같은 단계를 포함할 수 있다 :
조작대상 데이터 유닛에 대해, 제2 잠금 검출 결과에 기초하여 조작 명령어의 제2 데이터 잠금을 타깃 데이터 그룹의 잠금 상태 정보에 추가하는 단계.
데이터 잠금은 복수의 유형을 포함할 수 있다. 예를 들어, 데이터 잠금은 판독 잠금(공유 잠금)과 기입 잠금(독점 잠금)을 포함할 수 있다. 기입 잠금은 제1 데이터 잠금이라고 지칭될 수 있고, 판독 잠금은 제2 데이터 잠금이라고 지칭될 수 있다. 2개의 유형의 잠금들 사이의 관계는 다음과 같을 수 있다:
조작대상 데이터 유닛의 판독 잠금들은 공존할 수 있고, 조작대상 데이터 유닛의 판독 잠금과 기입 잠금은 상호배타적이며, 조작대상 데이터 유닛의 기입 잠금들은 상호배타적이다.
예를 들어, 데이터 유닛 Q가 조작 명령어 A에 대응하는 트랜잭션 A에 의해 처리될 때, 데이터 유닛 Q가 이미 트랜잭션 A의 판독 잠금을 갖고 있다고 가정하면, 트랜잭션 B는 트랜잭션 B의 판독 잠금을 데이터 유닛 Q에 추가할 수 있지만, 트랜잭션 B의 기입 잠금을 데이터 유닛 Q에 추가할 수 없다. 데이터 유닛 Q가 이미 트랜잭션 A의 기입 잠금을 갖고 있다고 가정하면, 트랜잭션 B는 트랜잭션 B의 판독 잠금을 데이터 유닛 Q에 추가할 수도 없고, 트랜잭션 B의 기입 잠금을 데이터 유닛 Q에 추가할 수도 없다.
일부 실시예에서, 충돌 검출의 정확도를 개선하도록 판독 및 기입 조작들을 더 구별하기 위해, 조작 유형 정보는 제1 조작 유형 및 제2 조작 유형을 포함할 수 있고, 잠금 처리는 제1 잠금 처리 및 제2 잠금 처리를 포함한다. 단계 104는 다음과 같은 단계들을 포함할 수 있다:
조작 유형 정보가 제1 조작 유형인 경우 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 처리를 수행하는 단계; 또는
조작 유형 정보가 제2 조작 유형인 경우, 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 처리를 수행하는 단계.
예를 들어, 제1 조작 유형은 기입 유형일 수 있고, 제2 조작 유형은 판독 유형일 수 있고, 등등일 수 있다.
예를 들어, 제1 잠금 처리는 기입 잠금을 조작대상 데이터 유닛에 추가하는 것을 지칭할 수 있고, 제2 잠금 처리는 판독 잠금을 조작대상 데이터 유닛에 추가하는 것을 지칭할 수 있고, 등등일 수 있다.
조작대상 데이터 유닛은 복수의 트랜잭션에 의해 추가된 트랜잭션 잠금들을 가질 수 있다. 일부 실시예에서, 잠금 상태 정보는 타깃 데이터 그룹 내의 데이터 유닛들의 데이터 잠금들을 포함할 수 있고, 데이터 잠금은 제1 데이터 잠금 및 제2 데이터 잠금을 포함할 수 있다. 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 처리를 수행하는 단계는 다음과 같은 단계들을 포함할 수 있다:
타깃 데이터 그룹의 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 대응하는 모든 데이터 잠금을 결정하는 단계; 및
모든 데이터 잠금이 제1 데이터 잠금도 제2 데이터 잠금도 포함하지 않는 경우에, 조작 명령어의 제1 데이터 잠금을 조작대상 데이터 유닛에 대한 타깃 데이터 그룹의 잠금 상태 정보에 추가하는 단계.
조작대상 데이터 유닛은 복수의 트랜잭션에 의해 추가된 트랜잭션 잠금들을 가질 수 있다. 일부 실시예에서, 잠금 상태 정보는 타깃 데이터 그룹 내의 데이터 유닛들의 데이터 잠금들을 포함할 수 있고, 데이터 잠금은 제1 데이터 잠금 및 제2 데이터 잠금을 포함할 수 있다. 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 처리를 수행하는 단계는 다음과 같은 단계들을 포함할 수 있다:
타깃 데이터 그룹의 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 대응하는 모든 데이터 잠금을 결정하는 단계; 및
모든 데이터 잠금이 제2 데이터 잠금만을 포함하는 경우, 조작 명령어의 제2 데이터 잠금을 조작대상 데이터 유닛에 대한 타깃 데이터 그룹의 잠금 상태 정보에 추가하는 단계; 또는
조작대상 데이터 유닛에 대응하는 데이터 잠금들이 제1 데이터 잠금도 제2 데이터 잠금도 포함하지 않는 경우, 조작 명령어의 제2 데이터 잠금을 조작대상 데이터 유닛에 대한 타깃 데이터 그룹의 잠금 상태 정보에 추가하는 단계.
106: 잠금 처리가 완료된 후 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행한다.
조작 명령어는, 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하도록, 잠금 처리가 완료된 후에만 수행될 수 있다.
잠금이 실패하면, 충돌이 사라질 때까지, 또 다른 트랜잭션이 잠금해제를 기다리기 위해, 여전히 충돌이 있는지가 재검출될 필요가 있다. 잠금이 완료된 후, 조작 명령어가 실행되어 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행한다.
일부 실시예에서, 조작 명령어가 실행되어 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행할 때마다 그 후에, 실행이 과거 조작 정보에 저장될 수 있어서, 데이터 그룹 세트가 자동 그룹화를 통해 업데이트됨으로써, 데이터 처리의 후속 계산량을 감소시키고 데이터 처리 효율을 향상시킬 수 있다. 따라서, 단계 105 이후에, 이 방법은 다음과 같은 단계들을 더 포함할 수 있다:
데이터 유닛의 과거 조작 정보를 획득하는 단계; 및
조작 명령어에 기초하여 데이터 유닛의 과거 조작 정보를 업데이트하는 단계.
일부 실시예에서, 잠금 상태 정보는 타깃 데이터 그룹 내의 데이터 유닛들의 데이터 잠금들을 포함할 수 있다. 조작 명령어가 실행되어 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행한 후, 적시의 잠금해제가 수행되어, 또 다른 트랜잭션의 데이터 처리 효율성을 향상시킬 수 있다. 따라서, 단계 105 이후에, 이 방법은 다음과 같은 단계를 더 포함할 수 있다:
조작대상 데이터 유닛에 대해, 조작 명령어에 대응하는 데이터 잠금을 타깃 데이터 그룹의 잠금 상태 정보로부터 삭제하는 단계.
상기로부터, 본 출원의 이 실시예에서, 조작 명령어 및 데이터 그룹 세트 ―데이터 그룹 세트는 적어도 하나의 데이터 그룹 세트를 포함하고(???), 데이터 그룹 세트는 적어도 하나의 데이터 유닛을 포함하고, 조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함― 가 획득될 수 있고; 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트에서 조작대상 데이터 유닛에 대응하는 타깃 데이터 그룹이 조회되고; 타깃 데이터 그룹의 잠금 상태 정보가 획득되고; 잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관해 잠금 처리가 수행되고; 잠금 처리가 완료된 후에 조작 명령어가 실행되어, 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행한다는 것을 알 수 있을 것이다. 따라서, 이 솔루션에서, 조작 명령어를 실행하도록, 조작대상 데이터 유닛이 속하는 타깃 데이터 그룹에 따라 대응하는 잠금 처리가 조작대상 데이터 유닛에 관해 수행될 수 있다. 따라서, 본 출원에서는, 잠금 상태 정보 획득 및 잠금 처리 동안 계산량을 감소될 수 있음으로써, 보안을 보장하면서 데이터 처리 효율성을 향상시킬 수 있다.
전술한 실시예들에서 설명된 방법에 따라, 이하에서는 상세한 설명을 추가로 제공한다.
본 실시예에서, 본 출원의 본 실시예의 방법은, 데이터 처리 장치가 데이터베이스 서버에 통합된 예를 이용하여 상세하게 설명된다.
도 2a에 도시된 바와 같이, 데이터 처리 방법의 구체적인 프로세스는 다음과 같다.
201: 데이터 그룹 세트를 자동으로 업데이트하고, 업데이트된 데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함한다.
이 실시예에서, 데이터 그룹 세트가 자동으로 업데이트되기 전에, 데이터 그룹 세트 내의 데이터 그룹들에 데이터 유닛들이 할당되는 방식이 사용자에 의해 명시될 수 있다.
예를 들어, 표 1을 참조하면, 사용자는 표 1의 홀수 열들 내의 모든 데이터 유닛을 하나의 데이터 그룹으로 분할하고, 짝수 열들 내의 모든 데이터 유닛을 또 하나의 데이터 그룹으로 분할할 것을 명시할 수 있다. 또 다른 예에서, 표 1의 홀수 행들 내의 모든 데이터 유닛들(즉, 행 1, 행 3, 행 5 등의 튜플들)은 하나의 데이터 그룹으로 나뉘고, 짝수 행들 내의 모든 데이터 유닛들(즉, 행 2, 행 4, 행 6 등의 튜플들)은 또 하나의 데이터 그룹으로 나뉜다.
또 다른 예에서, 표 1을 참조하면, 사용자는 그룹화 수량을 4로 설정하고, 표 1의 모든 데이터 유닛이 4개의 그룹으로 균등하게 분할될 것을 명시할 수 있다.
또 다른 예에서, 표 1을 참조하면, 사용자는 그룹화 수량을 2로 설정하고, 표 1의 2열마다의 데이터 유닛들이 하나의 그룹으로 분할될 것을 명시할 수 있다.
구체적인 사용자 그룹화 원칙들은 다양한 방식들로 동일하다. 따라서, 여기서는 상세사항들은 설명되지 않는다.
충돌 검출의 입도는 사용자 그룹화 방식에서 조정될 수 있으므로, 입도가 튜플들로부터 사용자에 의해 설정된 데이터 그룹으로 감축됨으로써, 정보 유지보수의 양을 감소시킬 수 있다. 예를 들어, 트랜잭션 T1이 튜플 내의 데이터 유닛 x와 데이터 유닛 y에 액세스한다고 가정하자. 사용자가 데이터 유닛 x와 데이터 유닛 y를 동일한 데이터 그룹으로 나눈다면, 트랜잭션 T1이 실행된 후(즉, 단계 207), 트랜잭션 T1이 데이터 그룹에 액세스했다는 것만이 기록될 필요가 있다.
일부 실시예에서, 일부 경우에 사용자가 충돌 검출의 적절한 입도 크기(즉, 데이터 그룹의 그룹화)를 설정하는 것이 어려울 수 있다. 충돌 오판 확률을 감소시키기 위해, 데이터 그룹 세트는 이 실시예에서 자동으로 업데이트될 수 있다.
컴퓨터는, 데이터 유닛들에서 충돌하기 쉬운 데이터 유닛을 판정함으로써 데이터 그룹 세트를 자동으로 업데이트할 수 있다. 여기서, 이러한 충돌하기 쉬운 데이터 유닛들은 충돌성 유닛들이라 지칭될 수 있고, 충돌하기 쉽지 않은 데이터 유닛들은 비충돌성 유닛들이라고 지칭된다. 그 다음, 각각의 충돌성 유닛은 개별적으로 데이터 그룹으로서 이용되고, 비충돌성 유닛들은 n개의 데이터 그룹에 추가된다.
n은 양의 정수이고, 사용자에 의해 구체적으로 명시되거나, 본 기술분야의 통상의 기술자에 의해 설정되거나, 비충돌성 유닛들의 수량에 따라 결정될 수 있다.
한 가능한 구현에서, 충돌성 유닛과 비충돌성 유닛을 결정하는 방식은 다음과 같다:
먼저, 미리설정된 값 범위, 및 데이터 유닛들의 과거 조작 정보를 획득하는 단계;
과거 조작 정보에 기초하여 데이터 그룹 세트 내의 데이터 유닛들의 과거 조작들의 횟수들을 카운팅하는 단계; 및
자동 재그룹화 후 과거 조작들의 횟수들 및 미리설정된 값 범위에 기초하여 데이터 유닛을 그룹화하여 데이터 그룹 세트를 획득하는 단계.
예를 들어, 미리설정된 값 범위는 10 내지 양의 무한대이고, 데이터 그룹 세트 내의 데이터 유닛들의 과거 조작들의 횟수들은 과거 조작 정보에 따라 카운트될 수 있으며, 10 내지 양의 무한대의 과거 조작들의 횟수들을 갖는 데이터 유닛은 충돌성 유닛으로서 결정되고; 그렇지 않으면 비충돌성 유닛이다.
202: 조작 명령어 ―조작 명령어는, 조작 유형 정보 및 조작대상 데이터 유닛 정보를 포함함―를 획득하고, 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트에서 조작대상 데이터 유닛에 대응하는 타깃 데이터 그룹을 조회하고, 타깃 데이터 그룹의 잠금 상태 정보를 획득한다.
조작 유형 정보는 판독 유형 및 기입 유형일 수 있다. 도 1c를 참조하면, 조작대상 데이터 유닛이 데이터 유닛 c라고 가정하면, 조작대상 데이터 유닛이 속한 타깃 데이터 그룹은 데이터 그룹 2이다.
데이터 그룹 2의 잠금 상태 정보가 획득된다.
예를 들어, 도 2b를 참조하면, 데이터 그룹 2의 잠금 상태 정보가 획득될 수 있다. 현재 트랜잭션 A에 의해 데이터 유닛 a에 추가된 기입 잠금과 현재 트랜잭션 B에 의해 데이터 유닛 c에 추가된 판독 잠금이 데이터 그룹 2의 잠금 상태 정보에 기록된다.
203: 잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 처리를 수행한다.
이 경우, 조작대상 데이터 유닛은 데이터 유닛 c이고, 데이터 유닛 c는 현재 트랜잭션 B에 의해 추가된 판독 잠금을 갖고 있다. 잠금 처리는 판독 잠금 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관해 수행될 수 있다.
판독 잠금들은 공존할 수 있고, 판독 잠금과 기입 잠금은 상호배타적이며, 기입 잠금들은 상호배타적이므로, 데이터 유닛 c에 현재 트랜잭션 B에 의해 추가된 판독 잠금을 갖고 있을 때, 조작 유형 정보가 판독 유형을 나타낸다면, 현재 트랜잭션의 판독 잠금이 조작대상 데이터 유닛에 추가될 수 있다; 조작 유형 정보가 기입 유형을 나타낸다면, 잠금이 실패한다.
예를 들어, 트랜잭션 T가 특정한 튜플의 특정한 데이터 유닛에 기입 잠금을 추가하기를 원할 때, 다음과 같은 단계들을 참조할 수 있다 :
튜플의 잠금 상태 정보를 획득하는 단계;
잠금 상태 정보가 데이터 잠금을 갖고 있지 않다면 잠금이 성공적이라고 결정하는 단계;
그렇지 않으면, 잠금이 실패인 것으로 결정하는 단계.
예를 들어, 트랜잭션 T가 특정한 튜플의 특정한 데이터 유닛에 판독 잠금을 추가하기를 원할 때, 다음과 같은 단계들을 참조할 수 있다 :
튜플의 잠금 상태 정보를 획득하는 단계;
잠금 상태 정보가 데이터 잠금을 갖고 있지 않다면 잠금이 성공적이라고 결정하는 단계;
잠금 상태 정보가 데이터 잠금을 갖고 있다면, 조작대상 데이터 유닛의 데이터 잠금들을 체크하는 단계;
조작대상 데이터 유닛의 데이터 잠금들에 어떠한 기입 블록도 존재하지 않는다면 잠금이 성공적인 것으로 결정하는 단계;
그렇지 않으면, 잠금이 실패인 것으로 결정하는 단계.
204: 잠금 처리가 완료된 후 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하고, 조작 명령어에 따라 데이터 유닛의 과거 조작 정보를 업데이트하고, 조작대상 데이터 유닛에 대해, 조작 명령어의 데이터 잠금을 타깃 데이터 그룹의 잠금 상태 정보로부터 삭제한다.
잠금이 실패한다면, 트랜잭션 B가 조작대상 데이터 유닛을 잠금해제한 후에 잠금 처리가 완료되고, 조작 명령어가 실행되어 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행한다. 데이터 유닛의 과거 조작 정보는 조작 명령어에 따라 업데이트되고, 조작 명령어의 데이터 잠금은, 조작대상 데이터 유닛에 대해, 타깃 데이터 그룹의 잠금 상태 정보로부터 삭제된다.
잠금이 성공적이면, 조작 명령어가 실행되어 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하고, 데이터 유닛의 과거 조작 정보가 조작 명령어에 따라 업데이트되고, 조작 명령어의 데이터 잠금은, 조작대상 데이터 유닛에 대해, 타깃 데이터 그룹의 잠금 상태 정보로부터 삭제된다.
예를 들어, 도 2c를 참조하면, 도 2c의 분산형 데이터베이스 아키텍쳐는 데이터 처리 솔루션을 채택한다. 분산형 데이터베이스는 데이터 저장 및 처리를 위해 서브 데이터베이스 및 서브 테이블 방식을 채택한다.
조율 시스템은 Zookeeper(분산형 컴퓨팅 시스템), Spark(분산형 컴퓨팅 시스템) 등일 수 있다.
데이터베이스는 M개의 그룹으로 나뉜다. 즉, M개의 데이터베이스 그룹이 획득된다. 각각의 그룹은, 부하 밸런싱을 달성하도록 주 데이터베이스 서버와 N개의 대기 데이터베이스 서버를 포함한다.
사용자가 데이터를 입력할 때마다, 사용자에 의해 전송된 조작 명령어는 조율 시스템에 의해 대응하는 데이터베이스 그룹에 할당되어, 사용자에 의해 작성된 데이터는 상이한 데이터베이스 그룹들에 분산되어 저장된다.
예를 들어, 사용자에 의해 입력된 데이터 테이블은 복수의 테이블로 분할되고, 복수의 테이블은 분산되어 상이한 데이터베이스 그룹들에 저장된다. 또 다른 예에서, 사용자에 의해 입력된 데이터 테이블 내의 데이터의 논리적 관계에 따라, 패킷은 소정의 조건들에 따라 복수의 테이블로 분할되고, 복수의 테이블은 분할 논리에 따라 분산되어 상이한 데이터베이스 그룹들에 저장된다.
사용자가 데이터 테이블을 입력할 때마다, 게이트웨이 1, 게이트웨이 2, ..., 게이트웨이 n 등의 게이트웨이는 데이터 테이블을 조율 시스템에 푸시할 수 있다. 조율 시스템은 데이터 테이블을 태스크 형태로 저장하고 데이터베이스의 주 데이터베이스 서버 또는 대기 데이터베이스 서버에 데이터 테이블을 전송한 다음, 데이터베이스 그룹들의 주 또는 대기 데이터베이스 서버에 의해 반환된 결과들을 수집하여, 그 결과들을 사용자에게 반환할 수 있다.
데이터베이스는 조율 시스템으로부터 태스크를 인출하고, 각각의 데이터베이스 그룹의 주 및 대기 데이터베이스 서버를 스위칭하고, 데이터베이스의 상태를 모니터링하고 그 상태를 조율 시스템에 업로드할 수 있다.
따라서, 본 데이터 처리 솔루션을 채택하고 도 2c에 도시된 분산형 데이터베이스 아키텍쳐에서, 데이터가 판독되고 기입될 때 데이터의 원자성과 일관성이 보장될 수 있음으로써, 충돌 검출 정확도를 보장하면서 트랜잭션들의 동시성과 데이터베이스 처리량을 향상시키고, 데이터 처리 효율을 향상시킬 수 있다.
상기로부터, 본 출원의 이 실시예에서, 데이터 그룹 세트가 자동으로 업데이트될 수 있고, ―업데이트된 데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함함―; 조작 명령어가 획득되고, ―조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함―; 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트에서 조작대상 데이터 유닛에 대응하는 타깃 데이터 그룹이 조회되고; 타깃 데이터 그룹의 잠금 상태 정보가 획득되고; 잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관해 잠금 처리가 수행되고; 잠금 처리가 완료된 후에 조작 명령어가 실행되어, 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하고; 데이터 유닛의 과거 조작 정보가 조작 명령어에 따라 업데이트되고, 조작대상 데이터 유닛에 대해, 조작 명령어의 데이터 잠금이 타깃 데이터 그룹의 잠금 상태 정보로부터 삭제된다는 것을 알 수 있을 것이다. 따라서, 본 출원의 이 실시예에 따르면, 충돌 검출 정확도를 보장하면서 트랜잭션들의 동시성과 데이터베이스 처리량이 개선됨으로써, 데이터 처리 효율을 향상시킬 수 있다.
또한, 본 출원의 실시예들은 복수의 그룹화 방법을 더 제공하여, 충돌 검출의 입도가 사용자에 의해 변경되거나 자동으로 변경될 수 있게 하고, 충돌 검출 정확도를 보장하면서 계산량이 더욱 감소될 수 있다.
전술한 방법을 더 양호하게 구현하기 위해, 본 출원의 실시예들은 데이터 처리 장치를 더 제공한다. 이 데이터 처리 장치는 구체적으로 전자 디바이스에 통합될 수 있다. 전자 디바이스는 단말기 또는 서버 등의 디바이스일 수 있다. 단말기는, 모바일 전화, 태블릿 컴퓨터, 지능형 Bluetooth 디바이스, 노트북 컴퓨터, 또는 PC 등의 디바이스일 수 있다. 서버는 단일 서버이거나, 복수의 서버를 포함하는 서버 클러스터일 수 있다. 일부 실시예에서, 데이터 처리 장치는 대안으로서 복수의 전자 디바이스에 통합될 수 있다. 예를 들어, 데이터 처리 장치는 복수의 서버에 통합될 수 있고, 본 출원의 데이터 처리 방법은 복수의 서버를 포함하는 서버 클러스터에 의해 구현된다.
본 출원의 실시예들은 데이터 처리 장치를 제공한다. 이 데이터 처리 장치는 구체적으로 전자 디바이스에 통합될 수 있다. 전자 디바이스는 단말기 또는 서버 등의 디바이스일 수 있다. 단말기는, 모바일 전화, 태블릿 컴퓨터, 지능형 Bluetooth 디바이스, 노트북 컴퓨터, 또는 PC 등의 디바이스일 수 있다. 서버는 단일 서버이거나, 복수의 서버를 포함하는 서버 클러스터일 수 있다.
이 실시예에서, 본 출원의 이 실시예의 방법은, 데이터 처리 장치가 분산형 서버 클러스터에 통합된 예를 이용하여 상세하게 설명된다.
예를 들어, 도 3에 도시된 바와 같이, 데이터 처리 장치는, 다음과 같은 획득 유닛(301), 조회 유닛(302), 데이터 잠금 유닛(303), 검출 유닛(304), 잠금 유닛(305), 및 실행 유닛(306)을 포함할 수 있다 :
1. 획득 유닛(301):
획득 유닛(301)은 조작 명령어를 획득하도록 구성될 수 있고, 조작 명령어는, 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함한다.
일부 실시예에서, "조작 유형 정보 및 조작대상 데이터 유닛 정보를 포함하는 조작 명령어를 획득하는 단계"를 수행하기 전에, 획득 유닛(301)은, 다음과 같은 서브유닛 획득, 서브유닛 카운팅, 및 서브유닛 그룹화를 더 포함할 수 있다:
a. 획득 서브유닛:
획득 서브유닛은, 미리설정된 값 범위, 및 데이터 유닛들의 과거 조작 정보를 획득하도록 구성될 수 있다;
b. 카운팅 서브유닛:
카운팅 서브유닛은 과거 조작 정보에 기초하여 데이터 유닛들의 과거 조작들의 횟수들을 카운팅하도록 구성될 수 있다.
c. 그룹화 서브유닛:
그룹화 서브유닛은 과거 조작들의 횟수들 및 미리설정된 값 범위에 기초하여 데이터 유닛들을 그룹화하여 데이터 그룹 세트를 획득하도록 구성될 수 있다.
일부 실시예에서, 데이터 그룹 세트는 하나의 제1 데이터 그룹 및 복수의 제2 데이터 그룹을 포함할 수 있다. 그룹화 서브유닛은, 다음과 같은 확률 서브모듈, 제1 데이터 그룹 생성 서브모듈, 제1 데이터 그룹 추가 서브모듈, 및 제2 데이터 그룹 추가 서브모듈을 포함할 수 있다:
확률 서브모듈은 과거 조작의 횟수에 기초하여 데이터 유닛들의 과거 조작 확률들을 각각 계산하도록 구성될 수 있다.
제1 데이터 그룹 생성 서브모듈은 하나의 제1 데이터 그룹을 생성하도록 구성될 수 있다.
제1 데이터 그룹 추가 서브모듈은, 데이터 유닛의 과거 조작 확률이 미리설정된 값 범위에 속하지 않는 경우 데이터 유닛을 제1 데이터 그룹에 추가하도록 구성될 수 있다.
제2 데이터 그룹 추가 서브모듈은, 데이터 유닛의 과거 조작 확률이 미리설정된 값 범위에 속하는 경우 데이터 유닛에 대응하는 제2 데이터 그룹을 생성하고, 데이터 유닛을 그 데이터 유닛에 대응하는 제2 데이터 그룹에 추가하도록 구성될 수 있다.
일부 실시예에서, 데이터 유닛은 복수의 데이터 서브유닛을 포함할 수 있고, 제1 데이터 그룹 추가 서브모듈은 구체적으로 :
데이터 유닛에 대응하는 제2 데이터 그룹을 생성하고;
복수의 데이터 서브유닛을 데이터 유닛에 대응하는 제2 데이터 그룹에 추가하도록 구성될 수 있다.
2. 조회 유닛(302):
조회 유닛(302)은 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회할 수 있고, 데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함한다.
일부 실시예에서, 조회 유닛(302)이 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 조작대상 데이터 유닛에 대응하는 타깃 데이터 그룹을 조회하도록 구성되기 전에, 조회 유닛(302)은, 업데이트 서브유닛, 사용자 업데이트 서브유닛, 및 자동 업데이트 서브유닛을 포함하여:
그룹화 업데이트 명령어를 획득하고;
그룹화 업데이트 명령어의 명령어 유형이 사용자 그룹화 유형인 경우, 그룹화 업데이트 명령어를 채택함으로써 데이터 그룹 세트 내의 데이터 유닛들을 재그룹화하거나;
그룹화 업데이트 명령어의 명령어 유형이 자동 그룹화 유형인 경우, 데이터 그룹 세트 내의 데이터 유닛들을 자동으로 재그룹화할 수 있다.
업데이트 서브유닛은 그룹화 업데이트 명령어를 획득하도록 구성된다.
사용자 업데이트 서브유닛은, 그룹화 업데이트 명령어의 명령어 유형이 사용자 그룹화 유형인 경우, 그룹화 업데이트 명령어를 채택함으로써 데이터 그룹 세트 내의 데이터 유닛들을 재그룹화하도록 구성될 수 있다.
자동 업데이트 서브유닛은, 그룹화 업데이트 명령어의 명령어 유형이 자동 그룹화 유형인 경우, 데이터 그룹 세트 내의 데이터 유닛들을 자동으로 재그룹화하도록 구성될 수 있다.
일부 실시예에서, 자동 업데이트 서브유닛은 구체적으로 :
미리설정된 값 범위 및 데이터 유닛들의 과거 조작 정보를 획득하고;
과거 조작 정보에 기초하여 데이터 그룹 세트 내의 데이터 유닛들의 과거 조작들의 횟수들을 카운팅하고;
자동 재그룹화 후 과거 조작들의 횟수들 및 미리설정된 값 범위에 기초하여 데이터 유닛을 그룹화하여 데이터 그룹 세트를 획득하도록 구성될 수 있다.
일부 실시예에서, 사용자 업데이트 서브유닛은 구체적으로 :
데이터 그룹 세트 내의 데이터 유닛들을 데이터 그룹들의 그룹화 수량으로 균등하게 나누어 그룹화 후 데이터 그룹 세트를 획득하도록 구성될 수 있다.
3. 데이터 잠금 유닛(303):
데이터 잠금 유닛(303)은 타깃 데이터 그룹의 잠금 상태 정보를 획득하도록 구성될 수 있다.
4. 검출 유닛(304):
검출 유닛(304)은 잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하도록 구성될 수 있다. 조작 유형 정보는 제1 조작 유형 및 제2 조작 유형을 포함한다. 잠금 검출은 제1 잠금 검출 및 제2 잠금 검출을 포함한다. 검출 결과는 제1 잠금 검출 결과 및 제2 잠금 검출 결과를 포함한다.
일부 실시예에서, 검출 유닛(304)은 구체적으로 :
조작 유형 정보가 제1 조작 유형인 경우 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 검출을 수행하여 제1 잠금 검출 결과를 획득하거나;
조작 유형 정보가 제2 조작 유형인 경우 잠금 상태 정보에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 검출을 수행하여 제2 잠금 검출 결과를 획득하도록 구성될 수 있다.
5. 잠금 유닛(305):
잠금 유닛(305)은 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 잠금 처리를 수행하도록 구성될 수 있다.
잠금 처리는 제1 잠금 처리 및 제2 잠금 처리를 포함할 수 있다. 잠금 유닛(305)은 구체적으로 :
제1 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제1 잠금 처리를 수행하고;
또는 제2 잠금 검출 결과에 기초하여 조작대상 데이터 유닛에 관한 제2 잠금 처리를 수행하도록 구성될 수 있다.
6. 실행 유닛(306):
실행 유닛(306)은, 잠금 처리가 완료된 후 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하도록 구성될 수 있다.
일부 실시예에서, 실행 유닛(306)이 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하는 동작을 수행한 후, 실행 유닛(306)은 또한:
데이터 유닛의 과거 조작 정보를 획득하고;
조작 명령어에 기초하여 데이터 유닛의 과거 조작 정보를 업데이트하도록 구성될 수 있다.
일부 실시예에서, 잠금 상태 정보는 타깃 데이터 그룹 내의 데이터 유닛들의 데이터 잠금들을 포함할 수 있다. 실행 유닛(306)이 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하는 동작을 수행한 후, 실행 유닛(306)은 또한:
조작대상 데이터 유닛에 대해, 조작 명령어에 대응하는 데이터 잠금을 타깃 데이터 그룹의 잠금 상태 정보로부터 삭제하도록 구성될 수 있다.
구현 동안에, 전술한 데이터 유닛들은 독립적인 엔티티들로서 구현되거나, 무작위로 결합되거나, 동일한 엔티티 또는 여러 엔티티로서 구현될 수 있다. 전술한 데이터 유닛들의 구체적인 구현들에 대해서는, 전술한 방법 실시예들을 참조한다. 상세사항은 여기서 다시 설명되지 않는다.
상기로부터, 이 실시예의 데이터 처리 장치에서, 획득 유닛은, 조작 명령어 ―조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함― 를 획득하고; 조회 유닛은 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회하고, ―데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함함―; 데이터 잠금 유닛은 타깃 데이터 그룹의 잠금 상태 정보를 획득하고; 검출 유닛은 잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관해 잠금 검출을 수행하여 검출 결과를 획득하고; 잠금 유닛은 검출 결과에 기초하여 조작대상 데이터 유닛에 관해 잠금 처리를 수행하고; 실행 유닛은 잠금 처리가 완료된 후에 조작 명령어를 실행하여, 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행한다는 것을 알 수 있을 것이다.
이 솔루션의 실시예들은 계산량을 감소시킬 수 있기 때문에, 솔루션의 실시예들은 데이터 처리 효율을 향상시킬 수 있다.
본 출원의 실시예들은 전자 디바이스를 더 제공한다. 전자 디바이스는 단말기 또는 서버 등의 디바이스일 수 있다. 단말기는, 모바일 전화, 태블릿 컴퓨터, 지능형 Bluetooth 디바이스, 노트북 컴퓨터, 또는 PC 등의 디바이스일 수 있다. 서버는 단일 서버이거나, 복수의 서버를 포함하는 서버 클러스터일 수 있다.
이 실시예에서, 이 실시예의 전자 디바이스가 서버인 예를 이용하여 상세한 설명이 이루어진다. 예를 들어, 도 4는 본 출원의 한 실시예에 따른 서버의 개략적인 구조도이다.
서버는, 하나 이상의 처리 코어를 포함하는 프로세서(401), 하나 이상의 컴퓨터 판독가능한 저장 매체를 포함하는 메모리(402), 전원(403), 입력 모듈(404), 및 통신 모듈(405) 등의 컴포넌트들을 포함할 수 있다. 본 기술분야의 통상의 기술자라면, 도 4에 도시된 서버 구조가 서버에 대한 제한을 구성하는 것이 아님을 이해할 수 있을 것이다. 서버는 도면에 도시된 것들보다 많거나 적은 부품들을 포함할 수 있거나, 일부 부품들을 결합하거나, 상이한 부품 배열들을 가질 수 있다. 프로세서(401)는 서버의 통제 센터이며, 다양한 인터페이스와 라인을 이용하여 전체 서버의 다양한 부분들과 접속된다. 메모리(402)에 저장된 소프트웨어 프로그램 및/또는 모듈을 운영 또는 실행하고, 메모리(402)에 저장된 데이터를 호출함으로써, 프로세서(401)는 서버의 다양한 기능을 실행하고 데이터 처리를 수행하여, 전체 서버를 모니터링한다.
일부 실시예에서, 프로세서(401)는 하나 이상의 처리 코어를 포함할 수 있다. 일부 실시예에서, 프로세서(401)는 애플리케이션 프로세서 및 모뎀 프로세서를 통합할 수 있다. 애플리케이션 프로세서는 주로, 운영체제, UI, 애플리케이션 프로그램 등을 처리한다. 모뎀 프로세서는 주로 무선 통신을 처리한다. 전술한 모뎀 프로세서는 대안으로서 프로세서(401)에 통합되지 않을 수도 있다는 것을 이해할 수 있다.
메모리(402)는 소프트웨어 프로그램 및 모듈을 저장하도록 구성될 수 있고, 프로세서(401)는 메모리(402)에 저장된 소프트웨어 프로그램 및 모듈을 실행하여 다양한 기능적 애플리케이션들 및 데이터 처리를 구현한다. 메모리(402)는 주로 프로그램 저장 영역과 데이터 저장 영역을 포함할 수 있다. 프로그램 저장 영역은, 운영체제, (사운드 재생 기능, 이미지 디스플레이 기능 등의) 적어도 하나의 기능에 의해 요구되는 애플리케이션 프로그램 등을 저장할 수 있다. 데이터 저장 영역은, 서버의 이용에 따라 생성된 데이터 등을 저장할 수 있다. 또한, 메모리(402)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 적어도 하나의 자기 디스크 저장 디바이스, 플래시 메모리, 또는 다른 휘발성 솔리드-스테이트 저장 디바이스 등의, 비휘발성 메모리를 더 포함할 수 있다. 대응적으로, 메모리(402)는, 프로세서(401)의 메모리(402) 액세스를 제공하기 위해 메모리 제어기를 더 포함할 수 있다.
서버는 컴포넌트들에 전력을 공급하기 위한 전원(403)을 더 포함한다. 일부 실시예에서, 전원(403)은 전원 관리 시스템을 이용하여 프로세서(401)에 논리적으로 접속됨으로써, 전원 관리 시스템을 이용하여 충전, 방전, 소비 전력 관리 등의 기능들을 구현할 수 있다. 전원(403)은, 하나 이상의 직류 또는 교류 전원, 재충전 시스템, 정전 검출 회로, 전원 변환기 또는 인버터, 전원 상태 표시기, 및 기타 임의의 컴포넌트 중 하나 이상을 더 포함할 수 있다.
서버는 입력 모듈(404)을 더 포함할 수 있다. 입력 모듈(404)은, 입력된 숫자 또는 문자 정보를 수신하고, 사용자 설정 및 기능 제어에 관련된 키보드, 마우스, 조이스틱, 광학 또는 트랙볼 신호 입력을 생성하도록 구성될 수 있다.
서버는 통신 모듈(405)을 더 포함할 수 있다. 일부 실시예에서, 통신 모듈(405)은 무선 모듈을 포함할 수 있다. 서버는, 사용자에게 무선 광대역 인터넷 액세스를 제공하기 위해 통신 모듈(405)의 무선 모듈을 통해 단거리 무선 전송을 수행할 수 있다. 예를 들어, 통신 모듈(405)은, 사용자가 이메일을 수신 및 전송하고, 웹 페이지를 브라우징하고, 스트리밍 미디어에 액세스하는 등을 돕도록 구성될 수 있다.
도면에는 도시되지 않았으나, 서버는 디스플레이 데이터 유닛을 더 포함할 수 있다. 상세사항은 여기서 더 이상 설명되지 않는다. 구체적으로, 이 실시예에서, 서버의 프로세서(401)는 후속 명령어들에 따라 메모리(402) 내에 하나 이상의 애플리케이션 프로그램의 프로세스에 대응하는 실행 파일들을 로딩하고, 프로세서(401)는 메모리(402)에 저장된 애플리케이션 프로그램들을 실행하여 다음과 같은 다양한 기능을 구현한다:
조작 명령어를 획득하는 것, ―조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함―;
조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회하는 단계, ―데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함함―;
타깃 데이터 그룹의 잠금 상태 정보를 획득하는 것;
잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하는 것;
검출 결과에 기초하여 조작대상 데이터 유닛에 관한 잠금 처리를 수행하는 것; 및
잠금 처리가 완료된 후 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하는 것.
상기 동작들의 특정한 구현에 대해서는, 전술한 실시예들을 참조한다. 상세사항은 여기서 다시 설명되지 않는다.
이상으로부터, 이 솔루션의 실시예들은 계산량을 감소시킬 수 있음으로써 데이터 처리 효율을 향상시킬 수 있다는 것을 알 수 있을 것이다.
본 기술분야의 통상의 기술자라면, 전술한 실시예들의 방법들의 모든 또는 일부 단계들은 명령어들을 이용하여 구현되거나, 관련 하드웨어를 제어하는 명령어들을 통해 구현될 수 있고, 명령어들은 컴퓨터 판독가능한 저장 매체에 저장되고 프로세서에 의해 로딩 및 실행될 수 있다는 것을 이해할 수 있을 것이다.
따라서, 본 출원의 실시예들은, 본 출원의 실시예들에 따른 데이터 처리 방법들 중 임의의 하나의 단계들을 수행하는 복수의 명령어 ―명령어들은 프로세서에 의해 로딩되도록 구성됨― 를 저장한 컴퓨터 판독가능한 저장 매체를 제공한다. 예를 들어, 명령어들은 다음과 같은 단계들을 수행할 수 있다:
조작 명령어를 획득하는 단계, ―조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함―;
조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회하는 단계, ―데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 데이터 그룹은 적어도 하나의 데이터 유닛을 포함함―;
타깃 데이터 그룹의 잠금 상태 정보를 획득하는 단계;
잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하는 단계;
검출 결과에 기초하여 조작대상 데이터 유닛에 관한 잠금 처리를 수행하는 단계; 및
잠금 처리가 완료된 후 조작 명령어를 실행하여 조작대상 데이터 유닛에 관한 조작 유형 정보에 대응하는 조작을 수행하는 단계.
저장 매체는, ROM(Read-Only Memory), RAM(Random Access Memory), 자기 디스크, 광 디스크 등을 포함할 수 있다.
저장 매체에 저장된 명령어들은 본 출원의 실시예들에서 제공된 데이터 처리 방법들 중 임의의 하나의 단계들을 수행할 수 있기 때문에, 명령어들은 본 출원의 이 실시예에서 제공된 데이터 처리 방법들 중 임의의 하나에 의해 구현될 수 있는 유익한 효과를 구현할 수 있다. 상세사항에 대해, 전술한 실시예들을 참조할 수 있다. 상세사항은 여기서 다시 설명되지 않는다.
본 출원의 실시예들은 컴퓨터 프로그램 제품을 더 제공하고, 컴퓨터 프로그램 제품은 실행될 때 데이터 처리 방법들 중 임의의 하나의 단계들을 수행하도록 구성된다.
본 출원의 실시예들에서 제공되는 데이터 처리 방법 및 장치, 서버, 및 컴퓨터 판독가능한 저장 매체는 위에서 상세히 설명되었다. 본 출원의 원리 및 구현이 특정한 예들을 이용하여 여기서 설명되었다. 전술한 실시예들의 설명은 단지 본 출원의 방법 및 핵심 아이디어를 이해하는 것을 돕기 위한 것일 뿐이다. 또한, 본 기술분야의 통상의 기술자라면, 본 출원의 아이디어에 따라 특정한 구현들 및 응용 범위들의 관점에서 변형 및 수정을 할 수 있다. 따라서, 본 명세서의 내용은 본 출원에 대한 제한으로서 해석되어서는 안 된다.

Claims (16)

  1. 전자 디바이스에 의해 수행되는 데이터 처리 방법으로서,
    조작 명령어를 획득하는 단계, ―상기 조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함―;
    상기 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회하는 단계, ―상기 데이터 그룹 세트는 적어도 하나의 데이터 유닛을 포함하고, 상기 데이터 그룹은 적어도 하나의 데이터 유닛을 포함함―;
    상기 타깃 데이터 그룹의 잠금 상태 정보를 획득하는 단계;
    잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하는 단계;
    상기 검출 결과에 기초하여 상기 조작대상 데이터 유닛에 관한 잠금 처리를 수행하는 단계; 및
    상기 잠금 처리가 완료된 후 상기 조작 명령어를 실행하여 상기 조작대상 데이터 유닛에 관한 상기 조작 유형 정보에 대응하는 조작을 수행하는 단계
    를 포함하는 데이터 처리 방법.
  2. 제1항에 있어서, 상기 조작 유형 정보는 제1 조작 유형 및 제2 조작 유형을 포함하고, 상기 잠금 검출은 제1 잠금 검출 및 제2 잠금 검출을 포함하고, 상기 검출 결과는 제1 잠금 검출 결과 및 제2 잠금 검출 결과를 포함하며;
    상기 잠금 상태 정보 및 조작 유형 정보에 기초하여 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하는 단계는:
    상기 조작 유형 정보가 상기 제1 조작 유형인 경우 상기 잠금 상태 정보에 기초하여 상기 조작대상 데이터 유닛에 관한 상기 제1 잠금 검출을 수행하여 상기 제1 잠금 검출 결과를 획득하는 단계; 또는
    상기 조작 유형 정보가 상기 제2 조작 유형인 경우 상기 잠금 상태 정보에 기초하여 상기 조작대상 데이터 유닛에 관한 상기 제2 잠금 검출을 수행하여 상기 제2 잠금 검출 결과를 획득하는 단계를 포함하고;
    상기 잠금 처리는 제1 잠금 처리 및 제2 잠금 처리를 포함하고, 상기 검출 결과에 기초하여 상기 조작대상 데이터 유닛에 관한 잠금 처리를 수행하는 단계는:
    상기 제1 잠금 검출 결과에 기초하여 상기 조작대상 데이터 유닛에 관한 상기 제1 잠금 처리를 수행하는 단계;
    또는
    상기 제2 잠금 검출 결과에 기초하여 상기 조작대상 데이터 유닛에 관한 상기 제2 잠금 처리를 수행하는 단계
    를 포함하는, 데이터 처리 방법.
  3. 제2항에 있어서, 상기 잠금 상태 정보는 상기 타깃 데이터 그룹 내의 데이터 유닛들의 데이터 잠금들을 포함하고, 상기 데이터 잠금들은 제1 데이터 잠금 및 제2 데이터 잠금을 포함하며;
    상기 잠금 상태 정보에 기초하여 상기 조작대상 데이터 유닛에 관한 상기 제1 잠금 검출을 수행하여 상기 제1 잠금 검출 결과를 획득하는 단계는:
    상기 잠금 상태 정보에 기초하여 상기 조작대상 데이터 유닛에 대응하는 모든 데이터 잠금을 결정하는 단계; 및
    상기 모든 데이터 잠금이 제1 데이터 잠금도 제2 데이터 잠금도 포함하지 않는 경우 상기 제1 잠금 검출 결과를 획득하는 단계를 포함하고;
    상기 제1 잠금 검출 결과에 기초하여 상기 조작대상 데이터 유닛에 관한 상기 제1 잠금 처리를 수행하는 단계는:
    상기 조작대상 데이터 유닛에 대해, 상기 제1 잠금 검출 결과에 기초하여 상기 조작 명령어의 제1 데이터 잠금을 상기 잠금 상태 정보에 추가하는 단계를 포함하는, 데이터 처리 방법.
  4. 제2항에 있어서, 상기 잠금 상태 정보는 상기 타깃 데이터 그룹 내의 데이터 유닛들의 데이터 잠금들을 포함하고, 상기 데이터 잠금들은 제1 데이터 잠금 및 제2 데이터 잠금을 포함하며;
    상기 잠금 상태 정보에 기초하여 상기 조작대상 데이터 유닛에 관한 상기 제2 잠금 검출을 수행하여 상기 제2 잠금 검출 결과를 획득하는 단계는:
    상기 타깃 데이터 그룹의 상기 잠금 상태 정보에 기초하여 상기 조작대상 데이터 유닛에 대응하는 모든 데이터 잠금을 결정하는 단계; 및
    상기 조작대상 데이터 유닛에 대응하는 상기 데이터 잠금들이 제2 데이터 잠금만을 포함하는 경우, 상기 제2 잠금 검출 결과를 획득하는 단계; 또는
    상기 조작대상 데이터 유닛에 대응하는 상기 데이터 잠금들이 제1 데이터 잠금도 제2 데이터 잠금도 포함하지 않는 경우, 상기 제2 잠금 검출 결과를 획득하는 단계를 포함하고;
    상기 제2 잠금 검출 결과에 기초하여 상기 조작대상 데이터 유닛에 관한 상기 제2 잠금 처리를 수행하는 단계는:
    상기 조작대상 데이터 유닛에 대해, 상기 제2 잠금 검출 결과에 기초하여 상기 조작 명령어의 제2 데이터 잠금을 상기 잠금 상태 정보에 추가하는 단계를 포함하는, 데이터 처리 방법.
  5. 제1항에 있어서, 상기 조작 명령어를 획득하는 단계 이전에, 상기 방법은
    미리설정된 값 범위 및 데이터 유닛들의 과거 조작 정보를 획득하는 단계;
    상기 과거 조작 정보에 기초하여 상기 데이터 유닛들의 과거 조작들의 횟수들을 카운팅하는 단계; 및
    상기 과거 조작들의 횟수들 및 상기 미리설정된 값 범위에 기초하여 상기 데이터 유닛들을 그룹화하여 상기 데이터 그룹 세트를 획득하는 단계를 더 포함하는 데이터 처리 방법.
  6. 제5항에 있어서, 상기 데이터 그룹 세트는 하나의 제1 데이터 그룹 및 복수의 제2 데이터 그룹을 포함하고;
    상기 과거 조작들의 횟수들 및 상기 미리설정된 값 범위에 기초하여 상기 데이터 유닛들을 그룹화하여 상기 데이터 그룹 세트를 획득하는 단계는:
    상기 과거 조작들의 횟수들에 기초하여 상기 데이터 유닛들의 과거 조작 확률들을 각각 계산하는 단계;
    상기 하나의 제1 데이터 그룹을 생성하는 단계; 및
    데이터 유닛의 과거 조작 확률이 상기 미리설정된 값 범위에 속하지 않는 경우, 데이터 유닛을 상기 제1 데이터 그룹에 추가하는 단계; 또는
    데이터 유닛의 과거 조작 확률이 상기 미리설정된 값 범위에 속하는 경우, 상기 데이터 유닛에 대응하는 제2 데이터 그룹을 생성하고, 상기 데이터 유닛을 상기 데이터 유닛에 대응하는 상기 제2 데이터 그룹에 추가하는 단계를 포함하는, 데이터 처리 방법.
  7. 제6항에 있어서, 상기 데이터 유닛은 복수의 데이터 서브유닛을 포함하고;
    상기 데이터 유닛에 대응하는 제2 데이터 그룹을 생성하고, 상기 데이터 유닛을 상기 데이터 유닛에 대응하는 상기 제2 데이터 그룹에 추가하는 단계는:
    상기 데이터 유닛에 대응하는 상기 제2 데이터 그룹을 생성하는 단계; 및
    상기 복수의 데이터 서브유닛을 상기 데이터 유닛에 대응하는 상기 제2 데이터 그룹에 추가하는 단계를 포함하는, 데이터 처리 방법.
  8. 제1항에 있어서, 상기 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회하는 단계 이전에,
    그룹화 업데이트 명령어를 획득하는 단계; 및
    그룹화 업데이트 명령어의 명령어 유형이 사용자 그룹화 유형인 경우, 그룹화 업데이트 명령어를 채택함으로써 데이터 그룹 세트 내의 데이터 유닛들을 재그룹화하는 단계; 또는
    상기 그룹화 업데이트 명령어의 명령어 유형이 자동 그룹화 유형인 경우, 상기 데이터 그룹 세트 내의 데이터 유닛들을 자동으로 재그룹화하는 단계를 더 포함하는 데이터 처리 방법.
  9. 제8항에 있어서, 상기 데이터 그룹 세트 내의 데이터 유닛들을 자동으로 재그룹화하는 단계는,
    미리설정된 값 범위 및 상기 데이터 유닛들의 과거 조작 정보를 획득하는 단계;
    상기 과거 조작 정보에 기초하여 상기 데이터 그룹 세트 내의 데이터 유닛들의 과거 조작들의 횟수들을 카운팅하는 단계; 및
    자동 재그룹화 후 상기 과거 조작들의 횟수들 및 상기 미리설정된 값 범위에 기초하여 상기 데이터 유닛들을 그룹화하여 데이터 그룹 세트를 획득하는 단계를 포함하는, 데이터 처리 방법.
  10. 제8항에 있어서, 상기 그룹화 업데이트 명령어는 그룹화 수량을 포함하고;
    상기 그룹화 업데이트 명령어를 채택함으로써 상기 데이터 그룹 세트 내의 데이터 유닛들을 재그룹화하는 단계는:
    상기 데이터 그룹 세트 내의 데이터 유닛들을 데이터 그룹들의 상기 그룹화 수량으로 균등하게 나누어 그룹화 후 데이터 그룹 세트를 획득하는 단계를 포함하는, 데이터 처리 방법.
  11. 제1항에 있어서, 상기 조작 명령어를 실행하여 상기 조작대상 데이터 유닛에 관한 상기 조작 유형 정보에 대응하는 조작을 수행하는 단계 이후, 상기 방법은
    상기 데이터 유닛의 과거 조작 정보를 획득하는 단계; 및
    상기 조작 명령어에 기초하여 상기 데이터 유닛의 과거 조작 정보를 업데이트하는 단계를 더 포함하는 데이터 처리 방법.
  12. 제1항에 있어서, 상기 잠금 상태 정보는 상기 타깃 데이터 그룹 내의 데이터 유닛들의 데이터 잠금들을 포함하고;
    상기 조작 명령어를 실행하여 상기 조작대상 데이터 유닛에 관한 상기 조작 유형 정보에 대응하는 조작을 수행한 후, 상기 방법은:
    상기 조작대상 데이터 유닛에 대해, 상기 잠금 상태 정보로부터 상기 조작 명령어에 대응하는 데이터 잠금을 삭제하는 단계를 더 포함하는, 데이터 처리 방법.
  13. 데이터 처리 장치로서,
    조작 명령어를 획득 ―상기 조작 명령어는 조작 유형 정보 및 조작대상 데이터 유닛에 대응하는 조작대상 데이터 유닛 정보를 포함함― 하도록 구성된 획득 유닛;
    상기 조작대상 데이터 유닛 정보에 따라 데이터 그룹 세트 내의 타깃 데이터 그룹을 조회 ―상기 데이터 그룹 세트는 적어도 하나의 데이터 그룹을 포함하고, 상기 데이터 그룹은 적어도 하나의 데이터 유닛을 포함함― 하도록 구성된 조회 유닛;
    상기 타깃 데이터 그룹의 잠금 상태 정보를 획득하도록 구성된 데이터 잠금 유닛;
    상기 잠금 상태 정보 및 상기 조작 유형 정보에 기초하여 상기 조작대상 데이터 유닛에 관한 잠금 검출을 수행하여 검출 결과를 획득하도록 구성된 검출 유닛;
    상기 검출 결과에 기초하여 상기 조작대상 데이터 유닛에 관한 잠금 처리를 수행하도록 구성된 잠금 유닛; 및
    상기 잠금 처리가 완료된 후 상기 조작 명령어를 실행하여 상기 조작대상 데이터 유닛에 관한 상기 조작 유형 정보에 대응하는 조작을 수행하도록 구성된 실행 유닛
    을 포함하는 데이터 처리 장치.
  14. 컴퓨터 판독가능한 저장 매체로서,
    제1항 내지 제12항 중 어느 한 항에 따른 데이터 처리 방법의 동작들을 수행하는 복수의 명령어 ―상기 명령어들은 프로세서에 의해 로딩되도록 구성됨― 를 저장한 컴퓨터 판독가능한 저장 매체.
  15. 서버로서, 프로세서와 메모리를 포함하고, 상기 메모리는 복수의 명령어를 저장하고, 상기 프로세서는 상기 메모리로부터 명령어들을 로딩하여, 제1항 내지 제12항 중 어느 한 항에 따른 데이터 처리 방법의 동작들을 수행하는, 서버.
  16. 컴퓨터 프로그램 제품으로서,
    실행될 때, 제1항 내지 제12항 중 어느 한 항에 따른 데이터 처리 방법의 동작들을 수행하도록 구성된 컴퓨터 프로그램 제품.
KR1020227004713A 2019-10-10 2020-09-03 데이터 처리 방법 및 관련 장치 KR20220031110A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910959838.6 2019-10-10
CN201910959838.6A CN110765143B (zh) 2019-10-10 2019-10-10 数据处理方法、装置、服务器和存储介质
PCT/CN2020/113108 WO2021068689A1 (zh) 2019-10-10 2020-09-03 数据处理方法和相关装置

Publications (1)

Publication Number Publication Date
KR20220031110A true KR20220031110A (ko) 2022-03-11

Family

ID=69331625

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227004713A KR20220031110A (ko) 2019-10-10 2020-09-03 데이터 처리 방법 및 관련 장치

Country Status (6)

Country Link
US (1) US20220050818A1 (ko)
EP (1) EP3992808A4 (ko)
JP (1) JP7375173B2 (ko)
KR (1) KR20220031110A (ko)
CN (1) CN110765143B (ko)
WO (1) WO2021068689A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765143B (zh) * 2019-10-10 2022-08-02 腾讯科技(深圳)有限公司 数据处理方法、装置、服务器和存储介质
US11947551B2 (en) * 2022-05-27 2024-04-02 Maplebear Inc. Automated sampling of query results for training of a query engine
CN115145737B (zh) * 2022-08-31 2022-12-30 维塔科技(北京)有限公司 动态加锁方法、电子设备及计算机可读存储介质
CN116331044B (zh) * 2023-05-31 2023-08-04 山东芯演欣电子科技发展有限公司 一种用于直流充电桩的充电数据存储系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887167A (en) * 1995-11-03 1999-03-23 Apple Computer, Inc. Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system
US7933881B2 (en) 2006-03-17 2011-04-26 Microsoft Corporation Concurrency control within an enterprise resource planning system
CN102508872A (zh) * 2011-10-12 2012-06-20 恒生电子股份有限公司 一种基于内存的联机处理系统的数据处理方法及系统
CN103729304B (zh) * 2012-10-11 2017-03-15 腾讯科技(深圳)有限公司 数据处理方法及装置
US10650021B2 (en) * 2013-12-03 2020-05-12 Red Hat, Inc. Managing data operations in an integrated database system
US9569481B1 (en) * 2013-12-10 2017-02-14 Google Inc. Efficient locking of large data collections
CN104793988B (zh) * 2014-01-20 2019-01-22 阿里巴巴集团控股有限公司 跨数据库分布式事务的实现方法和装置
JP6361223B2 (ja) 2014-03-27 2018-07-25 日本電気株式会社 トランザクションシステム
KR102103063B1 (ko) * 2015-04-01 2020-05-29 아브 이니티오 테크놀로지 엘엘시 분산 컴퓨팅 시스템에서 데이터베이스 트랜잭션들을 프로세싱하는 방법
CN104834558B (zh) * 2015-05-19 2018-06-01 北京京东尚科信息技术有限公司 一种数据处理的方法及系统
CN106610865A (zh) * 2015-10-21 2017-05-03 阿里巴巴集团控股有限公司 一种数据加锁及解锁的方法及装置
CN107066480B (zh) * 2016-12-20 2020-08-11 创新先进技术有限公司 主备数据库的管理方法、系统及其设备
CN108287835B (zh) * 2017-01-09 2022-06-21 腾讯科技(深圳)有限公司 一种数据清理方法及装置
CN108153812A (zh) * 2017-11-24 2018-06-12 广州高清视信数码科技股份有限公司 数据通信的方法、装置、计算机设备及存储介质
CN109634974A (zh) * 2018-12-04 2019-04-16 郑州云海信息技术有限公司 一种数据处理方法、系统及相关组件
CN109815227B (zh) * 2018-12-13 2024-04-16 平安科技(深圳)有限公司 数据锁管理方法、装置、计算机设备及存储介质
US20200311732A1 (en) * 2019-03-25 2020-10-01 Yuh-Shen Song Consumer protection system
CN110765143B (zh) * 2019-10-10 2022-08-02 腾讯科技(深圳)有限公司 数据处理方法、装置、服务器和存储介质

Also Published As

Publication number Publication date
EP3992808A4 (en) 2022-11-16
WO2021068689A1 (zh) 2021-04-15
CN110765143A (zh) 2020-02-07
US20220050818A1 (en) 2022-02-17
EP3992808A1 (en) 2022-05-04
JP2022547673A (ja) 2022-11-15
JP7375173B2 (ja) 2023-11-07
CN110765143B (zh) 2022-08-02

Similar Documents

Publication Publication Date Title
KR20220031110A (ko) 데이터 처리 방법 및 관련 장치
US10311105B2 (en) Filtering queried data on data stores
Liu et al. SK-LSH: an efficient index structure for approximate nearest neighbor search
US10346383B2 (en) Hybrid database table stored as both row and column store
US11449507B2 (en) Database engine
Ma et al. An efficient index for massive IOT data in cloud environment
EP2608072A1 (en) Hybrid database table stored as both row and column store
EP2608071A1 (en) Hybrid database table stored as both row and column store
KR102005343B1 (ko) 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체
US9424297B2 (en) Index building concurrent with table modifications and supporting long values
US20090012980A1 (en) Efficient Query Processing Of Merge Statement
Bazai et al. A novel hybrid approach for multi-dimensional data anonymization for apache spark
US8396858B2 (en) Adding entries to an index based on use of the index
CN110321388B (zh) 一种基于Greenplum的快速排序查询方法及系统
WO2023197865A1 (zh) 一种信息存储方法及装置
US20080126367A1 (en) Deletion of Data From Child Tables with Multiple Parents
CN115328950A (zh) 一种基于二级索引的hbase查询方法、终端设备及存储介质
US9256634B2 (en) Resuming big data transformations
CN111813761A (zh) 一种数据库管理方法、装置以及计算机存储介质
Bhoraskar et al. Importance-aware bloom filter for managing set membership queries on streaming data
CN112711627B (zh) 一种Greenplum数据库的数据导入方法、装置及设备
WO2022242401A1 (zh) 一种数据库系统的事务处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN106844242A (zh) 一种数据交换方法和系统
Kalay Novel approaches on bulk‐loading of large scale spatial datasets
Cai et al. Improving Multi-set Query Processing Via a Learned Oracle

Legal Events

Date Code Title Description
E902 Notification of reason for refusal