KR102582369B1 - 파티셔닝 방법 및 그 장치 - Google Patents

파티셔닝 방법 및 그 장치 Download PDF

Info

Publication number
KR102582369B1
KR102582369B1 KR1020217030895A KR20217030895A KR102582369B1 KR 102582369 B1 KR102582369 B1 KR 102582369B1 KR 1020217030895 A KR1020217030895 A KR 1020217030895A KR 20217030895 A KR20217030895 A KR 20217030895A KR 102582369 B1 KR102582369 B1 KR 102582369B1
Authority
KR
South Korea
Prior art keywords
character
data segment
data
chunking
length
Prior art date
Application number
KR1020217030895A
Other languages
English (en)
Other versions
KR20210126773A (ko
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 KR20210126773A publication Critical patent/KR20210126773A/ko
Application granted granted Critical
Publication of KR102582369B1 publication Critical patent/KR102582369B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3091Data deduplication
    • H03M7/3095Data deduplication using variable length segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 출원의 실시예들은 청킹 방법 및 본 방법을 구현하기 위한 장치를 개시한다. 본 출원의 실시예들에서 제공되는 방법에 따르면, 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트가 결정될 수 있고, 제1 데이터 세그먼트의 데이터 분포 특성은 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여 결정되고, 그 후 청킹 위치는 상이한 방법들을 사용하여 상이한 데이터 분포 특성들에 대해 결정된다. 이러한 방식으로, 데이터 흐름을 더 잘 청킹하여, 중복 제거 효과를 향상시킬 수 있다.

Description

파티셔닝 방법 및 그 장치
본 출원은 데이터 처리 분야에 관한 것으로, 특히 청킹(chunking) 방법 및 장치에 관한 것이다.
네트워크들의 급속한 발전으로, 집계 데이터(aggregate data)는 폭발적으로 증가하고, 이는 데이터 저장 및 송신에 새로운 도전 과제를 제기한다. 중복 데이터를 효과적으로 제거할 수 있는 기술로서, 데이터 중복 제거가 연구 핫스팟이 되었다.
일반적으로, 데이터 중복 제거는 4개의 단계: 데이터 청킹(data chunking), 지문 계산, 지문 인덱싱, 및 저장을 포함할 수 있다. 데이터 청킹 단계에서, 데이터 흐름은 작은 데이터 청크들로 분할된다. 지문 계산 단계에서, 분할을 통해 획득된 데이터 청크들의 지문들이 계산된다. 그 후, 지문 인덱싱 단계에서, 데이터 청크들의 지문들을 서로 매칭시킴으로써 중복 데이터 청크들이 식별된다. 마지막으로, 비중복 데이터 청크들이 저장되고, 중복 데이터 청크들은 반복적으로 저장되지 않는다.
현재, 데이터 청킹 기술은 주로 고정된 크기 청킹 알고리즘을 포함한다. 고정된 크기 청킹 알고리즘에서, 미리 정의된 청크 크기가 설정되고, 모든 데이터 흐름은 미리 정의된 청크 크기에 기초하여 청킹된다. 고정된 크기 청킹 알고리즘은 경계 오프셋에 의해 영향을 받는다. 경계 오프셋은 데이터 삽입 또는 삭제 등의 동작으로 인해 데이터 청크의 경계가 오프셋되어, 중복 데이터 청크가 비중복 데이터 청크로서 검출되는 것을 의미한다. 예를 들어, 하나의 문자가 원본 파일의 시작에 삽입되고, 고정된 크기 청킹 알고리즘이 사용되는 경우, 편집된 파일 내의 모든 데이터 청크의 경계들은 원본 파일 내의 데이터 청크들의 경계들과 길이 면에서 하나의 문자만큼 상이하다. 따라서, 중복 데이터 청크로서 데이터 청크가 검출되지 않는다. 고정된 크기 청킹 알고리즘의 청킹 효과가 상대적으로 열악하여, 중복 제거 효과에 영향을 미친다는 것을 알 수 있다.
본 출원의 실시예들은 데이터 흐름을 더 잘 청킹하고 중복 제거 효과를 향상시키기 위해 청킹 방법 및 장치를 제공한다.
제1 양태에 따르면, 본 출원의 실시예는 청킹 방법을 제공한다. 본 방법은: 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하는 단계- 제1 데이터 세그먼트는 복수의 문자를 포함하고, 복수의 문자의 문자 길이는 제1 길이임 -; 제1 데이터 세그먼트 내의 모든 문자의 문자 값에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정하는 단계; 제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 단계; 및 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용하는 단계를 포함한다.
이 기술적 해결책에서, 제1 데이터 세그먼트의 데이터 분포 특성은 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여 결정되고, 그 후 청킹 위치는 상이한 방법들을 사용하여 상이한 데이터 분포 특성들에 대해 결정된다. 이러한 방식으로, 본 출원의 실시예들에서 제공되는 청킹 방법은 상이한 데이터 분포 특성들을 갖는 청킹될 데이터 흐름에 더 잘 적응할 수 있다. 이러한 방식으로, 청킹될 데이터 흐름을 더 잘 분할하여 중복 제거 효과를 향상시킬 수 있다.
일 구현에서, 제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정하는 구체적인 구현은 다음과 같을 수 있다: 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 문자들의 문자 값들 중 최댓값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일한 경우, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정한다.
이 기술적 해결책에서, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값 중 최대 문자 값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일할 때, 이는 제1 데이터 세그먼트 내의 첫번째 문자와 마지막 문자 사이의 모든 문자의 문자 값이 최대 문자 값 이하라는 것을 나타낸다. 따라서, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일하고 모두 최대 문자 값일 확률은 비교적 높고, 제1 데이터 세그먼트의 데이터 분포 특성은 평원 분포로서 결정될 수 있다고 고려될 수 있다. 또한, 제1 데이터 세그먼트 내의 모든 문자의 문자 값이 동일한지를 결정하는 구체적인 구현은: 먼저 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최대 문자 값을 결정하는 것; 제1 데이터 세그먼트 내의 모든 문자의 문자 값이 최대 문자 값과 동일한지를 연속적으로 결정하는 것; 및 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 최대 문자 값과 동일한 경우, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일하다고 결정하는 것일 수 있다. 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일한지를 결정하는 것과 비교하여, 이 기술적 해결책에서는, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최대 문자 값만이 결정될 필요가 있고, 그 후, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인지를 결정하기 위해, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 마지막 문자의 문자 값이 모두 최대 문자 값과 동일한지가 비교될 수 있다. 제1 데이터 세그먼트의 데이터 분포 특성은 이 기술적 해결책을 사용하여 더 신속하게 결정될 수 있다는 것을 알 수 있다. 따라서, 청킹될 데이터 흐름의 청킹 효율이 개선된다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 구체적인 구현은: 제1 데이터 세그먼트 내의 마지막 문자 이후의 문자들로부터 제1 타겟 문자를 결정하는 것- 제1 타겟 문자는 청킹 조건을 충족하고, 청킹 조건은: 제1 타겟 문자의 문자 값이 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 상이하고, 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 제1 타겟 문자의 이전 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이가 예상된 청킹 길이 이상인 것을 포함함 -; 및 제1 타겟 문자의 시작 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하는 것일 수 있다.
이러한 기술적 해결책에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, 2개의 청킹 조건을 충족시키는 제1 타겟 문자의 시작 위치가 청킹 위치로서 결정된다. 한편, 청킹 위치에 기초하여 결정되는 데이터 청크의 길이는 예상된 청킹 길이 이상일 수 있어, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때 비대칭 극값 알고리즘에 따라 출력되는 데이터 청크의 길이가 예상된 청킹 길이보다 작은 경우를 회피하여, 데이터 청크의 해시 값을 계산하기 위한 전력 소비가 효과적으로 감소될 수 있다. 다른 한편으로, 중복 제거 레이트를 개선하고 중복 제거 효과를 향상시키기 위해, 동일한 문자 값을 갖는 보다 많은 문자들이 가능한 한 많은 동일한 데이터 청크로 청킹될 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 구체적인 구현은: 청킹될 데이터 흐름의 청킹 위치로서 위치를 결정하는 것일 수 있고, 여기서 상기 위치와 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치 사이의 문자 길이는 예상된 청킹 길이이다.
이 기술적 해결책에서는, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포라고 결정될 때, (문자 길이가 w1인) 제1 데이터 세그먼트 이후의 그리고 이에 인접한 데이터 세그먼트(예를 들어, 문자 길이가 E-w1인 데이터 세그먼트)의 데이터 분포 특성도 평원 분포일 확률이 비교적 높다. 따라서, 위치는 청킹될 데이터 흐름의 청킹 위치로서 결정되고, 여기서 상기 위치와 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치 사이의 문자 길이는 예상된 청킹 길이 E이다. 한편, 제1 데이터 세그먼트와, 제1 데이터 세그먼트의 이후의 그리고 이에 인접하며 문자 길이가 E-w1인 평원 분포의 데이터 세그먼트는 동일한 데이터 청크로 청킹될 수 있다. 이러한 방식으로, 중복 제거 레이트를 개선하고 중복 제거 효과를 향상시키기 위해, 동일한 문자 값을 갖는 더 많은 문자들이 가능한 한 많이 동일한 데이터 청크로 청킹될 수 있다. 한편, 문자 길이가 E-w1인 데이터 세그먼트 내의 모든 문자의 문자 값들은 계산되지 않을 수 있다. 이러한 방식으로, 청킹 효율이 개선될 수 있고, 중복 제거 시스템의 스루풋이 개선될 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포일 때, 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 것의 구체적인 구현은: 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하는 것- 제2 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제2 타겟 문자의 종료 위치와 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 제2 길이임 -; 및 제2 데이터 세그먼트 내의 모든 문자의 문자 값들이 제2 타겟 문자의 문자 값보다 작은 경우, 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하는 것일 수 있다.
이 기술적 해결책에서, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포라고 결정된 후에, 제2 데이터 세그먼트는 청킹될 데이터 흐름으로부터 추가로 결정될 수 있고, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인지 또는 균등 분포인지는 제2 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여 추가로 결정된다. 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포일 때, 비대칭 극값 알고리즘에서, 최댓값이 발견된 후에, 최댓값에 대응하는 문자 이후의 w번째 문자의 종료 위치가 청킹될 데이터 흐름의 청킹 위치로서 결정되는 반면, 본 출원의 실시예들에서 개시된 청킹 방법에 따르면, 제2 타겟 문자 이후의 w2번째 문자(즉, 최댓값에 대응하는 문자)의 종료 위치가 청킹될 데이터 흐름의 청킹 위치로서 결정될 수 있다. 또한, w2<w이다. 따라서, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포일 때, 본 출원의 실시예들에서 개시된 청킹 방법에 따른 데이터 청크 출력의 문자 길이는 비대칭 극값 알고리즘에 따른 데이터 청크 출력의 문자 길이보다 작다. 이러한 방식으로, 가능한 한 빨리 다음 청킹 기간을 입력할 수 있다. 이는 청킹 위치의 검색 프로세스에 대한 고원 분포의 영향을 효과적으로 감소시킨다.
제2 양태에 따르면, 본 출원의 실시예는 청킹 장치를 제공한다. 이 장치는 제1 양태에서 제공된 청킹 방법을 구현하는 기능을 갖는다. 이러한 기능은 하드웨어에 의해 구현될 수 있거나, 또는 대응하는 소프트웨어를 실행하는 하드웨어에 의해 구현될 수 있다. 하드웨어 또는 소프트웨어는 기능에 대응하는 하나 이상의 모듈을 포함한다.
제3 양태에 따르면, 본 출원의 실시예는 제2 양태에 따른 파티션 장치에 의해 사용되는 컴퓨터 프로그램 명령어들을 저장하도록 구성되는 컴퓨터 판독가능 저장 매체를 제공한다. 컴퓨터 프로그램 명령어들은 제1 양태를 실행하기 위해 사용되는 프로그램을 포함한다.
제4 양태에 따르면, 본 출원의 실시예는 서비스 디바이스를 제공한다. 서비스 디바이스는 메모리 및 프로세서를 포함하고, 메모리는 프로그램 명령어들을 저장하고, 프로세서는 버스를 통해 메모리에 접속되고, 프로세서는 메모리에 저장된 프로그램 명령어들을 호출하여, 서비스 디바이스가 제1 양태에 따른 방법을 수행하게 한다.
제5 양태에 따르면, 본 출원의 실시예는 컴퓨터 프로그램 제품을 제공한다. 프로그램 제품은 프로그램을 포함하고, 프로그램이 실행될 때, 제1 양태에 따른 방법이 구현된다.
제6 양태에 따르면, 본 출원의 실시예는 프로세서를 추가로 제공한다. 프로세서는 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고, 제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정하고, 제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하도록 구성된 적어도 하나의 회로를 포함한다. 프로세서는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용하도록 구성된 적어도 하나의 회로를 추가로 포함한다. 프로세서는 칩일 수 있고, 제1 양태에서의 방법을 구현하기 위해 사용되는 명령어들 또는 프로그램을 실행할 수 있다.
제7 양태에 따르면, 본 출원의 실시예는 칩 시스템을 추가로 제공한다. 칩 시스템은 제1 양태에서의 기능 또는 방법을 구현하기 위해, 예를 들어, 서비스 디바이스에 적용되는 프로세서를 포함한다. 실현가능한 구현에서, 칩 시스템은 메모리를 추가로 포함한다. 메모리는 제1 양태의 방법에서의 기능을 수행하기 위해 필요한 프로그램 명령어들 및 데이터를 저장하도록 구성된다. 칩 시스템은 칩을 포함할 수 있거나, 또는 칩 및 다른 개별 컴포넌트를 포함할 수 있다.
도 1a는 기존의 비대칭 극값 알고리즘의 동작 원리의 개략도이고;
도 1b는 본 출원의 실시예에 따른 데이터 흐름에서의 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 개략도이고;
도 1c는 본 출원의 실시예에 따른 데이터 흐름에서의 데이터 세그먼트의 데이터 분포 특성이 고원 분포(plateau distribution)인 개략도이고;
도 1d는 본 출원의 실시예에 따른 네트워크 아키텍처의 개략도이고;
도 2는 본 출원의 실시예에 따른 청킹 방법의 개략적인 흐름도이고;
도 3a는 본 출원의 실시예에 따른 다른 청킹 방법의 개략적인 흐름도이고;
도 3b는 본 출원의 실시예에 따른 청킹될 데이터 흐름의 청킹 위치가 예상된 청킹 길이에 기초하여 결정되는 시나리오의 개략도이고;
도 4a는 본 출원의 실시예에 따른 또 다른 청킹 방법의 개략적인 흐름도이고;
도 4b는 본 출원의 실시예에 따른 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때 청킹될 데이터 흐름의 청킹 위치가 결정되는 시나리오의 개략도이고;
도 5a는 본 출원의 실시예에 따른 또 다른 청킹 방법의 개략적인 흐름도이고;
도 5b는 본 출원의 실시예에 따른 제2 타겟 문자를 결정하는 시나리오의 개략도이고;
도 5c는 본 출원의 실시예에 따른 X 문자를 결정하는 시나리오의 개략도이고;
도 5d는 본 출원의 실시예에 따른 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포일 때 청킹될 데이터 흐름의 청킹 위치가 결정되는 시나리오의 개략도이고;
도 6은 본 출원의 실시예에 따른 또 다른 청킹 방법의 개략적인 흐름도이다고;
도 7aa, 도 7ab, 및 도 7ac은 본원의 실시예에 따른 또 다른 청킹 방법의 개략적인 흐름도이고;
도 7b는 본 출원의 실시예에 따른 청킹 방법의 동작 원리의 개략도이고;
도 8은 본 출원의 실시예에 따른 청킹 장치의 개략적인 구조도이고;
도 9는 본 출원의 실시예에 따른 서비스 디바이스의 개략적인 구조도이다.
다음은 본 출원의 실시예들에서 사용되는 용어들을 설명한다.
균등 분포: 데이터 세그먼트 내의 각각의 문자의 문자 값이 문자에 대응하는 값 범위 내의 임의의 값일 확률이 동일한 경우, 데이터 세그먼트의 데이터 분포 특성은 균등 분포이다. 데이터 세그먼트 내의 문자는 단일 바이트 문자 또는 다중 바이트 문자일 수 있다. 단일 바이트(single-byte) 문자는 메모리에 점유된 저장 공간이 1 바이트인 문자이고, 멀티 바이트 문자는 메모리에 점유된 저장 공간이 복수의 바이트인 문자이다. 본 출원의 실시예들에서, 데이터 세그먼트 내의 문자가 단일-바이트 문자인 예가 설명을 위해 사용된다. 메모리에서 단일-바이트 문자가 차지하는 저장 공간은 8 비트이다. 싱글-바이트 문자의 문자 값은 싱글-바이트 문자에 대응하는 8비트 이진 데이터로부터 변환된 10진 값이고, 싱글-바이트 문자에 대응하는 값 범위는 8비트로 표현될 수 있는 모든 10진수, 즉 0 내지 255이다. 데이터 세그먼트 내의 문자가 더블-바이트 문자인 경우, 메모리 내의 더블-바이트 문자에 의해 점유되는 저장 공간이 16 비트이기 때문에, 데이터 세그먼트 내의 문자의 문자 값은 문자에 대응하는 16 비트 이진 데이터로부터 변환된 10진 값이고, 문자에 대응하는 값 범위는 16 비트로 표현될 수 있는 모든 10진수, 즉 0 내지 65535이다.
설명의 용이함을 위해, 이하에서, 각각의 바이트에 대응하는 8비트 이진 데이터를 10진수로 변환함으로써 획득된 값이 문자 값이라고 지칭된다는 점에 유의해야 한다.
본 출원의 실시예들에서, 데이터 세그먼트의 데이터 분포 특성은 상이한 차원들에 기초하여 상이한 타입들로 분류될 수 있다. 예를 들어, 데이터 세그먼트의 데이터 분포 특성은 데이터 세그먼트 내의 각 문자의 문자 값이 문자에 대응하는 값 범위 내의 임의의 값일 확률이 동일한지에 기초하여, 균등 분포와 비균등 분포로 분류될 수 있다. 데이터 세그먼트 내의 각각의 문자의 문자 값이 동일한지에 따라, 데이터 세그먼트의 데이터 분포 특성은 평원 분포 및 비평원 분포로 분류될 수 있다.
비균등 분포: 데이터 세그먼트 내의 각 문자의 문자 값이 문자에 대응하는 값 범위 내의 임의의 값일 확률이 상이한 경우, 데이터 세그먼트의 데이터 분포 특성은 비균등 분포이다. 비균등 분포는 평원 분포(plain distribution), 고원 분포(plateau distribution), 및 분지 분포(basin distribution)를 포함할 수 있다.
평원 분포: 데이터 세그먼트 내의 모든 문자의 문자 값이 동일한 경우, 데이터 세그먼트의 데이터 분포 특성은 평원 분포이다.
비평원 분포: 문자 값이 상이한 적어도 2개의 문자가 데이터 세그먼트 내에 존재하는 경우, 즉, 데이터 세그먼트 내의 문자의 문자 값이 완전히 동일하지 않은 경우, 데이터 세그먼트의 데이터 분포 특성은 비평원 분포이다. 비평원 분포는 균등 분포, 고원 분포, 및 분지 분포를 포함할 수 있다.
고원 분포: 데이터 세그먼트 내의 각각의 문자의 문자 값 내에 매우 큰 문자 값이 존재하고, 이 매우 큰 문자 값이 주변 문자의 문자 값보다 큰 경우, 데이터 세그먼트의 데이터 분포 특성은 고원 분포이다.
분지 분포: 데이터 세그먼트 내의 각각의 문자의 문자 값에 매우 작은 문자 값이 있고, 이 매우 작은 문자 값이 주변 문자의 문자 값보다 작은 경우, 데이터 세그먼트의 데이터 분포 특성은 분지 분포이다.
동일한 데이터 흐름에 속하는 상이한 데이터 세그먼트들의 데이터 분포 특성들은 동일할 수 있거나 상이할 수 있다는 점에 유의해야 한다. 예를 들어, 데이터 세그먼트 1 및 데이터 세그먼트 2가 동일한 데이터 흐름에 속하고, 데이터 세그먼트 1의 데이터 분포 특성이 균등 분포인 경우, 데이터 세그먼트 2의 데이터 분포 특성은 평원 분포, 고원 분포, 분지 분포, 또는 균등 분포일 수 있다. 이는 본 출원의 실시예들에서 제한되지 않는다.
고정된 크기 청킹 알고리즘이 경계 오프셋 문제에 의해 영향을 받기 때문에, 가변가능 크기 청킹 알고리즘이 생성되고, 고정된 크기 청킹 알고리즘에 따른 데이터 청크 출력의 길이는 가변적이다. 주류인 가변가능 크기 청킹 알고리즘은 비대칭 극값(Asymmetric Extremum, AE), 배타적 OR(exclusive OR, XOR), 라빈(Rabin), 샘플 바이트(Sample Byte), TTTD(Two Thresholds, Two Divisors), 및 RAM(Rapid Asymmetric Maximum)을 포함할 수 있지만, 이들로 제한되지 않는다. AE 알고리즘은 중복 제거 레이트 및 스루풋을 고려한다. 전술한 가변가능 크기 청킹 알고리즘과 비교하여, AE 알고리즘은 최적의 중복 제거 성능을 갖는다.
AE 알고리즘의 핵심은 문자들의 문자 값들을 비교함으로써 최대 값(즉, 최대 문자 값) 및 데이터 세그먼트에서의 최대 값의 위치를 찾아서 청킹 위치를 결정하는 것이다. 도 1a는 비대칭 극값 알고리즘의 동작 원리의 개략도이며, e'는 범위 p+w 내의 최대 문자 값이고, p의 길이는 가변적이며, w의 길이는 고정되고; 범위 p 내의 모든 문자의 문자 값들은 e'보다 작고, 범위 w 내의 모든 문자의 문자 값들은 e' 이하이고; 범위 p+w 내의 모든 문자는 데이터 청크(즉, 현재 데이터 청크)를 형성하고; 이전 데이터 청크의 청킹 위치 A는 범위 p 내의 첫번째 문자의 시작 위치이고, 현재 데이터 청크의 청킹 위치 B는 범위 w 내의 마지막 문자의 종료 위치이다. 도 1a에 도시된 바와 같이, 범위 p+w에서 최댓값 e'를 구할 확률은 1/(p+w)이다. 따라서,
Figure 112021110360592-pct00001
인 것을 획득하여, p=w(e-1)를 추가로 획득할 수 있고, 여기서 e=2.71이다. AE 알고리즘의 주요 파라미터는 예상된 청킹 길이 E이고, E는 AE 알고리즘의 중복 제거 성능을 직접 결정한다. 예상된 청킹 길이 E는 관계식 p=w(e-1)에 따라 계산되고, 파라미터 w=E/(e-1)이 획득될 수 있다.
도 1a에 도시된 바와 같이, 이전 데이터 청크의 청킹 위치 A로부터 시작하여, 문자들의 문자 값들을 연속적으로 비교함으로써 범위 p+w에서의 최댓값 e'의 위치가 검색된다. 최댓값 e'의 위치를 찾은 후에, B가 현재 데이터 청크의 청킹 위치로서 사용되고, 여기서 B=e'+w이다. AE 알고리즘이 데이터 흐름에 대해 청크 처리를 수행하는 구체적인 동작 절차는 다음과 같다:
① 데이터 흐름 내의 문자들을 순회하고, 문자 a를 찾고- 데이터 흐름 내의 문자 a의 문자 값은 동일한 데이터 청크 내의 문자 a 이전의 모든 문자의 문자 값들보다 큼 -;
② w개의 문자를 문자 a가 위치하는 위치로부터 역방향으로 보고;
③ w개의 문자의 문자 값들이 모두 문자 a의 문자 값 이하인 경우, 문자 a가 위치하는 위치로부터 시작하여, 역방향으로 본 w번째 문자의 종료 위치가 현재 데이터 청크의 청킹 위치라고 결정하고;
④ 현재 데이터 청크의 청킹 위치가 결정된 후에, 데이터 흐름 내의 모든 데이터가 청킹될 때까지 상기 단계 ①를 반복한다.
AE 알고리즘은 최댓값을 검색하는 프로세스를 포함하기 때문에, 경계 오프셋 문제가 효과적으로 해결될 수 있다. 그러나, AE 알고리즘의 이론적 모델은 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 것에 기초하여 확립된다. 따라서, 데이터 세그먼트의 데이터 분포 특성이 비균등 분포일 때 청킹 효과는 이상적이지 않다.
다음은 데이터 세그먼트의 데이터 분포 특성이 비균등 분포에서의 평원 분포 및 고원 분포인 2가지 경우에 기초하여 AE 알고리즘의 단점들을 분석한다.
도 1b는 데이터 흐름에서의 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 개략도이다. 도 1b로부터, 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, P=1, 즉, AE 알고리즘을 사용하여 출력된 청크들의 평균 길이는 (w+1) 바이트라는 것을 알 수 있다. 또한, E와 w는 관계식 w=E/(e-1)을 충족하기 때문에,
Figure 112021110360592-pct00002
바이트가 계산을 통해 획득될 수 있다. 즉, 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, AE 알고리즘을 사용하여 출력된 청크들의 평균 길이는 약 2.4 바이트이다. 청크들의 평균 길이는 보통 수백 바이트이기 때문에, 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, AE 알고리즘을 사용하여 출력된 청크들의 수량은 사용자에 의해 예상된 수량보다 훨씬 더 크다. 이것은 해시 값을 계산하기 위한 추가적인 전력 소비를 더 증가시킨다.
도 1c는 데이터 흐름에서의 데이터 세그먼트의 데이터 분포 특성이 고원 분포인 개략도이다. 문자 값 255는 범위 p+w에서의 최대 문자 값이다. 도 1c의 문자가 싱글 바이트 문자일 때, 문자 값 255는 싱글 바이트 문자에 대응하는 값 범위에서의 최댓값이다. 따라서, 문자 값 255의 존재는 AE 알고리즘이 후속 문자 값 비교 프로세스에서 후속 문자의 문자 값을 무시할 수 있게 한다. 즉, 고원 분포의 발생은 균등 분포에 기초하는 AE 알고리즘에 따라 청킹 위치를 검색하는 프로세스를 방해한다.
AE 알고리즘에서 균등 분포만이 고려된다는 단점을 해결하기 위해, 본 출원의 실시예는 데이터 세그먼트의 데이터 분포 특성이 비균등 분포일 때 청킹 성능을 향상시키도록, 청킹 알고리즘을 제공한다.
도 1d는 본 출원의 실시예가 적용되는 네트워크 아키텍처의 개략도이다. 도 1d에 도시된 네트워크 아키텍처는: 네트워크 단말 디바이스(101), 제1 서비스 디바이스(102), 제2 서비스 디바이스(103), 및 데이터 센터(Data Center, DC)/헤드쿼터(Headquarter, HQ)(104)를 포함한다.
네트워크 단말 디바이스(101)는 다양한 타입의 데이터 흐름들을 생성하고, 생성된 다양한 타입의 데이터 흐름들을 동일한 근거리 네트워크(Local Area Network, LAN) 내의 제1 서비스 디바이스(102)에 전송하도록 주로 구성된다. 네트워크 단말 디바이스(101)는 모바일 폰, 태블릿 컴퓨터, 개인용 컴퓨터(Personal Computer, PC), 스마트 텔레비전, 스마트워치, 차량 탑재 디바이스, 웨어러블 디바이스, 가상 현실 디바이스, 미래의 5세대(the 5th Generation, 5G) 네트워크에서의 단말 디바이스, 또는 음성 기능을 갖는 다른 지능형 디바이스를 포함할 수 있지만, 이들로 제한되지 않는다.
제1 서비스 디바이스(102) 및 제2 서비스 디바이스(103)는 기업 또는 서비스 제공자 코어 네트워크에 진입점(entry point)을 제공하는 네트워크 에지 디바이스들일 수 있다. 제1 서비스 디바이스(102) 및 제2 서비스 디바이스(103)는 라우터, 라우팅 스위치, 통합된 액세스 디바이스, 멀티플렉서, 및 다양한 광역 네트워크(Wide Area Network, WAN) 액세스 디바이스들을 포함할 수 있지만, 이들로 제한되지 않는다. 제1 서비스 디바이스(102)는 네트워크 단말 디바이스(101)에 의해 전송되는 다양한 타입의 데이터 흐름들에 대해 중복 제거 처리를 수행하고, 중복 제거된 데이터 흐름을 광역 네트워크에서의 제2 서비스 디바이스(103)에 송신하도록 주로 구성된다.
제2 서비스 디바이스(103)는 제1 서비스 디바이스(102)에 의해 전송된 중복 제거된 데이터 흐름에 기초한 파싱을 통해 원래의 데이터 흐름을 획득하고, 파싱을 통해 획득된 데이터 흐름을 DC/HQ(104)에 송신하도록 주로 구성된다. DC/HQ(104)는 제2 서비스 디바이스(103)에 의해 전송된 데이터 흐름을 저장, 표시, 계산 또는 송신하도록 주로 구성된다.
제1 서비스 디바이스(102)가 데이터 흐름에 대해 중복 제거 처리를 수행하는 프로세스에서, 제1 서비스 디바이스(102)는 네트워크 단말 디바이스(101)에 의해 전송되는 데이터 흐름에 대해 청킹 처리를 먼저 수행할 수 있다. 구체적으로, 제1 서비스 디바이스(102)가 데이터 흐름에 대해 청킹 처리를 수행하는 구체적인 프로세스는 다음과 같다: 제1 서비스 디바이스(102)는, 데이터 흐름의 헤더로부터 시작하여, 문자 길이가 제1 길이(w1)인 제1 데이터 세그먼트를 결정하고, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성을 결정하고, 제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 대응하는 청킹 정책을 실행하여, 데이터 흐름의 청킹 위치를 결정하고, 첫번째 문자의 위치와 제1 데이터 세그먼트에서의 청킹 위치 사이의 문자들을 데이터 청크로서 사용한다. 문자 길이는 포함된 문자들의 수량이다. 즉, 제1 데이터 세그먼트는 w1개의 문자를 포함한다. 일 구현에서, 적어도 제1 청킹 정책 및 제2 청킹 정책은 제1 서비스 디바이스(102)에서 구성될 수 있고, 제1 청킹 정책은 예상된 청킹 길이에 기초하여 데이터 흐름의 청킹 위치를 결정한다. 제2 청킹 정책은 제2 길이에 기초하여 데이터 흐름의 청킹 위치를 결정한다. 일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 경우, 제1 청킹 정책이 실행된다. 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 특성인 경우, 제2 청킹 정책이 실행된다. 본 출원의 실시예들은 제1 데이터 세그먼트 내의 각각의 문자가 단일 바이트 문자인 예를 사용하여 설명되지만, 이것은 본 출원의 실시예들에 대한 제한을 구성하지 않는다는 점에 유의해야 한다. 다른 실현가능한 구현에서, 제1 데이터 세그먼트 내의 각각의 문자는 멀티-바이트 문자일 수 있다.
제1 서비스 디바이스(102)가 제1 데이터 세그먼트의 데이터 분포 특성을 분석한 다음, 상이한 데이터 분포 특성들에 대해 상이한 청킹 정책들을 실행하여 청킹 위치를 결정할 수 있기 때문에, 본 출원의 실시예들에서 제공되는 청킹 방법은 상이한 데이터 분포 특성들을 갖는 데이터 흐름에 더 잘 적응하고, 상이한 데이터 분포 특성들에 기초하여 상이한 청킹 길이들의 데이터 청크들을 출력할 수 있다. 이러한 방식으로, 경계 오프셋 문제가 효과적으로 해결될 수 있고, 데이터 흐름이 더 잘 청킹될 수 있으며, 그에 의해 중복 제거 효과를 향상시킨다.
도 1d에 도시된 네트워크 단말 디바이스(101), 제1 서비스 디바이스(102), 제2 서비스 디바이스(103), 및 DC/HQ(104)는 별개의 물리적 엔티티들로서 개별적으로 사용되고, 단지 예로서 사용되며, 본 출원의 실시예들에 대한 제한을 구성하지 않는다는 점에 유의해야 한다. 다른 실현가능한 구현에서, 네트워크 단말 디바이스(101)와 제1 서비스 디바이스(102)는 동일한 물리적 엔티티에 통합될 수 있고, 제2 서비스 디바이스(103)와 DC/HQ(104)는 동일한 물리적 엔티티에 통합될 수 있다.
본 출원의 실시예들에서 설명되는 네트워크 아키텍처는 본 출원의 실시예들에서의 기술적 해결책들을 더 명확하게 설명하도록 의도되고, 본 출원의 실시예들에서 제공되는 기술적 해결책들에 대한 어떠한 제한도 구성하지 않는다는 점이 이해될 수 있다. 본 기술분야의 통상의 기술자는 시스템 아키텍처들의 진화 및 새로운 서비스 시나리오들의 출현으로, 본 출원의 실시예들에서 제공되는 기술적 해결책들이 유사한 기술적 문제에도 적용가능하다는 것을 알 수 있다.
도 1d에 도시된 네트워크 아키텍처의 개략도에 기초하여, 도 2는 본 출원의 실시예에 따른 청킹 방법의 개략적인 흐름도이다. 이 방법은 이하의 단계들을 포함할 수 있지만, 이들로 제한되지 않는다.
단계 S201: 서비스 디바이스는 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고, 여기서 제1 데이터 세그먼트는 복수의 문자를 포함하고, 제1 데이터 세그먼트 내에 포함된 복수의 문자의 문자 길이는 제1 길이이다.
구체적으로, 데이터 흐름을 수신한 후에, 서비스 디바이스는 청킹될 데이터 흐름을 획득하고, 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이(w1)의 제1 데이터 세그먼트를 결정할 수 있다. 일 구현에서, 서비스 디바이스는 수신 인터페이스로부터, 동일한 데이터 흐름에 속하는 상이한 데이터를 연속적으로 수신할 수 있다. 서비스 디바이스는 수신된 데이터를 청킹할 수 있다. 즉, 데이터 흐름은 청킹될 데이터 및 청킹된 데이터를 포함할 수 있다. 청킹될 데이터 흐름에서의 모든 데이터는 청킹될 데이터이다.
일 구현에서, 동일한 데이터 흐름에 속하는 모든 수신된 데이터가 청킹될 데이터일 때, 청킹될 데이터 흐름의 헤더는 데이터 흐름에서의 첫번째 문자의 시작 위치일 수 있다. 일 구현에서, 동일한 데이터 흐름에 속하는 수신된 데이터가 청킹될 데이터 및 청킹된 데이터를 포함할 때, 청킹될 데이터 흐름의 헤더는 데이터 흐름에서의 마지막 청킹된 문자의 다음 문자(즉, 청킹될 데이터 흐름에서의 첫번째 문자)의 시작 위치일 수 있다.
일 구현에서, 서비스 디바이스는 큐로부터 청킹될 데이터 흐름을 획득할 수 있다. 일 구현에서, 서비스 디바이스는 수신 인터페이스로부터 청킹될 데이터 흐름을 획득하고나서, 청킹될 데이터 흐름을 청킹할 수 있다. 이러한 방식으로, 청킹될 데이터 흐름은 중복 제거 효율을 개선하기 위해 실시간으로 청킹될 수 있다. 일 구현에서, 서비스 디바이스가 수신 인터페이스로부터 획득된 모든 청킹될 데이터 흐름을 시간상 청킹할 수 없을 때, 서비스 디바이스는 일부 청킹될 데이터 흐름들을 큐에 저장할 수 있어, 서비스 디바이스는 청킹하기 위해 큐로부터 청킹될 데이터 흐름들을 후속하여 획득한다. 서비스 디바이스는 도 1d의 제1 서비스 디바이스일 수 있다.
도 1d에 도시된 통신 시나리오 이외에, 본 출원의 이 실시예에서 개시된 청킹 방법은 단일 서비스 디바이스의 데이터 압축 처리 시나리오에 추가로 적용될 수 있다는 점에 유의해야 한다. 예를 들어, 저장될 데이터 흐름을 수신한 후에, 서비스 디바이스는 저장될 데이터 흐름을 청킹할 수 있다. 또한, 저장된 동일한 청크에 대해, 청크의 대응하는 해시 값만이 저장될 필요가 있다. 이러한 방식으로, 서비스 디바이스의 저장 공간 이용이 효과적으로 개선될 수 있다. 일 구현에서, 라우터, 라우팅 스위치, 통합된 액세스 디바이스, 멀티플렉서, 및 다양한 광역 네트워크 액세스 디바이스들 이외에, 서비스 디바이스는 서버, 모바일 폰, 또는 컴퓨터와 같은 전자 디바이스일 수 있다.
단계 S202: 서비스 디바이스는 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정한다.
구체적으로, 제1 데이터 세그먼트를 결정한 후에, 서비스 디바이스는 제1 데이터 세그먼트 내의 모든 문자의 문자 값들을 계산하고, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정하고, 제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 대응하는 청킹 정책을 추가로 실행하여, 청킹될 데이터 흐름의 청킹 위치를 결정할 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성은 평원 분포 또는 비평원 분포일 수 있고, 서비스 디바이스가 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정하는 구체적인 구현은 다음과 같을 수 있다: 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일한 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포라고 결정하거나; 또는, 문자 값이 상이한 적어도 2개의 문자가 제1 데이터 세그먼트 내에 존재하는 경우, 즉, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 완전히 동일하지 않은 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포라고 결정한다.
단계 S203: 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정한다.
구체적으로, 청킹될 데이터 흐름의 청킹 위치를 결정하기 위해 서비스 디바이스에 의해 실행되는 청킹 정책은 제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 변한다. 일 구현에서, 서비스 디바이스가 상이한 청킹 정책들을 실행할 때, 출력 청킹 길이들은 상이할 수 있다. 제1 데이터 세그먼트의 데이터 분포 특성이 분석된 다음, 상이한 데이터 분포 특성들에 대해 상이한 청킹 정책들이 실행되어 청킹 위치를 결정함으로써, 본 출원의 실시예들에서 제공되는 청킹 방법은 상이한 데이터 분포 특성들을 갖는 데이터 흐름에 더 잘 적응할 수 있고, 상이한 데이터 분포 특성들에 기초하여 상이한 청킹 길이들의 데이터 청크들을 출력할 수 있다. 이러한 방식으로, 경계 오프셋 문제가 효과적으로 해결될 수 있고, 데이터 흐름이 더 잘 청킹될 수 있으며, 그에 의해 중복 제거 효과를 향상시킨다.
단계 S204: 서비스 디바이스는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용한다.
구체적으로, 청킹 위치를 결정한 후에, 서비스 디바이스는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 동일한 데이터 청크로 분류할 수 있다. 즉, 분류를 통해 획득된 데이터 청크는 제1 데이터 세그먼트 내의 첫번째 문자를 포함한다.
본 출원의 이 실시예에서, 제1 데이터 세그먼트의 데이터 분포 특성은 분석을 통해 획득될 수 있고, 그 후 상이한 청킹 정책들이 상이한 데이터 분포 특성들에 대해 사용되어 청킹 위치를 결정한다는 것을 알 수 있다. 이러한 방식으로, 본 출원의 이 실시예에서 제공되는 청킹 방법은 상이한 데이터 분포 특성들을 갖는 데이터 흐름에 더 잘 적응하고, 상이한 데이터 분포 특성들에 기초하여 상이한 청킹 길이들의 데이터 청크들을 출력할 수 있다. 이러한 방식으로, 경계 오프셋 문제가 효과적으로 해결될 수 있고, 데이터 흐름이 더 잘 청킹될 수 있으며, 그에 의해 중복 제거 효과를 향상시킨다.
도 3a는 본 출원의 실시예에 따른 다른 청킹 방법의 개략적인 흐름도이다. 이 방법은 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 방법, 및 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포일 때 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 방법을 간략하게 설명한다. 이 방법은 이하의 단계들을 포함할 수 있지만, 이들로 제한되지 않는다.
단계 S301: 서비스 디바이스는 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고, 여기서 제1 데이터 세그먼트는 복수의 문자를 포함하고, 제1 데이터 세그먼트 내에 포함된 복수의 문자의 문자 길이는 제1 길이이다.
단계 S302: 서비스 디바이스는 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정한다.
단계 S301 및 단계 S302의 실행 프로세스들에 대해서는, 각각 도 2의 단계 S201 및 단계 S202의 특정 설명들을 참조하고, 세부사항들은 여기서 다시 설명되지 않는다는 점에 유의해야 한다.
단계 S303: 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 경우, 서비스 디바이스는 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하고, 여기서 데이터 분포 특성이 평원 분포인 데이터 세그먼트 내의 모든 문자의 문자 값들은 동일하다.
구체적으로, 적어도 제1 청킹 정책 및 제2 청킹 정책이 서비스 디바이스에서 구성될 수 있다. 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 경우, 서비스 디바이스는 제1 청킹 정책을 실행할 수 있는데, 즉, 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정할 수 있다. 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 경우, 서비스 디바이스는 제2 청킹 정책을 실행할 수 있는데, 즉, 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정할 수 있다.
예상된 청킹 길이 E 및 AE 알고리즘에서의 예상된 청킹 길이는 동일하고, 둘 다는 사용자에 의해 예상되는 청킹 길이들이다. 예상된 청킹 길이는 디폴트로 서비스 디바이스에 의해 설정될 수 있거나, 또는 사용자 조작에 기초하여 서비스 디바이스에 의해 설정될 수 있다. 이는 본 출원의 이 실시예에서 제한되지 않는다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, 서비스 디바이스가 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 구체적인 구현은 다음과 같을 수 있다: 서비스 디바이스는 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하고, 여기서 상기 위치와 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치 사이의 문자 길이는 예상된 청킹 길이이다. 본 출원의 이러한 실시예에서, 달리 명시되지 않는 한, 문자의 위치는 문자의 시작 위치라는 점에 유의해야 한다.
청킹될 데이터 흐름의 청킹 위치가 도 3b에 도시된 예상된 청킹 길이에 기초하여 결정되는 시나리오의 개략도가 일례로서 사용된다. 제1 데이터 세그먼트의 문자 길이 w1이 3이고, 예상된 청킹 길이 E가 30이고, c1이 제1 데이터 세그먼트 내의 첫번째 문자이고, c2가 c1의 이전 문자이고, c3이 c1의 다음 문자이고, p1이 c1의 시작 위치이고, p3이 c1의 종료 위치일 때, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 모두 6이라는 것을 도면으로부터 알 수 있다. 즉, 제1 데이터 세그먼트의 데이터 분포 특성은 평원 분포이고, 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치(p1)와 도면에서의 위치 p2 사이의 문자 길이는 E이다. 이 경우, 서비스 디바이스는 청킹될 데이터 흐름의 청킹 위치로서 p2를 결정할 수 있다. c1의 시작 위치(p1)는 c1과 c1 전의 인접 문자(c2) 사이의 접합이라는 점에 유의해야 한다. 유사하게, c1의 종료 위치(p3)는 c1과 c1 이후의 인접 문자(c3) 사이의 접합이다. 또한, c1이 데이터 흐름에서의 첫번째 문자일 때, 즉, c1 전에 다른 문자가 없을 때, 데이터 흐름의 시작 위치가 c1의 시작 위치로서 사용된다는 점에 유의해야 한다.
일 구현에서, 서비스 디바이스는 예상된 청킹 길이에 기초하여 제1 길이를 결정할 수 있고, 제1 길이는 예상된 청킹 길이보다 작다.
단계 S304: 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 경우, 서비스 디바이스는 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하고, 여기서 제2 길이는 예상된 청킹 길이보다 작고, 문자 값들이 상이한 적어도 2개의 문자가 데이터 분포 특성이 비평원 분포인 데이터 세그먼트 내에 존재한다.
비평원 분포는 고원 분포, 분지 분포, 및 균등 분포를 포함할 수 있다. 일 구현에서, 문자 값이 상이한 적어도 2개의 문자가 제1 데이터 세그먼트 내에 존재하고(즉, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 완전히 동일하지 않은 경우), 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값 중 최댓값인 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포라고 결정할 수 있다. 문자 값이 상이한 적어도 2개의 문자가 제1 데이터 세그먼트 내에 존재하고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최솟값인 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 분지 분포라고 결정할 수 있다. 문자 값이 상이한 적어도 2개의 문자가 제1 데이터 세그먼트 내에 존재하고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최댓값보다 작은 경우(대안적으로, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최솟값보다 큰 경우), 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 것으로 결정할 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인 경우, 서비스 디바이스는 고원 문자(즉, 제1 데이터 세그먼트 내의 첫번째 문자)의 종료 위치로부터 시작하여 청킹될 데이터 흐름을 따라 역방향으로 제2 데이터 세그먼트를 결정하고, 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다. 고원 문자의 종료 위치와 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 제2 길이(w2)이다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 분지 분포인 경우, 서비스 디바이스는 분지 문자(즉, 제1 데이터 세그먼트 내의 첫번째 문자)의 종료 위치로부터 시작하여 청킹될 데이터 흐름을 따라 역방향으로 제5 데이터 세그먼트를 결정하고, 제5 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다. 제5 데이터 세그먼트 내의 분지 문자의 종료 위치와 마지막 문자의 종료 위치 사이의 문자 길이는 w2이다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 경우, 서비스 디바이스는 제1 데이터 세그먼트의 문자 값들 중 제1 최댓값에 대응하는 문자로부터 시작하여 청킹될 데이터 흐름을 따라 역방향으로 w2개의 문자들을 볼 수 있다. w2의 문자들의 문자 값들이 모두 제1 데이터 세그먼트의 문자 값들 중 제1 최댓값 이하인 경우, 서비스 디바이스는 보여진 w2개의 문자들의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다. 다른 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 경우, 서비스 디바이스는 제1 데이터 세그먼트의 문자 값들 중 제1 최솟값에 대응하는 문자로부터 시작하여 청킹될 데이터 흐름을 따라 역방향으로 w2개의 문자들을 볼 수 있다. w2의 문자의 문자 값들이 모두 제1 데이터 세그먼트의 문자 값들 중 제1 최솟값 이상인 경우, 서비스 디바이스는 보여진 w2개의 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다.
제2 길이는 예상된 청킹 길이에 기초하여 서비스 디바이스에 의해 결정될 수 있고, 제2 길이는 예상된 청킹 길이보다 작고, 제1 길이와 제2 길이의 합은 예상된 청킹 길이 이하이다.
단계 S305: 서비스 디바이스는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용한다.
구체적으로, 청킹 위치를 결정한 후에, 서비스 디바이스는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 동일한 데이터 청크로 분류할 수 있다. 즉, 청크를 통해 획득된 데이터 청크는 제1 데이터 세그먼트 내의 첫번째 문자를 포함한다.
도 3b는 일례로서 사용된다. 서비스 디바이스는 c1의 시작 위치(p1)와 청킹 위치(p2) 사이의 문자들을 데이터 청크로 분류할 수 있다. 즉, 서비스 디바이스는, 제1 데이터 세그먼트의 헤더로부터 시작하여, 문자 길이가 예상된 청킹 길이 E인 데이터 세그먼트를 데이터 청크로 청킹할 수 있다. p1과 p2 사이의 문자 길이가 예상된 청킹 길이이기 때문에, 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들은 동일한 데이터 청크로 청킹되어, 청크를 통해 획득된 데이터 청크의 문자 길이는 예상된 청킹 길이와 동일하게 된다. 이러한 방식으로, 서비스 디바이스에 의해 데이터 청크의 해시 값을 계산하는 전력 소비가 효과적으로 제어될 수 있다.
본 출원의 이 실시예에서, 제1 데이터 세그먼트의 데이터 분포 특성은 분석을 통해 획득될 수 있고, 그 후 상이한 청킹 정책들이 상이한 데이터 분포 특성들에 대해 사용되어 청킹 위치를 결정한다는 것을 알 수 있다. 이러한 방식으로, 본 출원의 실시예들에서 제공되는 청킹 방법은 상이한 데이터 분포 특성들을 갖는 데이터 흐름에 더 잘 적응하고, 상이한 데이터 분포 특성들에 기초하여 상이한 청킹 길이들의 데이터 청크들을 출력할 수 있다. 이러한 방식으로, 경계 오프셋 문제가 효과적으로 해결될 수 있고, 데이터 흐름이 더 잘 청킹될 수 있으며, 그에 의해 중복 제거 효과를 향상시킨다.
도 4a는 본 출원의 실시예에 따른 또 다른 청킹 방법의 개략적인 흐름도이다. 이 방법은, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포라고 결정하는 방법, 및 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 방법을 상세히 설명한다. 이 방법은 이하의 단계들을 포함할 수 있지만, 이들로 제한되지 않는다.
단계 S401: 서비스 디바이스는 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고, 제1 데이터 세그먼트는 복수의 문자를 포함하고, 제1 데이터 세그먼트 내에 포함된 복수의 문자의 문자 길이는 제1 길이이다.
단계 S401을 수행하는 프로세스에 대해서는, 도 2에서의 단계 S201의 구체적인 설명을 참조한다는 점에 유의해야 한다. 세부사항들은 여기에서 다시 설명하지 않는다.
단계 S402: 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 문자들의 문자 값들 중 최댓값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일한 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정한다.
구체적으로, 제1 데이터 세그먼트를 결정한 후에, 서비스 디바이스는 제1 데이터 세그먼트 내의 모든 문자의 문자 값들을 계산하고, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최댓값을 결정할 수 있다. 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최댓값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일한 경우, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정한다. 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최댓값보다 작거나, 또는 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일하지 않은 경우, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정한다.
제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최댓값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일할 때, 이는 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 제1 데이터 세그먼트 내의 마지막 문자의 문자 값이 동일하고, 둘 다 제1 데이터 세그먼트 내의 최대 문자 값과 동일하다는 것을 나타낸다. 따라서, 제1 데이터 세그먼트 내의 첫번째 문자와 마지막 문자 사이의 문자들의 문자 값들은 모두 최대 문자 값 이하라는 것을 알 수 있다. 이 경우, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일하고 모두 최대 문자 값과 동일할 확률은 비교적 높은 것으로 간주될 수 있다. 따라서, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정할 수 있다. 또한, 제1 데이터 세그먼트 내의 모든 문자의 문자 값이 동일한지를 결정하는 구체적인 구현은: 먼저 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최대 문자 값을 결정하는 것; 제1 데이터 세그먼트 내의 모든 문자의 문자 값이 최대 문자 값과 동일한지를 연속적으로 결정하는 것; 및 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 최대 문자 값과 동일한 경우, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일하다고 결정하는 것일 수 있다. 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일한지를 결정하는 것과 비교하여, 본 출원의 이 실시예에서는, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최대 문자 값만이 결정될 필요가 있고, 그 후, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인지를 결정하기 위해, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 마지막 문자의 문자 값이 모두 최대 문자 값과 동일한지가 비교될 수 있다. 제1 데이터 세그먼트의 데이터 분포 특성은 본 출원의 이 실시예에서의 방법을 사용하여 더 신속하게 결정될 수 있다는 것을 알 수 있다. 따라서, 청킹될 데이터 흐름의 청킹 효율이 개선된다.
제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최댓값보다 작거나, 또는 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일하지 않을 때, 이는 문자 값들이 동일하지 않은 적어도 2개의 문자가 제1 데이터 세그먼트 내에 존재한다는 것을 나타낸다. 따라서, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정할 수 있다.
일 구현에서, 서비스 디바이스가 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인지를 결정하는 구체적인 구현은 추가로 다음과 같을 수 있다: 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최솟값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일한 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정하거나; 또는, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최솟값보다 크거나, 또는 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일하지 않은 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정한다.
제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최솟값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일할 때, 이는 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 제1 데이터 세그먼트 내의 마지막 문자의 문자 값이 동일하고, 둘 다 제1 데이터 세그먼트 내의 최소 문자 값과 동일하다는 것을 나타낸다. 따라서, 제1 데이터 세그먼트 내의 첫번째 문자와 마지막 문자 사이의 문자들의 문자 값들은 모두 최소 문자 값 이상이라는 것을 알 수 있다. 이 경우, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일하고 모두 최소 문자 값과 동일할 확률은 비교적 높은 것으로 간주될 수 있다. 따라서, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정할 수 있다. 또한, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일한지를 결정하는 것과 비교하여, 본 출원의 이 실시예에서는, 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최소 문자 값만이 결정될 필요가 있고, 그 후, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인지를 결정하기 위해, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값 및 마지막 문자의 문자 값이 모두 최소 문자 값과 동일한지가 비교될 수 있다. 제1 데이터 세그먼트의 데이터 분포 특성은 본 출원의 이 실시예에서의 방법을 사용하여 더 신속하게 결정될 수 있다는 것을 알 수 있다. 따라서, 청킹될 데이터 흐름의 청킹 효율이 개선된다. 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최댓값보다 크거나, 또는 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일하지 않을 때, 이는 문자 값이 동일하지 않은 적어도 2개의 문자가 제1 데이터 세그먼트 내에 존재한다는 것을 나타낸다. 따라서, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정할 수 있다.
단계 S403: 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 경우, 서비스 디바이스는 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정한다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, 서비스 디바이스가 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 구체적인 구현은 다음과 같을 수 있다: 서비스 디바이스는 제1 데이터 세그먼트 내의 마지막 문자 이후의 문자들로부터 제1 타겟 문자를 결정하고, 제1 타겟 문자의 시작 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정한다. 제1 타겟 문자는 청킹 조건을 충족하고, 청킹 조건은 다음을 포함한다: 제1 타겟 문자의 문자 값은 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 상이하고, 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 제1 타겟 문자의 이전 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이는 예상된 청킹 길이 이상이다.
구체적으로, 서비스 디바이스는 제1 데이터 세그먼트 내의 마지막 문자 이후의 첫번째 문자로부터 시작하여 다음 문자를 연속적으로 순회하고, 현재 보여진 문자의 문자 값이 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 상이할 때까지 순회하는 문자들을 중지하고, 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 현재 보여진 문자의 이전 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이가 예상된 청킹 길이 이상인지를 결정할 수 있다. 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 현재 보여진 문자 이전의 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이가 예상된 청킹 길이 이상인 경우, 서비스 디바이스는 현재 보여진 문자를 제1 타겟 문자로서 결정한다. 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 현재 보여진 문자 이전의 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이가 예상된 청킹 길이보다 작은 경우, 서비스 디바이스는 현재 보여진 문자가 2개의 청킹 조건을 동시에 충족할 때까지(즉, 현재 보여진 문자의 문자 값이 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 상이하고, 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 현재 보여진 문자의 이전 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이가 예상된 청킹 길이 이상될 때 까지) 다음 문자를 계속해서 순회하고, 현재 보여진 문자를 제1 타겟 문자로서 결정한다.
본 출원의 이 실시예에서는, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 경우, 서비스 디바이스는 제1 타겟 문자의 시작 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다. 예를 들어, 도 4b는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때 청킹될 데이터 흐름의 청킹 위치가 결정되는 시나리오의 개략도이다. 제1 데이터 세그먼트의 문자 길이 w1은 3이고, 예상된 청킹 길이 E는 8이며, c1은 제1 데이터 세그먼트 내의 첫번째 문자이다. 도 4b로부터, 도면에서의 문자 c3의 문자 값 7은 문자 c1의 문자 값 6과 상이하고, 문자 c1이 시작 문자로서 사용되고 문자 c3의 이전 문자(c2)가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이는 9(즉, 예상된 청킹 길이 E보다 큼)라는 것을 알 수 있다. 따라서, 문자 c3은 청킹 조건을 충족시킨다. 이 경우, 서비스 디바이스는 문자 c3을 제1 타겟 문자로서 결정할 수 있다. 제1 타겟 문자를 결정한 후에, 서비스 디바이스는 제1 타겟 문자의 시작 위치(p1)를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다.
본 출원의 이 실시예에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, 2개의 청킹 조건들을 충족시키는 제1 타겟 문자의 시작 위치가 청킹 위치로서 결정된다. 한편, 청킹 위치에 기초하여 결정되는 데이터 청크의 문자 길이는 예상된 청킹 길이 이상일 수 있어, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때 AE 알고리즘을 사용하여 출력되는 데이터 청크의 길이가 예상된 청킹 길이보다 작은 경우를 회피하게 된다. 이러한 방식으로, 서비스 디바이스에 의해 데이터 청크의 해시 값을 계산하는 전력 소비가 효과적으로 감소될 수 있다. 다른 한편으로, 중복 제거 레이트를 개선하고 중복 제거 효과를 향상시키기 위해, 동일한 문자 값을 갖는 보다 많은 문자들이 가능한 한 많은 동일한 데이터 청크로 청킹될 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, 서비스 디바이스가 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 구체적인 구현은 다음과 같을 수 있다: 서비스 디바이스는 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하고, 여기서 상기 위치와 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치 사이의 문자 길이는 예상된 청킹 길이이다. 본 출원의 이 실시예에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포라고 결정될 때, 제1 데이터 세그먼트 이후의 그리고 이에 인접한 데이터 세그먼트(예를 들어, 문자 길이가 E-w1인 데이터 세그먼트)의 데이터 분포 특성도 평원 분포일 확률은 비교적 높다. 따라서, 서비스 디바이스는 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하고, 여기서 상기 위치와 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치 사이의 문자 길이는 예상된 청킹 길이이다. 한편, 제1 데이터 세그먼트와, 제1 데이터 세그먼트의 이후의 그리고 이에 인접하며 문자 길이가 E-w1인 평원 분포의 데이터 세그먼트는 동일한 데이터 청크로 청킹될 수 있다. 이러한 방식으로, 중복 제거 레이트를 개선하고 중복 제거 효과를 향상시키기 위해, 동일한 문자 값을 갖는 더 많은 문자들이 가능한 한 많이 동일한 데이터 청크로 청킹될 수 있다. 한편, 문자 길이가 E-w1인 데이터 세그먼트 내의 모든 문자의 문자 값들은 계산되지 않을 수 있다. 이러한 방식으로, 청킹 효율이 개선될 수 있고, 중복 제거 시스템의 스루풋이 개선될 수 있다.
단계 S404: 서비스 디바이스는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용한다.
단계 S404를 수행하는 프로세스에 대해서는, 도 3a에서의 단계 S305의 구체적인 설명을 참조한다는 점에 유의해야 한다. 세부사항들은 여기에서 다시 설명하지 않는다.
본 출원의 이 실시예에서, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 문자들의 문자 값들 중 최댓값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일할 때, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성을 평원 분포로서 결정한다. 이러한 방식으로, 제1 데이터 세그먼트의 데이터 분포 특성이 더 신속하게 결정되어, 청킹될 데이터 흐름의 청킹 효율을 향상시킬 수 있다.
도 5a는 본 출원의 실시예에 따른 또 다른 청킹 방법의 개략적인 흐름도이다. 이 방법은 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정하는 방법, 및 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포일 때 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 방법을 상세히 설명한다. 이 방법은 이하의 단계들을 포함할 수 있지만, 이들로 제한되지 않는다.
단계 S501: 서비스 디바이스는 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고, 여기서 제1 데이터 세그먼트는 복수의 문자를 포함하고, 제1 데이터 세그먼트 내에 포함된 복수의 문자의 문자 길이는 제1 길이이다.
단계 S501을 수행하는 프로세스에 대해서는, 도 2에서의 단계 S201의 구체적인 설명을 참조한다는 점에 유의해야 한다. 세부사항들은 여기에서 다시 설명하지 않는다.
단계 S502: 제1 데이터 세그먼트 내에 제2 타겟 문자가 존재하는 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정하고, 여기서 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이전에 위치하는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값보다 작고, 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이후에 위치하는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값 이하이다.
구체적으로, 제1 데이터 세그먼트를 결정한 후에, 서비스 디바이스는 제2 타겟 문자가 제1 데이터 세그먼트 내에 존재하는지를 결정하기 위해 제1 데이터 세그먼트 내의 모든 문자를 순회할 수 있다. 제2 타겟 문자는 다음의 조건을 충족한다: 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이전에 위치되는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값보다 작고, 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이후에 위치되는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값 이하이다. 제2 타겟 문자에 의해 충족되는 조건에 따라, 제2 타겟 문자의 문자 값은 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최대 문자 값이고, 제1 데이터 세그먼트 내의 제2 타겟 문자 이전에 적어도 하나의 문자가 있다는 것을 알 수 있다. 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이전에 위치하는 문자들의 문자 값들이 모두 제2 타겟 문자의 문자 값보다 작기 때문에, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값은 제2 타겟 문자의 문자 값보다 작다. 따라서, 문자 값들이 상이한 적어도 2개의 문자가 제1 데이터 세그먼트 내에 존재한다. 이 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정할 수 있다. 일 구현에서, 제1 데이터 세그먼트 내의 하나 이상의 문자의 문자 값들은 모두 최대 문자 값일 수 있다. 제1 데이터 세그먼트 내의 복수의 문자의 문자 값들이 모두 최대 문자 값들일 때, 제1 최대 문자 값에 대응하는 문자가 제2 타겟 문자로서 결정된다. 도 5b에 도시된 제2 타겟 문자를 결정하는 시나리오의 개략도가 일례로서 사용된다. 제1 데이터 세그먼트의 문자 길이 w1은 5이다. 도면에 도시된 바와 같이, 제1 데이터 세그먼트의 최대 문자 값은 6이고, 제1 데이터 세그먼트 내의 세번째 문자(c1) 및 다섯번째 문자(c2)의 문자 값 6은 둘다 최대 문자 값이다. c1의 문자 값은 제1 데이터 세그먼트에서의 첫번째 최대 문자 값이다. 이 경우, 서비스 디바이스는 c1을 제2 타겟 문자로서 결정할 수 있다.
본 출원의 이 실시예에서, 서비스 디바이스는 제2 타겟 문자가 제1 데이터 세그먼트 내에 존재하는지에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정할 수 있다. 제2 타겟 문자가 제1 데이터 세그먼트 내에 존재하지 않는 경우, 이것은 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일하다는 것을 나타낸다. 이 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정할 수 있다. 제2 타겟 문자가 제1 데이터 세그먼트 내에 존재하는 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정한다.
단계 S503: 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 경우, 서비스 디바이스는 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정한다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 경우, 서비스 디바이스가 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 구체적인 구현은 다음과 같을 수 있다:
s5031: 서비스 디바이스는 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하고, 여기서 제3 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제3 데이터 세그먼트 내의 마지막 문자의 문자 값은 제2 타겟 문자의 문자 값 이상이고 제3 데이터 세그먼트 내의 다른 문자의 문자 값 이상이며, 제3 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자의 다음 문자이다.
s5032: 서비스 디바이스는 청킹될 데이터 흐름으로부터 제4 데이터 세그먼트를 결정하고, 여기서 제4 데이터 세그먼트 내의 첫번째 문자는 제3 데이터 세그먼트 내의 마지막 문자에 인접하고, 제4 데이터 세그먼트 내의 복수의 문자의 문자 길이는 제2 길이이고, 제4 데이터 세그먼트 내의 첫번째 문자는 제3 데이터 세그먼트 내의 마지막 문자의 다음 문자이다.
s5033: 제4 데이터 세그먼트 내의 모든 문자의 문자 값들이 제3 데이터 세그먼트 내의 마지막 문자의 문자 값보다 작은 경우, 서비스 디바이스는 제4 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정한다.
구체적으로, 서비스 디바이스는 제1 데이터 세그먼트 내의 마지막 문자 이후의 첫번째 문자로부터 시작하여 다음 문자를 연속적으로 순회하고, 현재 보여진 문자의 문자 값이 제2 타겟 문자의 문자 값 이상일 때까지 순회하는 문자들을 중지하고, 현재 보여진 문자를 X 문자로서 결정할 수 있다. 그 후, 서비스 디바이스는 X 문자 이후의 첫번째 문자로부터 시작하여 w2개의 문자를 연속적으로 순회한다. w2개의 문자의 문자 값들이 모두 X 문자의 문자 값보다 작은 경우, 서비스 디바이스는 보여진 w2번째 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다. 제3 데이터 세그먼트 내의 시작 문자는 제1 데이터 세그먼트 내의 마지막 문자 이후의 첫번째 문자이고, 제3 데이터 세그먼트 내의 종료 문자는 X 문자이다. 제4 데이터 세그먼트 내의 시작 문자는 X 문자 이후의 첫번째 문자이고, 제4 데이터 세그먼트 내의 종료 문자는 보여진 w2번째 문자이다.
일 구현에서, 문자 값이 X 문자의 문자 값 이상인 적어도 하나의 Y 문자가 순회된 w2개의 문자들 내에 존재하는 경우, 서비스 디바이스는 X 문자를 Y 문자로 업데이트한다. 그 후, 서비스 디바이스는 업데이트된 X 문자 이후의 첫번째 문자로부터 시작하여 다시 w2개의 문자를 연속적으로 순회한다. w2개의 문자의 문자 값들이 모두 업데이트된 X 문자의 문자 값보다 작은 경우, 서비스 디바이스는 청킹 위치로서, 업데이트된 X 문자 이후의 첫번째 문자로부터 시작하여 보여진 w2번째 문자의 종료 위치를 결정할 수 있다. 제3 데이터 세그먼트 내의 시작 문자는 제1 데이터 세그먼트 내의 마지막 문자 이후의 첫번째 문자이고, 제3 데이터 세그먼트 내의 종료 문자는 업데이트된 X 문자이다. 제4 데이터 세그먼트 내의 시작 문자는 업데이트된 X 문자 이후의 첫번째 문자이고, 제4 데이터 세그먼트 내의 종료 문자는 업데이트된 X 문자 이후의 첫번째 문자로부터 시작하여 보여진 w2번째 문자이다.
일 구현에서, 순회된 w2개의 문자 중 적어도 2개의 Y 문자의 문자 값들이 X 문자의 문자 값 이상인 경우, 서비스 디바이스는 마지막 문자 값이 X 문자의 문자 값 이상인 문자가 업데이트된 X 문자인 것으로 결정할 수 있다. 도 5c에 도시된 X 문자를 결정하는 시나리오의 개략도가 일례로서 사용된다. 제1 데이터 세그먼트의 문자 길이 w1은 3이고, c1은 제1 데이터 세그먼트 내의 첫번째 문자이고, c2는 제2 타겟 문자이고; c3은 제3 데이터 세그먼트 내의 두번째 문자이고, c4는 제3 데이터 세그먼트 내의 네번째 문자이고, 제4 데이터 세그먼트의 문자 길이 w2는 3이고, c5는 제4 데이터 세그먼트 내의 마지막 문자이고, p1은 c5의 종료 위치이다. 도면으로부터, 제1 데이터 세그먼트 내의 첫번째 문자(c1)의 시작 위치가 제2 타겟 문자(c2)의 시작 위치와 상이하다는 것을 알 수 있다. 따라서, 제1 데이터 세그먼트의 데이터 분포 특성은 비평원 분포이다. 도면으로부터, c3은 문자 값이 제1 데이터 세그먼트 내의 마지막 문자 이후의 첫번째 문자로부터 시작하여 c2의 문자 값 이상인 첫번째 문자이고, c4는 문자 값이 제3 데이터 세그먼트 내의 c3의 문자 값 이상인 마지막 문자인 것을 알 수 있다. 또한, c4 이후의 w2개의 문자(즉, 제4 데이터 세그먼트의 각 문자)의 문자 값들은 모두 c4의 문자 값보다 작다. 이 경우에, 서비스 디바이스는 c4를 X 문자로서 결정할 수 있다. 제1 데이터 세그먼트, 제3 데이터 세그먼트, 및 제4 데이터 세그먼트의 범위에서, X 문자 이전의 문자들의 문자 값들은 모두 X 문자의 문자 값 이하이고, X 문자 이후의 문자들의 문자 값들은 모두 X 문자의 문자 값 미만이라는 점에 유의해야 한다.
본 출원의 이 실시예에서, 서비스 디바이스는 제4 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다. 예를 들어, 도 5c에서, c5의 종료 위치(p1)는 청킹될 데이터 흐름의 청킹 위치로서 결정될 수 있다.
본 출원의 이 실시예에서, 서비스 디바이스가, 제2 타겟 문자에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정하는 경우, 서비스 디바이스는 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하고, 제2 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인지 또는 균등 분포인지를 추가로 결정할 수 있다. 제2 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제2 타겟 문자의 종료 위치와 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 제2 길이이고, 제2 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자의 다음 문자이다.
구체적으로, 서비스 디바이스가, 제2 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인지 또는 균등 분포인지를 결정하는 구체적인 구현은 다음과 같을 수 있다: 제2 데이터 세그먼트 내의 모든 문자의 문자 값들이 제2 타겟 문자의 문자 값보다 작은 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인 것으로 결정할 수 있거나, 또는 문자 값이 제2 타겟 문자의 문자 값 이상인 적어도 하나의 문자가 제2 데이터 세그먼트 내에 존재하는 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 것으로 결정할 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인 경우, 서비스 디바이스가 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 구체적인 구현은: 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하는 것일 수 있다. 예를 들어, 도 5d는 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포일 때 청킹될 데이터 흐름의 청킹 위치가 결정되는 시나리오의 개략도이다. 제1 데이터 세그먼트의 문자 길이 w1은 3이고, w2는 7이다. 도 5d로부터, c1은 제1 데이터 세그먼트 내의 첫번째 문자이고, c2의 문자 값은 제1 데이터 세그먼트에서의 최대 문자 값이라는 것을 알 수 있다. 즉, c2는 제2 타겟 문자이고, p1은 c2의 종료 위치이고, c3은 제2 데이터 세그먼트 내의 마지막 문자이고, p2는 c3의 종료 위치이고, p1과 p2 사이의(즉, 제2 데이터 세그먼트 내의 제2 타겟 문자의 종료 위치와 마지막 문자의 종료 위치 사이의) 문자 길이는 w2이다. 제1 데이터 세그먼트 내의 첫번째 문자(c1)의 시작 위치는 제2 타겟 문자(c2)의 시작 위치와 상이하고, 제2 데이터 세그먼트 내의 모든 문자의 문자 값들은 제2 타겟 문자(c2)의 문자 값 20보다 작다. 이 경우, 제1 데이터 세그먼트의 데이터 분포 특성은 고원 분포이다. 따라서, 서비스 디바이스는 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치(p2)를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 경우, 서비스 디바이스가 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 실행 프로세스에 대해서는, 단계들 s5031 내지 s5033의 구체적인 설명을 참조한다. 세부사항들은 여기에서 다시 설명하지 않는다.
단계 S504: 서비스 디바이스는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용한다.
단계 S504를 수행하는 프로세스에 대해서는, 도 3a에서의 단계 S305의 구체적인 설명을 참조한다는 점에 유의해야 한다. 세부사항들은 여기에서 다시 설명하지 않는다.
본 출원의 이 실시예에서, 제2 타겟 문자에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정된 후에, 제2 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인지 또는 균등 분포인지가 추가로 결정될 수 있고, 상이한 데이터 분포 특성들에 대해 상이한 청킹 정책들이 추가로 실행되어, 청킹 위치를 결정한다. 이러한 방식으로, 본 출원의 이 실시예에서 제공되는 청킹 방법은 상이한 데이터 분포 특성들을 갖는 데이터 흐름에 더 잘 적응할 수 있고, 상이한 청킹 길이들의 데이터 청크들이 상이한 데이터 분포 특성들에 대해 출력된다. 이러한 방식으로, 경계 오프셋 문제가 효과적으로 해결될 수 있고, 데이터 흐름이 더 잘 청킹될 수 있고, 그에 의해 중복 제거 효과를 향상시킨다.
도 6은 본 출원의 실시예에 따른 또 다른 청킹 방법의 개략적인 흐름도이다. 이 방법은 제1 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정하는 방법, 및 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포일 때 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 방법을 상세히 설명한다. 이 방법은 이하의 단계들을 포함할 수 있지만, 이들로 제한되지 않는다.
단계 S601: 서비스 디바이스는 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고, 여기서 제1 데이터 세그먼트는 복수의 문자를 포함하고, 제1 데이터 세그먼트 내에 포함된 복수의 문자의 문자 길이는 제1 길이이다.
단계 S601을 수행하는 프로세스에 대해서는, 도 2에서의 단계 S201의 구체적인 설명을 참조한다는 점에 유의해야 한다. 세부사항들은 여기에서 다시 설명하지 않는다.
단계 S602: 제1 데이터 세그먼트 내에 제3 타겟 문자가 존재하는 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정하고, 여기서 제1 데이터 세그먼트 내에 있고 제3 타겟 문자 이전에 위치하는 문자들의 문자 값들은 모두 제3 타겟 문자의 문자 값보다 크고, 제1 데이터 세그먼트 내에 있고 제3 타겟 문자 이후에 위치하는 문자들의 문자 값들은 모두 제3 타겟 문자의 문자 값 이상이다.
구체적으로, 제1 데이터 세그먼트를 결정한 후에, 서비스 디바이스는 제3 타겟 문자가 제1 데이터 세그먼트 내에 존재하는지를 결정하기 위해 제1 데이터 세그먼트 내의 모든 문자를 순회할 수 있다. 제3 타겟 문자는 다음의 조건을 충족한다: 제1 데이터 세그먼트 내에 있고 제3 타겟 문자 이전에 위치하는 문자들의 문자 값들은 모두 제3 타겟 문자의 문자 값보다 크고, 제1 데이터 세그먼트 내에 있고 제3 타겟 문자 이후에 위치하는 문자들의 문자 값들은 모두 제3 타겟 문자의 문자 값 이상이다. 제3 타겟 문자에 의해 충족되는 조건에 따라, 제3 타겟 문자의 문자 값은 제1 데이터 세그먼트 내의 모든 문자의 문자 값들 중 최소 문자 값이고, 제1 데이터 세그먼트 내의 제3 타겟 문자 이전에 적어도 하나의 문자가 있다는 것을 알 수 있다. 제1 데이터 세그먼트 내에 있고 제3 타겟 문자 이전에 위치하는 문자들의 문자 값들이 모두 제3 타겟 문자의 문자 값보다 크기 때문에, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값은 제3 타겟 문자의 문자 값보다 크다. 따라서, 문자 값들이 상이한 적어도 2개의 문자가 제1 데이터 세그먼트 내에 존재한다. 이 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정할 수 있다. 일 구현에서, 제1 데이터 세그먼트 내의 하나 이상의 문자의 문자 값들은 모두 최소 문자 값일 수 있다. 제1 데이터 세그먼트 내의 복수의 문자의 문자 값들이 모두 최소 문자 값들일 때, 제1 최소 문자 값에 대응하는 문자가 제3 타겟 문자로서 결정된다.
본 출원의 이 실시예에서, 서비스 디바이스는 제3 타겟 문자가 제1 데이터 세그먼트 내에 존재하는지에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정할 수 있다. 제3 타겟 문자가 제1 데이터 세그먼트 내에 존재하지 않는 경우, 이것은 제1 데이터 세그먼트 내의 모든 문자의 문자 값들이 동일하다는 것을 나타낸다. 이 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정할 수 있다. 제3 타겟 문자가 제1 데이터 세그먼트 내에 존재하는 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정한다.
단계 S603: 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 경우, 서비스 디바이스는 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정한다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 경우, 서비스 디바이스가 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 구체적인 구현은 다음과 같을 수 있다:
s6031: 서비스 디바이스는 청킹될 데이터 흐름으로부터 제6 데이터 세그먼트를 결정하고, 여기서 제6 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제6 데이터 세그먼트 내의 마지막 문자의 문자 값은 제3 타겟 문자의 문자 값 이하이고 제6 데이터 세그먼트 내의 다른 문자의 문자 값 이하이며, 제6 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자의 다음 문자이다.
s6032: 서비스 디바이스는 청킹될 데이터 흐름으로부터 제7 데이터 세그먼트를 결정하고, 여기서 제7 데이터 세그먼트 내의 첫번째 문자는 제6 데이터 세그먼트 내의 마지막 문자에 인접하고, 제7 데이터 세그먼트 내의 복수의 문자의 문자 길이는 제2 길이이고, 제7 데이터 세그먼트 내의 첫번째 문자는 제6 데이터 세그먼트 내의 마지막 문자의 다음 문자이다.
s6033: 제7 데이터 세그먼트 내의 모든 문자의 문자 값들이 제6 데이터 세그먼트 내의 마지막 문자의 문자 값보다 큰 경우, 서비스 디바이스는 제7 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정한다.
구체적으로, 서비스 디바이스는 제1 데이터 세그먼트 내의 마지막 문자 이후의 첫번째 문자로부터 시작하여 다음 문자를 연속적으로 순회하고, 현재 보여진 문자의 문자 값이 제3 타겟 문자의 문자 값 이하일 때까지 순회하는 문자들을 중지하고, 현재 보여진 문자를 A 문자로서 결정할 수 있다. 그 후, 서비스 디바이스는 A 문자 이후의 첫번째 문자로부터 시작하여 w2개의 문자를 연속적으로 순회한다. w2개의 문자의 문자 값들이 모두 A 문자의 문자 값보다 큰 경우, 서비스 디바이스는 보여진 w2번째 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다. 제6 데이터 세그먼트 내의 시작 문자는 제1 데이터 세그먼트 내의 마지막 문자 이후의 첫번째 문자이고, 제6 데이터 세그먼트 내의 종료 문자는 문자 A이고, 제7 데이터 세그먼트 내의 시작 문자는 문자 A 이후의 첫번째 문자이고, 제7 데이터 세그먼트 내의 종료 문자는 보여진 w2번째 문자이다.
일 구현에서, 문자 값이 A 문자의 문자 값 이하인 적어도 하나의 B 문자가 순회된 w2개의 문자 내에 존재하는 경우, 서비스 디바이스는 A 문자를 B 문자로 업데이트한다. 그 후, 서비스 디바이스는 업데이트된 A 문자 이후의 첫번째 문자로부터 시작하여 다시 w2개의 문자를 연속적으로 순회한다. w2개의 문자의 문자 값들이 모두 업데이트된 A 문자의 문자 값보다 큰 경우, 서비스 디바이스는 청킹 위치로서, 업데이트된 A 문자 이후의 첫번째 문자로부터 시작하여 보여진 w2번째 문자의 종료 위치를 결정할 수 있다. 제6 데이터 세그먼트 내의 시작 문자는 제1 데이터 세그먼트 내의 마지막 문자 이후의 첫번째 문자이고, 제6 데이터 세그먼트 내의 종료 문자는 업데이트된 A 문자이고, 제7 데이터 세그먼트 내의 시작 문자는 업데이트된 A 문자 이후의 첫번째 문자이고, 제7 데이터 세그먼트 내의 종료 문자는 업데이트된 A 문자 이후의 첫번째 문자로부터 시작하여 보여진 w2번째 문자이다.
일 구현에서, 순회된 w2개의 문자 중 적어도 2개의 B 문자의 문자 값들이 A 문자의 문자 값 이하인 경우, 서비스 디바이스는 마지막 문자 값이 A 문자의 문자 값 이하인 문자가 업데이트된 A 문자인 것으로 결정할 수 있다. 제1 데이터 세그먼트, 제6 데이터 세그먼트, 및 제7 데이터 세그먼트의 범위들에서, 업데이트된 A 문자 이전에 위치한 문자들의 문자 값들은 업데이트된 A 문자의 문자 값 이상이고, 업데이트된 A 문자 이후에 위치한 문자들의 문자 값들은 업데이트된 문자 A의 문자 값보다 크다는 점에 유의해야 한다.
본 출원의 이 실시예에서, 서비스 디바이스가, 제3 타겟 문자에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정하는 경우, 서비스 디바이스는 청킹될 데이터 흐름으로부터 제5 데이터 세그먼트를 결정하고, 제5 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 분지 분포인지 또는 균등 분포인지를 추가로 결정할 수 있다. 제5 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제3 타겟 문자의 종료 위치와 제5 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 제2 길이이고, 제5 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자의 다음 문자이다.
구체적으로, 서비스 디바이스가, 제5 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 분지 분포인지 또는 균등 분포인지를 결정하는 구체적인 구현은 다음과 같을 수 있다: 제5 데이터 세그먼트 내의 모든 문자의 문자 값들이 제3 타겟 문자의 문자 값보다 큰 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 분지 분포인 것으로 결정할 수 있거나, 또는 문자 값이 제3 타겟 문자의 문자 값 이하인 적어도 하나의 문자가 제5 데이터 세그먼트 내에 존재하는 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 것으로 결정할 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 분지 분포인 경우, 서비스 디바이스가 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 구체적인 구현은: 제5 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하는 것일 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 경우, 서비스 디바이스가 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 실행 프로세스에 대해서는, 단계들 s6031 내지 s6033의 구체적인 설명을 참조한다. 세부사항들은 여기에서 다시 설명하지 않는다.
단계 S604: 서비스 디바이스는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용한다.
단계 S604를 수행하는 프로세스에 대해서는, 도 3a에서의 단계 S305의 구체적인 설명을 참조한다는 점에 유의해야 한다. 세부사항들은 여기에서 다시 설명하지 않는다.
본 출원의 이 실시예에서, 제3 타겟 문자에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정된 후에, 제5 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 분지 분포인지 또는 균등 분포인지가 추가로 결정될 수 있고, 상이한 데이터 분포 특성들에 대해 상이한 청킹 정책들이 추가로 실행되어, 청킹 위치를 결정한다. 이러한 방식으로, 본 출원의 이 실시예에서 제공되는 청킹 방법은 상이한 데이터 분포 특성들을 갖는 데이터 흐름에 더 잘 적응할 수 있고, 상이한 청킹 길이들의 데이터 청크들이 상이한 데이터 분포 특성들에 대해 출력된다. 이러한 방식으로, 경계 오프셋 문제가 효과적으로 해결될 수 있고, 데이터 흐름이 더 잘 청킹될 수 있으며, 그에 의해 중복 제거 효과를 향상시킨다.
도 7aa, 도 7ab, 및 도 7ac는 본원의 실시예에 따른 또 다른 청킹 방법의 개략적인 흐름도이다. 이 방법은 청킹될 데이터 흐름에 대해 청킹 처리를 수행하는 구체적인 절차를 상세히 설명한다. 이 방법은 이하의 단계들을 포함할 수 있지만, 이들로 제한되지 않는다.
단계 S701: 서비스 디바이스는 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고, 제1 데이터 세그먼트는 복수의 문자를 포함하고, 제1 데이터 세그먼트 내에 포함된 복수의 문자의 문자 길이는 제1 길이이다.
단계 S702: 제1 데이터 세그먼트 내에 제2 타겟 문자가 존재하지 않는 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정하거나, 또는 제1 데이터 세그먼트 내에 제2 타겟 문자가 존재하는 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정하고, 여기서 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이전에 위치하는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값보다 작고, 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이후에 위치하는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값 이하이다.
단계 S703: 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 경우, 서비스 디바이스는 제1 데이터 세그먼트 내의 마지막 문자 이후의 문자들로부터 제1 타겟 문자를 결정하고, 제1 타겟 문자의 시작 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하고, 여기서 제1 타겟 문자는 청킹 조건을 충족하고, 청킹 조건은: 제1 타겟 문자의 문자 값이 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 상이하고, 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 제1 타겟 문자의 이전 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이가 예상된 청킹 길이 이상인 것을 포함한다.
단계 S701 내지 단계 S703을 수행하는 프로세스에 대해서는, 도 5a에서의 단계 S501 내지 단계 S502 및 도 4a에서의 단계 S403의 구체적인 설명을 각각 참조한다는 점에 유의해야 한다. 세부사항들은 여기에서 다시 설명하지 않는다. 본 출원의 이 실시예에서, 단계 S703을 수행한 후에, 서비스 디바이스는 단계 S708을 수행하여 데이터 청크를 획득할 수 있다. 단계 S702에서, 단계 S202, 단계 S302, 또는 단계 S402에서 설명된 방법은 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것을 결정하기 위해 추가로 사용될 수 있다는 점에 더 유의해야 한다. 세부사항들은 본 명세서에서 설명되지 않는다.
단계 S704: 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 경우, 서비스 디바이스는 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하고, 여기서 제2 데이터 세그먼트 내의 모든 문자의 문자 값들이 제2 타겟 문자의 문자 값보다 작은 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인 것으로 결정하거나; 또는, 문자 값이 제2 타겟 문자의 문자 값 이상인 적어도 하나의 문자가 제2 데이터 세그먼트 내에 존재하는 경우, 서비스 디바이스는 제1 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 것으로 결정하고, 여기서 제2 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제2 타겟 문자의 종료 위치와 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 제2 길이이고, 제2 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자의 다음 문자이다.
본 출원의 이 실시예에서, 제2 타겟 문자에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정되면, 서비스 디바이스는 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하고, 제2 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인지 또는 균등 분포인지를 추가로 결정하고, 그 후 고원 분포 및 균등 분포에 대해 상이한 청킹 정책들을 사용하여, 상이한 청킹 위치들을 결정할 수 있다. 이러한 방식으로, 본 출원의 이 실시예에서 제공되는 청킹 방법은 상이한 데이터 분포 특성들을 갖는 데이터 흐름에 더 잘 적응하고, 상이한 데이터 분포 특성들에 대해 상이한 청킹 길이들을 갖는 데이터 청크들을 출력할 수 있다. 이러한 방식으로, 경계 오프셋 문제가 효과적으로 해결될 수 있고, 데이터 흐름이 더 잘 청킹될 수 있으며, 그에 의해 중복 제거 효과를 향상시킨다.
단계 S705: 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인 경우, 서비스 디바이스는 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정한다.
본 출원의 이 실시예에서, 도 7b는 본 출원의 이 실시예에서 개시된 청킹 방법의 동작 원리의 개략도를 나타내는데 사용될 수 있다. e'는 w1+p+w2의 범위 내의 문자 극값이고, p의 길이는 가변적이며, w1 및 w2의 길이는 고정된다. w1+p의 범위 내의 모든 문자의 문자 값들은 e' 이하이다(또는 w1+p의 범위 내의 모든 문자의 문자 값들은 e' 이상이다). w1+p+w2의 범위 내의 모든 문자는 데이터 청크(즉, 현재 데이터 청크)를 형성한다. 이전 데이터 청크의 청킹 위치 A는 w1의 범위 내의 첫번째 문자의 시작 위치이고, 현재 데이터 청크의 청킹 위치 B는 w2의 범위 내의 마지막 문자의 종료 위치이다.
도 7b에 도시된 바와 같이, 문자 극값 e'가 w1+p+w2의 범위에서 발견될 확률은 1/(w1+p+w2)이다. 따라서,
Figure 112021110360592-pct00003
, 및 p=(w1+w2)(e-1)이 추가로 획득될 수 있고, 여기서 e=2.71이다. 예상된 청킹 길이 E는 관계식 p=(w1+w2)(e-1)에 따른 계산을 통해 획득될 수 있다.
Figure 112021110360592-pct00004
극값 인자 α=w2/E인 경우,
Figure 112021110360592-pct00005
및 w2=αE는 α=w2/E 및 E=(w1+w2)(e-1)에 따른 계산을 통해 획득될 수 있다. 즉, 제1 길이 w1 및 제2 길이 w2 둘 다 예상된 청킹 길이 E 및 극값 인자 α에 기초하여 서비스 디바이스에 의해 결정될 수 있다. 극값 인자 α의 값 범위는 (0, 1)이고, α는 디폴트로 서비스 디바이스에 의해 설정될 수 있거나, 또는 사용자 조작에 기초하여 서비스 디바이스에 의해 설정될 수 있다. 이는 본 출원의 실시예들에서 제한되지 않는다. 극값 인자 α는 데이터 청크에서의 문자 극값 e'의 상대 위치이다.
일 구현에서, 임의의 데이터 청크는 m개의 작은 청크들로 청킹될 수 있고, 각각의 작은 청크의 청킹 길이는 w'=w1+w2이다. a번째 작은 청크 [(a-1)w'+1, (a-1)w'+w']의 범위에서, (a-1)w'+i번째 문자의 문자 값이 선행 문자들의 문자 값보다 클(또는 작을) 확률은: 1/((a-1)w'+i)이고, 범위 내의 모든 문자가 조건을 충족하지 않을 확률은 다음과 같다:
Figure 112021110360592-pct00006
따라서, [(a-1)w'+1, (a-1)w'+w']의 범위 내에 문자 값이 선행 문자들의 모든 문자 값보다 큰(또는 작은) 적어도 하나의 문자가 존재할 확률은:
Figure 112021110360592-pct00007
이다. 따라서, 문자 값이 선행 문자들의 문자 값보다 큰(또는 작은) 적어도 하나의 문자가 임의의 데이터 청크 내에 존재할 확률은 1/m!이다. 또한, 예상된 청킹 길이가 (e-1)w'이기 때문에, 임의의 데이터 청크의 작은 청크들 m'의 실제 수량은 다음과 같이 표현될 수 있다:
Figure 112021110360592-pct00008
따라서, 문자 값이 선행 문자들의 문자 값보다 큰(또는 작은) 적어도 하나의 문자가 임의의 데이터 청크 내에 존재할 확률은
Figure 112021110360592-pct00009
이다. m=2일 때, P=9.38%이고, 청킹 길이가 2E일 확률은 9.38%이다. 본 출원의 이 실시예에서 개시된 청킹 방법에 따르면, 데이터 청크들의 길이들은 단일의 예상된 청킹 길이 E에 주로 집중될 수 있다는 것을 알 수 있다. 이러한 방식으로, 데이터 흐름은 더 잘 청킹하여, 중복 제거 효과를 향상시킬 수 있다.
도 7b로부터, 본 출원의 이 실시예에서 개시된 청킹 방법에서, E=w1+p+w2이고, AE 알고리즘에서, E=p+w라는 것을 알 수 있다. w1, w2, 및 w는 모두 고정 값들이고, w1, w2, 및 w는 모두 1보다 크기 때문에, w2<w이다. 또한, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포일 때, 서비스 디바이스는 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치가 청킹될 데이터 흐름의 청킹 위치인 것으로 결정할 수 있다. 즉, 제2 타겟 문자(즉, 최댓값 e'에 대응하는 문자)를 찾은 후에, 서비스 디바이스는 제2 타겟 문자 이후의 w2번째 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정할 수 있다. 최대 값 e'를 찾은 후에, 최댓값 e'에 대응하는 문자 이후의 w번째 문자의 종료 위치가 청킹될 데이터 흐름의 청킹 위치로서 결정되는 AE 알고리즘과 비교하여, 본 출원의 이 실시예에서 개시되는 청킹 방법을 사용함으로써, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포일 때, 출력된 데이터 청크의 문자 길이는 AE 알고리즘을 사용하여 출력되는 데이터 청크의 문자 길이보다 작다. 이러한 방식으로, 가능한 한 빨리 다음 청킹 기간을 입력할 수 있다. 이는 청킹 위치의 검색 프로세스에 대한 고원 분포의 영향을 효과적으로 감소시킨다.
본 출원의 이 실시예에서, 단계 S705를 수행한 후에, 서비스 디바이스는 단계 S708을 수행하여 데이터 청크를 획득할 수 있다.
단계 S706: 제1 데이터 세그먼트의 데이터 분포 특성이 균등 분포인 경우, 서비스 디바이스는 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하고, 여기서 제3 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제3 데이터 세그먼트 내의 마지막 문자의 문자 값은 제2 타겟 문자의 문자 값 이상이고 제3 데이터 세그먼트 내의 다른 문자의 문자 값 이상이며, 제3 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자의 다음 문자이다.
단계 S707: 서비스 디바이스는 청킹될 데이터 흐름으로부터 제4 데이터 세그먼트를 결정하고, 여기서 제4 데이터 세그먼트 내의 첫번째 문자는 제3 데이터 세그먼트 내의 마지막 문자에 인접하고, 제4 데이터 세그먼트 내의 복수의 문자의 문자 길이는 제2 길이이고, 제4 데이터 세그먼트 내의 첫번째 문자는 제3 데이터 세그먼트 내의 마지막 문자의 다음 문자이고, 제4 데이터 세그먼트 내의 모든 문자의 문자 값들이 제3 데이터 세그먼트 내의 마지막 문자의 문자 값보다 작은 경우, 서비스 디바이스는 제4 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정한다.
단계 S708: 서비스 디바이스는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용한다.
단계 S706 내지 S707을 수행하는 프로세스에 대해서는, 도 5a에서의 단계 S503의 구체적인 설명을 참조한다는 점에 유의해야 한다. 단계 S708을 수행하는 프로세스에 대해서는, 도 3a에서의 단계 S305의 구체적인 설명을 참조한다. 세부사항들은 여기에서 다시 설명하지 않는다.
본 출원의 이 실시예에서, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때, 2개의 청킹 조건들을 충족시키는 제1 타겟 문자의 시작 위치가 청킹 위치로서 결정된다. 한편, 청킹 위치에 기초하여 결정되는 데이터 청크의 길이는 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포일 때 AE 알고리즘을 사용하여 출력되는 데이터 청크의 길이가 청킹되는 예상된 길이(즉, 예상된 청킹 길이)보다 작은 경우를 회피하기 위해, 예상된 청킹 길이 이상일 수 있다. 이러한 방식으로, 서비스 디바이스에 의해 데이터 청크의 해시 값을 계산하는 전력 소비가 효과적으로 감소될 수 있다. 다른 한편으로, 중복 제거 레이트를 개선하고 중복 제거 효과를 향상시키기 위해, 동일한 문자 값을 갖는 보다 많은 문자들이 가능한 한 많은 동일한 데이터 청크로 청킹될 수 있다. 또한, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포일 때, 서비스 디바이스는 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하고, 제2 데이터 세그먼트 내의 모든 문자의 문자 값들에 기초하여, 제1 데이터 세그먼트의 데이터 분포 특성이 고원 분포인지 또는 균등 분포인지를 추가로 결정하고, 그 후 고원 분포 및 균등 분포에 대해 상이한 청킹 정책들을 사용하여, 상이한 청킹 위치들을 결정한다. 이러한 방식으로, 본 출원의 이 실시예에서 제공되는 청킹 방법은 상이한 데이터 분포 특성들을 갖는 데이터 흐름에 더 잘 적응하고, 상이한 데이터 분포 특성들에 대해 상이한 청킹 길이들을 갖는 데이터 청크들을 출력할 수 있다. 이러한 방식으로, 경계 오프셋 문제가 효과적으로 해결될 수 있고, 데이터 흐름이 더 잘 청킹될 수 있으며, 그에 의해 중복 제거 효과를 향상시킨다.
전술한 내용은 본 출원의 실시예들에서의 방법들을 상세히 설명한다. 다음은 본 출원의 실시예들에서의 장치들을 제공한다.
도 8은 본 출원의 실시예에 따른 청킹 장치의 개략적인 구조도이다. 청킹 장치(80)는 도 2 내지 도 7aa, 도 7ab, 및 도 7ac에 대응하는 방법 실시예들에서 서비스 디바이스에 의해 수행되는 단계들을 수행하도록 구성된다. 청킹 장치(80)는:
청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하도록 구성된 제1 결정 모듈(801)- 제1 데이터 세그먼트는 복수의 문자를 포함하고, 제1 데이터 세그먼트 내에 포함된 복수의 문자의 문자 길이는 제1 길이임 -;
제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정하도록 구성된 제2 결정 모듈(802);
제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하도록 구성된 제3 결정 모듈(803); 및
제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용하도록 구성된 청킹 모듈(804)을 포함할 수 있다.
일 구현에서, 제3 결정 모듈(803)은 구체적으로: 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 경우, 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하도록 구성될 수 있고, 여기서 데이터 분포 특성이 평원 분포인 데이터 세그먼트 내의 모든 문자의 문자 값들은 동일하다.
일 구현에서, 제2 결정 모듈(802)은 구체적으로: 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 문자들의 문자 값들 중 최댓값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일한 경우, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정하도록 구성될 수 있다.
일 구현에서, 제3 결정 모듈(803)이 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하도록 구성될 때, 제3 결정 모듈(803)은 구체적으로: 제1 데이터 세그먼트 내의 마지막 문자 이후의 문자들로부터 제1 타겟 문자를 결정하고, 제1 타겟 문자의 시작 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하도록 구성될 수 있고, 여기서 제1 타겟 문자는 청킹 조건을 충족하고, 청킹 조건은: 제1 타겟 문자의 문자 값이 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 상이하고, 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 제1 타겟 문자의 이전 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이가 예상된 청킹 길이 이상인 것을 포함한다.
일 구현에서, 제3 결정 모듈(803)이 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하도록 구성될 때, 제3 결정 모듈(803)은 구체적으로 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하도록 구성될 수 있으며, 여기서 상기 위치와 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치 사이의 문자 길이는 예상된 청킹 길이이다.
일 구현에서, 제3 결정 모듈(803)은 구체적으로: 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 경우, 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하도록 구성될 수 있고, 여기서 제2 길이는 예상된 청킹 길이보다 작고, 문자 값들이 상이한 적어도 2개의 문자가 데이터 분포 특성이 비평원 분포인 데이터 세그먼트 내에 존재한다.
일 구현에서, 제2 결정 모듈(802)은 구체적으로: 제1 데이터 세그먼트 내에 제2 타겟 문자가 존재하는 경우, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정하도록 구성될 수 있고, 여기서 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이전에 위치하는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값보다 작고, 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이후에 위치하는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값 이하이다.
일 구현에서, 제3 결정 모듈(803)이 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하도록 구성될 때, 제3 결정 모듈(803)은 구체적으로: 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하고, 제2 데이터 세그먼트 내의 모든 문자의 문자 값들이 제2 타겟 문자의 문자 값보다 작은 경우, 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하도록 구성될 수 있고, 여기서 제2 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제2 타겟 문자의 종료 위치와 제2 데이터 세그먼트 내의 최종 문자의 종료 위치 사이의 문자 길이는 제2 길이이다.
일 구현에서, 제3 결정 모듈(803)이 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하도록 구성될 때, 제3 결정 모듈(803)은 구체적으로: 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하고- 제3 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제3 데이터 세그먼트 내의 마지막 문자의 문자 값은 제2 타겟 문자의 문자 값 이상이고 제3 데이터 세그먼트 내의 다른 문자의 문자 값 이상임 -; 청킹될 데이터 흐름으로부터 제4 데이터 세그먼트를 결정하며- 제4 데이터 세그먼트 내의 첫번째 문자는 제3 데이터 세그먼트 내의 마지막 문자에 인접하고, 제4 데이터 세그먼트 내의 복수의 문자의 문자 길이는 제2 길이임 -; 제4 데이터 세그먼트 내의 모든 문자의 문자 값들이 제3 데이터 세그먼트 내의 마지막 문자의 문자 값보다 작은 경우, 제4 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하도록 구성될 수 있다.
구현예에서, 제3 결정 모듈(803)은 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하고, 문자 값이 제2 타겟 문자의 문자 값 이상인 적어도 하나의 문자가 제2 데이터 세그먼트 내에 존재하는 경우, 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하는 단계를 트리거하도록 추가로 구성될 수 있고, 여기서 제2 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제2 타겟 문자의 종료 위치와 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 제2 길이이다.
일 구현에서, 청킹 장치(80)는 제4 결정 모듈(805)을 추가로 포함할 수 있고, 제4 결정 모듈(805)은 예상된 청킹 길이에 기초하여 제1 길이 및 제2 길이를 결정하도록 구성될 수 있다.
도 8에 대응하는 실시예 및 모듈들에 의해 수행되는 단계들의 구체적인 구현들에서 설명되지 않은 내용에 대해서는, 도 2 내지 도 7aa, 도 7ab, 및 도 7ac에 도시된 실시예들 및 전술한 내용을 참조한다는 점에 유의해야 한다. 세부사항들은 본 명세서에서 설명되지 않는다.
일 구현에서, 도 8의 모듈들에 의해 구현되는 관련 기능들은 프로세서와 네트워크 인터페이스의 조합을 통해 구현될 수 있다. 도 9는 본 출원의 실시예에 따른 서비스 디바이스의 개략적인 구조도이다. 서비스 디바이스(90)는 네트워크 인터페이스(901), 프로세서(902), 및 메모리(903)를 포함할 수 있다. 네트워크 인터페이스(901), 프로세서(902), 및 메모리(903)는 하나 이상의 통신 버스를 통해 서로 접속될 수 있거나, 또는 다른 방식으로 접속될 수 있다. 도 8에 도시된 제1 결정 모듈(801), 제2 결정 모듈(802), 제3 결정 모듈(803), 청킹 모듈(804), 및 제4 결정 모듈(805)에 의해 구현되는 관련 기능들은 동일한 프로세서(902)를 사용하여 구현될 수 있거나, 또는 복수의 상이한 프로세서들(902)을 사용하여 구현될 수 있다.
네트워크 인터페이스(901)는 데이터 및/또는 시그널링을 전송하고, 데이터 및/또는 시그널링을 수신하도록 구성될 수 있다. 본 출원의 이 실시예에서, 네트워크 인터페이스(901)는 청킹될 데이터 흐름을 수신하도록 구성될 수 있다.
프로세서(902)는 도 2 내지 도 7aa, 도 7ab, 및 도 7ac의 방법들에서 서비스 디바이스의 대응하는 기능을 수행하도록 구성된다. 프로세서(902)는 하나 이상의 프로세서를 포함할 수 있다. 예를 들어, 프로세서(902)는 하나 이상의 중앙 처리 유닛(central processing unit, CPU), 네트워크 프로세서(network processor, NP), 하드웨어 칩, 또는 이들의 임의의 조합일 수 있다. 프로세서(902)가 하나의 CPU일 때, CPU는 단일-코어 CPU일 수 있거나, 멀티-코어 CPU일 수 있다.
메모리(903)는 프로그램 코드를 저장하도록 구성된다. 메모리(903)는 휘발성 메모리(volatile memory), 예를 들어, 랜덤 액세스 메모리(random access memory, RAM)를 포함할 수 있다. 대안적으로, 메모리(903)는 비휘발성 메모리(non-volatile memory), 예를 들어, 판독 전용 메모리(read-only memory, ROM), 플래시 메모리(flash memory), 하드 디스크 드라이브(hard disk drive, HDD), 또는 솔리드 스테이트 드라이브(solid-state drive, SSD)를 포함할 수 있다. 대안적으로, 메모리(903)는 전술한 타입들의 메모리들의 조합을 포함할 수 있다.
프로세서(902)는 메모리(903)에 저장된 프로그램 코드를 호출하여, 다음 동작들:
청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하는 동작- 제1 데이터 세그먼트는 복수의 문자를 포함하고, 제1 데이터 세그먼트 내에 포함된 복수의 문자의 문자 길이는 제1 길이임 -;
제1 데이터 세그먼트 내의 모든 문자의 문자 값에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정하는 동작;
제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 동작; 및
제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용하는 동작을 수행할 수 있다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정할 때, 프로세서(902)는 구체적으로 다음 동작: 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 경우, 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 동작을 수행할 수 있고, 여기서 데이터 분포 특성이 평원 분포인 데이터 세그먼트 내의 모든 문자의 문자 값들은 동일하다.
일 구현에서, 제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정할 때, 프로세서(902)는 구체적으로 다음 동작: 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 문자들의 문자 값들 중 최댓값이고, 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일한 경우, 제1 데이터 세그먼트의 데이터 분포 특성이 평원 분포인 것으로 결정하는 동작을 수행할 수 있다.
일 구현에서, 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정할 때, 프로세서(902)는 구체적으로 다음 동작: 제1 데이터 세그먼트 내의 마지막 문자 이후의 문자들로부터 제1 타겟 문자를 결정하고, 제1 타겟 문자의 시작 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하는 동작을 수행할 수 있고, 여기서 제1 타겟 문자는 청킹 조건을 충족하고, 청킹 조건은: 제1 타겟 문자의 문자 값이 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 상이하고, 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 제1 타겟 문자의 이전 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이가 예상된 청킹 길이 이상이다.
일 구현에서, 예상된 청킹 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정할 때, 프로세서(902)는 구체적으로 다음 동작: 청킹될 데이터 흐름의 청킹 위치로서 위치를 결정하는 동작을 수행할 수 있고, 여기서 상기 위치와 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치 사이의 문자 길이는 예상된 청킹 길이이다.
일 구현에서, 제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정할 때, 프로세서(902)는 구체적으로 다음 동작: 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 경우, 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하는 동작을 수행할 수 있고, 여기서 제2 길이는 예상된 청킹 길이보다 작고, 문자 값들이 상이한 적어도 2개의 문자는 데이터 분포 특성이 비평원 분포인 데이터 세그먼트 내에 존재한다.
일 구현에서, 제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정할 때, 프로세서(902)는 구체적으로 다음 동작: 제1 데이터 세그먼트 내에 제2 타겟 문자가 존재하는 경우, 제1 데이터 세그먼트의 데이터 분포 특성이 비평원 분포인 것으로 결정하는 동작을 수행할 수 있고, 여기서 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이전에 위치하는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값보다 작고, 제1 데이터 세그먼트 내에 있고 제2 타겟 문자 이후에 위치하는 문자들의 문자 값들은 모두 제2 타겟 문자의 문자 값 이하이다.
일 구현에서, 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정할 때, 프로세서(902)는 구체적으로 다음 동작: 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하고, 제2 데이터 세그먼트 내의 모든 문자의 문자 값들이 제2 타겟 문자의 문자 값보다 작은 경우, 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하는 동작을 수행할 수 있고, 여기서 제2 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제2 타겟 문자의 종료 위치와 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 제2 길이이다.
일 구현에서, 제2 길이에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정할 때, 프로세서(902)는 구체적으로 다음 동작: 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하고- 제3 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제3 데이터 세그먼트 내의 마지막 문자의 문자 값은 제2 타겟 문자의 문자 값 이상이고 제3 데이터 세그먼트 내의 다른 문자의 문자 값 이상임 -; 청킹될 데이터 흐름으로부터 제4 데이터 세그먼트를 결정하며- 제4 데이터 세그먼트 내의 첫번째 문자는 제3 데이터 세그먼트 내의 마지막 문자에 인접하고, 제4 데이터 세그먼트 내의 복수의 문자의 문자 길이는 제2 길이임 -; 제4 데이터 세그먼트 내의 모든 문자의 문자 값들이 제3 데이터 세그먼트 내의 마지막 문자의 문자 값보다 작은 경우, 제4 데이터 세그먼트 내의 마지막 문자의 종료 위치를 청킹될 데이터 흐름의 청킹 위치로서 결정하는 동작을 수행할 수 있다.
일 구현에서, 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하기 전에, 프로세서(902)는 추가로 다음 동작: 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하고, 문자 값이 제2 타겟 문자의 문자 값 이상인 적어도 하나의 문자가 제2 데이터 세그먼트 내에 존재하는 경우, 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하는 단계를 트리거하는 동작을 수행할 수 있고, 여기서 제2 데이터 세그먼트 내의 첫번째 문자는 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 제2 타겟 문자의 종료 위치와 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 제2 길이이다.
일 구현에서, 프로세서(902)는 추가로 다음 동작: 예상된 청킹 길이에 기초하여 제1 길이 및 제2 길이를 결정하는 동작을 수행할 수 있다.
또한, 프로세서(902)는 도 2 내지 도 7aa, 도 7ab, 및 도 7ac에 도시된 실시예들에서 서비스 디바이스에 대응하는 동작들을 추가로 수행할 수 있다. 세부사항들에 대해, 상기 방법 실시예들에서의 설명을 참조한다. 세부사항들은 여기에서 다시 설명하지 않는다.
본 출원의 실시예는 도 8에 도시된 실시예에서 청킹 장치에 의해 사용되는 컴퓨터 소프트웨어 명령어들을 저장하도록 구성될 수 있는 컴퓨터 판독가능 저장 매체를 추가로 제공한다. 컴퓨터 소프트웨어 명령어들은 전술한 실시예들에서 서비스 디바이스를 위해 설계된 프로그램을 포함한다.
컴퓨터 판독가능 저장 매체는 플래시 메모리, 하드 디스크, 및 솔리드 스테이트 드라이브를 포함하지만, 이들로 제한되지 않는다.
본 출원의 실시예는 컴퓨터 프로그램 제품을 추가로 제공한다. 컴퓨터 제품이 컴퓨팅 디바이스에 의해 실행될 때, 도 2 내지 도 7aa, 도 7ab, 및 도 7ac의 실시예들에서 서비스 디바이스를 위해 설계된 방법들이 수행될 수 있다.
본 출원의 실시예는 프로세서를 추가로 제공한다. 프로세서는 청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고, 제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 제1 데이터 세그먼트의 데이터 분포 특성을 결정하고, 제1 데이터 세그먼트의 데이터 분포 특성에 기초하여 청킹될 데이터 흐름의 청킹 위치를 결정하도록 구성된 적어도 하나의 회로를 포함한다. 프로세서는 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 청킹 위치 사이의 문자들을 데이터 청크로서 사용하도록 구성된 적어도 하나의 회로를 추가로 포함한다. 프로세서는 칩일 수 있고, 전술한 실시예들에서 서비스 디바이스를 위해 설계된 명령어들 또는 프로그램을 실행할 수 있다.
본 출원의 실시예는 칩 시스템을 추가로 제공한다. 칩 시스템은 프로세서를 포함하고, 프로세서는 도 2 내지 도 7aa, 도 7ab, 및 도 7ac의 실시예들에서 서비스 디바이스를 위해 설계된 청킹 방법들을 구현하도록 구성된다. 실현가능한 구현에서, 칩 시스템은 메모리를 추가로 포함하고, 메모리는 서비스 디바이스의 기능들을 구현하는데 필요한 프로그램 명령어들 및 데이터를 저장하도록 구성된다. 칩 시스템은 칩을 포함할 수 있거나, 또는 칩 및 다른 개별 컴포넌트를 포함할 수 있다.
본 출원의 실시예는 프로세서 및 메모리를 포함하는 칩을 추가로 제공한다. 메모리는 컴퓨터 프로그램을 저장하도록 구성되고, 프로세서는 메모리로부터 컴퓨터 프로그램을 호출하고 컴퓨터 프로그램을 실행하도록 구성되고, 컴퓨터 프로그램은 전술한 방법 실시예들에서의 방법들을 구현하기 위해 사용된다.
본 분야의 통상의 기술자라면, 본 출원에서 개시된 실시예들에서 설명된 예들과 연계하여, 전자 하드웨어 또는 컴퓨터 소프트웨어와 전자적 하드웨어의 조합에 의해 유닛들 및 알고리즘 단계들이 구현될 수 있다는 것을 알 수 있을 것이다. 기능이 하드웨어 또는 소프트웨어에 의해 수행되는지는 기술적 해결책의 특정 응용 및 설계 제약 조건에 좌우된다. 본 분야에서의 숙련된 기술자는 각각의 특정 애플리케이션에 대해 설명되는 기능들을 구현하기 위해 상이한 방법들을 사용할 수 있지만, 이러한 구현이 본 발명의 범위를 벗어나는 것으로 고려되어서는 안 된다.
전술한 실시예들의 전부 또는 일부는 전술한 실시예들에서 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 소프트웨어가 실시예들을 구현하기 위해 사용될 때, 실시예들은 컴퓨터 프로그램 제품의 형태로 완전히 또는 부분적으로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령어를 포함한다. 컴퓨터 프로그램 명령어들이 컴퓨터 상에서 로딩되고 실행될 때, 본 출원의 실시예들에 따른 절차들 또는 기능들은 모두 또는 부분적으로 생성된다. 이러한 컴퓨터는 범용 컴퓨터, 특수-목적 컴퓨터, 컴퓨터 네트워크, 또는 다른 프로그램가능한 장치일 수 있다. 컴퓨터 명령어들은 컴퓨터-판독가능 저장 매체에 저장될 수 있거나, 또는 컴퓨터-판독가능 저장 매체를 사용하여 송신될 수 있다. 이러한 컴퓨터 명령어들은 웹사이트, 컴퓨터, 서버, 또는 데이터 센터로부터 유선(예를 들어, 동축 케이블, 광 섬유 또는 DSL(digital subscriber line)) 또는 무선(예를 들어, 적외선, 라디오, 또는 마이크로웨이브) 방식으로, 다른 웹사이트, 컴퓨터, 서버, 또는 데이터 센터로 송신될 수 있다. 컴퓨터 판독가능 저장 매체는 하나 이상의 이용가능 매체들을 통합하는 서버 또는 데이터 센터와 같은 컴퓨터 또는 데이터 저장 디바이스에 의해 액세스가능한 임의의 이용가능 매체일 수 있다. 사용가능 매체는, 자기 매체(예를 들어, 플로피 디스크, 하드 디스크, 또는 자기 테이프), 광학 매체(예를 들어, DVD), 반도체 매체(예를 들어, 솔리드 스테이트 드라이브(Solid State Disk, SSD)) 등일 수 있다.
전술한 설명들은 단지 본 출원의 구체적인 구현들이지, 본 출원의 보호 범위를 제한하도록 의도되는 것은 아니다. 본 출원에서 개시되는 기술적 범위 내에서 해당 분야에서의 기술자에 의해 용이하게 도출되는 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 있을 것이다. 따라서, 본 출원의 보호 범위는 청구항들의 보호 범위에 종속될 것이다.

Claims (23)

  1. 청킹 방법으로서,
    청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하는 단계- 상기 제1 데이터 세그먼트는 복수의 문자를 포함하고, 상기 복수의 문자의 총 길이는 상기 제1 길이임 -;
    상기 제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 상기 제1 데이터 세그먼트의 데이터 분포 특성을 결정하는 단계- 상기 데이터 분포 특성은 균등 분포, 비균등 분포, 평원 분포, 비평원 분포, 고원 분포 및 분지 분포 중 어느 하나임 -;
    상기 제1 데이터 세그먼트의 상기 데이터 분포 특성에 기초하여 상기 청킹될 데이터 흐름의 청킹 위치를 결정하는 단계; 및
    상기 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 상기 청킹 위치 사이의 문자들을 데이터 청크로서 사용하는 단계를 포함하는 청킹 방법.
  2. 제1항에 있어서,
    상기 제1 데이터 세그먼트의 상기 데이터 분포 특성에 기초하여 상기 청킹될 데이터 흐름의 청킹 위치를 결정하는 단계는:
    상기 제1 데이터 세그먼트의 상기 데이터 분포 특성이 평원 분포인 경우, 예상된 청킹 길이에 기초하여 상기 청킹될 데이터 흐름의 상기 청킹 위치를 결정하는 단계- 데이터 분포 특성이 상기 평원 분포인 데이터 세그먼트 내의 모든 문자의 문자 값들은 동일함 -를 포함하는 청킹 방법.
  3. 제1항에 있어서,
    상기 제1 데이터 세그먼트의 상기 데이터 분포 특성에 기초하여 상기 청킹될 데이터 흐름의 청킹 위치를 결정하는 단계는:
    상기 제1 데이터 세그먼트의 상기 데이터 분포 특성이 비평원 분포인 경우, 제2 길이에 기초하여 상기 청킹될 데이터 흐름의 상기 청킹 위치를 결정하는 단계- 상기 제2 길이는 예상된 청킹 길이보다 작고, 문자 값들이 상이한 적어도 2개의 문자가 데이터 분포 특성이 상기 비평원 분포인 데이터 세그먼트 내에 존재함 -를 포함하는 청킹 방법.
  4. 제3항에 있어서,
    상기 제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 상기 제1 데이터 세그먼트의 데이터 분포 특성을 결정하는 단계는,
    상기 제1 데이터 세그먼트 내에 제2 타겟 문자가 존재하는 경우, 상기 제1 데이터 세그먼트의 상기 데이터 분포 특성이 상기 비평원 분포인 것으로 결정하는 단계- 상기 제1 데이터 세그먼트 내에 있고 상기 제2 타겟 문자 이전에 위치하는 문자들의 문자 값들은 모두 상기 제2 타겟 문자의 문자 값보다 작고, 상기 제1 데이터 세그먼트 내에 있고 상기 제2 타겟 문자 이후에 위치하는 문자들의 문자 값들은 모두 상기 제2 타겟 문자의 문자 값 이하임 -를 포함하는 청킹 방법.
  5. 제4항에 있어서,
    제2 길이에 기초하여 상기 청킹될 데이터 흐름의 청킹 위치를 결정하는 단계는:
    상기 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하는 단계- 상기 제2 데이터 세그먼트 내의 첫번째 문자는 상기 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 상기 제2 타겟 문자의 종료 위치와 상기 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 상기 제2 길이임 -; 및
    상기 제2 데이터 세그먼트 내의 모든 문자의 문자 값들이 상기 제2 타겟 문자의 문자 값보다 작은 경우, 상기 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치를 상기 청킹될 데이터 흐름의 청킹 위치로서 결정하는 단계를 포함하는 청킹 방법.
  6. 제4항에 있어서,
    제2 길이에 기초하여 상기 청킹될 데이터 흐름의 청킹 위치를 결정하는 단계는:
    상기 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하는 단계- 상기 제3 데이터 세그먼트 내의 첫번째 문자는 상기 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 상기 제3 데이터 세그먼트 내의 마지막 문자의 문자 값은 상기 제2 타겟 문자의 문자 값 이상이고 상기 제3 데이터 세그먼트 내의 다른 문자의 문자 값 이상임 -;
    상기 청킹될 데이터 흐름으로부터 제4 데이터 세그먼트를 결정하는 단계- 상기 제4 데이터 세그먼트 내의 첫번째 문자는 상기 제3 데이터 세그먼트 내의 마지막 문자에 인접하고, 상기 제4 데이터 세그먼트 내의 복수의 문자의 문자 길이는 상기 제2 길이임 -; 및
    상기 제4 데이터 세그먼트 내의 모든 문자의 문자 값들이 상기 제3 데이터 세그먼트 내의 마지막 문자의 문자 값보다 작은 경우, 상기 제4 데이터 세그먼트 내의 마지막 문자의 종료 위치를 상기 청킹될 데이터 흐름의 청킹 위치로서 결정하는 단계를 포함하는 청킹 방법.
  7. 제6항에 있어서,
    상기 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하는 단계 이전에, 상기 방법은:
    상기 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하는 단계- 상기 제2 데이터 세그먼트 내의 첫번째 문자는 상기 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 상기 제2 타겟 문자의 종료 위치와 상기 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 상기 제2 길이임 -; 및
    문자 값이 상기 제2 타겟 문자의 문자 값 이상인 적어도 하나의 문자가 상기 제2 데이터 세그먼트 내에 존재하는 경우, 상기 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하는 단계를 트리거하는 단계를 추가로 포함하는 청킹 방법.
  8. 제3항 내지 제7항 중 어느 한 항에 있어서,
    상기 방법은:
    상기 예상된 청킹 길이에 기초하여 상기 제1 길이 및 상기 제2 길이를 결정하는 단계를 추가로 포함하는 청킹 방법.
  9. 청킹 장치로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합되고 상기 적어도 하나의 프로세서에 의한 실행을 위한 명령어들을 저장하는 하나 이상의 메모리를 포함하고, 상기 명령어들은 상기 장치로 하여금:
    청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고- 상기 제1 데이터 세그먼트는 복수의 문자를 포함하고, 상기 복수의 문자의 총 길이는 상기 제1 길이임 -;
    상기 제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 상기 제1 데이터 세그먼트의 데이터 분포 특성을 결정하고- 상기 데이터 분포 특성은 균등 분포, 비균등 분포, 평원 분포, 비평원 분포, 고원 분포 및 분지 분포 중 어느 하나임 -;
    상기 제1 데이터 세그먼트의 상기 데이터 분포 특성에 기초하여 상기 청킹될 데이터 흐름의 청킹 위치를 결정하고;
    상기 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 상기 청킹 위치 사이의 문자들을 데이터 청크로서 사용하게 하도록 상기 적어도 하나의 프로세서에게 지시하는 청킹 장치.
  10. 제9항에 있어서,
    상기 장치는 구체적으로: 상기 제1 데이터 세그먼트의 상기 데이터 분포 특성이 평원 분포인 경우, 예상된 청킹 길이에 기초하여 상기 청킹될 데이터 흐름의 상기 청킹 위치를 결정하게 되고, 데이터 분포 특성이 상기 평원 분포인 데이터 세그먼트 내의 모든 문자의 문자 값들은 동일한 청킹 장치.
  11. 제10항에 있어서,
    상기 장치는 구체적으로: 상기 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 상기 제1 데이터 세그먼트 내의 문자들의 문자 값들 중 최댓값이고, 상기 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값이 상기 제1 데이터 세그먼트 내의 마지막 문자의 문자 값과 동일한 경우, 상기 제1 데이터 세그먼트의 데이터 분포 특성이 상기 평원 분포인 것으로 결정하게 되는 청킹 장치.
  12. 제10항 또는 제11항에 있어서,
    상기 장치는 상기 예상된 청킹 길이에 기초하여 상기 청킹될 데이터 흐름의 상기 청킹 위치를 결정하게 되고, 상기 장치는 구체적으로:
    상기 제1 데이터 세그먼트 내의 마지막 문자 이후의 문자들로부터 제1 타겟 문자를 결정하고- 상기 제1 타겟 문자는 청킹 조건을 충족하고, 상기 청킹 조건은: 상기 제1 타겟 문자의 문자 값이 상기 제1 데이터 세그먼트 내의 첫번째 문자의 문자 값과 상이하고, 상기 제1 데이터 세그먼트 내의 첫번째 문자가 시작 문자로서 사용되고 상기 제1 타겟 문자의 이전 문자가 종료 문자로서 사용되는 데이터 세그먼트의 문자 길이가 상기 예상된 청킹 길이 이상인 것을 포함함 -;
    상기 제1 타겟 문자의 시작 위치를 상기 청킹될 데이터 흐름의 청킹 위치로서 결정하게 되는 청킹 장치.
  13. 제10항 또는 제11항에 있어서,
    상기 장치가 상기 예상된 청킹 길이에 기초하여 상기 청킹될 데이터 흐름의 상기 청킹 위치를 결정하게 될 때, 상기 장치는 구체적으로:
    상기 청킹될 데이터 흐름의 상기 청킹 위치로서 위치를 결정하게 되고, 상기 위치와 상기 제1 데이터 세그먼트 내의 상기 첫번째 문자의 상기 시작 위치 사이의 문자 길이는 상기 예상된 청킹 길이인 청킹 장치.
  14. 제9항에 있어서,
    상기 장치는 구체적으로: 상기 제1 데이터 세그먼트의 상기 데이터 분포 특성이 비평원 분포인 경우, 제2 길이에 기초하여 상기 청킹될 데이터 흐름의 상기 청킹 위치를 결정하게 되고, 상기 제2 길이는 예상된 청킹 길이보다 작고, 문자 값들이 상이한 적어도 2개의 문자가 데이터 분포 특성이 상기 비평원 분포인 데이터 세그먼트 내에 존재하는 청킹 장치.
  15. 제14항에 있어서,
    상기 장치는 구체적으로:
    상기 제1 데이터 세그먼트 내에 제2 타겟 문자가 존재하는 경우, 상기 제1 데이터 세그먼트의 상기 데이터 분포 특성이 상기 비평원 분포인 것으로 결정하게 되고, 상기 제1 데이터 세그먼트 내에 있고 상기 제2 타겟 문자 이전에 위치하는 문자들의 문자 값들은 모두 상기 제2 타겟 문자의 문자 값보다 작고, 상기 제1 데이터 세그먼트 내에 있고 상기 제2 타겟 문자 이후에 위치하는 문자들의 문자 값들은 모두 상기 제2 타겟 문자의 문자 값 이하인 청킹 장치.
  16. 제15항에 있어서,
    상기 장치가 상기 제2 길이에 기초하여 상기 청킹될 데이터 흐름의 상기 청킹 위치를 결정하게 될 때, 상기 장치는 구체적으로:
    상기 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하게 되고- 상기 제2 데이터 세그먼트 내의 첫번째 문자는 상기 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 상기 제2 타겟 문자의 종료 위치와 상기 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 상기 제2 길이임 -;
    상기 제2 데이터 세그먼트 내의 모든 문자의 문자 값들이 상기 제2 타겟 문자의 문자 값보다 작은 경우, 상기 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치를 상기 청킹될 데이터 흐름의 청킹 위치로서 결정하는 청킹 장치.
  17. 제15항에 있어서,
    상기 장치가 상기 제2 길이에 기초하여 상기 청킹될 데이터 흐름의 상기 청킹 위치를 결정하게 될 때, 상기 장치는 구체적으로:
    상기 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하고- 상기 제3 데이터 세그먼트 내의 첫번째 문자는 상기 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 상기 제3 데이터 세그먼트 내의 마지막 문자의 문자 값은 상기 제2 타겟 문자의 문자 값 이상이고 상기 제3 데이터 세그먼트 내의 다른 문자의 문자 값 이상임 -;
    상기 청킹될 데이터 흐름으로부터 제4 데이터 세그먼트를 결정하며- 상기 제4 데이터 세그먼트 내의 첫번째 문자는 상기 제3 데이터 세그먼트 내의 마지막 문자에 인접하고, 상기 제4 데이터 세그먼트 내의 복수의 문자의 문자 길이는 상기 제2 길이임 -;
    상기 제4 데이터 세그먼트 내의 모든 문자의 문자 값들이 상기 제3 데이터 세그먼트 내의 마지막 문자의 문자 값보다 작은 경우, 상기 제4 데이터 세그먼트 내의 마지막 문자의 종료 위치를 상기 청킹될 데이터 흐름의 청킹 위치로서 결정하게 되는 청킹 장치.
  18. 제17항에 있어서,
    상기 장치는 추가로: 상기 청킹될 데이터 흐름으로부터 제2 데이터 세그먼트를 결정하고; 문자 값이 상기 제2 타겟 문자의 문자 값 이상인 적어도 하나의 문자가 상기 제2 데이터 세그먼트 내에 존재하는 경우, 상기 청킹될 데이터 흐름으로부터 제3 데이터 세그먼트를 결정하는 단계를 트리거하게 되고, 상기 제2 데이터 세그먼트 내의 첫번째 문자는 상기 제1 데이터 세그먼트 내의 마지막 문자에 인접하고, 상기 제2 타겟 문자의 종료 위치와 상기 제2 데이터 세그먼트 내의 마지막 문자의 종료 위치 사이의 문자 길이는 상기 제2 길이인 청킹 장치.
  19. 제14항 내지 제18항 중 어느 한 항에 있어서,
    상기 장치는 구체적으로 상기 예상된 청킹 길이에 기초하여 상기 제1 길이 및 상기 제2 길이를 결정하게 되는 청킹 장치.
  20. 청킹 장치를 포함하는 네트워크 시스템으로서,
    상기 청킹 장치는:
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합되고 상기 적어도 하나의 프로세서에 의한 실행을 위한 명령어들을 저장하는 하나 이상의 메모리를 포함하고, 상기 명령어들은 상기 장치로 하여금:
    청킹될 데이터 흐름의 헤더로부터 시작하여 제1 길이의 제1 데이터 세그먼트를 결정하고- 상기 제1 데이터 세그먼트는 복수의 문자를 포함하고, 상기 복수의 문자의 총 길이는 상기 제1 길이임 -;
    상기 제1 데이터 세그먼트 내의 문자들의 문자 값들에 기초하여 상기 제1 데이터 세그먼트의 데이터 분포 특성을 결정하고 - 상기 데이터 분포 특성은 균등 분포, 비균등 분포, 평원 분포, 비평원 분포, 고원 분포 및 분지 분포 중 어느 하나임 -;
    상기 제1 데이터 세그먼트의 상기 데이터 분포 특성에 기초하여 상기 청킹될 데이터 흐름의 청킹 위치를 결정하고;
    상기 제1 데이터 세그먼트 내의 첫번째 문자의 시작 위치와 상기 청킹 위치 사이의 문자들을 데이터 청크로서 사용하게 하도록 상기 적어도 하나의 프로세서에게 지시하는 네트워크 시스템.
  21. 삭제
  22. 삭제
  23. 삭제
KR1020217030895A 2019-03-22 2020-03-23 파티셔닝 방법 및 그 장치 KR102582369B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910221512.3A CN111722787B (zh) 2019-03-22 2019-03-22 一种分块方法及其装置
CN201910221512.3 2019-03-22
PCT/CN2020/080662 WO2020192627A1 (zh) 2019-03-22 2020-03-23 一种分块方法及其装置

Publications (2)

Publication Number Publication Date
KR20210126773A KR20210126773A (ko) 2021-10-20
KR102582369B1 true KR102582369B1 (ko) 2023-09-25

Family

ID=72563503

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217030895A KR102582369B1 (ko) 2019-03-22 2020-03-23 파티셔닝 방법 및 그 장치

Country Status (6)

Country Link
US (1) US11755540B2 (ko)
EP (1) EP3926453A4 (ko)
JP (1) JP7299334B2 (ko)
KR (1) KR102582369B1 (ko)
CN (1) CN111722787B (ko)
WO (1) WO2020192627A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595685A (zh) * 2021-07-15 2021-11-02 上海晶赞融宣科技有限公司 数据传输方法及装置、存储介质、终端
CN115470186A (zh) * 2022-07-29 2022-12-13 天翼云科技有限公司 一种数据切片方法、装置和系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6966024B2 (en) * 2002-12-31 2005-11-15 Motorola, Inc. Method and device for adaptive quantization of soft bits
US8296548B2 (en) * 2006-01-18 2012-10-23 Freescale Semiconductor, Inc. Device and method for finding extreme values in a data block
US8214517B2 (en) * 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US8078593B1 (en) * 2008-08-28 2011-12-13 Infineta Systems, Inc. Dictionary architecture and methodology for revision-tolerant data de-duplication
US20110119262A1 (en) * 2009-11-13 2011-05-19 Dexter Jeffrey M Method and System for Grouping Chunks Extracted from A Document, Highlighting the Location of A Document Chunk Within A Document, and Ranking Hyperlinks Within A Document
CN101788976B (zh) * 2010-02-10 2012-05-09 北京播思软件技术有限公司 一种基于内容的文件分割方法
CN102214210B (zh) * 2011-05-16 2013-03-13 华为数字技术(成都)有限公司 重复数据处理方法、装置和系统
CN103514250B (zh) * 2013-06-20 2017-04-26 易乐天 一种全局重复数据删除的方法和系统及存储装置
CN104348571B (zh) * 2013-07-23 2018-02-06 华为技术有限公司 数据分块方法及装置
CN105051724B (zh) * 2013-08-19 2018-09-28 华为技术有限公司 一种数据对象处理方法与装置
CN105022741B (zh) * 2014-04-23 2018-09-28 苏宁易购集团股份有限公司 压缩方法和系统以及云存储方法和系统
US10608784B2 (en) * 2016-03-15 2020-03-31 ClineHair Commercial Endeavors Distributed storage system data management and security
CN104050057B (zh) * 2014-06-06 2017-04-26 华中科技大学 一种历史感知的数据去重碎片消除方法与系统
CN104361068B (zh) * 2014-11-06 2017-06-16 华中科技大学 一种数据去重过程中的并行分块方法与系统
CN104572872B (zh) * 2014-12-19 2017-08-25 华中科技大学 一种基于极值的数据去重分块方法
CN106610794B (zh) * 2016-11-21 2020-05-15 深信服科技股份有限公司 数据去重的收敛分块方法及装置
CN108243256B (zh) * 2018-01-19 2020-08-04 网宿科技股份有限公司 一种数据存储方法、编码设备及解码设备

Also Published As

Publication number Publication date
JP7299334B2 (ja) 2023-06-27
US11755540B2 (en) 2023-09-12
EP3926453A4 (en) 2022-05-04
EP3926453A1 (en) 2021-12-22
WO2020192627A1 (zh) 2020-10-01
KR20210126773A (ko) 2021-10-20
CN111722787B (zh) 2021-12-03
CN111722787A (zh) 2020-09-29
US20220004524A1 (en) 2022-01-06
JP2022527743A (ja) 2022-06-06

Similar Documents

Publication Publication Date Title
KR102476531B1 (ko) 분산 시스템을 위한 데이터 동기화 방법 및 장치, 매체, 및 전자 디바이스
US10359939B2 (en) Data object processing method and apparatus
US20180285014A1 (en) Data storage method and apparatus
US10936516B2 (en) Accelerated data handling in cloud data storage system
KR102582369B1 (ko) 파티셔닝 방법 및 그 장치
US11461276B2 (en) Method and device for deduplication
US11294805B2 (en) Fast and safe storage space reclamation for a data storage system
CN112099725A (zh) 一种数据处理方法、装置及计算机可读存储介质
WO2021027331A1 (zh) 基于图数据的全量关系计算方法、装置、设备及存储介质
CN113568940B (zh) 数据查询的方法、装置、设备以及存储介质
CN113760982A (zh) 一种数据处理方法和装置
CN112511612A (zh) 云存储数据存储方法、装置、系统、设备及存储介质
US11868332B2 (en) Data index establishment method, and apparatus
CN113590322A (zh) 一种数据处理方法和装置
CN110610450A (zh) 数据处理方法、电子设备和计算机可读存储介质
CN113760876A (zh) 一种数据过滤方法和装置
CN105468603A (zh) 数据选择方法及装置
EP4290775A1 (en) Data compression method and apparatus
CN113946702A (zh) 图像特征的存储方法、装置、存储介质及电子设备
CN117435560A (zh) 数据查询方法、装置、电子设备及可读存储介质
CN117762348A (zh) 文件的分布式存储方法、装置、设备以及存储介质
CN112463021A (zh) 数据处理方法及装置、芯片
CN110968575A (zh) 一种大数据处理系统的去重方法
JP2013125338A (ja) バッチ処理装置、方法、及び、プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant