Способ и сервер для поиска точки деления потока данных на основе сервера



Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
Способ и сервер для поиска точки деления потока данных на основе сервера
G06F3/0608 - Вводные устройства для передачи данных, подлежащих преобразованию в форму, пригодную для обработки в вычислительной машине; выводные устройства для передачи данных из устройств обработки в устройства вывода, например интерфейсы (пишущие машинки B41J; преобразование физических переменных величин F15B 5/00,G01; получение изображений G06T 1/00,G06T 9/00; кодирование, декодирование или преобразование кодов вообще H03M; передача цифровой информации H04L)

Владельцы патента RU 2639947:

ХУАВЭЙ ТЕКНОЛОДЖИЗ КО., ЛТД. (CN)

Группа изобретений относится к области информационных технологий и может быть использована для поиска точки деления потока данных. Техническим результатом является повышение эффективности поиска точки деления потока данных. В вариантах осуществления настоящего изобретения, поиск точки деления потока данных осуществляется путем определения, удовлетворяет ли, по меньшей мере, часть данных в окне из M окон заранее заданному условию, и когда, по меньшей мере, часть данных в окне не удовлетворяет заранее заданному условию, пропускается длина N*U, для получения следующей точки потенциального деления. 8 н. и 56 з.п. ф-лы, 33 ил.

 

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[0001] Настоящее изобретение относится к области информационных технологий и, в частности, к способу и серверу для поиска точки деления потока данных на основе сервера.

УРОВЕНЬ ТЕХНИКИ

[0002] С увеличением объемов данные, критически важной задачей становится обеспечение достаточного хранилища данных в области хранения в настоящее время. В настоящее время, такая задача решается с использованием технологии дедупликации посредством признака избыточности данных, которые необходимо хранить, для уменьшения объем хранимых данных.

[0003] В алгоритме устранения дублированных данных на основании фрагмента, определяемого содержимым (Content Defined Chunk, CDC) в уровне техники, поток данных, подлежащий сохранению, сначала делится на множественные фрагменты данных. Для разделения потока данных на фрагменты данных, необходимо найти подходящую точку деления в потоке данных, и данные между двумя соседними точками деления в потоке данных образуют один фрагмент данных. Вычисляется значение признака фрагмента данных для определения, существуют ли фрагменты данных, имеющие одно и то же значение признака. Если найдены фрагменты данных, имеющие одно и то же значение признака, делается вывод, что дублированные данные существуют. В частности, в технологии устранения дублированных данных на основании фрагмента, определяемого содержимым, применяется метод скользящего окна (Sliding Window Technique) для поиска точки деления фрагмента на основании содержимого файла, то есть рабиновского характерного признака данных в окне вычисляется для определения точки деления потока данных. Предполагается, что поиск точки деления осуществляется слева направо в потоке данных. Характерный признак данных в скользящем окне вычисляется каждый раз, и после осуществления операции по модулю на значении характерного признака на основании данного целого числа k, результат операции по модулю сравнивается с данным остатком R. Если результат операции по модулю равен данному остатку R, правый конец окна является точкой деления потока данных. В противном случае окно продолжает скользить вправо на один байт, и вычисление и сравнение осуществляются последовательно и циклически, пока не будет достигнут конец потока данных. В процессе устранения дублированных данных на основании фрагмента, определяемого содержимым, необходимо расходовать большое количество вычислительных ресурсов для поиска точки деления потока данных, что препятствует повышению производительности устранения дублированных данных.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0004] Согласно первому аспекту, вариант осуществления настоящего изобретения предусматривает способ поиска точки деления потока данных на основе сервера, причем правило заранее задается на сервере, причем правило предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и способ включает в себя:

(a) определение точки piz и окна Wiz[piz-Az, piz+Bz], соответствующего точке piz, для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M;

(b) определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуск N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, и осуществление этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбор текущей точки потенциального деления ki в качестве точки деления потока данных.

[0005] Согласно первому аспекту, в первом возможном варианте реализации, правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf.

[0006] Согласно первому возможному варианту реализации первого аспекта, во втором возможном варианте реализации, правило дополнительно предусматривает, что: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

[0007] Согласно первому возможному варианту реализации или второму возможному варианту реализации первого аспекта, в третьем возможном варианте реализации, правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

[0008] Согласно первому аспекту, или любому из возможных вариантов реализации с первого по третий первого аспекта, в четвертом возможном варианте реализации, определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, включает в себя:

определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0009] Согласно четвертому возможному варианту реализации первого аспекта, в пятом возможном варианте реализации, определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, содержит: определение, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0010] Согласно первому аспекту, или любому из возможных вариантов реализации с первого по пятый первого аспекта, в шестом возможном варианте реализации, когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[piz-Az, piz+Bz], где точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

[0011] Согласно четвертому возможному варианту реализации первого аспекта, в седьмом возможном варианте реализации, определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, включает в себя:

выбор F байтов в окне Wiz[piz-Az, piz+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] удовлетворяет заранее заданному условию Cz.

[0012] Согласно второму аспекту, вариант осуществления настоящего изобретения предусматривает способ поиска точки деления потока данных на основе сервера, причем правило заранее задается на сервере, причем правило предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

способ включает в себя:

(a) определение соответствующего окна Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M;

(b) определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуск N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения новой точки потенциального деления, и осуществление этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбор текущей точки потенциального деления ki в качестве точки деления потока данных.

[0013] Согласно второму аспекту, в первом возможном варианте реализации, правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям | Ae+Be|=|Af+Bf| и Ce=Cf.

[0014] Согласно первому возможному варианту реализации второго аспекта, во втором возможном варианте реализации, правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами.

[0015] Согласно первому возможному варианту реализации или второму возможному варианту реализации второго аспекта, в третьем возможном варианте реализации, правило дополнительно предусматривает, что Ae-1=Af и Be+1=Bf.

[0016] Согласно второму аспекту, или любому из возможных вариантов реализации с первого по третий второго аспекта, в четвертом возможном варианте реализации, определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, включает в себя:

определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0017] Согласно четвертому возможному варианту реализации второго аспекта, в пятом возможном варианте реализации, определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, содержит: определение, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0018] Согласно второму аспекту, или любому из возможных вариантов реализации с первого по пятый второго аспекта, в шестом возможном варианте реализации, когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], где окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

[0019] Согласно четвертому возможному варианту реализации второго аспекта, в седьмом возможном варианте реализации, определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, включает в себя:

выбор F байтов в окне Wiz[ki-Az, ki+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] удовлетворяет заранее заданному условию Cz.

[0020] Согласно третьему аспекту, вариант осуществления настоящего изобретения предусматривает сервер для поиска точки деления потока данных, причем сервер включает в себя центральный процессор и основную память, центральный процессор осуществляет связь с основной памятью, и правило заранее задается на сервере, причем правило предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

основная память выполнена с возможностью хранения исполнимой инструкции, и центральный процессор выполняет исполнимую инструкцию для осуществления следующих этапов:

(a) определения точки piz и окна Wiz[piz-Az, piz+Bz], соответствующего точке piz, для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M;

(b) определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, и осуществления этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

[0021] Согласно третьему аспекту, в первом возможном варианте реализации, правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf.

[0022] Согласно первому возможному варианту реализации третьего аспекта, во втором возможном варианте реализации, правило дополнительно предусматривает, что: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf, ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

[0023] Согласно первому возможному варианту реализации или второму возможному варианту реализации третьего аспекта, в третьем возможном варианте реализации, правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

[0024] Согласно третьему аспекту, или любому из возможных вариантов реализации с первого по третий, в четвертом возможном варианте реализации, центральный процессор, в частности, выполнен с возможностью:

определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0025] Согласно четвертому возможному варианту реализации третьего аспекта, в пятом возможном варианте реализации, центральный процессор, в частности, выполнен с возможностью определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0026] Согласно третьему аспекту, или любому из возможных вариантов реализации с первого по пятый, в шестом возможном варианте реализации, когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[piz-Az, piz+Bz], где точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

[0027] Согласно четвертому возможному варианту реализации третьего аспекта, в седьмом возможном варианте реализации, определение, посредством центрального процессора с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, включает в себя:

выбор F байтов в окне Wiz[piz-Az, piz+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] удовлетворяет заранее заданному условию Cz.

Согласно четвертому аспекту, вариант осуществления настоящего изобретения предусматривает сервер для поиска точки деления потока данных, причем сервер включает в себя центральный процессор и первичную память, центральный процессор осуществляет связь с первичной памятью, и правило заранее задается на сервере, причем правило предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

основная память выполнена с возможностью хранения исполнимой инструкции, и центральный процессор выполняет исполнимую инструкцию для осуществления следующих этапов:

(a) определения соответствующего окна Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M;

(b) определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения новой точки потенциального деления, и осуществление этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

[0028] Согласно четвертому аспекту, в первом возможном варианте реализации, правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям | Ae+Be|=|Af+Bf| и Ce=Cf.

[0029] Согласно первому возможному варианту реализации четвертого аспекта, во втором возможном варианте реализации, правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами.

[0030] Согласно первому возможному варианту реализации или второму возможному варианту реализации четвертого аспекта, в третьем возможном варианте реализации, правило дополнительно предусматривает, что Ae-1=Af и Be+1=Bf.

[0031] Согласно четвертому аспекту, или любому из возможных вариантов реализации с первого по третий, в четвертом возможном варианте реализации, центральный процессор, в частности, выполнен с возможностью:

определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0032] Согласно четвертому возможному варианту реализации четвертого аспекта, в пятом возможном варианте реализации, центральный процессор, в частности, выполнен с возможностью определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0033] Согласно четвертому аспекту, или любому из возможных вариантов реализации с первого по пятый, в шестом возможном варианте реализации, когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], где окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

[0034] Согласно четвертому возможному варианту реализации четвертого аспекта, в седьмом возможном варианте реализации, определение, посредством центрального процессора с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, включает в себя:

выбор F байтов в окне Wiz[ki-Az, ki+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] удовлетворяет заранее заданному условию Cz.

[0035] Согласно пятому аспекту, вариант осуществления настоящего изобретения предусматривает сервер для поиска точки деления потока данных, причем правило заранее задается на сервере, причем правило предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

сервер включает в себя: блок определения, выполненный с возможностью осуществления этапа (a):

(a) определения точки piz и окна Wiz[piz-Az, piz+Bz], соответствующего точке piz, для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M; и

блок принятия решения и обработки, выполненный с возможностью: определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz;

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, причем блок определения осуществляет этап (a) для новой точки потенциального деления; и

когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

[0036] Согласно пятому аспекту, в первом возможном варианте реализации, правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf.

[0037] Согласно первому возможному варианту реализации пятого аспекта, во втором возможном варианте реализации, правило дополнительно предусматривает, что: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

[0038] Согласно первому возможному варианту реализации или второму возможному варианту реализации пятого аспекта, в третьем возможном варианте реализации, правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

[0039] Согласно пятому аспекту, или любому из возможных вариантов реализации с первого по третий, в четвертом возможном варианте реализации, блок принятия решения и обработки, в частности, определяет, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0040] Согласно четвертому возможному варианту реализации пятого аспекта, в пятом возможном варианте реализации, блок принятия решения и обработки в частности, выполнен с возможностью определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0041] Согласно пятому аспекту, или любому из возможных вариантов реализации с первого по пятый, в шестом возможном варианте реализации, блок принятия решения и обработки выполнен с возможностью: когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, причем блок определения осуществляет этап (a) для новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc] попадает в диапазон окна Wiz[piz-Az, piz+Bz], где точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

[0042] Согласно четвертому возможному варианту реализации пятого аспекта, в седьмом возможном варианте реализации, блок принятия решения и обработки в частности, выполнен с возможностью определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, которое включает в себя:

выбор F байтов в окне Wiz[piz-Az, piz+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] удовлетворяет заранее заданному условию Cz.

[0043] Согласно шестому аспекту, вариант осуществления настоящего изобретения предусматривает сервер для поиска точки деления потока данных, причем правило заранее задается на сервере, причем правило предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

сервер включает в себя: блок определения, выполненный с возможностью осуществления этапа (a):

(a) определения соответствующего окна Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M; и

блок принятия решения и обработки, выполненный с возможностью определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz;

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения новой точки потенциального деления, и осуществления этапа (a); и

когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

[0044] Согласно шестому аспекту, в первом возможном варианте реализации, правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям | Ae+Be|=|Af+Bf| и Ce=Cf.

[0045] Согласно первому возможному варианту реализации шестого аспекта, во втором возможном варианте реализации, правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами.

[0046] Согласно первому возможному варианту реализации или второму возможному варианту реализации шестого аспекта, в третьем возможном варианте реализации, правило дополнительно предусматривает, что Ae-1=Af и Be+1=Bf.

[0047] Согласно шестому аспекту, или любому из возможных вариантов реализации с первого по третий, в четвертом возможном варианте реализации, блок принятия решения и обработки в частности, выполнен с возможностью:

определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0048] Согласно четвертому возможному варианту реализации шестого аспекта, в пятом возможном варианте реализации, блок принятия решения и обработки в частности, выполнен с возможностью определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0049] Согласно шестому аспекту, или любому из возможных вариантов реализации с первого по пятый, в шестом возможном варианте реализации, блок принятия решения и обработки выполнен с возможностью: когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, блок определения осуществляет этап (a) для новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], где окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

[0050] Согласно четвертому возможному варианту реализации шестого аспекта, в седьмом возможном варианте реализации, блок принятия решения и обработки определяет, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, и это определение включает в себя:

выбор F байтов в окне Wiz[ki-Az, ki+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] удовлетворяет заранее заданному условию Cz.

[0051] Согласно седьмому аспекту, вариант осуществления настоящего изобретения предусматривает компьютерно-считываемый носитель данных, причем компьютерно-считываемый носитель данных выполнен с возможностью хранения исполнимой инструкции, сервер выполняет исполнимую инструкцию для поиска точки деления потока данных, и правило заранее задается на сервере, причем правило предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

сервер выполняет исполнимую инструкцию для осуществления следующих этапов:

(a) согласно правилу, для текущей точки потенциального деления ki, определения точки piz и окна Wiz[piz-Az, piz+Bz], соответствующего точке piz, для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M;

(b) определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, и осуществления этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

[0052] Согласно седьмому аспекту, в первом возможном варианте реализации, правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf.

[0053] Согласно первому возможному варианту реализации седьмого аспекта, во втором возможном варианте реализации, правило дополнительно предусматривает, что: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

[0054] Согласно первому возможному варианту реализации или второму возможному варианту реализации седьмого аспекта, в третьем возможном варианте реализации, правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

[0055] Согласно седьмому аспекту, или любому из возможных вариантов реализации с первого по третий седьмого аспекта, в четвертом возможном варианте реализации, определение, посредством сервера, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, включает в себя:

определение, посредством сервера с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0056] Согласно четвертому возможному варианту реализации седьмого аспекта, в пятом возможном варианте реализации, определение, посредством сервера с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, включает в себя:

определение, посредством сервера с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0057] Согласно седьмому аспекту, или любому из возможных вариантов реализации с первого по пятый седьмого аспекта, в шестом возможном варианте реализации, когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[piz-Az, piz+Bz], где точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

[0058] Согласно четвертому возможному варианту реализации седьмого аспекта, в седьмом возможном варианте реализации, определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, включает в себя:

выбор F байтов в окне Wiz[piz-Az, piz+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] удовлетворяет заранее заданному условию Cz.

[0059] Согласно восьмому аспекту, вариант осуществления настоящего изобретения предусматривает компьютерно-считываемый носитель данных, причем компьютерно-считываемый носитель данных выполнен с возможностью хранения исполнимой инструкции, сервер выполняет исполнимую инструкцию для поиска точки деления потока данных, и правило заранее задается на сервере, причем правило предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и сервер выполняет исполнимую инструкцию для осуществления следующих этапов:

(a) определения соответствующего окна Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M;

(b) определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения новой точки потенциального деления, и осуществления этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

[0060] Согласно восьмому аспекту, в первом возможном варианте реализации, правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям | Ae+Be|=|Af+Bf| и Ce=Cf.

[0061] Согласно первому возможному варианту реализации восьмого аспекта, во втором возможном варианте реализации, правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами.

[0062] Согласно первому возможному варианту реализации или второму возможному варианту реализации восьмого аспекта, в третьем возможном варианте реализации, правило дополнительно предусматривает, что Ae-1=Af и Be+1=Bf.

[0063] Согласно восьмому аспекту, или любому из возможных вариантов реализации с первого по третий восьмого аспекта, в четвертом возможном варианте реализации, определение, посредством сервера, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, включает в себя:

определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0064] Согласно четвертому возможному варианту реализации восьмого аспекта, в пятом возможном варианте реализации, определение, посредством сервера с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, содержит: определение, посредством сервера с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0065] Согласно восьмому аспекту, или любому из возможных вариантов реализации с первого по пятый восьмого аспекта, в шестом возможном варианте реализации, когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], где окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

[0066] Согласно четвертому возможному варианту реализации восьмого аспекта, в седьмом возможном варианте реализации, определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, включает в себя:

выбор F байтов в окне Wiz[ki-Az, ki+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] удовлетворяет заранее заданному условию Cz.

[0067] В вариантах осуществления настоящего изобретения, поиск точки деления потока данных осуществляется путем определения, удовлетворяет ли, по меньшей мере, часть данных в окне из M окон заранее заданному условию, и когда, по меньшей мере, часть данных в окне не удовлетворяет заранее заданному условию, пропускается длина N*U, для получения следующей точки потенциального деления, что повышает эффективность поиска точки деления потока данных.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0068] Фиг. 1 – схема сценария применения согласно варианту осуществления настоящего изобретения;

[0069] фиг. 2 – схема точки деления потока данных;

[0070] фиг. 3 – схема поиска точки деления потока данных;

[0071] фиг. 4 – схема способа согласно варианту осуществления настоящего изобретения;

[0072] фиг. 5 и фиг. 6 – схемы варианта реализации поиска точки деления потока данных;

[0073] фиг. 7 и фиг. 8 – схемы варианта реализации поиска точки деления потока данных;

[0074] фиг. 9 и фиг. 10 – схемы варианта реализации поиска точки деления потока данных;

[0075] фиг. 11, фиг. 12 и фиг. 13 – схемы варианта реализации поиска точки деления потока данных;

[0076] фиг. 14 и фиг. 15 – схемы варианта реализации поиска точки деления потока данных;

[0077] фиг. 16 и фиг. 17 – схемы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию;

[0078] фиг. 18 – структурная схема сервера дедупликации;

[0079] фиг. 19 – структурная схема сервера дедупликации;

[0080] фиг. 20 – схема способа согласно варианту осуществления настоящего изобретения;

[0081] фиг. 21 и фиг. 22 – схемы варианта реализации поиска точки деления потока данных;

[0082] фиг. 23 и фиг. 24 – схемы варианта реализации поиска точки деления потока данных;

[0083] фиг. 25 и фиг. 26 – схемы варианта реализации поиска точки деления потока данных;

[0084] фиг. 27, фиг. 28 и фиг. 29 – схемы варианта реализации поиска точки деления потока данных;

[0085] фиг. 30 и фиг. 31 – схемы варианта реализации поиска точки деления потока данных; и

[0086] фиг. 32 и фиг. 33 – схемы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию.

ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

[0087] По мере развития технологий хранения, объемы генерируемых данных постоянно растут, и большой объем данных предъявляет наивысшее требование к емкости хранилища. Затраты на приобретение IT-оборудования возрастают совместно с емкостью хранилища. Для ослабления конфликта потребностей между объемами данных и емкостью хранилища и снижения затрат на приобретение IT-оборудования, технология устранения дублированных данных вводится в область хранения данных.

[0088] Сценарий использования варианта осуществления настоящего изобретения является сценарием резервного копирования данных. Резервное копирование данных представляет собой процесс создания, с использованием сервера резервного копирования, резервной копии данных на другой носитель данных для предотвращения потери данных по различным причинам. На фиг. 1 показана архитектура системы резервного копирования данных. Система резервного копирования данных включает в себя клиенты (101a, 101b, ..., и 101n), сервер 102 резервного копирования, сервер 103 устранения дублированных данных (сокращенно именуемый сервером дедупликации или сервером устранения дублирования), и запоминающие устройства (104a, 104b, ..., и 104n). Клиенты (101a, 101b, ..., и 101n) могут представлять собой серверы приложений, рабочие станции и т.п. Сервер 102 резервного копирования выполнен с возможностью создавать резервную копию данных, генерируемых клиентами. Сервер 103 дедупликации выполнен с возможностью выполнения задания устранения дублированных данных для данных резервного копирования. Запоминающие устройства (104a, 104b, ..., и 104n) служат носителями данных, где хранятся данные, из которых были исключены дублированные данные, и могут быть носителями данных, например, дисковыми массивами и библиотеками лент. Клиенты (101a, 101b, ..., и 101n), сервер 102 резервного копирования, сервер 103 устранения дублированных данных и запоминающие устройства (104a, 104b, ..., и 104n) могут быть соединены, например, с использованием коммутатора, локальной сети, интернета или оптического волокна. Вышеупомянутые устройства могут располагаться в одном месте или могут располагаться в разных местах. Сервер 102 резервного копирования, сервер 103 устранения дублирования и запоминающие устройства (104a, 104b, ..., и 104n) могут быть независимыми физическими устройствами или могут быть физически встроенными целиком в конкретной реализации, или сервер 102 резервного копирования и сервер 103 устранения дублирования встроены целиком, или сервер 103 устранения дублирования и запоминающие устройства (104a, 104b, ..., и 104n) встроены целиком и т.п.

[0089] Сервер 103 дедупликации осуществляет операцию устранения дублированных данных на потоке данных для данных резервного копирования, где операция, в общем случае, включает в себя следующие этапы:

(1) поиск точки деления потока данных: поиск точки деления потока данных в потоке данных согласно конкретному алгоритму;

(2) осуществление деления согласно найденной точке деления потока данных для получения фрагменты данных;

(3) вычисление значения признака каждого фрагмента данных: вычисление значения признака фрагмента данных, который служит признаком для идентификации фрагмента данных; и добавление значения признака, полученного посредством вычисления, в список признаков фрагмента данных файла, соответствующий потоку данных, где алгоритм SHA-1 или MD5, в общем случае, используется для вычисления значения признака фрагмента данных;

(4) обнаружение одного и того же фрагмента данных: сравнение значения признака фрагмента данных, полученного посредством вычисления, со значением признака, который уже существует в списке признаков фрагмента данных для определения, существует ли идентичный фрагмент данных; и

(5) устранение блок дублированных данных: если, путем обнаружения одного и того же фрагмента данных, найдено, что в списке признаков фрагмента данных существует такое же значение признака, как значение признака фрагмента данных, пропуск сохранения фрагмента данных или определение, сохранять ли фрагмент данных согласно объему хранения дублированных фрагментов данных, которая определена согласно политике резервного копирования.

[0090] Из этапа осуществления, посредством сервера 103 дедупликации, операции устранения дублированных данных на потоке данных для данных резервного копирования может быть известно, что поиск точки деления потока данных, служащий ключевым этапом в операции устранения дублированных данных, непосредственно определяет производительность устранения дублированных данных.

[0091] Согласно варианту осуществления настоящего изобретения, сервер 103 дедупликации принимает файл резервного копирования, отправленный посредством сервера 102 резервного копирования, и осуществляет обработку устранения дублированных данных на файле. Файл резервного копирования, подлежащий обработке, обычно представляется в форме потока данных на сервере 103 дедупликации. Когда сервер 103 дедупликации ищет точку деления в потоке данных, обычно необходимо определять минимальную единицу для поиска точки деления потока данных. В частности, как показано на фиг. 2, например, точка потенциального деления k1 располагается между двумя последовательными минимальными единицами, с порядковыми номерами 1 и 2, для поиска точки деления потока данных. Точка потенциального деления означает точку, для которой необходимо определять, может ли точка служить точкой деления потока данных. Когда точка k1 является точкой деления потока данных, в направлении поиска точки деления потока данных, показанном стрелкой на фиг. 2, осуществляется поиск следующей точки потенциального деления k7, то есть точки, расположенной между двумя последовательными минимальными единицами, с порядковыми номерами 7 и 8, для поиска точки деления потока данных. Когда точка потенциального деления k7 является точкой деления потока данных, данные между двумя соседними точками деления потока данных k1 и k7 является 1 фрагментом данных. Минимальная единица для поиска точки деления потока данных, в частности, может определяться согласно фактическому требованию, и здесь 1 байт (байт) используется в порядке примера, то есть все минимальные единицы, с порядковыми номерами 1, 2, 7 и 8, для поиска точки деления потока данных имеют размер 1 байт. Направление поиска точки деления потока данных, показанное на фиг. 2, обычно представляет направление поиска от заголовка файла к концевику файла или направление от концевика файла к заголовку файла, и в этом варианте осуществления, в порядке примера используется направление поиска от заголовка файла к концевику файла.

[0092] В сценарии устранения дублированных данных, меньший фрагмент данных, в общем случае, указывает более высокую скорость устранения дублированных данных и более легкий способ нахождения дублированного фрагмента данных, но увеличенный объем метаданных, генерируемых из него; кроме того, после уменьшения фрагмента данных до некоторой степени, скорость устранения дублированных данных больше не возрастает, но объем метаданных быстро возрастает. Таким образом, можно регулировать размер фрагмента данных. В фактических применениях, обычно устанавливается минимальное значение фрагмента данных, например, 4 кбайт (4096 байтов); в то же время, с учетом скорости устранения дублированных данных, также устанавливается максимальное значение фрагмента данных, то есть размер фрагмента данных не может превышать максимальное значение, например, 12 кбайт (12288 байтов). Конкретный вариант реализации показан на фиг. 3. Сервер 103 дедупликации ищет точку деления потока данных в направлении, показанном стрелкой. ka является найденной в данный момент точкой деления потока данных, и из ka, осуществляется поиск следующей точки потенциального деления в направлении поиска точки деления потока данных. Для выполнения требования минимального фрагмента данных, обычно начинающегося с точки деления потока данных, размер минимального фрагмента данных пропускается в направлении поиска точки деления потока данных, и поиск начинается с концевой позиции минимального фрагмента данных, то есть концевая позиция минимального фрагмента данных служит следующей точкой потенциального деления ki. В этом варианте осуществления настоящего изобретения, минимальный фрагмент данных размером 4 кбайт, то есть 4*1024=4096 байтов сначала можно пропускать от точки ka в направлении поиска точки деления потока данных. 4096 байтов пропускается от точки ka в направлении поиска точки деления потока данных, и точка ki получается в концевой позиции 4096-го байта, чтобы выступать в качестве точки потенциального деления. Например, ki располагается между двумя последовательными минимальными единицами, с порядковыми номерами 4096 и 4097, для поиска точки деления потока данных. Также используя фиг. 3 в порядке примера, ka является найденной в данный момент точкой деления потока данных, и поиск следующей точки деления потока данных осуществляется в направлении, показанном на фиг. 3. Если следующая точка деления потока данных не найдена по прошествии максимального значения фрагмента данных, начиная с точки ka в направлении поиска точки деления потока данных, точка kz, в которой достигается максимальное значение фрагмента данных, служит следующей точкой деления потока данных и осуществляется принудительное деление.

[0093] Вариант осуществления настоящего изобретения предусматривает способ поиска точки деления потока данных на основе сервера дедупликации, который, как показано на фиг. 4, включает в себя:

[0094] правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами, где расстояние между px и точкой потенциального деления k равно dx минимальных единиц для поиска точки деления потока данных, минимальная единица для поиска точки деления потока данных представлена как U, и в этом варианте осуществления, U=1 байт. В варианте реализации, показанном на фиг. 3, вблизи значения M, в одном варианте реализации, значение M*U не превышает заранее заданного максимального расстояния между двумя соседними точками деления потока данных, то есть заранее заданной максимальной длины фрагмента данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wz[pz-Az, pz+Bz], соответствующем точке pz, заранее заданному условию Cz, где z – целое число, 1≤z≤M, и (pz-Az) и (pz+Bz) представляют две границы окна Wz. Когда определено, что, по меньшей мере, часть данных в окне Wz[pz-Az, pz+Bz] любой точки pz не удовлетворяет заранее заданному условию Cz, N байтов пропускается от точки pz, соответствующий окну Wz[pz-Az, pz+Bz], которая не удовлетворяет заранее заданному условию, в направлении поиска точки деления потока данных, где N≤‖Bz‖+maxx(‖Ax‖+‖(k-px)‖), где ‖(k-px)‖ представляет расстояние между любой точкой из M точек px и точкой потенциального деления k, maxx(‖Ax‖+‖(k-px)‖) представляет максимальное значение суммы абсолютного значения расстояния между любой точкой из M точек px и точкой потенциального деления k и абсолютного значения Ax, соответствующего любой точке, и ‖Bz‖ представляет абсолютное значение Bz в Wz[pz-Az, pz+Bz]. Принцип задания значения N, в частности, введен в нижеследующих вариантах осуществления. Когда определено, что, по меньшей мере, часть данных в каждом окне Wx[px-Ax, px+Bx] из M окон удовлетворяет заранее заданному условию Cx, точка потенциального деления k является точкой деления потока данных.

[0095] В частности, для текущей точки потенциального деления ki, следующие этапы осуществляются согласно правилу:

[0096] Этап 401: определить точку piz и окно Wiz[piz-Az, piz+Bz], соответствующее точке piz, для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M.

[0097] Этап 402: определить, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz;

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропустить N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, и осуществить этап 401; и

когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбрать текущую точку потенциального деления ki в качестве точки деления потока данных.

[0098] Кроме того, правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf.

[0099] Правило дополнительно предусматривает, что: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

[0100] Правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

[0101] Определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, включает в себя:

определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0102] Определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, содержит: определение, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

[0103] когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[piz-Az, piz+Bz], где точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

[0104] В этом варианте осуществления настоящего изобретения, поиск точки деления потока данных осуществляется путем определения, удовлетворяет ли, по меньшей мере, часть данных в окне из M окон заранее заданному условию, и когда, по меньшей мере, часть данных в окне не удовлетворяет заранее заданному условию, пропускается длина N*U, где N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения следующей точки потенциального деления, что повышает эффективность поиска точки деления потока данных.

[0105] В процессе устранения дублированных данных, чтобы гарантировать одномерный размер фрагмента данных, рассматривается средний размер фрагмента данных (также именуемый средним фрагментом). Таким образом, хотя ограничения на размер минимального фрагмента данных и размер максимального фрагмента данных удовлетворяются, размер среднего фрагмента данных определяется, чтобы гарантировать одномерный размер полученного фрагмента данных. Вероятность (представленная как P(n)) нахождения точки деления потока данных зависит от двух факторов, то есть количества M точек px, и вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем точке px, удовлетворяет заранее заданному условию Cx, где первый влияет на длину пропуска, последний влияет на вероятность пропуска, и оба вместе влияют на размер среднего фрагмента. В общем случае, когда размер среднего фрагмента является фиксированным, с увеличением количества M точек px, вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем единичной точке px, удовлетворяет заранее заданному условию Cx, также возрастает. Например, правило, заранее заданное на сервере 103 дедупликации, предусматривает: для точки потенциального деления k, определение 11 точек px, где x указывает последовательные натуральные числа от 1 до 11 по отдельности, и вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем любой точке px из 11 точек удовлетворяет заранее заданному условию Cx, равна 1/2. Другая группа правил, заранее заданных на сервере 103 дедупликации, предусматривает: выбор 24 точки px для точки потенциального деления k, где x указывает последовательные натуральные числа от 1 до 24 по отдельности, и вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем любой точке px из 24 точек удовлетворяет заранее заданному условию Cx, равна 3/4. Для задания вероятности того, что, по меньшей мере, часть данных в конкретном окне Wx[px-Ax, px+Bx] удовлетворяет заранее заданному условию Cx, можно обратиться к описанию части определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx] заранее заданному условию Cx. P(n) зависит от двух факторов, то есть количества M точек px и вероятности того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем точке px, удовлетворяет заранее заданному условию Cx, и P(n) представляет вероятность того, что не найдено ни одной точки деления потока данных после N минимальных единиц для поиска точки деления потока данных в поиске от начальной позиции / предыдущей точки деления потока данных потока данных. Процесс вычисления P(n), которая зависит от двух факторов, фактически является n-шаговой последовательностью Фибоначчи, которая подробно описана ниже. После получения P(n), 1-P(n) является функцией распределения точки деления потока данных, и (1-P(n))-(1-P(n-1))=P(n-1)-P(n) является вероятностью того, что точка деления потока данных найдена в n-й точке, то есть функцией плотности точки деления потока данных. Интегрирование можно осуществлять согласно функции плотности точки деления потока данных, для получения предполагаемой длины точки деления потока данных, то есть размера среднего фрагмента, где 4*1024 (байтов) представляет длину минимального фрагмента данных, и 12*1024 (байтов) представляет длину максимального фрагмента данных.

[0106] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 5, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение 11 точек px, окна Wx[px-Ax, px+Bx] (сокращенно, окна Wx) соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где A1=A2=A3=A4=A5=A6=A7=A8=A9=A10=A11=169, B1=B2=B3=B4=B5=B6=B7=B8=B9=B10=B11=0, и C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11. Расстояние между точкой px и точкой потенциального деления k равно dx байтам. В частности, расстояние между точкой p1 и точкой потенциального деления k равно 0 байтов, расстояние между точкой p2 и точкой потенциального деления k равно 1 байту, расстояние между точкой p3 и точкой потенциального деления k равно 2 байтам, расстояние между точкой p4 и точкой потенциального деления k равно 3 байтам, расстояние между точкой p5 и точкой потенциального деления k равно 4 байтам, расстояние между точкой p6 и точкой потенциального деления k равно 5 байтам, расстояние между точкой p7 и точкой потенциального деления k равно 6 байтам, расстояние между точкой p8 и точкой потенциального деления k равно 7 байтам, расстояние между точкой p9 и точкой потенциального деления k равно 8 байтам, расстояние между точкой p10 и точкой потенциального деления k равно 9 байтам, расстояние между точкой p11 и точкой потенциального деления k равно 10 байтам, и относительно точки потенциального деления k, все точки p2, p3, p4, p5, p6, p7, p8, p9, p10 и p11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 5 является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki, и точка pix определяется для точки потенциального деления ki. В этом варианте осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, x указывает последовательные натуральные числа от 1 до 11 по отдельности. В варианте реализации, показанном на фиг. 5, 11 точек определяется для точки потенциального деления ki, и представляют собой pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11 по отдельности, и окна, соответствующие точкам pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11, являются Wi1[pi1-169, pi1], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3], Wi4[pi4-169, pi4], Wi5[pi5-169, pi5], Wi6[pi6-169, pi6], Wi7[pi7-169, pi7], Wi8[pi8-169, pi8], Wi9[pi9-169, pi9], Wi10[pi10-169, pi10] и Wi11[pi11-169, pi11] соответственно. Вышеупомянутый окна по отдельности сокращенно именуются Wi1, Wi2, Wi3, Wi4, Wi5, Wi6, Wi7, Wi8, Wi9, Wi10 и Wi11. Расстояние между точкой pix и точкой потенциального деления ki равно dx байтам. В частности, расстояние между pi1 и ki равно 0 байтов, расстояние между pi2 и ki равно 1 байту, расстояние между pi3 и ki равно 2 байтам, расстояние между pi4 и ki равно 3 байтам, расстояние между pi5 и ki равно 4 байтам, расстояние между pi6 и ki равно 5 байтам, расстояние между pi7 и ki равно 6 байтам, расстояние между pi8 и ki равно 7 байтам, расстояние между pi9 и ki равно 8 байтам, расстояние между pi10 и ki равно 9 байтам, расстояние между pi11 и ki равно 10 байтам, и относительно точки потенциального деления ki, и pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[pi6-169, pi6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[pi7-169, pi7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[pi8-169, pi8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[pi9-169, pi9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[pi10-169, pi10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[pi11-169, pi11] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из 11 окон не удовлетворяет соответствующему заранее заданному условию, например, как показано на фиг. 6, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет соответствующему заранее заданному условию C5, N байтов пропускается от точки pi5 в направлении поиска точки деления потока данных, где N байтов не больше ‖B5‖+maxx(‖Ax‖+‖(ki-pix)‖). В варианте реализации, показанном на фиг. 6, число N пропущенных байтов не превышает 179 байтов, и в этом варианте осуществления, N=11, для получения следующей точки потенциального деления. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Согласно правилу, заранее заданному на сервере 103 дедупликации в варианте реализации, показанном на фиг. 5, 11 точек определяется для точки потенциального деления kj, и представляют собой pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11 по отдельности, и окна, соответствующие точкам pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11, определяются и являются Wj1[pj1-169, pj1], Wj2[pj2-169, pj2], Wj3[pj3-169, pj3], Wj4[pj4-169, pj4], Wj5[pj5-169, pj5], Wj6[pj6-169, pj6], Wj7[pj7-169, pj7], Wj8[pj8-169, pj8], Wj9[pj9-169, pj9], Wj10[pj10-169, pj10] и Wj11[pj11-169, pj11] соответственно. Расстояние между pjx и точкой потенциального деления kj равно dx байтам. В частности, расстояние между pj1 и kj равно 0 байтов, расстояние между pj2 и kj равно 1 байту, расстояние между pj3 и kj равно 2 байтам, расстояние между pj4 и kj равно 3 байтам, расстояние между pj5 и kj равно 4 байтам, расстояние между pj6 и kj равно 5 байтам, расстояние между pj7 и kj равно 6 байтам, расстояние между pj8 и kj равно 7 байтам, расстояние между pj9 и kj равно 8 байтам, расстояние между pj10 и kj равно 9 байтам, расстояние между pj11 и kj равно 10 байтам, и относительно точки потенциального деления kj, все pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. В варианте реализации, показанном на фиг. 6, когда 11-е окно Wj11[pj11-169, pj11] определяется для точки потенциального деления kj, чтобы гарантировать, что диапазон между точкой потенциального деления ki и точкой потенциального деления kj полностью заключен в диапазоне определения, в этом варианте реализации можно гарантировать, что левая граница окна Wj11[pj11-169, pj11] совпадает с правой границей pi5 Wi5[pi5-169, pi5] или попадает в диапазон Wi5[pi5-169, pi5], где точка pj11, определенная для точки потенциального деления kj, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M точек, которые определены для точки потенциального деления kj согласно правилу. Таким образом, при таком ограничении, когда, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5, расстояние для пропуска от pi5 в направлении поиска точки деления потока данных не превышает ‖B5‖+maxx(‖Ax‖+‖(ki-pix)‖), где M=11, и 11*U не превышает maxx(‖Ax‖+‖(ki-pix)‖), и, таким образом, расстояние для пропуска от pi5 в направлении поиска точки деления потока данных не превышает 179. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11. Конечно, в этом варианте осуществления настоящего изобретения, правило также выполняется, когда производится определение, является ли точка потенциального деления ka точкой деления потока данных, конкретная реализация повторно не описана, и можно обратиться к описанию определения точки потенциального деления ki. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kj является точкой деления потока данных, и данные между kj и ka образуют 1 фрагмент данных. При этом, минимальный фрагмент размером 4 кбайт пропускается таким же, образом как для ka для получения следующей точки потенциального деления, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, является ли следующая точка потенциального деления точкой деления потока данных. Когда определено, что точка потенциального деления kj не является точкой деления потока данных, 11 байтов пропускается таким же, образом как для ki для получения следующей точки потенциального деления, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, и вышеупомянутому способу, является ли следующая точка потенциального деления точкой деления потока данных. Когда не найдено ни одной точки деления потока данных по прохождении максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления.

[0107] В варианте реализации, показанном на фиг. 5, согласно правилу, заранее заданному на сервере 103 дедупликации, начиная с определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1, когда определено, что, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1, определено, что, по меньшей мере, часть данных в Wi2[pi2-169, pi2] удовлетворяет заранее заданному условию C2, определено, что, по меньшей мере, часть данных в Wi3[pi3-169, pi3] удовлетворяет заранее заданному условию C3, определено, что, по меньшей мере, часть данных в Wi4[pi4-169, pi4] удовлетворяет заранее заданному условию C4, и определено, что, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5, 10 байтов пропускается от точки pi5 в направлении поиска точки деления потока данных, и новая точка потенциального деления получается в концевой позиции 10-го байта, которая представлена здесь как kg для отличения от других точек потенциального деления. Согласно правилу, заранее заданному на сервере 103 дедупликации, 11 точек pgx определяются для точки потенциального деления kg, где x указывает последовательные натуральные числа от 1 до 11 по отдельности, и представляют собой pg1, pg2, pg3, pg4, pg5, pg6, pg7, pg8, pg9, pg10 и pg11 по отдельности, и окна, соответствующие точкам pg1, pg2, pg3, pg4, pg5, pg6, pg7, pg8, pg9, pg10 и pg11, определяются и являются Wg1[pg1-169, pg1], Wg2[pg2-169, pg2], Wg3[pg3-169, pg3], Wg4[pg4-169, pg4], Wg5[pg5-169, pg5], Wg6[pg6-169, pg6], Wg7[pg7-169, pg7], Wg8[pg8-169, pg8], Wg9[pg9-169, pg9], Wg10[pg10-169, pg10] и Wg11[pg11-169, pg11] соответственно. Расстояние между pgx и точкой потенциального деления kg равно dx байтам. В частности, расстояние между pg1 и kg равно 0 байтов, расстояние между pg2 и kg равно 1 байту, расстояние между pg3 и kg равно 2 байтам, расстояние между pg4 и kg равно 3 байтам, расстояние между pg5 и kg равно 4 байтам, расстояние между pg6 и kg равно 5 байтам, расстояние между pg7 и kg равно 6 байтам, расстояние между pg8 и kg равно 7 байтам, расстояние между pg9 и kg равно 8 байтам, расстояние между pg10 и kg равно 9 байтам, расстояние между pg11 и kg равно 10 байтам, и относительно точки потенциального деления kg, все pg2, pg3, pg4, pg5, pg6, pg7, pg8, pg9, pg10 и pg11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg1[pg1-169, pg1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg2[pg2-169, pg2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg3[pg3-169, pg3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg4[pg4-169, pg4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg5[pg5-169, pg5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg6[pg6-169, pg6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg7[pg7-169, pg7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg8[pg8-169, pg8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg9[pg9-169, pg9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg10[pg10-169, pg10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg11[pg11-169, pg11] заранее заданному условию C11. Таким образом, точка pg11, соответствующая точке потенциального деления kg, совпадает с точкой pi5, соответствующей точке потенциального деления ki, окно Wg11[pg11-169, pg11], соответствующее точке pg11, совпадает с окном Wi5[pi5-169, pi5], соответствующим точке pi5, и C5=C11; таким образом, для точки потенциального деления ki, когда определено, что, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5, точка потенциального деления kg, полученная пропуском 10 байтов от точки pi5 в направлении поиска точки деления потока данных, по прежнему не удовлетворяет условию использования в качестве точки деления потока данных. Таким образом, при наличии повторных вычислений, когда 10 байтов пропускается от точки pi5 в направлении поиска точки деления потока данных, количество повторных вычислений может сокращаться, и эффективность повышаться, когда 11 байтов пропускается от точки pi5 в направлении поиска точки деления потока данных. Таким образом, возрастает скорость поиска точки деления потока данных. Когда вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем точке px, которая определена согласно заранее заданному правилу, удовлетворяет заранее заданному условию Cx, равна 1/2, то есть вероятность выполнения пропуска равна 1/2, каждый раз можно пропускать, самое большее, 179 байтов.

[0108] В этом варианте реализации, заранее заданное правило предусматривает: для точки потенциального деления k, определение 11 точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до 11 по отдельности, где вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем точке px, удовлетворяет заранее заданному условию, равна 1/2, и P(n) можно вычислить с использованием двух факторов, то есть количества точек px и вероятности того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем точке px, удовлетворяет заранее заданному условию. Кроме того, A1=A2=A3=A4=A5=A6=A7=A8=A9=A10=A11=169, B1=B2=B3=B4=B5=B6=B7=B8=B9=B10=B11=0, и C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11, где расстояние между px и точкой потенциального деления k равно dx байтам. В частности, расстояние между p1 и точкой потенциального деления k равно 0 байтов, расстояние между p2 и k равно 1 байту, расстояние между p3 и k равно 2 байтам, расстояние между p4 и k равно 3 байтам, расстояние между p5 и k равно 4 байтам, расстояние между p6 и k равно 5 байтам, расстояние между p7 и k равно 6 байтам, расстояние между p8 и k равно 7 байтам, расстояние между p9 и k равно 8 байтам, расстояние между p10 и k равно 9 байтам, расстояние между p11 и k равно 10 байтам, и относительно точки потенциального деления k, все p2, p3, p4, p5, p6, p7, p8, p9, p10 и p11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Таким образом, является ли точка потенциального деления k точкой деления потока данных, зависит от того, существует ли то, что, по меньшей мере, часть данных в каждом окне из окон, соответствующих 11 последовательным точкам, удовлетворяет заранее заданному условию Cx. После пропуска минимального фрагмента длиной 4096 байтов от начальной позиции/ предыдущей точки деления потока данных потока данных, 4086-ая точка находится путем возвращения на 10 байтов в направлении, противоположном направлению поиска точки деления потока данных, и в точке не существует ни одной точки деления потока данных; таким образом, P(4086)=1, и P(4087)=1, ..., P(4095)=1, и т.д. В 4096-й точке, то есть, в точке, которая используется для получения минимального фрагмента, с вероятностью (1/2)^11, по меньшей мере, часть данных в каждом окне из окон, соответствующих 11 точкам, удовлетворяет заранее заданному условию Cx. Поэтому, с вероятностью (1/2)^11, существует точка деления потока данных; с вероятностью 1-(1/2)^11, не существует ни одной точки деления потока данных; таким образом P(11)=1-(1/2)^11.

[0109] В n-й точке, может существовать 12 случаев получения P(n) посредством рекурсии.

[0110] Случай 1: с вероятностью 1/2, по меньшей мере, часть данных в окне, соответствующем n-й точке, не удовлетворяет заранее заданному условию; в этом случае, с вероятностью P(n-1), 11 последовательных точек не существует среди (n-1) точек до n-й точки, где, по меньшей мере, часть данных в каждом окне из окон, соответствующих 11 последовательным точкам, по отдельности удовлетворяет заранее заданному условию. Таким образом, P(n) включает в себя 1/2*P(n-1). Случай, когда, по меньшей мере, часть данных в окне, соответствующем n-й точке, не удовлетворяет заранее заданному условию, и существует 11 последовательных точек среди (n-1) точек до n-й точки, где, по меньшей мере, часть данных в каждом окне из окон, соответствующих 11 последовательным точкам, по отдельности удовлетворяет заранее заданному условию, не связан с P(n).

[0111] Случай 2: с вероятностью 1/2, по меньшей мере, часть данных в окне, соответствующем n-й точке, удовлетворяет заранее заданному условию, и с вероятностью 1/2, по меньшей мере, часть данных в окне, соответствующем (n-1)-й точке, не удовлетворяет заранее заданному условию; в этом случае, с вероятностью P(n-2), 11 последовательных точек не существует среди (n-2) точек до (n-1)-й точки, где, по меньшей мере, часть данных в каждом окне из окон, соответствующих 11 последовательным точкам, по отдельности удовлетворяет заранее заданному условию. Таким образом, P(n) включает в себя 1/2*1/2*P(n-2). Случай, когда, по меньшей мере, часть данных в окне, соответствующем n-й точке, удовлетворяет заранее заданному условию, по меньшей мере, часть данных в окне, соответствующем (n-1)-й точке, не удовлетворяет заранее заданному условию, и существует 11 последовательных точек среди (n-2) точек до (n-1)-й точки, где, по меньшей мере, часть данных в каждом окне из окон, соответствующих 11 последовательным точкам, по отдельности удовлетворяет заранее заданному условию, не связан с P(n).

[0112] Согласно вышеупомянутому описанию, случай 11: с вероятностью (1/2)^10, по меньшей мере, часть данных в окнах, соответствующих точкам с n-й по (n-9)-ую, удовлетворяет заранее заданному условию, и с вероятностью 1/2, по меньшей мере, часть данных в окне, соответствующем (n-10)-й точке, не удовлетворяет заранее заданному условию; в этом случае, с вероятностью P(n-11), 11 последовательных точек не существует среди (n-11) точек до (n-10)-й точки, где, по меньшей мере, часть данных в каждом окне из окон, соответствующих 11 последовательным точкам, по отдельности удовлетворяет заранее заданному условию. Таким образом, P(n) включает в себя (1/2)^10*1/2*P(n-11). Случай, когда, по меньшей мере, часть данных в окнах, соответствующих точкам с n-й по (n-9)-ую, удовлетворяет заранее заданному условию, по меньшей мере, часть данных в окне, соответствующем (n-10)-й точке, не удовлетворяет заранее заданному условию, и существует 11 последовательных точек среди (n-11) точек до (n-10)-й точки, где, по меньшей мере, часть данных в каждом окне из окон, соответствующих 11 последовательным точкам, по отдельности удовлетворяет заранее заданному условию, не связан с P(n).

[0113] Случай 12: с вероятностью (1/2)^11, по меньшей мере, часть данных в окнах, соответствующих точкам с n-й по (n-10)-ую, удовлетворяет заранее заданному условию, и этот случай не связан с P(n).

[0114] Таким образом, P(n)=1/2*P(n-1)+(1/2)^2*P(n-2)+...+(1/2)^11*P(n-11). Другое заранее заданное правило предусматривает: для точки потенциального деления k, определение 24 точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до 24 по отдельности, где вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем точке px, удовлетворяет заранее заданному условию Cx, равна 3/4, и P(n) можно вычислить с использованием двух факторов, то есть количества точек px и вероятности того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем точке px, удовлетворяет заранее заданному условию. Кроме того, A1=A2=A3=A4=A5=A6=A7=A8=A9=A10=A11=169, B1=B2=B3=B4=B5=B6=B7=B8=B9=B10=B11=0, и C1=C2=C3=C4=C5=C6=C7=C8=C9=...=C22=C23=C24, где расстояние между px и точкой потенциального деления k равно dx байтам. В частности, расстояние между p1 и точкой потенциального деления k равно 0 байтов, расстояние между p2 и k равно 1 байту, расстояние между p3 и k равно 2 байтам, расстояние между p4 и k равно 3 байтам, расстояние между p5 и k равно 4 байтам, расстояние между p6 и k равно 5 байтам, расстояние между p7 и k равно 6 байтам, расстояние между p8 и k равно 7 байтам, расстояние между p9 и k равно 8 байтам, ..., расстояние между p22 и k равно 21 байту, расстояние между p23 и k равно 22 байтам, расстояние между p24 и k равно 23 байтам, и относительно точки потенциального деления k, все p2, p3, p4, p5, p6, p7, p8, p9, ..., p22, p23 и p24 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Таким образом, является ли точка потенциального деления k точкой деления потока данных, зависит от того, существует ли то, что, по меньшей мере, часть данных в каждом окне из окон, соответствующих 24 последовательным точкам, удовлетворяет заранее заданному условию Cx, и вычисление можно осуществлять с использованием нижеследующих формул:

P(4073)=1, P(4074)=1, ..., P(4095)=1, P(4096)=1-(3/4)^24, и

P(n)=1/4*P(n-1)+1/4*(3/4)*P(n-2)+...+1/4*(3/4)^23*P(n-24).

[0115] После вычисления, P(5*1024)=0.78, P(11*1024)=0.17, и P(12*1024)=0.13. Таким образом, ни одна точка деления потока данных не находится с вероятностью 13% после перехода поиска к точке на расстоянии 12 кбайт от начальной позиции/ предыдущей точки деления потока данных потока данных, и осуществляется принудительное деление. Функция плотности точки деления потока данных получается с использованием этой вероятности, и, после интегрирования, получается, что в среднем, точка деления потока данных находится после перехода поиска к точке на расстоянии около 7.6 кбайт от начальной позиции/ предыдущей точки деления потока данных потока данных, то есть средняя длина фрагмента составляет около 7.6 кбайт. В отличие от случая, когда, по меньшей мере, часть данных в окнах, соответствующих 11 последовательным точкам, удовлетворяет заранее заданному условию с вероятностью 1/2, традиционный алгоритм CDC может приводить к тому, что средняя длина фрагмента равна 7,6 кбайт, только, когда одно окно удовлетворяет условию с вероятностью 1/2^12.

[0116] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 7, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение 11 точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до 11 по отдельности, где вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем точке px, удовлетворяет заранее заданному условию Cx, равна 1/2, A1=A2=A3=A4=A5=A6=A7=A8=A9=A10=A11=169, B1=B2=B3=B4=B5=B6=B7=B8=B9=B10=B11=0, и C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11, где расстояние между px и точкой потенциального деления k равно dx байтам. В частности, расстояние между p1 и точкой потенциального деления k равно 2 байтам, расстояние между p2 и k равно 3 байтам, расстояние между p3 и k равно 4 байтам, расстояние между p4 и k равно 5 байтам, расстояние между p5 и k равно 6 байтам, расстояние между p6 и k равно 7 байтам, расстояние между p7 и k равно 8 байтам, расстояние между p8 и k равно 9 байтам, расстояние между p9 и k равно 10 байтам, расстояние между p10 и k равно 1 байту, расстояние между p11 и k равно 0 байтов, и относительно точки потенциального деления k, все p1, p2, p3, p4, p5, p6, p7, p8, p9 и p10 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 7 является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki, и точка pix определяется для точки потенциального деления ki. В этом варианте осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, x указывает последовательные натуральные числа от 1 до 11 по отдельности. В варианте реализации, показанном на фиг. 7, согласно заранее заданному правилу, 11 точек определяется для точки потенциального деления ki, и представляют собой pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11 по отдельности, и окна, соответствующие точкам pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11, являются Wi1 [pi1-169, pi2], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3], Wi4[pi4-169, pi4], Wi5[pi5-169, pi5], Wi6[pi6-169, pi6], Wi7[pi7-169, pi7], Wi8[pi8-169, pi8], Wi9[pi9-169, pi9], Wi10[pi10-169, pi10] и Wi11[pi11-169, pi11] соответственно. Расстояние между точкой pix и точкой потенциального деления ki равно dix байтам. В частности, расстояние между pi1 и ki равно 2 байтам, расстояние между pi2 и ki равно 3 байтам, расстояние между pi3 и ki равно 4 байтам, расстояние между pi4 и ki равно 5 байтам, расстояние между pi5 и ki равно 6 байтам, расстояние между pi6 и ki равно 7 байтам, расстояние между pi7 и ki равно 8 байтам, расстояние между pi8 и ki равно 9 байтам, расстояние между pi9 и ki равно 10 байтам, расстояние между pi10 и ki равно 1 байту, расстояние между pi11 и ki равно 0 байтов, и относительно точки потенциального деления ki, все pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9 и pi10 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[pi6-169, pi6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[pi7-169, pi7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[pi8-169, pi8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[pi9-169, pi9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[pi10-169, pi10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[pi11-169, pi11] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из 11 окон не удовлетворяет соответствующему заранее заданному условию, как показано на фиг. 8, тот факт, что, по меньшей мере, часть данных в Wi3[pi3-169, pi3] не удовлетворяет заранее заданному условию C3, и 11 байтов пропускается от точки pi3 в направлении поиска точки деления потока данных, используется в порядке примера для описания. Как показано на фиг. 8, когда определено, что W3 не удовлетворяет заранее заданному условию, от p3, которая служит начальной точкой, N байтов пропускается в направлении поиска точки деления потока данных, где N байтов не больше ‖B3‖+maxx(‖Ax‖+‖(ki-pix)‖). В варианте реализации, показанном на фиг. 6, пропускается N байтов, и, в частности не больше 179 байтов, и в этом варианте осуществления, N=11. Следующая точка потенциального деления получается в концевой позиции 11-го байта. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Согласно правилу, заранее заданному на сервере 103 дедупликации, 11 точек определяется для точки потенциального деления kj, и представляют собой pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11 по отдельности, и окна, соответствующие точкам pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11, определяются и являются Wj1[pj1-169, pj1], Wj2[pj2-169, pj2], Wj3[pj3-169, pj3], Wj4[pj4-169, pj4], Wj5[pj5-169, pj5], Wj6[pj6-169, pj6], Wj7[pj7-169, pj7], Wj8[pj8-169, pj8], Wj9[pj9-169, pj9], Wj10[pj10-169, pj10] и Wj11[pj11-169, pj11] соответственно. Расстояние между pjx и точкой потенциального деления kj равно dx байтам. В частности, расстояние между pj1 и kj равно 2 байтам, расстояние между pj2 и kj равно 3 байтам, расстояние между pj3 и kj равно 4 байтам, расстояние между pj4 и kj равно 5 байтам, расстояние между pj5 и kj равно 6 байтам, расстояние между pj6 и kj равно 7 байтам, расстояние между pj7 и kj равно 8 байтам, расстояние между pj8 и kj равно 9 байтам, расстояние между pj9 и kj равно 10 байтам, расстояние между pj10 и kj равно 1 байту, расстояние между pj11 и kj равно 0 байтов, и относительно точки потенциального деления kj, все pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9 и pj10 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11. Конечно, в этом варианте осуществления настоящего изобретения, правило также выполняется, когда производится определение, является ли точка потенциального деления ka точкой деления потока данных, конкретная реализация повторно не описана, и можно обратиться к описанию определения точки потенциального деления ki. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kj является точкой деления потока данных, и данные между kj и ka образуют 1 фрагмент данных. При этом, минимальный фрагмент размером 4 кбайт пропускается таким же, образом как для ka для получения следующей точки потенциального деления, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, является ли следующая точка потенциального деления точкой деления потока данных. Когда определено, что точка потенциального деления kj не является точкой деления потока данных, 11 байтов пропускается таким же, образом как для ki для получения следующей точки потенциального деления, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, и вышеупомянутому способу, является ли следующая точка потенциального деления точкой деления потока данных. Когда не найдено ни одной точки деления потока данных по прохождении максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления. Конечно, реализация способа ограничена длиной максимального фрагмента данных и размером файла, образующего поток данных, который здесь повторно не описан.

[0117] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 9, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение 11 точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где A1=A2=A3=A4=A5=A6=A7=A8=A9=A10=A11=169, B1=B2=B3=B4=B5=B6=B7=B8=B9=B10=B11=0, и C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11. Расстояние между px и точкой потенциального деления k равно dx байтам. В частности, расстояние между p1 и точкой потенциального деления k равно 3 байтам, расстояние между p2 и k равно 2 байтам, расстояние между p3 и k равно 1 байту, расстояние между p4 и k равно 0 байтов, расстояние между p5 и k равно 1 байту, расстояние между p6 и k равно 2 байтам, расстояние между p7 и k равно 3 байтам, расстояние между p8 и k равно 4 байтам, расстояние между p9 и k равно 5 байтам, расстояние между p10 и k равно 6 байтам, расстояние между p11 и k равно 7 байтам, все p5, p6, p7, p8, p9, p10, и p11 ориентированы, относительно точки потенциального деления k, в направлении, противоположном направлению поиска точки деления потока данных, и все p1, p2 и p3 ориентированы, относительно точки потенциального деления k, в направлении поиска точки деления потока данных. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 9 является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki, и точка pix определяется для точки потенциального деления ki. В этом варианте осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, x указывает последовательные натуральные числа от 1 до 11 по отдельности. В варианте реализации, показанном на фиг. 9, 11 точек определяется для точки потенциального деления ki, и представляют собой pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11 по отдельности, и окна, соответствующие точкам pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11, являются Wi1[pi1-169, pi1], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3], Wi4[pi4-169, pi4], Wi5[pi5-169, pi5], Wi6[pi6-169, pi6], Wi7[pi7-169, pi7], Wi8[pi8-169, pi8], Wi9[pi9-169, pi9], Wi10[pi10-169, pi10] и Wi11[pi11-169, pi11] соответственно. Расстояние между pix и точкой потенциального деления ki равно dx байтам. В частности, расстояние между pi1 и ki равно 3 байтам, расстояние между pi2 и ki равно 2 байтам, расстояние между pi3 и ki равно 1 байту, расстояние между pi4 и ki равно 0 байтов, расстояние между pi5 и ki равно 1 байту, расстояние между pi6 и ki равно 2 байтам, расстояние между pi7 и ki равно 3 байтам, расстояние между pi8 и ki равно 4 байтам, расстояние между pi9 и ki равно 5 байтам, расстояние между pi10 и ki равно 6 байтам, расстояние между pi11 и ki равно 7 байтам, все pi5, pi6, pi7, pi8, pi9, pi10 и pi11 ориентированы, относительно точки потенциального деления ki, в направлении, противоположном направлению поиска точки деления потока данных, и все pi1, pi2 и pi3 ориентированы, относительно точки потенциального деления ki, в направлении поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[pi6-169, pi6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[pi7-169, pi7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[pi8-169, pi8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[pi9-169, pi9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[pi10-169, pi10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[pi11-169, pi11] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из 11 окон не удовлетворяет соответствующему заранее заданному условию, например, как показано на фиг. 10, по меньшей мере, часть данных в Wi7[pi7-169, pi7] не удовлетворяет соответствующему заранее заданному условию, N байтов пропускается от точки pi7 в направлении поиска точки деления потока данных, где N байтов не больше ‖B4‖+maxx(‖Ax‖+‖(ki-pix)‖). В варианте реализации, показанном на фиг. 10, число N пропущенных байтов, в частности, не превышает 179 байтов, и в этом варианте осуществления, в частности, N=8, для получения новой точки потенциального деления. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Согласно правилу, заранее заданному на сервере 103 дедупликации в варианте реализации, показанном на фиг. 9, 11 точек определяется для точки потенциального деления kj, и представляют собой pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11 по отдельности, и окна, соответствующие точкам pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11, определяются и являются Wj1[pj1-169, pj1], Wj2[pj2-169, pj2], Wj3[pj3-169, pj3], Wj4[pj4-169, pj4], Wj5[pj5-169, pj5], Wj6[pj6-169, pj6], Wj7[pj7-169, pj7], Wj8[pj8-169, pj8], Wj9[pj9-169, pj9], Wj10[pj10-169, pj10] и Wj11[pj11-169, pj11] соответственно. Расстояние между pjx и точкой потенциального деления kj равно dx байтам. В частности, расстояние между pj1 и kj равно 3 байтам, расстояние между pj2 и kj равно 2 байтам, расстояние между pj3 и kj равно 1 байту, расстояние между pj4 и kj равно 0 байтов, расстояние между pj5 и kj равно 1 байту, расстояние между pj6 и kj равно 2 байтам, расстояние между pj7 и kj равно 3 байтам, расстояние между pj8 и kj равно 4 байтам, расстояние между pj9 и kj равно 5 байтам, расстояние между pj10 и kj равно 6 байтам, расстояние между pj11 и kj равно 7 байтам, все pj5, pj6, pj7, pj8, pj9, pj10 и pj11 ориентированы, относительно точки потенциального деления kj, в направлении, противоположном направлению поиска точки деления потока данных, и все pj1, pj2 и pj3 ориентированы, относительно точки потенциального деления kj, в направлении поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11. Конечно, в этом варианте осуществления настоящего изобретения, правило также выполняется, когда производится определение, является ли точка потенциального деления ka точкой деления потока данных, конкретная реализация повторно не описана, и можно обратиться к описанию определения точки потенциального деления ki. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kj является точкой деления потока данных, и данные между kj и ka образуют 1 фрагмент данных. При этом, минимальный фрагмент размером 4 кбайт пропускается таким же, образом как для ka для получения следующей точки потенциального деления, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, является ли следующая точка потенциального деления точкой деления потока данных. Когда определено, что точка потенциального деления kj не является точкой деления потока данных, 8 байтов пропускаются таким же, образом как для ki для получения следующей точки потенциального деления, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, и вышеупомянутому способу, является ли следующая точка потенциального деления точкой деления потока данных. Когда не найдено ни одной точки деления потока данных по прохождении максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления.

[0118] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 11, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение 11 точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где A1=A2=A3=A4=A5=A6=A7=A8=A9=A10=169, A11=182, B1=B2=B3=B4=B5=B6=B7=B8=B9=B10=B11=0, и C1=C2=C3=C4=C5=C6=C7=C8=C9=C10C11. Расстояние между px и точкой потенциального деления k равно dx байтам. В частности, расстояние между p1 и точкой потенциального деления k равно 0 байтов, расстояние между p2 и k равно 1 байту, расстояние между p3 и k равно 2 байтам, расстояние между p4 и k равно 3 байтам, расстояние между p5 и k равно 4 байтам, расстояние между p6 и k равно 5 байтам, расстояние между p7 и k равно 6 байтам, расстояние между p8 и k равно 7 байтам, расстояние между p9 и k равно 8 байтам, расстояние между p10 и k равно 1 байту, расстояние между p11 и k равно 3 байтам, все p2, p3, p4, p5, p6, p7, p8 и p9 ориентированы, относительно точки потенциального деления k, в направлении, противоположном направлению поиска точки деления потока данных, и обе p10 и p11 ориентированы, относительно точки потенциального деления k, в направлении поиска точки деления потока данных. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 11, является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki, и точка pix определяется для точки потенциального деления ki. В этом варианте осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, x указывает последовательные натуральные числа от 1 до 11 по отдельности. В варианте реализации, показанном на фиг. 11, 11 точек определяется для точки потенциального деления ki, и представляют собой pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11 по отдельности, и окна, соответствующие точкам pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11, являются Wi1[pi1-169, pi1], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3], Wi4[pi4-169, pi4], Wi5[pi5-169, pi5], Wi6[pi6-169, pi6], Wi7[pi7-169, pi7], Wi8[pi8-169, pi8], Wi9[pi9-169, pi9], Wi10[pi10-169, pi10] и Wi11[pi11-182, pi11] соответственно. Расстояние между pix и точкой потенциального деления ki равно dx байтам. В частности, расстояние между pi1 и ki равно 0 байтов, расстояние между pi2 и ki равно 1 байту, расстояние между pi3 и ki равно 2 байтам, расстояние между pi4 и ki равно 3 байтам, расстояние между pi5 и ki равно 4 байтам, расстояние между pi6 и ki равно 5 байтам, расстояние между pi7 и ki равно 6 байтам, расстояние между pi8 и ki равно 7 байтам, расстояние между pi9 и ki равно 8 байтам, расстояние между pi10 и ki равно 1 байту, расстояние между pi11 и ki равно 3 байтам, все pi2, pi3, pi4, pi5, pi6, pi7, pi8 и pi9 ориентированы относительно точки потенциального деления ki, в направлении, противоположном направлению поиска точки деления потока данных, и обе pi10 и pi11 ориентированы, относительно точки потенциального деления ki, в направлении поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[pi6-169, pi6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[pi7-169, pi7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[pi8-169, pi8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[pi9-169, pi9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[pi10-169, pi10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[pi11-169, pi11] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда определено, что, по меньшей мере, часть данных в окне Wi11 не удовлетворяет заранее заданному условию C11, 1 байт пропускается от точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Когда, по меньшей мере, часть данных в любом окне из 10 окон Wi1, Wi2, Wi3, Wi4, Wi5, Wi6, Wi7, Wi8, Wi9 и Wi10 не удовлетворяет соответствующему заранее заданному условию, например, Wi4[pi4-169, pi4], показанном на фиг. 12, N байтов пропускается от точки pi4 в направлении поиска точки деления потока данных, где N байтов не больше ‖B4‖+maxx(‖Ax‖+‖(ki-pix)‖). В варианте реализации, показанном на фиг. 12, число N пропущенных байтов, в частности, не превышает 179, и в этом варианте осуществления, в частности, N=9, для получения новой точки потенциального деления. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Согласно правилу, заранее заданному на сервере 103 дедупликации в варианте реализации, показанном на фиг. 11, 11 точек определяется для точки потенциального деления kj, и представляют собой pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11 по отдельности, и окна, соответствующие точкам pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11, определяются и являются Wj1[pj1-169, pj1], Wj2[pj2-169, pj2], Wj3[pj3-169, pj3], Wj4[pj4-169, pj4], Wj5[pj5-169, pj5], Wj6[pj6-169, pj6], Wj7[pj7-169, pj7], Wj8[pj8-169, pj8], Wj9[pj9-169, pj9], Wj10[pj10-169, pj10] и Wj11 [pj8-182, pj8] соответственно. Расстояние между pjx и точкой потенциального деления kj равно dx байтам. В частности, расстояние между pj1 и kj равно 0 байтов, расстояние между pj2 и kj равно 1 байту, расстояние между pj3 и kj равно 2 байтам, расстояние между pj4 и kj равно 3 байтам, расстояние между pj5 и kj равно 4 байтам, расстояние между pj6 и kj равно 5 байтам, расстояние между pj7 и kj равно 6 байтам, расстояние между pj8 и kj равно 7 байтам, расстояние между pj9 и kj равно 8 байтам, расстояние между pj10 и kj равно 1 байту, расстояние между pj11 и kj равно 3 байтам, все pj2, pj3, pj4, pj5, pj6, pj7, pj8 и pj9 ориентированы, относительно точки потенциального деления kj, в направлении, противоположном направлению поиска точки деления потока данных, и обе pj10 и pj11 ориентированы, относительно точки потенциального деления kj, в направлении поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-182, pj11] заранее заданному условию C11. Конечно, в этом варианте осуществления настоящего изобретения, правило также выполняется, когда производится определение, является ли точка потенциального деления ka точкой деления потока данных, конкретная реализация повторно не описана, и можно обратиться к описанию определения точки потенциального деления ki. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kj является точкой деления потока данных, и данные между kj и ka образуют 1 фрагмент данных. При этом, минимальный фрагмент размером 4 кбайт пропускается таким же, образом как для ka для получения следующей точки потенциального деления, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, является ли следующая точка потенциального деления точкой деления потока данных. Когда определено, что точка потенциального деления kj не является точкой деления потока данных, следующая точка потенциального деления получается таким же, образом как для ki, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, и вышеупомянутому способу, является ли следующая точка потенциального деления точкой деления потока данных. Когда не найдено ни одной точки деления потока данных по прохождении максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления.

[0119] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 13, правило, которое заранее задано на сервере 103 дедупликации, предусматривает: для точки потенциального деления k, определение 11 точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до 11 по отдельности, где вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx], соответствующем точке px, удовлетворяет заранее заданному условию, равна 1/2, A1=A2=A3=A4=A5=A6=A7=A8=A9=A10=A11=169, B1=B2=B3=B4=B5=B6=B7=B8=B9=B10=B11=0, и C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11, где расстояние между px и точкой потенциального деления k равно dx байтам. В частности, расстояние между p1 и точкой потенциального деления k равно 0 байтов, расстояние между p2 и k равно 2 байтам, расстояние между p3 и k равно 4 байтам, расстояние между p4 и k равно 6 байтам, расстояние между p5 и k равно 8 байтам, расстояние между p6 и k равно 10 байтам, расстояние между p7 и k равно 12 байтам, расстояние между p8 и k равно 14 байтам, расстояние между p9 и k равно 16 байтам, расстояние между p10 и k равно 18 байтам, расстояние между p11 и k равно 20 байтам, и относительно точки потенциального деления k, все p2, p3, p4, p5, p6, p7, p8, p9, p10 и p11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 13, является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki, и точка pix определяется для точки потенциального деления ki. В этом варианте осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, x указывает последовательные натуральные числа от 1 до 11 по отдельности. В варианте реализации, показанном на фиг. 13, согласно заранее заданному правилу, 11 точек определяется для точки потенциального деления ki, и представляют собой pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11 по отдельности, и окна, соответствующие точкам pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11, являются Wi1[pi1-169, pi1], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3], Wi4[pi4-169, pi4], Wi5[pi5-169, pi5], Wi6[pi6-169, pi6], Wi7[pi7-169, pi7], Wi8[pi8-169, pi8], Wi9[pi9-169, pi9], Wi10[pi10-169, pi10] и Wi11[pi11-169, pi11] соответственно. Расстояние между pix и точкой потенциального деления ki равно dx байтам. В частности, расстояние между pi1 и ki равно 0 байтов, расстояние между pi2 и ki равно 2 байтам, расстояние между pi3 и ki равно 4 байтам, расстояние между pi4 и ki равно 6 байтам, расстояние между pi5 и ki равно 8 байтам, расстояние между pi6 и ki равно 10 байтам, расстояние между pi7 и ki равно 12 байтам, расстояние между pi8 и ki равно 14 байтам, расстояние между pi9 и ki равно 16 байтам, расстояние между pi10 и ki равно 18 байтам, расстояние между pi11 и ki равно 20 байтам, и относительно точки потенциального деления ki, и pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9, pi10 и pi11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[pi6-169, pi6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[pi7-169, pi7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[pi8-169, pi8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[pi9-169, pi9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[pi10-169, pi10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[pi11-169, pi11] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из 11 окон не удовлетворяет соответствующему заранее заданному условию, например, как показано на фиг. 14, по меньшей мере, часть данных в Wi4[pi4-169, pi4] не удовлетворяет заранее заданному условию C4, выбирается следующая точка потенциального деления. Для отличения от точки потенциального деления ki, следующая точка потенциального деления представлена здесь как kj, где kj располагается справа от ki, и расстояние между kj и ki равно 1 байту. Как показано на фиг. 14, согласно правилу, заранее заданному на сервере 103 дедупликации, 11 точек определяется для точки потенциального деления kj, и представляют собой pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11 по отдельности, и окна, соответствующие точкам pj1, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11, определяются и являются Wj1[pj1-169, pj1], Wj2[pj2-169, pj2], Wj3[pj3-169, pj3], Wj4[pj4-169, pj4], Wj5[pj5-169, pj5], Wj6[pj6-169, pj6], Wj7[pj7-169, pj7], Wj8[pj8-169, pj8], Wj9[pj9-169, pj9], Wj10[pj10-169, pj10] и Wj11[pj11-169, pj11] соответственно, где A1=A2=A3=A4=A5=A6=A7=A8=A9=A10=A11=169, B1=B2=B3=B4=B5=B6=B7=B8=B9=B10=B11=0, и C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11. Расстояние между pjx и точкой потенциального деления kj равно dx байтам. В частности, расстояние между pj1 и kj равно 0 байтов, расстояние между pj2 и kj равно 2 байтам, расстояние между pj3 и kj равно 4 байтам, расстояние между pj4 и kj равно 6 байтам, расстояние между pj5 и kj равно 8 байтам, расстояние между pj6 и kj равно 10 байтам, расстояние между pj7 и kj равно 12 байтам, расстояние между pj8 и kj равно 14 байтам, расстояние между pj9 и kj равно 16 байтам, расстояние между pj10 и kj равно 18 байтам, расстояние между pj11 и kj равно 20 байтам, и относительно точки потенциального деления kj, все pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10 и pj11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kj является точкой деления потока данных. Когда определено, что, по меньшей мере, часть данных в любом окне из окон Wj1, Wj2, Wj3, Wj4, Wj5, Wj6, Wj7, Wj8, Wj9, Wj10 и Wj11 не удовлетворяет заранее заданному условию, например, как показано на фиг. 15, когда, по меньшей мере, часть данных в Wj3[pj3-169, pj3] не удовлетворяет заранее заданному условию C3, точка pi4 располагается слева от точки pj3 относительно направления поиска точки деления потока данных, и 21 байт пропускается от точки pi4 в направлении поиска точки деления потока данных, для получения следующей точки потенциального деления. Для отличения от точек потенциального деления ki и kj, следующая точка потенциального деления представлена как kl. Согласно правилу, заранее заданному на сервере 103 дедупликации в варианте реализации, показанном на фиг. 13, 11 точек определяется для точки потенциального деления kl, и представляют собой pl1, pl2, pl3, pl4, pl5, pl6, pl7, pl8, pl9, pl10 и pl11 по отдельности, окна, соответствующие точкам pl1, pl2, pl3, pl4, pl5, pl6, pl7, pl8, pl9, pl10 и pl11, являются Wl1[pl1-169, pl1], Wl2[pl2-169, pl2], Wl3[pl3-169, pl3], Wl4[pl4-169, pl4], Wl5[pl5-169, pl5], Wl6[pl6-169, pl6], Wl7[pl7-169, pl7], Wl8[pl8-169, pl8], Wl9[pl9-169, pl9], Wl10[pl10-169, pl10] и Wl11[pl11-169, pl11] соответственно, где расстояние между plx и точкой потенциального деления kl равно dx байтам. В частности, расстояние между pl1 и точкой потенциального деления kl равно 0 байтов, расстояние между pl2 и kl равно 2 байтам, расстояние между pl3 и kl равно 4 байтам, расстояние между pl4 и kl равно 6 байтам, расстояние между pl5 и kl равно 8 байтам, расстояние между pl6 и kl равно 10 байтам, расстояние между pl7 и kl равно 12 байтам, расстояние между pl8 и kl равно 14 байтам, расстояние между pl9 и kl равно 16 байтам, расстояние между pl10 и kl равно 18 байтам, расстояние между pl11 и kl равно 20 байтам, и относительно точки потенциального деления kl, все pl2, pl3, pl4, pl5, pl6, pl7, pl8, pl9, pl10 и pl11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl1[pl1-169, pl1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl2[pl2-169, pl2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl3[pl3-169, pl3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl4[pl4-169, pl4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl5[pl5-169, pl5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl6[pl6-169, pl6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl7[pl7-169, pl7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl8[pl8-169, pl8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl9[pl9-169, pl9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl10[pl10-169, pl10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl11[pl11-169, pl11] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wl1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wl2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wl3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wl4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wl5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wl6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wl7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wl8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wl9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wl10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wl11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kl является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из окон Wl1, Wl2, Wl3, Wl4, Wl5, Wl6, Wl7, Wl8, Wl9, Wl10 и Wl11 не удовлетворяет заранее заданному условию, выбирается следующая точка потенциального деления. Для отличения от точек потенциального деления ki, kj и kl, следующая точка потенциального деления представлена как km, где km располагается справа от kl, и расстояние между km и kl равно 1 байту. Согласно правилу, заранее заданному на сервере 103 дедупликации в варианте осуществления, показанном на фиг. 13, 11 точек определяется для точки потенциального деления km, и представляют собой pm1, pm2, pm3, pm4, pm5, pm6, pm7, pm8, pm9, pm10 и pm11 по отдельности, и окна, соответствующие точкам pm1, pm2, pm3, pm4, pm5, pm6, pm7, pm8, pm9, pm10 и pm11, являются Wm1[pm1-169, pm1], Wm2[pm2-169, pm2], Wm3[pm3-169, pm3], Wm4[pm4-169, pm4], Wm5 [pm5-169, pm5], Wm6[pm6-169, pm6], Wm7[pm7-169, pm7], Wm8[pm8-169, pm8], Wm9[pm9-169, pm9], Wm10[pm10-169, pm10] и Wm11[pm11-169, pm11] соответственно, где расстояние между pmx и точкой потенциального деления km равно dx байтам. В частности, расстояние между pm1 и точкой потенциального деления km равно 0 байтов, расстояние между pm2 и km равно 2 байтам, расстояние между pm3 и km равно 4 байтам, расстояние между pm4 и km равно 6 байтам, расстояние между pm5 и km равно 8 байтам, расстояние между pm6 и km равно 10 байтам, расстояние между pm7 и km равно 12 байтам, расстояние между pm8 и km равно 14 байтам, расстояние между pm9 и km равно 16 байтам, расстояние между pm10 и km равно 18 байтам, расстояние между pm11 и km равно 20 байтам, и относительно точки потенциального деления km, все pm2, pm3, pm4, pm5, pm6, pm7, pm8, pm9, pm10 и pm11 ориентированы в направлении, противоположном направлению поиска точки деления потока данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm1[pm1-169, pm1] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm2[pm2-169, pm2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm3[pm3-169, pm3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm4[pm4-169, pm4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm5 [pm5-169, pm5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm6[pm6-169, pm6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm7[pm7-169, pm7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm8[pm8-169, pm8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm9[pm9-169, pm9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm10[pm10-169, pm10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm11[pm11-169, pm11] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wm1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wm2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wm3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wm4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wm5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wm6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wm7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wm8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wm9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wm10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wm11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления km является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне не удовлетворяет заранее заданному условию, пропуск выполняется согласно вышеописанному решению, для получения следующей точки потенциального деления, и следует определять, является ли следующая точка потенциального деления точкой деления потока данных.

[0120] Вариант осуществления настоящего изобретения предусматривает способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, и вариант реализации, показанный на фиг. 5, используется в порядке примера. Согласно правилу, заранее заданному на сервере 103 дедупликации, точка pi1 и окно Wi1[pi1-169, pi1], соответствующее точке pi1, определяются для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. Как показано на фиг. 16, Wi1 представляет окно Wi1[pi1-169, pi1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. На фиг. 16, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных повторно используются 51 раз для получения всего 255 байтов, для повышения случайности. Из них каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в 255 байтах, и, таким образом, биты, соответствующие 255 байтам, можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n =, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, и матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих 255 байтам, и может быть представлена как: . Большое количество случайных чисел выбирается для формирования матрицы, и, будучи сформована, матрица, образованная случайными числами, остается неизменный. Например, 255*8 случайных чисел выбирается из случайных чисел, которые подчиняются конкретному распределению (здесь в порядке примера используется нормальное распределение) для формирования матрицы R: , где случайные числа m-й строки матрицы Va и m-й строки матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8. Sa1, Sa2, ..., и Sa255 получаются согласно способу, и подсчитывается количество k значений, удовлетворяющих конкретному условию (здесь в порядке примера используется превышение 0) среди Sa1, Sa2, ..., и Sa255. Поскольку матрица R подчиняется нормальному распределению, Sam все еще подчиняется нормальному распределению, как и матрица R. Согласно теории вероятностей, вероятность того, что случайное число в нормальном распределении больше 0, равна 1/2; вероятность того, что каждое значение из Sa1, Sa2, ..., и Sa255 больше 0, равна 1/2, и, таким образом, k подчиняется биномиальному распределению: . Согласно результату подсчета, производится определение, является ли количество k значений, больших 0, из Sa1, Sa2, ..., и Sa255 четным числом; вероятность того, что случайное число в биномиальном распределении является четным числом, равна 1/2, и, таким образом, k удовлетворяет условию с вероятностью 1/2. Когда k является четным числом, это указывает, что, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1. Когда k является нечетным числом, это указывает, что, по меньшей мере, часть данных в Wi1[pi1-169, pi1] не удовлетворяет заранее заданному условию C1. C1 здесь означает, что полученное вышеупомянутым образом количество k значений, больших 0, из Sa1, Sa2, ..., и Sa255, является четным числом. В варианте реализации, показанном на фиг. 5, для Wi1[pi1-169, pi1], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3], Wi4[pi4-169, pi4], Wi5[pi5-169, pi5], Wi6[pi6-169, pi6], Wi7[pi7-169, pi7], Wi8[pi8-169, pi8], Wi9[pi9-169, pi9], Wi10[pi10-169, pi10] и Wi11[pi11-169, pi11], окна одинаковы по размеру, то есть все окна имеют размер 169 байтов, и способы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию, также одинаковы. Подробности можно найти в вышеприведенном описании определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. Таким образом, как показано на фиг. 16, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[pi2-169, pi2] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Из них каждый байт образован 8 битами, которые обозначены как bm,1, ..., и bm,8, представляющими биты с 1-го по 8-й m-го байта в 255 байтах, и, таким образом, биты, соответствующие 255 байтам, можно представить как: , где, когда bm,n=1, Vbm,n=1, и когда bm,n=0, Vbm,n=-1, где bm,n представляет любой из bm,1, ..., и bm,8, и матрица Vb получается согласно соотношению преобразования между bm,n и Vbm,n из битов, соответствующих 255 байтам, и может быть представлена как: . Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[pi2-169, pi2] заранее заданному условию; таким образом, используется матрица R: , и случайные числа m-й строки матрицы Vb и m-й строки матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sbm =Vbm,1*hm,1+Vbm,2*hm,2+...+Vbm,8*hm,8. Sb1, Sb2, ..., и Sb255 получаются согласно способу, и подсчитывается количество k значений, удовлетворяющих конкретному условию (здесь в порядке примера используется превышение 0) среди Sb1, Sb2, ..., и Sb255. Поскольку матрица R подчиняется нормальному распределению, Sbm все еще подчиняется нормальному распределению, как и матрица R. Согласно теории вероятностей, вероятность того, что случайное число в нормальном распределении больше 0, равна 1/2; вероятность того, что каждое значение из Sb1, Sb2, ..., и Sb255 больше 0, равна 1/2, и, таким образом, k подчиняется биномиальному распределению: . Согласно результату подсчета, производится определение, является ли количество k значений, больших 0, из Sb1, Sb2, ..., и Sb255 четным числом; вероятность того, что случайное число в биномиальном распределении является четным числом, равна 1/2, и, таким образом, k удовлетворяет условию с вероятностью 1/2. Когда k является четным числом, это указывает, что, по меньшей мере, часть данных в Wi2[pi2-169, pi2] удовлетворяет заранее заданному условию C2. Когда k является нечетным числом, это указывает, что, по меньшей мере, часть данных в Wi2[pi2-169, pi2] не удовлетворяет заранее заданному условию C2. C2 здесь означает, что полученное вышеупомянутым образом количество k значений, больших 0, из Sb1, Sb2, ..., и Sb255 является четным числом. В варианте реализации, показанном на фиг. 3, по меньшей мере, часть данных в Wi2[pi2-169, pi2] удовлетворяет заранее заданному условию C2.

[0121] Таким образом, как показано на фиг. 16, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi3[pi3-169, pi3] заранее заданному условию C3, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Затем способ определения, удовлетворяет ли, по меньшей мере, часть данных в окнах Wi1[pi1-169, pi1] и Wi2[pi2-169, pi2] заранее заданному условию, используется для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3. В варианте реализации, показанном на фиг. 5, по меньшей мере, часть данных в Wi3[pi3-169, pi3] удовлетворяет заранее заданному условию. Как показано на фиг. 16, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi4[pi4-169, pi4] заранее заданному условию C4, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Затем способ определения, удовлетворяет ли, по меньшей мере, часть данных в окнах Wi1[pi1-169, pi1], Wi2[pi2-169, pi2] и Wi3[pi3-169, pi3] заранее заданному условию, используется для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4. В варианте реализации, показанном на фиг. 5, по меньшей мере, часть данных в Wi4[pi4-169, pi4] удовлетворяет заранее заданному условию C4. Как показано на фиг. 16, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi5[pi5-169, pi5] заранее заданному условию C5, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Затем способ определения, удовлетворяет ли, по меньшей мере, часть данных в окнах Wi1[pi1-169, pi1], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3] и Wi4[pi4-169, pi4] заранее заданному условию, используется для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5. В варианте реализации, показанном на фиг. 5, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5.

[0122] Когда, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5, 11 байтов пропускается от точки pi5 в направлении поиска точки деления потока данных, и следующая точка потенциального деления kj получается в концевой позиции 11-го байта. Как показано на фиг. 6, согласно правилу, заранее заданному на сервере 103 дедупликации, точка pj1 и окно Wj1[pj1-169, pj1], соответствующее точке pj1, определяются для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[pj1-169, pj1], заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию C1. Таким образом, как показано на фиг. 17, Wj1 представляет окно Wj1[pj1-169, pj1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1. На фиг. 17, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных повторно используются 51 раз для получения всего 255 байтов, для повышения случайности. Из них каждый байт образован 8 битами, которые обозначены как am,1', ..., и am,8', представляющими биты с 1-го по 8-й m-го байта в 255 байтах, и, таким образом, биты, соответствующие 255 байтам, можно представить как: , где, когда am,n'=1, Vam,n'=1, и когда am,n'=0, Vam,n'=-1, где am,n' представляет любой из am,1', ..., и am,8', и матрица Va' получается согласно соотношению преобразования между am,n' и Vam,n' из битов, соответствующих 255 байтам, и может быть представлена как: . Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[pj1-169, pj1], заранее заданному условию идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию. Таким образом, используется матрица R: , и случайные числа m-й строки матрицы Va' и m-й строки матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam'=Vam,1'*hm,1+Vam,2'*hm,2+...+Vam,8'*hm,8. Sa1', Sa2', ..., и Sa255' получаются согласно способу, и подсчитывается количество k значений, удовлетворяющих конкретному условию (здесь в порядке примера используется превышение 0) среди Sa1', Sa2', ..., и Sa255'. Поскольку матрица R подчиняется нормальному распределению, Sam' все еще подчиняется нормальному распределению, как и матрица R. Согласно теории вероятностей, вероятность того, что случайное число в нормальном распределении больше 0, равна 1/2; вероятность того, что каждое значение из Sa1', Sa2', ..., и Sa255' больше 0, равна 1/2, и, таким образом, k подчиняется биномиальному распределению: . Согласно результату подсчета, производится определение, является ли количество k значений, больших 0, из Sa1', Sa2', ..., и Sa255' четным числом; вероятность того, что случайное число в биномиальном распределении является четным числом, равна 1/2, и, таким образом, k удовлетворяет условию с вероятностью 1/2. Когда k является четным числом, это указывает, что, по меньшей мере, часть данных в Wj1[pj1-169, pj1] удовлетворяет заранее заданному условию C1. Когда k является нечетным числом, это указывает, что, по меньшей мере, часть данных в Wj1[pj1-169, pj1] не удовлетворяет заранее заданному условию C1.

[0123] Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2. Таким образом, как показано на фиг. 17, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[pj2-169, pj2] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Из них каждый байт образован 8 битами, которые обозначены как bm,1', ..., и bm,8', представляющими биты с 1-го по 8-й m-го байта в 255 байтах, и, таким образом, биты, соответствующие 255 байтам, можно представить как: , где, когда bm,n'=1, Vbm,n'=1, и когда bm,n'=0, Vbm,n'=-1, где bm,n' представляет любой из bm,1', ..., и bm,8', и матрица Vb' получается согласно соотношению преобразования между bm,n' и Vbm,n' из битов, соответствующих 255 байтам, и может быть представлена как: . Способы определения, удовлетворяет ли, по меньшей мере, часть данных в окнах W2[p2-169, p2] и W2[q2-169, q2] заранее заданному условию одинаковы, и, таким образом, по прежнему используется матрица R: . Случайные числа m-й строки матрицы Vb' и m-й строки матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sbm'=Vbm,1'*hm,1+Vbm,2'*hm,2+...+Vbm,8'*hm,8. Sb1', Sb2', ..., и Sb255' получаются согласно способу, и подсчитывается количество k значений, удовлетворяющих конкретному условию (здесь в порядке примера используется превышение 0) среди Sb1', Sb2', ..., и Sb255'. Поскольку матрица R подчиняется нормальному распределению, Sbm' все еще подчиняется нормальному распределению, как и матрица R. Согласно теории вероятностей, вероятность того, что случайное число в нормальном распределении больше 0, равна 1/2; вероятность того, что каждое значение из Sb1', Sb2', ..., и Sb255' больше 0, равна 1/2, и, таким образом, k подчиняется биномиальному распределению: . Согласно результату подсчета, производится определение, является ли количество k значений, больших 0, из Sb1', Sb2', ..., и Sb255' четным числом; вероятность того, что случайное число в биномиальном распределении является четным числом, равна 1/2, и, таким образом, k удовлетворяет условию с вероятностью 1/2. Когда k является четным числом, это указывает, что, по меньшей мере, часть данных в Wj2[pj2-169, pj2] удовлетворяет заранее заданному условию C2. Когда k является нечетным числом, это указывает, что, по меньшей мере, часть данных в Wj2[pj2-169, pj2] не удовлетворяет заранее заданному условию C2. Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11, которые здесь повторно не описаны.

[0124] Также используя вариант реализации, показанный на фиг. 5 в порядке примера, предусмотрен способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. Согласно правилу, заранее заданному на сервере 103 дедупликации, точка pi1 и окно Wi1[pi1-169, pi1], соответствующее pi1, определяются для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. Как показано на фиг. 16, Wi1 представляет окно Wi1[pi1-169, pi1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. На фиг. 16, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта "". В одном варианте реализации, хэш-функция используется для вычисления 5 выбранных байтов, и значения, полученные посредством вычисления с использованием хэш-функции, подчиняются фиксированному и равномерному распределению. Если значение, полученное посредством вычисления с использованием хэш-функции, является четным числом, принимается решение, что, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1, то есть C1 представляет, что значение, полученное посредством вычисления с использованием хэш-функции и вышеупомянутым образом, является четным числом. Таким образом, вероятность того, что, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию, равна 1/2. В варианте реализации, показанном на фиг. 5, производится определение, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, и удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5. Для конкретной реализации, можно обратиться к описанию способа определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1 в варианте реализации, показанном на фиг. 5, который здесь повторно не описан.

[0125] Когда, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5, 11 байтов пропускается от точки pi5 в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 11-го байта. Как показано на фиг. 6, согласно правилу, заранее заданному на сервере 103 дедупликации, точка pj1 и окно Wj1[pj1-169, pj1], соответствующее точке pj1, определяются для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[pj1-169, pj1], заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию C1. Таким образом, как показано на фиг. 17, Wj1 представляет окно Wj1[pj1-169, pj1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1. На фиг. 17, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта "". 5 байтов, выбранные из окна Wj1[pj1-169, pj1], вычисляются с использованием хэш-функции. Если полученное значение является четным числом, по меньшей мере, часть данных в Wj1[pj1-169, pj1] удовлетворяет заранее заданному условию C1. На фиг. 17, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2. Таким образом, как показано на фиг. 17, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[pj2-169, pj2] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта "". Выбранные 5 байтов вычисляются с использованием хэш-функции. Если полученное значение является четным числом, по меньшей мере, часть данных в Wj2[pj2-169, pj2] удовлетворяет заранее заданному условию C2. На фиг. 17, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3. Таким образом, как показано на фиг. 17, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj3[pj3-169, pj3] заранее заданному условию C3, и между двумя соседними выбранными байтами существует 42 байта "". Выбранные 5 байтов вычисляются с использованием хэш-функции. Если полученное значение является четным числом, по меньшей мере, часть данных в Wj3[pj3-169, pj3] удовлетворяет заранее заданному условию C3. На фиг. 17, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi4[pi4-169, pi4] заранее заданному условию C4. Таким образом, как показано на фиг. 17, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj4[pj4-169, pj4] заранее заданному условию C4, и между двумя соседними выбранными байтами существует 42 байта "". Выбранные 5 байтов вычисляются с использованием хэш-функции. Если полученное значение является четным числом, по меньшей мере, часть данных в Wj4[pj4-169, pj4] удовлетворяет заранее заданному условию C4. Согласно вышеупомянутому способу, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11, которые здесь повторно не описаны.

[0126] С использованием варианта реализации, показанного на фиг. 5 в порядке примера, предусмотрен способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. Согласно правилу, заранее заданному на сервере 103 дедупликации, точка pi1 и окно Wi1[pi1-169, pi1], соответствующее pi1, определяются для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. Как показано на фиг. 16, Wi1 представляет окно Wi1[pi1-169, pi1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. На фиг. 16, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуются в десятичные значения, которые представлены как a1, a2, a3, a4 и a5 соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое ar из a1, a2, a3, a4 и a5 удовлетворяет условию 0≤ar≤255. a1, a2, a3, a4 и a5 образуют матрицу 1*5. 256*5 случайных чисел выбираются из случайных чисел, которые подчиняются биномиальному распределению, для формирования матрицы R, которая представлена как: .

[0127] В матрице R осуществляется поиск соответствующего значения согласно значению a1 и столбцу, в котором располагается a1. Например, если a1=36, и a1 располагается в 1-м столбце, осуществляется поиск значения, соответствующего h36,1. В матрице R осуществляется поиск соответствующего значения согласно значению a2 и столбцу, в котором располагается a2. Например, если a2=48, и a2 располагается во 2-м столбце, осуществляется поиск значения, соответствующего h48,2. В матрице R осуществляется поиск соответствующего значения согласно значению a3 и столбцу, в котором располагается a3. Например, если a3=26, и a3 располагается в 3-м столбце, осуществляется поиск значения, соответствующего h26,3. В матрице R осуществляется поиск соответствующего значения согласно значению a4 и столбцу, в котором располагается a4. Например, если a4=26, и a4 располагается в 4-м столбце, осуществляется поиск значения, соответствующего h26,4. В матрице R осуществляется поиск соответствующего значения согласно значению a5 и столбцу, в котором располагается a5. Например, если a5=88, и a5 располагается в 5-м столбце, осуществляется поиск значения, соответствующего h88,5. S1=h36,1+h48,2+h26,3+h26,4+h88,5, и поскольку матрица R подчиняется биномиальному распределению, S1 также подчиняется биномиальному распределению. Когда S1 является четным числом, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1; когда S1 является нечетным числом, по меньшей мере, часть данных в Wi1[pi1-169, pi1] не удовлетворяет заранее заданному условию C1. Вероятность того, что S1 является четным числом, равна 1/2, и C1 представляет, что S1, которое получено посредством вычисления вышеупомянутым образом является четным числом. В варианте осуществления, показанном на фиг. 5, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1. Как показано на фиг. 16, "" представляет 1 байт, по отдельности выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[pi2-169, pi2] заранее заданному условию C2. На фиг. 16, байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 преобразуются в десятичные значения, которые представлены как b1, b2, b3, b4 и b5 соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любой br из b1, b2, b3, b4 и b5 удовлетворяет условию 0≤br≤255. b1, b2, b3, b4 и b5 образуют матрицу 1*5. В этом варианте реализации, способы определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1 и Wi2 заранее заданному условию, одинаковы, и, таким образом, по прежнему используется матрица R. В матрице R осуществляется поиск соответствующего значения согласно значению b1 и столбцу, в котором располагается b1. Например, если b1=66, и b1 располагается в 1-м столбце, осуществляется поиск значения, соответствующего h66,1. В матрице R осуществляется поиск соответствующего значения согласно значению b2 и столбцу, в котором располагается b2. Например, если b2=48, и b2 располагается во 2-м столбце, осуществляется поиск значения, соответствующего h48,2. В матрице R осуществляется поиск соответствующего значения согласно значению b3 и столбцу, в котором располагается b3. Например, если b3=99, и b3 располагается в 3-м столбце, осуществляется поиск значения, соответствующего h99,3. В матрице R осуществляется поиск соответствующего значения согласно значению b4 и столбцу, в котором располагается b4. Например, если b4=26, и b4 располагается в 4-м столбце, осуществляется поиск значения, соответствующего h26,4. В матрице R осуществляется поиск соответствующего значения согласно значению b5 и столбцу, в котором располагается b5. Например, если b5=90, и b5 располагается в 5-м столбце, осуществляется поиск значения, соответствующего h90,5. S2=h66,1+h48,2+h99,3+h26,4+h90,5, и поскольку матрица R подчиняется биномиальному распределению, S2 также подчиняется биномиальному распределению. Когда S2 является четным числом, по меньшей мере, часть данных в Wi2[pi2-169, pi2] удовлетворяет заранее заданному условию C2; когда S2 является нечетным числом, по меньшей мере, часть данных в Wi2[pi2-169, pi2] не удовлетворяет заранее заданному условию C2. Вероятность того, что S2 является четным числом, равна 1/2. В варианте осуществления, показанном на фиг. 5, по меньшей мере, часть данных в Wi2[pi2-169, pi2] удовлетворяет заранее заданному условию C2. С использованием того же правила, по отдельности, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[pi6-169, pi6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[pi7-169, pi7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[pi8-169, pi8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[pi9-169, pi9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[pi10-169, pi10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[pi11-169, pi11] заранее заданному условию C11. В варианте реализации, показанном на фиг. 5, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5, 11 байтов пропускается от точки pi5 в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 11-го байта. Как показано на фиг. 6, согласно правилу, заранее заданному на сервере 103 дедупликации, точка pj1 и окно Wj1[pj1-169, pj1], соответствующее точке pj1, определяются для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[pj1-169, pj1], заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию C1. Таким образом, как показано на фиг. 17, Wj1 представляет окно Wj1[pj1-169, pj1], и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1. На фиг. 17, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуются в десятичные значения, которые представлены как a1', a2', a3', a4' и a5' соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое ar' из a1', a2', a3', a4' и a5' удовлетворяет условию 0≤ar'≤255. a1', a2', a3', a4' и a5' образуют матрицу 1*5. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[pj1-169, pj1], заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию C1, и, таким образом, по прежнему используется матрица R, и представлена как: .

[0128] В матрице R осуществляется поиск соответствующего значения согласно значению a1' и столбцу, в котором располагается a1'. Например, если a1'=16, и a1' располагается в 1-м столбце, осуществляется поиск значения, соответствующего h16,1. В матрице R осуществляется поиск соответствующего значения согласно значению a2' и столбцу, в котором располагается a2'. Например, если a2'=98, и a2' располагается во 2-м столбце, осуществляется поиск значения, соответствующего h98,2. В матрице R осуществляется поиск соответствующего значения согласно значению a3' и столбцу, в котором располагается a3'. Например, если a3'=56, и a3' располагается в 3-м столбце, осуществляется поиск значения, соответствующего h56,3. В матрице R осуществляется поиск соответствующего значения согласно значению a4' и столбцу, в котором располагается a4'. Например, если a4'=36, и a4' располагается в 4-м столбце, осуществляется поиск значения, соответствующего h36,4. В матрице R осуществляется поиск соответствующего значения согласно значению a5' и столбцу, в котором располагается a5'. Например, если a5'=99, и a5' располагается в 5-м столбце, осуществляется поиск значения, соответствующего h99,5. S1'=h16,1+h98,2+h56,3+h36,4+h99,5, и поскольку матрица R подчиняется биномиальному распределению, S1' также подчиняется биномиальному распределению. Когда S1' является четным числом, по меньшей мере, часть данных в Wj1[pj1-169, pj1] удовлетворяет заранее заданному условию C1; когда S1' является нечетным числом, по меньшей мере, часть данных в Wj1[pj1-169, pj1] не удовлетворяет заранее заданному условию C1. Вероятность того, что S1' является четным числом, равна 1/2.

[0129] Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2. Таким образом, как показано на фиг. 17, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[pj2-169, pj2] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. Выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 преобразуются в десятичные значения, которые представлены как b1', b2', b3', b4' и b5' соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое br' из b1', b2', b3', b4' и b5' удовлетворяет условию 0≤br'≤255. b1', b2', b3', b4' и b5' образуют матрицу 1*5. Матрица R идентична используемой при осуществлении определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[pi2-169, pi2] заранее заданному условию C2. В матрице R осуществляется поиск соответствующего значения согласно значению b1' и столбцу, в котором располагается b1'. Например, если b1'=210, и b1' располагается в 1-м столбце, осуществляется поиск значения, соответствующего h210,1. В матрице R осуществляется поиск соответствующего значения согласно значению b2' и столбцу, в котором располагается b2'. Например, если b2'=156, и b2' располагается во 2-м столбце, осуществляется поиск значения, соответствующего h156,2. В матрице R осуществляется поиск соответствующего значения согласно значению b3' и столбцу, в котором располагается b3'. Например, если b3'=144, и b3' располагается в 3-м столбце, осуществляется поиск значения, соответствующего h144,3. В матрице R осуществляется поиск соответствующего значения согласно значению b4' и столбцу, в котором располагается b4'. Например, если b4'=60, и b4' располагается в 4-м столбце, осуществляется поиск значения, соответствующего h60,4. В матрице R осуществляется поиск соответствующего значения согласно значению b5' и столбцу, в котором располагается b5'. Например, если b5'=90, и b5' располагается в 5-м столбце, осуществляется поиск значения, соответствующего h90,5. S2'=h210,1+h156,2+h144,3+h60,4+h90,5. Идентично условию определения S2, когда S2' является четным числом, по меньшей мере, часть данных в Wj2[pj2-169, pj2] удовлетворяет заранее заданному условию C2, и когда S2' является нечетным числом, по меньшей мере, часть данных в Wj2[pj2-169, pj2] не удовлетворяет заранее заданному условию C2. Вероятность того, что S2' является четным числом, равна 1/2.

[0130] Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11, которые здесь повторно не описаны.

[0131] С использованием варианта реализации, показанного на фиг. 5 в порядке примера, предусмотрен способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. Согласно правилу, заранее заданному на сервере 103 дедупликации, точка pi1 и окно Wi1[pi1-169, pi1], соответствующее pi1, определяются для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. Как показано на фиг. 16, Wi1 представляет окно Wi1[pi1-169, pi1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. На фиг. 16, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуются в десятичные значения, которые представлены как a1, a2, a3, a4 и a5 соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любой as из a1, a2, a3, a4 и a5 удовлетворяет условию 0≤as≤255. a1, a2, a3, a4 и a5 образуют матрицу 1*5. 256*5 случайных чисел выбираются из случайных чисел, которые подчиняются биномиальному распределению, для формирования матрицы R, которая представлена как: . 256*5 случайных чисел выбираются из случайных чисел, которые подчиняются биномиальному распределению, для формирования матрицы G, которая представлена как: .

[0132] Согласно значению a1 и столбцу, в котором располагается a1, например, a1=36, и a1 располагается в 1-м столбце, в матрице R осуществляется поиск значения, соответствующего h36,1, и в матрице G осуществляется поиск значения, соответствующего g36,1. Согласно значению a2 и столбцу, в котором располагается a2, например, a2=48, и a2 располагается во 2-м столбце, в матрице R осуществляется поиск значения, соответствующего h48,2, и в матрице G осуществляется поиск значения, соответствующего g48,2. Согласно значению a3 и столбцу, в котором располагается a3, например, a3=26, и a3 располагается в 3-м столбце, в матрице R осуществляется поиск значения, соответствующего h26,3, и в матрице G осуществляется поиск значения, соответствующего g26,3. Согласно значению a4 и столбцу, в котором располагается a4, например, a4=26, и a4 располагается в 4-м столбце, в матрице R осуществляется поиск значения, соответствующего h26,4, и в матрице G осуществляется поиск значения, соответствующего g26,4. Согласно значению a5 и столбцу, в котором располагается a5, например, a5=88, и a5 располагается в 5-м столбце, в матрице R осуществляется поиск значения, соответствующего h88,5, и в матрице G осуществляется поиск значения, соответствующего g88,5. S1h=h36,1+h48,2+h26,3+h26,4+h88,5, и поскольку матрица R подчиняется биномиальному распределению, S1h также подчиняется биномиальному распределению. S1g g36,1+g48,2+g26,3+g26,4+g88,5, и поскольку матрица G подчиняется биномиальному распределению, S1g также подчиняется биномиальному распределению. Когда одно из S1h и S1g является четным числом, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1; когда оба S1h и S1g являются нечетными числами, по меньшей мере, часть данных в Wi1[pi1-169, pi1] не удовлетворяет заранее заданному условию C1, и C1 указывает, что одно из S1h и S1g, полученных согласно вышеупомянутому способу, является четным числом. Поскольку оба S1h и S1g подчиняются биномиальному распределению, вероятность того, что S1h является четным числом, равна 1/2, вероятность того, что S1g является четным числом, равна 1/2, и вероятность того, что одно из S1h и S1g является четным числом, равна 1-1/4=3/4. Таким образом, вероятность того, что, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1, равна 3/4. В варианте осуществления, показанном на фиг. 5, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1. В варианте реализации, показанном на фиг. 5, для Wi1[pi1-169, pi1], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3], Wi4[pi4-169, pi4], Wi5[pi5-169, pi5], Wi6[pi6-169, pi6], Wi7[pi7-169, pi7], Wi8[pi8-169, pi8], Wi9[pi9-169, pi9], Wi10[pi10-169, pi10] и Wi11[pi11-169, pi11], окна одинаковы по размеру, то есть все окна имеют размер 169 байтов, и при этом способы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию, также одинаковы. Подробности можно найти в вышеприведенном описании определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. Таким образом, как показано на фиг. 16, "" представляет 1 байт, по отдельности выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[pi2-169, pi2] заранее заданному условию C2. На фиг. 16, выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 преобразуются в десятичные значения, которые представлены как b1, b2, b3, b4 и b5 соответственно. Поскольку 1 байт образован 8 битами, каждый байт " " служит значением, и любой bs из b1, b2, b3, b4 и b5 удовлетворяет условию 0≤bs≤255. b1, b2, b3, b4 и b5 образуют матрицу 1*5. В этом варианте реализации, способы определения, удовлетворяет ли, по меньшей мере, часть данных в каждом окне заранее заданному условию, одинаковы, и, таким образом, по прежнему используются одни и те же матрицы R и G. Согласно значению b1 и столбцу, в котором располагается b1, например, b1=66, и b1 располагается в 1-м столбце, в матрице R осуществляется поиск значения, соответствующего h66,1, и в матрице G осуществляется поиск значения, соответствующего g66,1. Согласно значению b2 и столбцу, в котором располагается b2, например, b2=48, и b2 располагается во 2-м столбце, в матрице R осуществляется поиск значения, соответствующего h48,2, и в матрице G осуществляется поиск значения, соответствующего g48,2. Согласно значению b3 и столбцу, в котором располагается b3, например, b3=99, и b3 располагается в 3-м столбце, в матрице R осуществляется поиск значения, соответствующего h99,3, и в матрице G осуществляется поиск значения, соответствующего g99,3. Согласно значению b4 и столбцу, в котором располагается b4, например, b4=26, и b4 располагается в 4-м столбце, в матрице R осуществляется поиск значения, соответствующего h26,4, и в матрице G осуществляется поиск значения, соответствующего g26,4. Согласно значению b5 и столбцу, в котором располагается b5, например, b5=90, и b5 располагается в 5-м столбце, в матрице R осуществляется поиск значения, соответствующего h90,5, и в матрице G осуществляется поиск значения, соответствующего g90,5. S2h=h66,1+h48,2+h99,3+h26,4+h90,5, и поскольку матрица R подчиняется биномиальному распределению, S2h также подчиняется биномиальному распределению. S2g=g66,1+g48,2+g99,3+g26,4+g90,5, и поскольку матрица G подчиняется биномиальному распределению, S2g также подчиняется биномиальному распределению. Когда одно из S2h и S2g является четным числом, по меньшей мере, часть данных в Wi2[pi2-169, pi2] удовлетворяет заранее заданному условию C2; когда оба S2h и S2g являются нечетными числами, по меньшей мере, часть данных в Wi2[pi2-169, pi2] не удовлетворяет заранее заданному условию C2. Вероятность того, что одно из S2h и S2g является четным числом, равно 3/4. В варианте осуществления, показанном на фиг. 5, по меньшей мере, часть данных в Wi2[pi2-169, pi2] удовлетворяет заранее заданному условию C2. С использованием того же правила, по отдельности, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[pi6-169, pi6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[pi7-169, pi7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[pi8-169, pi8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[pi9-169, pi9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[pi10-169, pi10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[pi11-169, pi11] заранее заданному условию C11. В варианте реализации, показанном на фиг. 5, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5, 11 байтов пропускается от точки pi5 в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 11-го байта. Как показано на фиг. 6, согласно правилу, заранее заданному на сервере 103 дедупликации, точка pj1 и окно Wj1[pj1-169, pj1], соответствующее точке pj1, определяются для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[pj1-169, pj1], заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию C1. Таким образом, как показано на фиг. 17, Wj1 представляет окно Wj1[pj1-169, pj1], и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1. На фиг. 17, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуются в десятичные значения, которые представлены как a1', a2', a3', a4' и a5' соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое as' из a1', a2', a3', a4' и a5' удовлетворяет условию 0≤as'≤255. a1', a2', a3', a4' и a5' образуют матрицу 1*5. Используются матрицы R и G, идентичные используемым при осуществлении определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1] заранее заданному условию C1, и представлены как: и соответственно.

[0133] Согласно значению a1' и столбцу, в котором располагается a1', например, a1'=16, и a1' располагается в 1-м столбце, в матрице R осуществляется поиск значения, соответствующего h16,1, и в матрице G осуществляется поиск значения, соответствующего g16,1. Согласно значению a2' и столбцу, в котором располагается a2', например, a2'=98, и a2' располагается во 2-м столбце, в матрице R осуществляется поиск значения, соответствующего h98,2, и в матрице G осуществляется поиск значения, соответствующего g98,2. Согласно значению a3' и столбцу, в котором располагается a3', например, a3'=56, и a3' располагается в 3-м столбце, в матрице R осуществляется поиск значения, соответствующего h56,3, и в матрице G осуществляется поиск значения, соответствующего g56,3. Согласно значению a4' и столбцу, в котором располагается a4', например, a4'=36, и a4' располагается в 4-м столбце, в матрице R осуществляется поиск значения, соответствующего h36,4, и в матрице G осуществляется поиск значения, соответствующего g36,4. Согласно значению a5' и столбцу, в котором располагается a5', например, a5'=99, и a5' располагается в 5-м столбце, в матрице R осуществляется поиск значения, соответствующего h99,5, и в матрице G осуществляется поиск значения, соответствующего g99,5. S1h=h16,1+h98,2+h56,3+h36,4+h99,5, и поскольку матрица R подчиняется биномиальному распределению, S1h' также подчиняется биномиальному распределению. S1g'=g16,1+g98,2+g56,3+g36,4+g99,5, и поскольку матрица G подчиняется биномиальному распределению, S1g' также подчиняется биномиальному распределению. Когда одно из S1h' и S1g' является четным числом, по меньшей мере, часть данных в Wj1[pj1-169, pj1] удовлетворяет заранее заданному условию C1; когда оба S1h' и S1g' являются нечетными числами, по меньшей мере, часть данных в Wj1[pj1-169, pj1] не удовлетворяет заранее заданному условию C1. Вероятность того, что один из S1h' и S1g' является четным числом, равна 3/4.

[0134] Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2. Таким образом, как показано на фиг. 17, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[pj2-169, pj2] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. На фиг. 17, выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 преобразуются в десятичные значения, которые представлены как b1', b2', b3', b4' и b5' соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое bs' из b1', b2', b3', b4' и b5' удовлетворяет условию 0≤bs'≤255. b1', b2', b3', b4' и b5' образуют матрицу 1*5. Используются матрицы R и G, идентичные используемым при осуществлении определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[pi2-169, pi2] заранее заданному условию C2. Согласно значению b1' и столбцу, в котором располагается b1', например, b1'=210, и b1' располагается в 1-м столбце, в матрице R осуществляется поиск значения, соответствующего h210,1, и в матрице G осуществляется поиск значения, соответствующего g210,1. Согласно значению b2' и столбцу, в котором располагается b2', например, b2'=156, и b2' располагается во 2-м столбце, в матрице R осуществляется поиск значения, соответствующего h156,2, и в матрице G осуществляется поиск значения, соответствующего g156,2. Согласно значению b3' и столбцу, в котором располагается b3', например, b3'=144, и b3' располагается в 3-м столбце, в матрице R осуществляется поиск значения, соответствующего h144,3, и в матрице G осуществляется поиск значения, соответствующего g144,3. Согласно значению b4' и столбцу, в котором располагается b4', например, b4'=60, и b4' располагается в 4-м столбце, в матрице R осуществляется поиск значения, соответствующего h60,4, и в матрице G осуществляется поиск значения, соответствующего g60,4. Согласно значению b5' и столбцу, в котором располагается b5', например, b5'=90, и b5' располагается в 5-м столбце, в матрице R осуществляется поиск значения, соответствующего h90,5, и в матрице G осуществляется поиск значения, соответствующего g90,5. S2h'=h210,1+h156,2+h144,3+h60,4+h90,5, S2g'=g210,1+g156,2+g144,3+g60,4+g90,5. Когда одно из S2h' и S2g' является четным числом, по меньшей мере, часть данных в Wj2[pj2-169, pj2] удовлетворяет заранее заданному условию C2; когда оба S2h' и S2g' являются нечетными числами, по меньшей мере, часть данных в Wj2[pj2-169, pj2] не удовлетворяет заранее заданному условию C2. Вероятность того, что один из S2h' и S2g' является четным числом, равна 3/4.

[0135] Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj11] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11, которые здесь повторно не описаны.

[0136] С использованием варианта реализации, показанного на фиг. 5 в порядке примера, предусмотрен способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. Согласно правилу, заранее заданному на сервере 103 дедупликации, точка pi1 и окно Wi1[pi1-169, pi1], соответствующее pi1, определяются для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. Как показано на фиг. 16, Wi1 представляет окно Wi1[pi1-169, pi1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. На фиг. 16, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 рассматриваются как 40 последовательных битов, которые представлены как a1, a2, a3, a4, ..., и a40 по отдельности. Для любого at из a1, a2, a3, a4, ..., и a40, когда at=0, Vat=-1, и когда at=1, Vat=1. Согласно соответствию между at и генерируются Vat, Va1, Va2, Va3, Va4, ..., и Va40. 40 случайных чисел выбирается из случайных чисел, которые подчиняются нормальному распределению, и представлены как: h1, h2, h3, h4, ..., и h40 по отдельности. Sa=Va1*h1+Va2*h2+Va3*h3+Va4*h4+...+Va40*h40. Поскольку h1, h2, h3, h4, ..., и h40 подчиняются нормальному распределению, Sa также подчиняется нормальному распределению. Когда Sa является положительным числом, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1; когда Sa является отрицательным числом или 0, по меньшей мере, часть данных в Wi1[pi1-169, pi1] не удовлетворяет заранее заданному условию C1. Вероятность того, что Sa является положительным числом, равна 1/2. В варианте осуществления, показанном на фиг. 5, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1. Как показано на фиг. 16, "" представляет 1 байт, по отдельности выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[pi2-169, pi2] заранее заданному условию C2. На фиг. 16, выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 рассматриваются как 40 последовательных битов, которые представлены как b1, b2, b3, b4, ..., и b40 по отдельности. Для любого bt из b1, b2, b3, b4, ..., и b40, когда bt=0, Vbt=-1, и когда bt=1, Vbt=1. Vb1, Vb2, Vb3, Vb4, ..., и Vb40 генерируются согласно соответствию между bt и Vbt. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[pi2-169, pi2] заранее заданному условию C2, и, таким образом, используются одни и те же случайные числа: h1, h2, h3, h4, ..., и h40. Sb=Vb1*h1+Vb2*h2+Vb3*h3+Vb4*h4+...+Vb40*h40. Поскольку h1, h2, h3, h4, ..., и h40 подчиняются нормальному распределению, Sb также подчиняется нормальному распределению. Когда Sb является положительным числом, по меньшей мере, часть данных в Wi2[pi2-169, pi2] удовлетворяет заранее заданному условию C2; когда Sb является отрицательным числом или 0, по меньшей мере, часть данных в Wi2[pi2-169, pi2] не удовлетворяет заранее заданному условию C2. Вероятность того, что Sb является положительным числом, равна 1/2. В варианте осуществления, показанном на фиг. 5, по меньшей мере, часть данных в Wi2[pi2-169, pi2] удовлетворяет заранее заданному условию C2. С использованием того же правила, по отдельности, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[pi6-169, pi6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[pi7-169, pi7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[pi8-169, pi8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[pi9-169, pi9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[pi10-169, pi10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[pi11-169, pi11] заранее заданному условию C11. В варианте реализации, показанном на фиг. 5, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5, 11 байтов пропускается от точки pi5 в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 11-го байта. Как показано на фиг. 6, согласно правилу, заранее заданному на сервере 103 дедупликации, точка pj1 и окно Wj1[pj1-169, pj1], соответствующее точке pj1, определяются для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[pj1-169, pj1], заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию C1. Таким образом, как показано на фиг. 17, Wj1 представляет окно Wj1[pj1-169, pj1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1. На фиг. 17, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 рассматриваются как 40 последовательных битов, которые представлены как a1', a2', a3', a4', ..., и a40' по отдельности. Для любого at' из a1', a2', a3', a4', ..., и a40', когда at'=0, Vat'=-1, и когда at'=1, Vat'=1. Va1', Va2', Va3', Va4', ..., и Va40' генерируются согласно соответствию между at' и Vat'. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[pj1-169, pj1], заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию C1, и, таким образом, используются одни и те же случайные числа: h1, h2, h3, h4, ..., и h40. Sa'=Va1'*h1+Va2'*h2+Va3'*h3+Va4'*h4+...+Va40'*h40. Поскольку h1, h2, h3, h4, ..., и h40 подчиняются нормальному распределению, Sa' также подчиняется нормальному распределению. Когда Sa' является положительным числом, по меньшей мере, часть данных в Wj1[pj1-169, pj1] удовлетворяет заранее заданному условию C1; когда Sa' является отрицательным числом или 0, по меньшей мере, часть данных в Wj1[pj1-169, pj1] не удовлетворяет заранее заданному условию C1. Вероятность того, что Sa' является положительным числом, равна 1/2.

[0137] Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2. Таким образом, как показано на фиг. 17, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[pj2-169, pj2] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. На фиг. 17, выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 рассматриваются как 40 последовательных битов, которые представлены как b1', b2', b3', b4', ..., и b40' по отдельности. Для любого bt' из b1', b2', b3', b4', ..., и b40', когда bt'=0, Vbt'=-1, и когда bt'=1, Vbt'=1. Vb1', Vb2', Vb3', Vb4', ..., и Vb40' генерируются согласно соответствию между bt' и Vbt'. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2, и, таким образом, используются одни и те же случайные числа: h1, h2, h3, h4, ..., и h40. Sb'=Vb1'*h1+Vb2'*h2+Vb3'*h3+Vb4'*h4+...+Vb40'*h40. Поскольку h1, h2, h3, h4, ..., и h40 подчиняются нормальному распределению, Sb' также подчиняется нормальному распределению. Когда Sb' является положительным числом, по меньшей мере, часть данных в Wj2[pj2-169, pj2] удовлетворяет заранее заданному условию C2; когда Sb' является отрицательным числом или 0, по меньшей мере, часть данных в Wj2[pj2-169, pj2] не удовлетворяет заранее заданному условию C2. Вероятность того, что Sb' является положительным числом, равна 1/2.

[0138] Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11, которые здесь повторно не описаны.

[0139] Также используя вариант реализации, показанный на фиг. 5 в порядке примера, предусмотрен способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. Согласно правилу, заранее заданному на сервере 103 дедупликации, точка pi1 и окно Wi1[pi1-169, pi1], соответствующее pi1, определяются для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. Как показано на фиг. 16, Wi1 представляет окно Wi1[pi1-169, pi1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. На фиг. 16, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуется в 1 десятичное число, диапазон которого составляет 0-(2^40-1). Генератор равномерного распределения случайных чисел используется для генерации 1 назначенного значения для каждого десятичного числа в 0-(2^40-1), и соответствие R между каждым десятичным числом в 0-(2^40-1) и назначенным значением записывается. Будучи назначенным, назначенное значение, соответствующее десятичному числу, остается неизменным, и назначенное значение подчиняется равномерному распределению. Если назначенное значение является четным числом, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1; если назначенное значение является нечетным числом, по меньшей мере, часть данных в Wi1[pi1-169, pi1] не удовлетворяет заранее заданному условию C1. C1 представляет, что назначенное значение, полученное согласно вышеупомянутому способу является четным числом. Поскольку вероятность того, что случайное число в равномерном распределении является четным числом, равна 1/2, вероятность того, что, по меньшей мере, часть данных в Wi1[pi1-169, pi1] удовлетворяет заранее заданному условию C1, равна 1/2. В варианте реализации, показанном на фиг. 5, с использованием того же правила, по отдельности, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[pi4-169, pi4] заранее заданному условию C4, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[pi5-169, pi5] заранее заданному условию C5, которые здесь повторно не описаны.

[0140] Когда, по меньшей мере, часть данных в Wi5[pi5-169, pi5] не удовлетворяет заранее заданному условию C5, 11 байтов пропускается от точки pi5 в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 11-го байта. Как показано на фиг. 6, согласно правилу, заранее заданному на сервере 103 дедупликации, точка pj1 и окно Wj1[pj1-169, pj1], соответствующее точке pj1, определяются для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[pj1-169, pj1], заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[pi1-169, pi1], заранее заданному условию C1. Таким образом, используется одно и то же соответствие R между каждым десятичным числом в 0-(2^40-1) и назначенным значением. Как показано на фиг. 17, Wj1 представляет окно Wj1[pj1-169, pj1], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wj1[pj1-169, pj1] заранее заданному условию C1. На фиг. 17, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта "". Каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуется в 1 десятичное число, и в R осуществляется поиск назначенного значения, соответствующего десятичному числу. Если назначенное значение является четным числом, по меньшей мере, часть данных в Wj1[pj1-169, pj1] удовлетворяет заранее заданному условию C1; если назначенное значение является нечетным числом, по меньшей мере, часть данных в Wj1[pj1-169, pj1] не удовлетворяет заранее заданному условию C1. Поскольку вероятность того, что случайное число в равномерном распределении является четным числом, равна 1/2, вероятность того, что, по меньшей мере, часть данных в Wj1[pj1-169, pj1] удовлетворяет заранее заданному условию C1, равна 1/2. Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[pi2-169, pi2] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[pj2-169, pj2] заранее заданному условию C2, и способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[pi3-169, pi3] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[pj3-169, pj3] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[pj4-169, pj4] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[pj5-169, pj5] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[pj6-169, pj6] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[pj7-169, pj7] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[pj8-169, pj8] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[pj9-169, pj9] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[pj10-169, pj10] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[pj11-169, pj11] заранее заданному условию C11, которые здесь повторно не описаны.

[0141] Сервер 103 дедупликации согласно варианту осуществления настоящего изобретения, показанный на фиг. 1, представляет собой устройство, которое может реализовать техническое решение, описанное согласно варианту осуществления настоящего изобретения, и, как показано на фиг. 18, обычно включает в себя центральный процессор, первичную память и интерфейс ввода/вывода. Центральный процессор, первичная память и интерфейс ввода/вывода осуществляют связь друг с другом. В основной памяти хранится исполнимая инструкция, и центральный процессор выполняет исполнимую инструкцию, хранящуюся в первичной памяти, для осуществления конкретной функции, например, поиска точки деления потока данных, описанной на фиг. 4-17 в вариантах осуществления настоящего изобретения. Таким образом, как показано на фиг. 19, согласно вариантам осуществления настоящего изобретения, показанным на фиг. 4-17, для сервера 103 дедупликации, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами. Сервер 103 дедупликации включает в себя блок 1901 определения и блок 1902 принятия решения и обработки. Блок 1901 определения выполнен с возможностью осуществления этапа (a): (a) определения точки piz и окна Wiz[piz-Az, piz+Bz], соответствующего точке piz, для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M. Блок 1902 принятия решения и обработки выполнен с возможностью: определения удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz;

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, причем блок определения осуществляет этап (a) для новой точки потенциального деления; и когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

[0142] Кроме того, правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf. Кроме того, правило дополнительно предусматривает, что: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

[0143] Кроме того, правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

[0144] Кроме того, блок 1902 принятия решения и обработки в частности, выполнен с возможностью определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. В частности, блок 1902 принятия решения и обработки в частности, выполнен с возможностью определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz. В частности, этот блок 1902 принятия решения и обработки в частности, выполнен с возможностью определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, включает в себя:

выбор F байтов в окне Wiz[piz-Az, piz+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] удовлетворяет заранее заданному условию Cz.

[0145] Кроме того, блок 1902 принятия решения и обработки выполнен с возможностью: когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и блок 1901 определения осуществляет этап (a) для новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc] попадает в диапазон окна Wiz[piz-Az, piz+Bz], где точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

[0146] Согласно способу поиска точки деления потока данных на основе сервера в вариантах осуществления настоящего изобретения, показанных на фиг. 4-17, точка pix и окно Wix[pix-Ax, pix+Bx], соответствующее точке pix определяются для точки потенциального деления ki, где x указывает последовательные натуральные числа от 1 до M по отдельности, и M≥2. Параллельно можно определять, удовлетворяет ли, по меньшей мере, часть данных в каждом окне из M окон заранее заданному условию Cx, или можно последовательно определять, удовлетворяет ли, по меньшей мере, часть данных в окнах заранее заданному условию, или можно сначала определять, что, по меньшей мере, часть данных в окне Wi1[pi1-A1, pi1+B1] удовлетворяет заранее заданному условию C1, затем принимать решение, что, по меньшей мере, часть данных в Wi2[pi2-A2, pi2+B2] удовлетворяет заранее заданному условию C2, пока не будет принято решение, что, по меньшей мере, часть данных в Wim[pim-Am, pim+Bm] удовлетворяет заранее заданному условию Cm. Другие окна в этом варианте осуществления определяются таким же образом, как описано, что не описано повторно.

[0147] Кроме того, согласно вариантам осуществления настоящего изобретения, показанным на фиг. 4-17, в фактических применениях, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до M по отдельности, и M≥2. Согласно заранее заданному правилу, A1, A2, A3, ..., и Am могут не все быть равны, B1, B2, B3, ..., и Bm могут не все быть равны, и C1, C2, C3, ..., и CM также могут не все быть равны. В варианте реализации, показанном на фиг. 5, для окон Wi1[pi1-169, pi1], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3], Wi4[pi4-169, pi4], Wi5[pi5-169, pi5], Wi6[pi6-169, pi6], Wi7[pi7-169, pi7], Wi8[pi8-169, pi8], Wi9[pi9-169, pi9], Wi10[pi10-169, pi10] и Wi11[pi11-169, pi11], окна одинаковы по размеру, то есть все окна имеют размер 169 байтов, и при этом способы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию, также одинаковы. Подробности можно найти в вышеприведенном описании определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[pi1-169, pi1] заранее заданному условию C1. Однако, в варианте реализации, показанном на фиг. 11, окна Wi1[pi1-169, pi1], Wi2[pi2-169, pi2], Wi3[pi3-169, pi3], Wi4[pi4-169, pi4], Wi5[pi5-169, pi5], Wi6[pi6-169, pi6], Wi7[pi7-169, pi7], Wi8[pi8-169, pi8], Wi9[pi9-169, pi9], Wi10[pi10-169, pi10] и Wi11[pi11-182, pi11] могут отличаться размером, и при этом способы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию, также могут отличаться. Во всех вариантах осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1 заранее заданному условию C1, конечно, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1 заранее заданному условию C1, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2 заранее заданному условию C2, конечно, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2 заранее заданному условию C2, ..., и способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wim заранее заданному условию CM, конечно, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне WjM заранее заданному условию CM, которые здесь повторно не описаны. При этом, согласно вариантам осуществления настоящего изобретения, показанным на фиг. 4-17, хотя M=11 используется в порядке примера, значение M не ограничивается 11 согласно фактическому требованию, и специалист в данной области техники определяет значение M согласно описанию в вариантах осуществления настоящего изобретения.

[0148] Согласно вариантам осуществления настоящего изобретения, показанным на фиг. 4-17, правило заранее задается на сервере 103 дедупликации, ka, ki, kj, kl и km являются точками потенциального деления, полученными при поиске точки деления в направлении поиска точки деления потока данных, и все ka, ki, kj, kl и km подчиняются правилу. Окно Wx[px-Ax, px+Bx] в этом варианте осуществления настоящего изобретения представляет конкретный диапазон, и данные выбираются в конкретном диапазоне для определения, удовлетворяют ли данные заранее заданному условию Cx. В частности, в конкретном диапазоне можно выбирать, часть данных или можно выбирать все данные для определения, удовлетворяют ли данные заранее заданному условию Cx. Можно рассматривать окно Wx[px-Ax, px+Bx] в качестве примера понятия окна, в частности, используемого в этом варианте осуществления настоящего изобретения, который здесь повторно не описан.

[0149] Согласно вариантам осуществления настоящего изобретения, показанным на фиг. 4-17, в окне Wx[px-Ax, px+Bx], (px-Ax) и (px+Bx) представляют две границы окна Wx[px-Ax, px+Bx], где (px-Ax) представляет границу, которая ориентирована в направлении, противоположном направлению поиска точки деления потока данных относительно точки px, окна Wx[px-Ax, px+Bx], и (px+Bx) представляет границу, которая ориентирована в направлении поиска точки деления потока данных относительно точки px, окна Wx[px-Ax, px+Bx]. В частности, согласно варианту осуществления настоящего изобретения, направление поиска точки деления потока данных, показанное на фиг. 3-15, является направлением слева направо; таким образом, (px-Ax) представляет границу (то есть левую границу), которая ориентирована в направлении, противоположном направлению поиска точки деления потока данных относительно точки px, окна Wx[px-Ax, px+Bx], и (px+Bx) представляет границу (то есть правую границу), которая ориентирована в направлении поиска точки деления потока данных относительно точки px, окна Wx[px-Ax, px+Bx]. Если направление поиска точки деления потока данных, показанное на фиг. 3-15 ориентировано справа налево, (px-Ax) представляет границу (то есть правую границу), которая ориентирована в направлении, противоположном направлению поиска точки деления потока данных относительно точки px, окна Wx[px-Ax, px+Bx], и (px+Bx) представляет границу (то есть левую границу), которая ориентирована в направлении поиска точки деления потока данных относительно точки px, окна Wx[px-Ax, px+Bx].

[0150] Специалист в данной области техники может понять, что, совместно с различными иллюстративными блоками и этапами алгоритма, описанными в вариантах осуществления настоящего изобретения, ключевой признак в вариантах осуществления настоящего изобретения можно объединить с другими технологиями и представить в более сложной форме; однако ключевой признак настоящего изобретения по прежнему включен. Альтернативная точка деления может использоваться в реальном окружении. Например, в варианте реализации, согласно правилу, заранее заданному на сервере 103 дедупликации, 11 точек px определяются для точки потенциального деления ki, где x указывает последовательные натуральные числа от 1 до 11, и определяются окно Wx[px-Ax, px+Bx], соответствующее px, и заранее заданное условие Cx, соответствующее окну Wx[px-Ax, px+Bx]. Когда, по меньшей мере, часть данных в каждом окне Wx[px-Ax, px+Bx] из 11 окон удовлетворяет заранее заданному условию Cx, точка потенциального деления ki является точкой деления потока данных. Когда по прохождении заданного максимального фрагмента данных не найдено ни одной точки деления, в этом случае может использоваться заранее заданное правило для альтернативной точки. Заранее заданное правило для альтернативной точки аналогично правилу, заранее заданному на сервере 103 дедупликации, и заранее заданное правило для альтернативной точки предусматривает: например, для точки потенциального деления ki, определяется 10 точек px, где x указывает последовательные натуральные числа от 1 до 10, и определяются окно Wx[px-Ax, px+Bx], соответствующее px, и заранее заданное условие Cx, соответствующее окну Wx[px-Ax, px+Bx]. Когда, по меньшей мере, часть данных в каждом окне Wx[px-Ax, px+Bx] из 10 окон удовлетворяет заранее заданному условию Cx, точка потенциального деления ki является точкой деления потока данных; когда не найдено ни одной точки деления потока данных по прохождении заданного максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления.

[0151] Правило заранее задается на сервере 103 дедупликации, и согласно правилу, M точек определяются для точки потенциального деления k. Не требуется, чтобы заранее существовала точка потенциального деления k, и точка потенциального деления k может определяться с использованием определенного M точек.

[0152] Вариант осуществления настоящего изобретения предусматривает способ поиска точки деления потока данных на основе сервера дедупликации, который, как показано на фиг. 20, включает в себя:

[0153] правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами. В варианте реализации, показанном на фиг. 3, вблизи значения M, в одном варианте реализации, значение M*U не превышает заранее заданного максимального расстояния между двумя соседними точками деления потока данных, то есть заранее заданной максимальной длины фрагмента данных. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wz[k-Az, k+Bz] заранее заданному условию Cz, где z – целое число, 1≤z≤M, и (k-Az) и (k+Bz) по отдельности представляют две границы окна Wz. Когда определено, что, по меньшей мере, часть данных в любом одном окне Wz[k-Az, k+Bz] не удовлетворяет заранее заданному условию Cz, N байтов пропускается от точки потенциального деления k в направлении поиска точки деления потока данных, где N≤‖Bz‖+maxx(‖Ax‖). ‖Bz‖ представляет абсолютное значение Bz в Wz[k-Az, k+Bz], maxx(‖Ax‖)представляет максимальное значение абсолютного значения Ax в M окон, и принцип определения значения N, в частности, введен в нижеследующих вариантах осуществления. Когда определено, что, по меньшей мере, часть данных в каждом окне Wx[k-Ax, k+Bx] из M окон удовлетворяет заранее заданному условию Cx, точка потенциального деления k является точкой деления потока данных.

[0154] В частности, для текущей точки потенциального деления ki, следующие этапы осуществляются согласно правилу:

[0155] Этап 2001: определить соответствующее окно Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M.

[0156] Этап 2002: определить, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz;

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропустить N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения новой точки потенциального деления, и осуществить этап 2001; и

когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбрать текущую точку потенциального деления ki в качестве точки деления потока данных.

[0157] Кроме того, правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям |Ae+Be|=|Af+Bf|, и Ce=Cf. Кроме того, правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами. Кроме того, правило дополнительно предусматривает, что Ae-1=Af и Be+1=Bf. |Ae+Be| представляет размер окна Wie, и |Af+Bf| представляет размер окна Wif.

[0158] Кроме того, определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, включает в себя: определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz. Кроме того, определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, содержит: определение, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0159] Когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления. Согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], где окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

[0160] В этом варианте осуществления настоящего изобретения, поиск точки деления потока данных осуществляется путем определения, удовлетворяет ли, по меньшей мере, часть данных в окне из M окон заранее заданному условию, и когда, по меньшей мере, часть данных в окне не удовлетворяет заранее заданному условию, пропускается длина N*U, где N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения следующей точки потенциального деления, что повышает эффективность поиска точки деления потока данных.

[0161] В процессе устранения дублированных данных, чтобы гарантировать одномерный размер фрагмента данных, рассматривается средний размер фрагмента данных (также именуемый средним фрагментом). Таким образом, хотя ограничения на размер минимального фрагмента данных и размер максимального фрагмента данных удовлетворяются, размер среднего фрагменты данных определяется, чтобы гарантировать одномерный размер полученного фрагмента данных. Вероятность (представленная как P(n)) нахождения точки деления потока данных зависит от двух факторов, то есть количества M окон Wx[k-Ax, k+Bx] и вероятность того, что, по меньшей мере, часть данных в окне Wx[k-Ax, k+Bx] удовлетворяет заранее заданному условию, где первый влияет на длину пропуска, последний влияет на вероятность пропуска, и оба вместе влияют на размер среднего фрагмента. В общем случае, когда размер среднего фрагмента является фиксированным, с возрастанием количества Wx[k-Ax, k+Bx], вероятность того, что, по меньшей мере, часть данных в единичном окне Wx[k-Ax, k+Bx] удовлетворяет заранее заданному условию, также возрастает. Например, правило заранее задается на сервере 103 дедупликации, и правило предусматривает: для точки потенциального деления k, определение 11 окон Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до 11 по отдельности, и вероятность того, что, по меньшей мере, часть данных в любом окне Wx[k-Ax, k+Bx] из 11 окон удовлетворяет заранее заданному условию, равна 1/2. Другая группа правил, заранее заданных на сервере 103 дедупликации, предусматривает: определение 24 окон Wx[k-Ax, k+Bx] для точки потенциального деления k, где x указывает последовательные натуральные числа от 1 до 24 по отдельности, и вероятность того, что, по меньшей мере, часть данных в любом окне Wx[k-Ax, k+Bx] из 24 окон удовлетворяет заранее заданному условию Cx, равна 3/4. Для задания вероятности того, что, по меньшей мере, часть данных в конкретном окне Wx[k-Ax, k+Bx] удовлетворяет заранее заданному условию, можно обратиться к описанию части определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wx[k-Ax, k+Bx] заранее заданному условию. P(n) зависит от двух факторов, то есть количества M окон Wx[k-Ax, k+Bx] и вероятности того, что, по меньшей мере, часть данных в окне Wx[k-Ax, k+Bx] удовлетворяет заранее заданному условию, и P(n) представляет: вероятность того, что не найдено ни одной точки деления потока данных после N минимальных единиц для поиска точки деления потока данных в поиске от начальной позиции или предыдущей точки деления потока данных потока данных. Процесс вычисления P(n), которая зависит от двух факторов, фактически является n-шаговой последовательностью Фибоначчи, которая подробно описана ниже. После получения P(n), 1-P(n) является функцией распределения точки деления потока данных, и (1-P(n))-(1-P(n-1))=P(n-1)-P(n) является вероятностью того, что точка деления потока данных найдена на расстоянии N минимальных единиц для поиска точки деления потока данных, то есть функцией плотности точки деления потока данных. Интегрирование можно осуществлять согласно функции плотности точки деления потока данных, для получения предполагаемой длины точки деления потока данных, то есть размера среднего фрагмента, где 4*1024 (байтов) представляет длину минимального фрагмента данных, и 12*1024 (байтов) представляет длину максимального фрагмента данных.

[0162] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 21, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение 11 окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до 11, и Ax и Bx являются целыми числами. A1=169, B1=0; A2=170, B2=-1; A3=171, B3=-2; A4=172, B4=-3; A5=173, B5=-4; A6=174, B6=-5; A7=175, B7=-6; A8=176, B8=-7; A9=177, B9=-8; A10=178, B10=-9; A11=179, B11=-10. C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11. Таким образом, 11 окон представляют собой W1[k-169, k], W2[k-170, k-1], W3[k-171, k-2], W4[k-172, k-3], W5[k-173, k-4], W6[k-174, k-5], W7[k-175, k-6], W8[k-176, k-7], W9[k-177, k-8], W10[k-178, k-9] и W11[k-179, k-10]. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 21 является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki. Согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wix[ki-Ax, ki+Bx] определяется для точки потенциального деления ki, и в этом варианте осуществления, x указывает последовательные натуральные числа от 1 до 11 по отдельности. В варианте реализации, показанном на фиг. 21, 11 окон определяются для точки потенциального деления ki, и представляют собой Wi1[ki-169, ki], Wi2[ki-170, ki-1], Wi3[ki-171, ki-2], Wi4[ki-172, ki-3], Wi5[ki-173, ki-4], Wi6[ki-174, ki-5], Wi7[ki-175, ki-6], Wi8[ki-176, ki-7], Wi9[ki-177, ki-8], Wi10[ki-178, ki-9] и Wi11[ki-179, ki-10] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-172, ki-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-173, ki-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[ki-174, ki-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[ki-175, ki-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[ki-176, ki-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[ki-177, ki-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[ki-178, ki-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[ki-179, ki-10] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из 11 окон не удовлетворяет соответствующему заранее заданному условию, например, в Wi5[ki-173, ki-4], показанном на фиг. 22, N байтов пропускается от точки потенциального деления ki в направлении поиска точки деления потока данных, где N байтов не больше ‖B5‖+maxx(‖Ax‖). В варианте реализации, показанном на фиг. 22, число N пропущенных байтов не превышает 183 байтов, и в этом варианте осуществления, N=7, для получения новой точки потенциального деления. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Согласно варианту реализации, показанному на фиг. 21, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: определение окна Wjx[kj-Ax, kj+Bx] для точки потенциального деления kj, причем, в этом варианте осуществления, x указывает последовательные натуральные числа от 1 до 11 по отдельности. 11 окон определяются для точки потенциального деления kj, и представляют собой Wj1[kj-169, kj], Wj2[kj-170, kj-1], Wj3[kj-171, kj-2], Wj4[kj-172, kj-3], Wj5[kj-173, kj-4], Wj6[kj-174, kj-5], Wj7[kj-175, kj-6], Wj8[kj-176, kj-7], Wj9[kj-177, kj-8], Wj10[kj-178, kj-9] и Wj11[kj-179, kj-10] по отдельности. Как показано на фиг. 22, когда 11-е окно Wj11[kj-179, kj-10] определяется для точки потенциального деления, чтобы гарантировать, что диапазон между точкой потенциального деления ki и точкой потенциального деления kj полностью заключен в диапазоне определения, в этом варианте реализации можно гарантировать, что левая граница окна Wj11[kj-179, kj-10] совпадает с правой границей (ki-4) окна Wi5[ki-173, ki-4], или попадает в диапазон окна Wi5[ki-173, ki-4], где окно Wj11[kj-179, kj-10] является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из 11 окон, которые определены для точки потенциального деления kj согласно правилу. Таким образом, при таком ограничении, когда, по меньшей мере, часть данных в окне Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5, расстояние для пропуска от точки потенциального деления ki в направлении поиска точки деления потока данных не превышает ‖B5‖+maxx(‖Ax‖). Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-169, kj] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-171, kj-2] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-172, kj-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-173, kj-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-174, kj-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-175, kj-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-176, kj-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-177, kj-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-178, kj-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-179, kj-10] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления A1 является точкой деления потока данных, и данные между kj и ka образуют 1 фрагмент данных. При этом, минимальный фрагмент размером 4 кбайт пропускается таким же, образом как для ka для получения следующей точки потенциального деления, и, согласно правилу, заранее заданному на сервере 103 дедупликации, производится определение, является ли следующая точка потенциального деления точкой деления потока данных. Когда определено, что точка потенциального деления kj не является точкой деления потока данных, следующая точка потенциального деления получается таким же, образом как для ki, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, и вышеупомянутому способу, является ли следующая точка потенциального деления точкой деления потока данных. Когда не найдено ни одной точки деления потока данных по прохождении максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления.

[0163] В варианте реализации, показанном на фиг. 21, согласно правилу, заранее заданному на сервере 103 дедупликации, начиная с определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1, когда определено, что, по меньшей мере, часть данных в Wi1[ki-169, ki], по меньшей мере, часть данных в Wi2[ki-170, ki-1], по меньшей мере, часть данных в Wi3[ki-171, ki-2] и, по меньшей мере, часть данных в Wi4[ki-172, ki-3] удовлетворяют заранее заданным условиям C1, C2, C3 и C4 соответственно, и определено, что, по меньшей мере, часть данных в Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5, 6 байтов пропускается от точки потенциального деления ki в направлении поиска точки деления потока данных, и новая точка потенциального деления получается в концевой позиции 6-го байта. Для отличения от других точек потенциального деления, новая точка потенциального деления представлена здесь как kg. Согласно правилу, заранее заданному на сервере 103 дедупликации, 11 окон определяются для точки потенциального деления kg, и представляют собой Wg1[kg-169, kg], Wg2[kg-170, kg-1], Wg3[kg-171, kg-2], Wg4[kg-172, kg-3], Wg5[kg-173, kg-4], Wg6[kg-174, kg-5], Wg7[kg-175, kg-6], Wg8[kg-176, kg-7], Wg9[kg-177, kg-8], Wg10[kg-178, kg-9] и Wg11[kg-179, kg-10] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg1[kg-169, kg] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg2[kg-170, kg-1] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg3[kg-171, kg-2] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg4[kg-172, kg-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg5[kg-173, kg-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg6[kg-174, kg-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg7[kg-175, kg-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg8[kg-176, kg-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg9[kg-177, kg-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg10[kg-178, kg-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wg11[kg-179, kg-10] заранее заданному условию C11. Окно Wg11[kg-179, kg-10] совпадает с окном Wi5[ki-173, ki-4], и C5=C11; таким образом, когда определено, что, по меньшей мере, часть данных в Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5, точка потенциального деления kg, полученная пропуском T байтов от точки потенциального деления ki в направлении поиска точки деления потока данных, по прежнему не удовлетворяет условию использования в качестве точки деления потока данных. Таким образом, при наличии повторных вычислений, когда 6 байтов пропускается от точки потенциального деления ki в направлении поиска точки деления потока данных, количество повторных вычислений может сокращаться, и эффективность повышаться, когда 7 байтов пропускаются от точки потенциального деления ki в направлении поиска точки деления потока данных. Таким образом, возрастает скорость поиска точки деления потока данных. Когда вероятность того, что, по меньшей мере, часть данных в окне Wx[k-Ax, k+Bx], которое определено согласно заранее заданному правилу, удовлетворяет заранее заданному условию Cx, равна 1/2, то есть вероятность выполнения пропуска равна 1/2, каждый раз можно пропускать, самое большее, ‖B11‖+‖A11‖=189 байтов.

[0164] В этом варианте реализации, заранее заданное правило предусматривает, что: 11 окон Wx[k-Ax, k+Bx] определяется для точки потенциального деления k и, по меньшей мере, часть данных в окне Wx[k-Ax, k+Bx] удовлетворяет заранее заданному условию Cx, где вероятность того, что, по меньшей мере, часть данных в Wx[k-Ax, k+Bx] удовлетворяет заранее заданному условию Cx, равна 1/2, где x указывает последовательные натуральные числа от 1 до 11 по отдельности, и Ax и Bx являются целыми числами. A1=169, B1=0; A2=170, B2=-1; A3=171, B3=-2; A4=172, B4=-3; A5=173, B5=-4; A6=174, B6=-5; A7=175, B7=-6; A8=176, B8=-7; A9=177, B9=-8; A10=178, B10=-9; A11=179, B11=-10. C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11. Таким образом, 11 окон выбирается для точки потенциального деления k, и 11 окон являются последовательными; P(n) можно вычислить с использованием двух факторов, то есть количества окон и вероятности того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx] удовлетворяет заранее заданному условию Cx. Способ выбора 11 окон и определения, что по меньшей мере, часть данных в каждом окне из 11 окон удовлетворяет заранее заданному условию Cx, подчиняются правилу, заранее заданному на сервере 103 дедупликации, и, таким образом, является ли точка потенциального деления k точкой деления потока данных, зависит от того, существует ли то, что, по меньшей мере, часть данных в каждом окне из 11 последовательных окон удовлетворяет заранее заданному условию Cx. Промежуток между двумя байтами именуется одной точкой. P(n) представляет вероятность того, что 11 последовательных окон, удовлетворяющих условию, не существуют среди n последовательных окон, то есть вероятность того, что не существует ни одной точки деления потока данных. После пропуска минимальный фрагмента размером 4 кбайт от заголовка файла/ предыдущей точки деления, 4086-ая точка находится путем возвращения на 10 байтов в направлении, противоположном направлению поиска точки деления потока данных, и в точке не существует ни одной точки деления потока данных; таким образом, P(4086)=1, и P(4087)=1, ..., P(4095)=1, и т.д. В 4096-й точке, то есть, в точке, которая используется для получения минимального фрагмента, с вероятностью (1/2)^11, по меньшей мере, часть данных в каждом окне из 11 окон удовлетворяет заранее заданному условию Cx. Поэтому, с вероятностью (1/2)^11, существует точка деления потока данных; с вероятностью 1-(1/2)^11, не существует ни одной точки деления потока данных; таким образом P(4096)=1-(1/2)^11.

[0165] В n-м окне может существовать 12 случаев получения P(n) посредством рекурсии.

[0166] Случай 1: с вероятностью 1/2, по меньшей мере, часть данных в n-м окне не удовлетворяет заранее заданному условию; в этом случае, с вероятностью P(n-1), 11 последовательных окон не существует среди (n-1) окон до n-го окна, где, по меньшей мере, часть данных в каждом окне из 11 последовательных окон удовлетворяет заранее заданному условию. Таким образом, P(n) включает в себя 1/2*P(n-1). Случай, когда, по меньшей мере, часть данных в n-м окне не удовлетворяет заранее заданному условию, и 11 последовательных окон существует среди (n-1) окон до n-й точки, где, по меньшей мере, часть данных в каждом окне из 11 последовательных окон удовлетворяет заранее заданному условию, не связан с P(n).

[0167] Случай 2: с вероятностью 1/2, по меньшей мере, часть данных в n-м окне удовлетворяет заранее заданному условию, и с вероятностью 1/2, по меньшей мере, часть данных в (n-1)-м окне не удовлетворяет заранее заданному условию; в этом случае, с вероятностью P(n-2), 11 последовательных окон не существует среди (n-2) окон до (n-1)-го окна, где, по меньшей мере, часть данных в каждом окне из 11 последовательных окон удовлетворяет заранее заданному условию. Таким образом, P(n) включает в себя 1/2*1/2*P(n-2). Случай, когда, по меньшей мере, часть данных в n-м окне удовлетворяет заранее заданному условию, по меньшей мере, часть данных в (n-1)-м окне не удовлетворяет заранее заданному условию, и 11 последовательных окон существует среди (n-2) окон до (n-1)-го окна, где, по меньшей мере, часть данных в каждом окне из 11 последовательных окон удовлетворяет заранее заданному условию, не связан с P(n).

[0168] Согласно вышеупомянутому описанию, случай 11: с вероятностью (1/2)^10, по меньшей мере, часть данных в окнах с n-го по (n-9)-е удовлетворяет заранее заданному условию, и с вероятностью 1/2, по меньшей мере, часть данных в (n-10)-м окне не удовлетворяет заранее заданному условию; в этом случае, с вероятностью P(n-11), 11 последовательных окон не существует среди (n-11) окон до (n-10)-го окна, где, по меньшей мере, часть данных в каждом окне из 11 последовательных окон удовлетворяет заранее заданному условию. Таким образом, P(n) включает в себя (1/2)^10*1/2*P(n-11). Случай, когда, по меньшей мере, часть данных в окнах с n-го по (n-9)-е удовлетворяет заранее заданному условию, по меньшей мере, часть данных в (n-10)-м окне не удовлетворяет заранее заданному условию, и 11 последовательных окон существует среди (n-11) окон до (n-10)-го окна, где, по меньшей мере, часть данных в каждом окне из 11 последовательных окон удовлетворяет заранее заданному условию, не связан с P(n).

[0169] Случай 12: с вероятностью (1/2)^11, по меньшей мере, часть данных в окнах с n-го по (n-10)-е удовлетворяет заранее заданному условию, и этот случай не связан с P(n).

[0170] Таким образом, P(n)=1/2*P(n-1)+(1/2)^2*P(n-2)+...+(1/2)^11*P(n-11). Другое заранее заданное правило предусматривает: для точки потенциального деления k, определение 24 окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до 11, A1=169, B1=0; A2=170, B2=-1; A3=171, B3=-2; A4=172, B4=-3; A5=173, B5=-4; A6=174, B6=-5; A7=175, B7=-6; A8=176, B8=-7; A9=177, B9=-8; A10=178, B10=-9; A11=179, B11=-10, ..., и A24=192, B24=-23. C1=C2=C3=C4=C5=C6=C7=C8=C9=...=C24. Вероятность того, что, по меньшей мере, часть данных в окне Wx[k-Ax, k+Bx] удовлетворяет заранее заданному условию Cx, равна 3/4, и P(n) можно вычислить с использованием двух факторов, то есть количества окон и вероятности того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx] удовлетворяет заранее заданному условию Cx.

[0171] Таким образом, является ли точка потенциального деления k точкой деления потока данных, зависит от того, существует ли то, что, по меньшей мере, часть данных в каждом окне из 24 последовательных окон удовлетворяет заранее заданному условию Cx, и вычисление можно осуществлять с использованием нижеследующих формул:

P(1)=1, P(2), ..., P(23)=1, P(24)=1-(3/4)^24, и

P(n)=1/4*P(n-1)+1/4*(3/4)*P(n-2)+...+1/4*(3/4)^23*P(n-24).

[0172] После вычисления, P(5*1024)=0.78, P(11*1024)=0.17, и P(12*1024)=0.13. Таким образом, ни одна точка деления потока данных не находится с вероятностью 13% после перехода поиска к точке на расстоянии 12 кбайт от начальной позиции/ предыдущей точки деления потока данных потока данных, и осуществляется принудительное деление. Функция плотности точки деления потока данных получается с использованием этой вероятности, и, после интегрирования, получается, что в среднем, точка деления потока данных находится после перехода поиска к точке на расстоянии около 7.6 кбайт от начальной позиции/ предыдущей точки деления потока данных потока данных, то есть средняя длина фрагмента составляет около 7.6 кбайт. В отличие от случая, когда, по меньшей мере, часть данных в 11 последовательных окон удовлетворяет заранее заданному условию с вероятностью 1/2, традиционный алгоритм CDC может приводить к тому, что средняя длина фрагмента равна 7,6 кбайт, только, когда одно окно удовлетворяет условию с вероятностью 1/2^12.

[0173] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 23, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение 11 окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до 11, и Ax и Bx являются целыми числами. Вероятность того, что, по меньшей мере, часть данных в окне Wx[k-Ax, k+Bx] удовлетворяет заранее заданному условию Cx, равна 1/2. A1=171, B1=-2; A2=172, B2=-3; A3=173, B3=-4; A4=174, B4=-5; A5=175, B5=-6; A6=176, B6=-7; A7=177, B7=-8; A8=178, B8=-9; A9=179, B9=-10; A10=170, B10=-1; A11=169, B11=0. C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 23 является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki. Согласно правилу, заранее заданному на сервере 103 дедупликации, для точки потенциального деления ki, определяются Wix[ki-Ax, ki+Bx] и заранее заданное условие Cx, соответствующее окну Wix[ki-Ax, ki+Bx], где x указывает последовательные натуральные числа от 1 до 11. Определенные 11 окон представляют собой Wi1[ki-171, ki-2], Wi2[ki-172, ki-3], Wi3[ki-173, ki-4], Wi4[ki-174, ki-5], Wi5[ki-175, ki-6], Wi6[ki-176, ki-7], Wi7[ki-177, ki-8], Wi8[ki-178, ki-9], Wi9[ki-179, ki-10], Wi10[ki-170, ki-1] и Wi11[ki-169, ki] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-171, ki-2] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-172, ki-3] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-173, ki-4] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-174, ki-5] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-175, ki-6] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[ki-176, ki-7] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[ki-177, ki-8] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[ki-178, ki-9] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[ki-179, ki-10] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[ki-170, ki-1] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[ki-169, ki] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из 11 окон не удовлетворяет соответствующему заранее заданному условию, как показано на фиг. 24, в порядке примера для описания используется тот факт, что по меньшей мере, часть данных в Wi3[pi3-169, pi3] не удовлетворяет заранее заданному условию C3, 11 байтов пропускается от точки pi3 в направлении поиска точки деления потока данных. Как показано на фиг. 24, когда определено, что W3 не удовлетворяет заранее заданному условию C3, от ki, которая служит начальной точкой, N байтов пропускается в направлении поиска точки деления потока данных, где N байтов не больше ‖B3‖+maxx(‖Ax‖). В этом варианте осуществления, N=7, и следующая точка потенциального деления получается в концевой позиции 7-го байта. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Согласно правилу, заранее заданному на сервере 103 дедупликации, для точки потенциального деления kj, 11 окон Wjx[kj-Ax, kj+Bx] определяются и являются Wj1[kj-171, kj-2], Wj2[kj-172, kj-3], Wj3[kj-173, kj-4], Wj4[kj-174, kj-5], Wj5[kj-175, kj-6], Wj6[kj-176, kj-7], Wj7[kj-177, kj-8], Wj8[kj-178, kj-9], Wj9[kj-179, kj-10], Wj10[kj-170, kj-1] и Wj11[kj-169, kj] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-171, kj-2] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-172, kj-3] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-173, kj-4] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-174, kj-5] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-175, kj-6] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-176, kj-7] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-177, kj-8] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-178, kj-9] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-179, kj-10] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-170, kj-1] заранее заданному условию C10 и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-169, kj] заранее заданному условию C11. Конечно, в этом варианте осуществления настоящего изобретения, правило также выполняется, когда производится определение, является ли точка потенциального деления ka точкой деления потока данных, конкретная реализация повторно не описана, и можно обратиться к описанию определения точки потенциального деления ki. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kj является точкой деления потока данных, и данные между kj и ka образуют 1 фрагмент данных. При этом, минимальный фрагмент размером 4 кбайт пропускается таким же, образом как для ka для получения следующей точки потенциального деления, и, согласно правилу, заранее заданному на сервере 103 дедупликации, производится определение, является ли следующая точка потенциального деления точкой деления потока данных. Когда определено, что точка потенциального деления kj не является точкой деления потока данных, следующая точка потенциального деления получается таким же, образом как для ki, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, и вышеупомянутому способу, является ли следующая точка потенциального деления точкой деления потока данных. Когда не найдено ни одной точки деления потока данных по прохождении максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления. Конечно, реализация способа ограничена длиной максимального фрагмента данных и размером файла, образующего поток данных, который здесь повторно не описан.

[0174] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 25, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение 11 окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до 11. A1=166, B1=3; A2=167, B2=2; A3=168, B3=1; A4=169, B4=0; A5=170, B5=-1; A6=171, B6=-2; A7=172, B7=-3; A8=173, B8=-4; A9=174, B9=-5; A10=175, B10=-6; A11=176, B11=-7. C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11, и 11 окон представляют собой W1[k-166, k+3], W2[k-167, k+2], W3[k-168, k+1], W4[k-169, k], W5[k-170, k-1], W6[k-171, k-2], W7[k-172, k-3], W8[k-173, k-4], W9[k-174, k-5], W10[k-175, k-6] и W11[k-176, k-7] по отдельности. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 25 является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki. В этом варианте осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, для точки потенциального деления ki, определяются 11 окон Wix[k-Ax, k+Bx] и заранее заданное условие Cx, соответствующее окну Wix[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до 11 по отдельности. В варианте реализации, показанном на фиг. 25, для точки потенциального деления ki, 11 окон, которые определены, представляют собой Wi1[ki-166, ki+3], Wi2[ki-167, ki+2], Wi3[ki-168, ki+1], Wi4[ki-169, ki], Wi5[ki-170, ki-1], Wi6[ki-171, ki-2], Wi7[ki-172, ki-3], Wi8[ki-173, ki-4], Wi9[ki-174, ki-5], Wi10[ki-175, ki-6] и Wi11[ki-176, ki-7] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-166, ki+3] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-167, ki+2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-168, ki+1] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-169, ki] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-170, ki-1] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[ki-171, ki-2] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[ki-172, ki-3] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[ki-173, ki-4] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[ki-174, ki-5] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[ki-175, ki-6] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[ki-176, ki-7] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из 11 окон не удовлетворяет соответствующему заранее заданному условию, например, Wi7[ki-172, ki-3], показанное на фиг. 26, N байтов пропускается от точки потенциального деления ki в направлении поиска точки деления потока данных, где N байтов не больше ‖B7‖+maxx(‖Ax‖). В варианте реализации, показанном на фиг. 26, количество N пропущенных байтов не превышает 185 байтов, и в этом варианте осуществления, N=5, для получения новой точки потенциального деления. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Согласно правилу, заранее заданному на сервере 103 дедупликации в варианте реализации, показанном на фиг. 25, для точки потенциального деления kj, 11 окон определяются и являются Wj1[kj-166, kj+3], Wj2[kj-167, kj+2], Wj3[kj-168, kj+1], Wj4[kj-169, kj], Wj5[kj-170, kj-1], Wj6[kj-171, kj-2], Wj7[kj-172, kj-3], Wj8[kj-173, kj-4], Wj9[kj-174, kj-5], Wj10[kj-175, kj-6] и Wj11[kj-176, kj-7] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-166, kj+3] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-167, kj+2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-168, kj+1] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-169, kj] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-170, kj-1] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-171, kj-2] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-172, kj-3] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-173, kj-4] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-174, kj-5] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-175, kj-6] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-176, kj-7] заранее заданному условию C11. Конечно, в этом варианте осуществления настоящего изобретения, правило также выполняется, когда производится определение, является ли точка потенциального деления ka точкой деления потока данных, конкретная реализация повторно не описана, и можно обратиться к описанию определения точки потенциального деления ki. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kj является точкой деления потока данных, и данные между kj и ka образуют 1 фрагмент данных. При этом, минимальный фрагмент размером 4 кбайт пропускается таким же, образом как для ka для получения следующей точки потенциального деления, и, согласно правилу, заранее заданному на сервере 103 дедупликации, производится определение, является ли следующая точка потенциального деления точкой деления потока данных. Когда определено, что точка потенциального деления kj не является точкой деления потока данных, следующая точка потенциального деления получается таким же, образом как для ki, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, и вышеупомянутому способу, является ли следующая точка потенциального деления точкой деления потока данных. Когда не найдено ни одной точки деления потока данных по прохождении максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления.

[0175] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 27, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение 11 окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до 11. A1=169, B1=0; A2=170, B2=-1; A3=171, B3=-2; A4=172, B4=-3; A5=173, B5=-4; A6=174, B6=-5; A7=175, B7=-6; A8=176, B8=-7; A9=177, B9=-8; A10=168, B10=1; A11=179, B11=3. C1=C2=C3=C4=C5=C6=C7=C8=C9=C10C11, и 11 окон представляют собой W1[k-169, k], W2[k-170, k-1], W3[k-171, k-2], W4[k-172, k-3], W5[k-173, k-4], W6[k-174, k-5], W7[k-175, k-6], W8[k-176, k-7], W9[k-177, k-8], W10[k-168, k+1] и W11[k-179, k+3] по отдельности. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 27 является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki. В этом варианте осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, для точки потенциального деления ki, определяется окно Wix[ki-Ax, ki+Bx], где x указывает последовательные натуральные числа от 1 до 11 по отдельности. В варианте реализации, показанном на фиг. 27, для точки потенциального деления ki, 11 окон, которые определены, представляют собой Wi1[ki-169, ki], Wi2[ki-170, ki-1], Wi3[ki-171, ki-2], Wi4[ki-172, ki-3], Wi5[ki-173, ki-4], Wi6[ki-174, ki-5], Wi7[ki-175, ki-6], Wi8[ki-176, ki-7], Wi9[ki-177, ki-8], Wi10[ki-168, ki+1] и Wi11[ki-179, ki+3] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-172, ki-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-173, ki-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[ki-174, ki-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[ki-175, ki-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[ki-176, ki-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[ki-177, ki-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[ki-168, ki+1] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[ki-179, ki+3] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда определено, что, по меньшей мере, часть данных в окне Wi11 не удовлетворяет заранее заданному условию C11, 1 байт пропускается от точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Когда, по меньшей мере, часть данных в любом окне из 10 окон Wi1, Wi2, Wi3, Wi4, Wi5, Wi6, Wi7, Wi8, Wi9 и Wi10 не удовлетворяет соответствующему заранее заданному условию, например, Wi4[ki-172, ki-3], показанное на фиг. 28, N байтов пропускается от точки ki в направлении поиска точки деления потока данных, где N байтов не больше ‖B4‖+maxx(‖Ax‖). В варианте реализации, показанном на фиг. 28, число N пропущенных байтов не превышает 182 байтов, и в этом варианте осуществления, N=6, для получения новой точки потенциального деления. Для отличения от точки потенциального деления ki, новая точка потенциального деления представлена здесь как kj. Согласно правилу, заранее заданному на сервере 103 дедупликации в варианте реализации, показанном на фиг. 27, окна, определенные для точки потенциального деления kj, представляют собой Wj1[kj-169, kj], Wj2[kj-170, kj-1], Wj3[kj-171, kj-2], Wj4[kj-172, kj-3], Wj5[kj-173, kj-4], Wj6[kj-174, kj-5], Wj7[kj-175, kj-6], Wj8[kj-176, kj-7], Wj9[kj-177, kj-8], Wj10[kj-168, kj+1] и Wj11[kj-179, kj+3] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-169, kj] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-171, kj-2] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-172, kj-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-173, kj-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-174, kj-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-175, kj-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-176, kj-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-177, kj-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-168, kj+1] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-179, kj+3] заранее заданному условию C11. Конечно, в этом варианте осуществления настоящего изобретения, правило также выполняется, когда производится определение, является ли точка потенциального деления ka точкой деления потока данных, конкретная реализация повторно не описана, и можно обратиться к описанию определения точки потенциального деления ki. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kj является точкой деления потока данных, и данные между kj и ka образуют 1 фрагмент данных. При этом, минимальный фрагмент размером 4 кбайт пропускается таким же, образом как для ka для получения следующей точки потенциального деления, и, согласно правилу, заранее заданному на сервере 103 дедупликации, производится определение, является ли следующая точка потенциального деления точкой деления потока данных. Когда определено, что точка потенциального деления kj не является точкой деления потока данных, следующая точка потенциального деления получается таким же, образом как для ki, и производится определение, согласно правилу, заранее заданному на сервере 103 дедупликации, и вышеупомянутому способу, является ли следующая точка потенциального деления точкой деления потока данных. Когда не найдено ни одной точки деления потока данных по прохождении максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления.

[0176] На основании поиска точки деления потока данных, показанного на фиг. 3, в варианте реализации, показанном на фиг. 29, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение 11 окон Wx[px-Ax, px+Bx] и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], где x указывает последовательные натуральные числа от 1 до 11 по отдельности, где вероятность того, что, по меньшей мере, часть данных в окне Wx[px-Ax, px+Bx] удовлетворяет заранее заданному условию, равна 1/2. A1=169, B1=0; A2=171, B2=-2; A3=173, B3=-4; A4=175, B4=-6; A5=177, B5=-8; A6=179, B6=-10; A7=181, B7=-12; A8=183, B8=-14; A9=185, B9=-16; A10=187, B10=-18; A11=189, B11=-20. C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11, и 11 окон представляют собой W1[k-169, k], W2[k-171, k-2], W3[k-173, k-4], W4[k-175, k-6], W5[k-177, k-8], W6[k-179, k-10], W7[k-181, k-12], W8[k-183, k-14], W9[k-185, k-16], W10[k-187, k-18], и W11[k-189, k-20] по отдельности. ka является точкой деления потока данных, и направление поиска точки деления потока данных, показанное на фиг. 29, является направлением слева направо. После пропуска минимального фрагмента данных размером 4 кбайт от точки деления потока данных ka, концевая позиция минимального фрагмента данных длиной 4 кбайт служит следующей точкой потенциального деления ki, и точка pix определяется для точки потенциального деления ki. В этом варианте осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, x указывает последовательные натуральные числа от 1 до 11 по отдельности. В варианте реализации, показанном на фиг. 29, согласно заранее заданному правилу, 11 окон, определенные для точки потенциального деления ki, представляют собой Wi1[ki-169, ki], Wi2[ki-171, ki-2], Wi3[ki-173, ki-4], Wi4[ki-175, ki-6], Wi5[ki-177, ki-8], Wi6[ki-179, ki-10], Wi7[ki-181, ki-12], Wi8[ki-183, ki-14], Wi9[ki-185, ki-16], Wi10[ki-187, ki-18] и Wi11[ki-189, ki-20] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-171, ki-2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-173, ki-4] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-175, ki-6] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-177, ki-8] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[ki-179, ki-10] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[ki-181, ki-12] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[ki-183, ki-14] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[ki-185, ki-16] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[ki-187, ki-18] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[ki-189, ki-20] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wi1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wi2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wi3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wi4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wi5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wi6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wi7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wi8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wi9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wi10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wi11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления ki является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из 11 окон не удовлетворяет соответствующему заранее заданному условию, например, как показано на фиг. 30, по меньшей мере, часть данных в Wi4[ki-175, ki-6] не удовлетворяет заранее заданному условию C4, выбирается следующая точка потенциального деления. Для отличения от точки потенциального деления ki, следующая точка потенциального деления представлена здесь как kj, где kj располагается справа от ki, и расстояние между kj и ki равно 1 байту. Как показано на фиг. 30, согласно правилу, заранее заданному на сервере 103 дедупликации, для точки потенциального деления kj, 11 окон определяются и являются Wj1[kj-169, kj], Wj2[kj-171, kj-2], Wj3[kj-173, kj-4], Wj4[kj-175, kj-6], Wj5[kj-177, kj-8], Wj6[kj-179, kj-10], Wj7[kj-181, kj-12], Wj8[kj-183, kj-14], Wj9[kj-185, kj-16], Wj10[kj-187, kj-18] и Wj11[kj-189, kj-20] по отдельности, где C1=C2=C3=C4=C5=C6=C7=C8=C9=C10=C11. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-169, kj] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-171, kj-2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-173, kj-4] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-175, kj-6] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-177, kj-8] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-179, kj-10] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-181, kj-12] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-183, kj-14] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-185, kj-16] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-187, kj-18] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-189, kj-20] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wj1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wj2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wj3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wj4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wj5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wj6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wj7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wj8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wj9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wj10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wj11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kj является точкой деления потока данных. Когда определено, что, по меньшей мере, часть данных в любом окне из окон Wj1, Wj2, Wj3, Wj4, Wj5, Wj6, Wj7, Wj8, Wj9, Wj10 и Wj11 не удовлетворяет заранее заданному условию, например, как показано на фиг. 31, когда, по меньшей мере, часть данных в Wj3[kj-173, kj-4] не удовлетворяет заранее заданному условию C3, kj располагается справа от ki, и N байтов пропускается от ki в направлении поиска точки деления потока данных, где N байтов не больше ‖B4‖+maxx(‖Ax‖). В варианте реализации, показанном на фиг. 28, количество N байтов не превышает 195 байтов, и в этом варианте осуществления, N=15, для получения следующей точки потенциального деления. Для отличения от точек потенциального деления ki и kj, следующая точка потенциального деления представлена как kl. Согласно правилу, заранее заданному для сервера 103 дедупликации в варианте реализации на фиг. 29, для точки потенциального деления kl, 11 окон определяются и являются Wl1[kl-169, kl], Wl2[kl-171, kl-2], Wl3[kl-173, kl-4], Wl4[kl-175, kl-6], Wl5[kl-177, kl-8], Wl6[kl-179, kl-10], Wl7[kl-181, kl-12], Wl8[kl-183, kl-14], Wl9[kl-185, kl-16], Wl10[kl-187, kl-18] и Wl11[kl-189, kl-20] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl1[kl-169, kl] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl2[kl-171, kl-2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl3[kl-173, kl-4] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl4[kl-175, kl-6] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl5[kl-177, kl-8] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl6[kl-179, kl-10] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl7[kl-181, kl-12] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl8[kl-183, kl-14] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl9[kl-185, kl-16] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl10[kl-187, kl-18] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wl11[kl-189, kl-20] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wl1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wl2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wl3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wl4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wl5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wl6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wl7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wl8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wl9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wl10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wl11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления kl является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне из окон Wl1, Wl2, Wl3, Wl4, Wl5, Wl6, Wl7, Wl8, Wl9, Wl10 и Wl11 не удовлетворяет заранее заданному условию, выбирается следующая точка потенциального деления. Для отличения от точек потенциального деления ki, kj и kl, следующая точка потенциального деления представлена как km, где km располагается справа от kl, и расстояние между km и kl равно 1 байту. Согласно правилу, заранее заданному на сервере 103 дедупликации в варианте осуществления, показанном на фиг. 29, 11 окон, определенные для точки потенциального деления km, представляют собой Wm1[km-169, km], Wm2[km-171, km-2], Wm3[km-173, km-4], Wm4[km-175, km-6], Wm5[km-177, km-8], Wm6[km-179, km-10], Wm7[km-181, km-12], Wm8[km-183, km-14], Wm9[km-185, km-16], Wm10[km-187, km-18], и Wm11[km-189, km-20] по отдельности. Производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm1[km-169, km] заранее заданному условию C1, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm2[km-171, km-2] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm3[km-173, km-4] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm4[km-175, km-6] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm5[km-177, km-8] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm6[km-179, km-10] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm7[km-181, km-12] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm8[km-183, km-14] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm9[km-185, km-16] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm10[km-187, km-18] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wm11[km-189, km-20] заранее заданному условию C11. Когда определено, что, по меньшей мере, часть данных в окне Wm1 удовлетворяет заранее заданному условию C1, по меньшей мере, часть данных в окне Wm2 удовлетворяет заранее заданному условию C2, по меньшей мере, часть данных в окне Wm3 удовлетворяет заранее заданному условию C3, по меньшей мере, часть данных в окне Wm4 удовлетворяет заранее заданному условию C4, по меньшей мере, часть данных в окне Wm5 удовлетворяет заранее заданному условию C5, по меньшей мере, часть данных в окне Wm6 удовлетворяет заранее заданному условию C6, по меньшей мере, часть данных в окне Wm7 удовлетворяет заранее заданному условию C7, по меньшей мере, часть данных в окне Wm8 удовлетворяет заранее заданному условию C8, по меньшей мере, часть данных в окне Wm9 удовлетворяет заранее заданному условию C9, по меньшей мере, часть данных в окне Wm10 удовлетворяет заранее заданному условию C10, и, по меньшей мере, часть данных в окне Wm11 удовлетворяет заранее заданному условию C11, текущая точка потенциального деления km является точкой деления потока данных. Когда, по меньшей мере, часть данных в любом окне не удовлетворяет заранее заданному условию, пропуск выполняется согласно вышеописанному решению для получения следующей точки потенциального деления, и производится определение, является ли следующая точка потенциального деления точкой деления потока данных.

[0177] Вариант осуществления настоящего изобретения предусматривает способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz. В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, и в порядке примера используется вариант реализации, показанный на фиг. 21. Согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wi1[ki-169, ki] определяется для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. Как показано на фиг. 32, Wi1 представляет окно Wi1[ki-169, ki], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. На фиг. 32, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных повторно используются 51 раз для получения всего 255 байтов, для повышения случайности. Из них каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в 255 байтах, и, таким образом, биты, соответствующие 255 байтам, можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, и матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих 255 байтам, и может быть представлена как: . Большое количество случайных чисел выбирается для формирования матрицы. Будучи сформована, матрица, образованная случайными числами, остается неизменный. Например, 255*8 случайных чисел выбирается из случайных чисел, которые подчиняются конкретному распределению (здесь в порядке примера используется нормальное распределение) для формирования матрицы R: , где случайные числа m-й строки матрицы Va и m-й строки матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8. Sa1, Sa2, ..., и Sa255 получаются согласно способу, и подсчитывается количество k значений, удовлетворяющих конкретному условию (здесь в порядке примера используется превышение 0) среди Sa1, Sa2, ..., и Sa255. Поскольку матрица R подчиняется нормальному распределению, Sam все еще подчиняется нормальному распределению, как и матрица R. Согласно теории вероятностей, вероятность того, что случайное число в нормальном распределении больше 0, равна 1/2; вероятность того, что каждое значение из Sa1, Sa2, ..., и Sa255 больше 0, равна 1/2, и, таким образом, k подчиняется биномиальному распределению: . Согласно результату подсчета, производится определение, является ли количество k значений, больших 0, из Sa1, Sa2, ..., и Sa255 четным числом; вероятность того, что случайное число в биномиальном распределении является четным числом, равна 1/2, и, таким образом, k удовлетворяет условию с вероятностью 1/2. Когда k является четным числом, это указывает, что, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1. Когда k является нечетным числом, это указывает, что, по меньшей мере, часть данных в W1[ki-169, ki] не удовлетворяет заранее заданному условию C1. C1 здесь означает, что полученное вышеупомянутым образом количество k значений, больших 0, из Sa1, Sa2, ..., и Sa255, является четным числом. В варианте реализации, показанном на фиг. 21, для Wi1[ki-169, ki], Wi2[ki-170, ki-1], Wi3[ki-171, ki-2], Wi4[ki-172, ki-3], Wi5[ki-173, ki-4], Wi6[ki-174, ki-5], Wi7[ki-175, ki-6], Wi8[ki-176, ki-7], Wi9[ki-177, ki-8], Wi10[ki-178, ki-9] и Wi11[ki-179, ki-10], окна одинаковы по размеру, то есть все окна имеют размер 169 байтов, и при этом, способы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию, также одинаковы. Подробности можно найти в вышеприведенном описании определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, как показано на фиг. 32, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[ki-170, ki-1] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Из них каждый байт образован 8 битами, которые обозначены как bm,1, ..., и bm,8, представляющими биты с 1-го по 8-й m-го байта в 255 байтах, и, таким образом, биты, соответствующие 255 байтам, можно представить как: , где, когда bm,n=1, Vbm,n=1, и когда bm,n=0, Vbm,n=-1, где bm,n представляет любой из bm,1, ..., и bm,8, и матрица Vb получается согласно соотношению преобразования между bm,n и Vbm,n из битов, соответствующих 255 байтам, и может быть представлена как: . Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[ki-170, ki-1] заранее заданному условию; таким образом, используется матрица R: , и случайные числа m-й строки матрицы Vb и m-й строки матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sbm =Vbm,1*hm,1+Vbm,2*hm,2+...+Vbm,8*hm,8. Sb1, Sb2, ..., и Sb255 получаются согласно способу, и подсчитывается количество k значений, удовлетворяющих конкретному условию (здесь в порядке примера используется превышение 0) среди Sb1, Sb2, ..., и Sb255. Поскольку матрица R подчиняется нормальному распределению, Sbm все еще подчиняется нормальному распределению, как и матрица R. Согласно теории вероятностей, вероятность того, что случайное число в нормальном распределении больше 0, равна 1/2; вероятность того, что каждое значение из Sb1, Sb2, ..., и Sb255 больше 0, равна 1/2, и, таким образом, k подчиняется биномиальному распределению: . Согласно результату подсчета, производится определение, является ли количество k значений, больших 0, из Sb1, Sb2, ..., и Sb255 четным числом; вероятность того, что случайное число в биномиальном распределении является четным числом, равна 1/2, и, таким образом, k удовлетворяет условию с вероятностью 1/2. Когда k является четным числом, это указывает, что, по меньшей мере, часть данных в Wi2[ki-170, ki-1] удовлетворяет заранее заданному условию C2. Когда k является нечетным числом, это указывает, что, по меньшей мере, часть данных в Wi2[ki-170, ki-1] не удовлетворяет заранее заданному условию C2. C2 здесь означает, что полученное вышеупомянутым образом количество k значений, больших 0, из Sb1, Sb2, ..., и Sb255 является четным числом. В варианте реализации, показанном на фиг. 21, по меньшей мере, часть данных в Wi2[ki-170, ki-1] удовлетворяет заранее заданному условию C2.

[0178] Таким образом, как показано на фиг. 32, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi3[ki-171, ki-2] заранее заданному условию C3, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Затем способ определения, удовлетворяет ли, по меньшей мере, часть данных в окнах Wi1[ki-169, ki] и Wi2[ki-170, ki-1] заранее заданному условию, используется для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3. В варианте реализации, показанном на фиг. 21, по меньшей мере, часть данных в Wi3[ki-171, ki-2] удовлетворяет заранее заданному условию. Как показано на фиг. 32, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi4[ki-172, ki-3] заранее заданному условию C4, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Затем способ определения, удовлетворяет ли, по меньшей мере, часть данных в окнах Wi1[ki-169, ki], Wi2[ki-170, ki-1] и Wi3[ki-171, ki-2] заранее заданному условию, используется для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-172, ki-3] заранее заданному условию C4. В варианте реализации, показанном на фиг. 21, по меньшей мере, часть данных в Wi4[ki-172, ki-3] удовлетворяет заранее заданному условию C4. Как показано на фиг. 32, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi5[ki-173, ki-4] заранее заданному условию C5, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Затем способ определения, удовлетворяет ли, по меньшей мере, часть данных в окнах Wi1[ki-169, ki], Wi2[ki-170, ki-1], Wi3[ki-171, ki-2] и Wi4[ki-172, ki-3] заранее заданному условию, используется для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-173, ki-4] заранее заданному условию C5. В варианте реализации, показанном на фиг. 21, по меньшей мере, часть данных в Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5.

[0179] Когда, по меньшей мере, часть данных в Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5, 7 байтов пропускаются от точки pi5 в направлении поиска точки деления потока данных, и следующая точка потенциального деления kj получается в концевой позиции 7-го байта. Как показано на фиг. 22, согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wj1[kj-169, kj] определяется для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[kj-169, kj] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, как показано на фиг. 33, Wj1 представляет окно, и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию C1. На фиг. 33, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных повторно используются 51 раз для получения всего 255 байтов, для повышения случайности. Из них каждый байт образован 8 битами, которые обозначены как am,1', ..., и am,8', представляющими биты с 1-го по 8-й m-го байта в 255 байтах, и, таким образом, биты, соответствующие 255 байтам, можно представить как: , где, когда am,n'=1, Vam,n'=1, и когда am,n'=0, Vam,n'=-1, где am,n' представляет любой из am,1', ..., и am,8', и матрица Va' получается согласно соотношению преобразования между am,n' и Vam,n' из битов, соответствующих 255 байтам, и может быть представлена как: . Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию. Таким образом, используется матрица R: , и случайные числа m-й строки матрицы Va' и m-й строки матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam'=Vam,1'*hm,1+Vam,2'*hm,2+...+Vam,8'*hm,8. Sa1', Sa2', ..., и Sa255' получаются согласно способу, и подсчитывается количество k значений, удовлетворяющих конкретному условию (здесь в порядке примера используется превышение 0) среди Sa1', Sa2', ..., и Sa255'. Поскольку матрица R подчиняется нормальному распределению, Sam' по прежнему подчиняется нормальному распределению, как и матрица R. Согласно теории вероятностей, вероятность того, что случайное число в нормальном распределении больше 0, равна 1/2; вероятность того, что каждое значение из Sa1', Sa2', ..., и Sa255' больше 0, равна 1/2, и, таким образом, k подчиняется биномиальному распределению: . Согласно результату подсчета, производится определение, является ли количество k значений, больших 0, из Sa1', Sa2', ..., и Sa255' четным числом; вероятность того, что случайное число в биномиальном распределении является четным числом, равна 1/2, и, таким образом, k удовлетворяет условию с вероятностью 1/2. Когда k является четным числом, это указывает, что, по меньшей мере, часть данных в Wj1[kj-169, kj] удовлетворяет заранее заданному условию C1. Когда k является нечетным числом, это указывает, что, по меньшей мере, часть данных в Wj1[kj-169, kj] не удовлетворяет заранее заданному условию C1.

[0180] Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C2. Таким образом, как показано на фиг. 33, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[kj-170, kj-1] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. Выбранные 5 байтов данных используются повторно 51 раз для получения всего 255 байтов, для повышения случайности. Из них каждый байт образован 8 битами, которые обозначены как bm,1', ..., и bm,8', представляющими биты с 1-го по 8-й m-го байта в 255 байтах, и, таким образом, биты, соответствующие 255 байтам, можно представить как: , где, когда bm,n'=1, Vbm,n'=1, и когда bm,n'=0, Vbm,n'=-1, где bm,n' представляет любой из bm,1', ..., и bm,8', и матрица Vb' получается согласно соотношению преобразования между bm,n' и Vbm,n' из битов, соответствующих 255 байтам, и может быть представлена как: . Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[ki-170, ki-1] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C1, и, таким образом, по прежнему используется матрица R: . Случайные числа m-й строки матрицы Vb' и m-й строки матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sbm'=Vbm,1'*hm,1+Vbm,2'*hm,2+...+Vbm,8'*hm,8. Sb1', Sb2', ..., и Sb255' получаются согласно способу, и подсчитывается количество k значений, удовлетворяющих конкретному условию (здесь в порядке примера используется превышение 0) среди Sb1', Sb2', ..., и Sb255'. Поскольку матрица R подчиняется нормальному распределению, Sbm' все еще подчиняется нормальному распределению, как и матрица R. Согласно теории вероятностей, вероятность того, что случайное число в нормальном распределении больше 0, равна 1/2; вероятность того, что каждое значение из Sb1', Sb2', ..., и Sb255' больше 0, равна 1/2, и, таким образом, k подчиняется биномиальному распределению: . Согласно результату подсчета, производится определение, является ли количество k значений, больших 0, из Sb1', Sb2', ..., и Sb255' четным числом; вероятность того, что случайное число в биномиальном распределении является четным числом, равна 1/2, и, таким образом, k удовлетворяет условию с вероятностью 1/2. Когда k является четным числом, это указывает, что, по меньшей мере, часть данных в Wj2[kj-170, kj-1] удовлетворяет заранее заданному условию C2. Когда k является нечетным числом, это указывает, что, по меньшей мере, часть данных в Wj2[kj-170, kj-1] не удовлетворяет заранее заданному условию C2. Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-171, kj-2] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-172, kj-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-173, kj-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-174, kj-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-175, kj-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-176, kj-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-177, kj-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-178, kj-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-179, kj-10] заранее заданному условию C11, которые здесь повторно не описаны.

[0181] В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz. Вариант реализации, показанный на фиг. 21, по прежнему используется в порядке примера. Согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wi1[ki-169, ki] определяется для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. Как показано на фиг. 32, Wi1 представляет окно Wi1[ki-169, ki], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. На фиг. 32, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта "". В одном варианте реализации, хэш-функция используется для вычисления выбранных 5 байтов, и значения, полученные посредством вычисления с использованием хэш-функции, подчиняются фиксированному и равномерному распределению. Если значение, полученное посредством вычисления с использованием хэш-функции, является четным числом, принимается решение, что, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1. Таким образом, C1 представляет, что значение, полученное вышеупомянутым образом и посредством вычисления с использованием хэш-функции, является четным числом. Таким образом, вероятность того, что, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию, равна 1/2. В варианте реализации, показанном на фиг. 21, производится определение, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-172, ki-3] заранее заданному условию C4, и удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-173, ki-4] заранее заданному условию C5. Для конкретной реализации, можно обратиться к описанию способа определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1 в варианте реализации, показанном на фиг. 21, который здесь повторно не описан.

[0182] Когда, по меньшей мере, часть данных в Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5, 7 байтов пропускаются от точки потенциального деления ki в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 7-го байта. Как показано на фиг. 22, согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wj1[kj-169, kj] определяется для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[kj-169, kj] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, как показано на фиг. 33, Wj1 представляет окно Wj1[kj-169, kj], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-169, kj] заранее заданному условию C1. На фиг. 33, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта "". 5 байтов, выбранные из окна Wj1[kj-169, kj], вычисляются с использованием хэш-функции. Если полученное значение является четным числом, по меньшей мере, часть данных в Wj1[kj-169, kj] удовлетворяет заранее заданному условию C1. На фиг. 33, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C2. Таким образом, как показано на фиг. 33, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[kj-170, kj-1] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта "". Выбранные 5 байтов вычисляются с использованием хэш-функции. Если полученное значение является четным числом, по меньшей мере, часть данных в Wj2[kj-170, kj-1] удовлетворяет заранее заданному условию C2. На фиг. 33, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-171, kj-2] заранее заданному условию C3. Таким образом, как показано на фиг. 33, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj3[kj-171, kj-2] заранее заданному условию C3, и между двумя соседними выбранными байтами существует 42 байта "". Выбранные 5 байтов вычисляются с использованием хэш-функции. Если полученное значение является четным числом, по меньшей мере, часть данных в Wj3[kj-171, kj-2] удовлетворяет заранее заданному условию C3. На фиг. 33, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi4[kj-172, kj-3] заранее заданному условию C4, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi4[ki-172, ki-3] заранее заданному условию C4. Таким образом, как показано на фиг. 33, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj4[kj-172, kj-3] заранее заданному условию C4, и между двумя соседними выбранными байтами существует 42 байта "". Выбранные 5 байтов вычисляются с использованием хэш-функции. Если полученное значение является четным числом, по меньшей мере, часть данных в Wj4[kj-172, kj-3] удовлетворяет заранее заданному условию C4. Согласно вышеупомянутому способу, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-173, kj-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-174, kj-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-175, kj-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-176, kj-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-177, kj-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-178, kj-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-179, kj-10] заранее заданному условию C11, которые здесь повторно не описаны.

[0183] В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz. Вариант реализации, показанный на фиг. 21, используется в порядке примера. Согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wi1[ki-169, ki] определяется для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. Как показано на фиг. 32, Wi1 представляет окно Wi1[ki-169, ki], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. На фиг. 32, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуются в десятичные значения, которые представлены как a1, a2, a3, a4 и a5 соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое ar из a1, a2, a3, a4 и a5 удовлетворяет условию 0≤ar≤255. a1, a2, a3, a4 и a5 образуют матрицу 1*5. 256*5 случайных чисел выбираются из случайных чисел, которые подчиняются биномиальному распределению, для формирования матрицы R, которая представлена как: .

[0184] В матрице R осуществляется поиск соответствующего значения согласно значению a1 и столбцу, в котором располагается a1. Например, если a1=36, и a1 располагается в 1-м столбце, осуществляется поиск значения, соответствующего h36,1. В матрице R осуществляется поиск соответствующего значения согласно значению a2 и столбцу, в котором располагается a2. Например, если a2=48, и a2 располагается во 2-м столбце, осуществляется поиск значения, соответствующего h48,2. В матрице R осуществляется поиск соответствующего значения согласно значению a3 и столбцу, в котором располагается a3. Например, если a3=26, и a3 располагается в 3-м столбце, осуществляется поиск значения, соответствующего h26,3. В матрице R осуществляется поиск соответствующего значения согласно значению a4 и столбцу, в котором располагается a4. Например, если a4=26, и a4 располагается в 4-м столбце, осуществляется поиск значения, соответствующего h26,4. В матрице R осуществляется поиск соответствующего значения согласно значению a5 и столбцу, в котором располагается a5. Например, если a5=88, и a5 располагается в 5-м столбце, осуществляется поиск значения, соответствующего h88,5. S1=h36,1+h48,2+h26,3+h26,4+h88,5, и поскольку матрица R подчиняется биномиальному распределению, S1 также подчиняется биномиальному распределению. Когда S1 является четным числом, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1; Когда S1 является нечетным числом, по меньшей мере, часть данных в Wi1[ki-169, ki] не удовлетворяет заранее заданному условию C1. Вероятность того, что S1 является четным числом, равна 1/2, и C1 представляет, что S1, которое получено посредством вычисления вышеупомянутым образом является четным числом. В варианте осуществления, показанном на фиг. 21, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1. Как показано на фиг. 32, "" представляет 1 байт, по отдельности выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[ki-170, ki-1] заранее заданному условию C2. На фиг. 32, выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 преобразуются в десятичные значения, которые представлены как b1, b2, b3, b4 и b5 соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любой br из b1, b2, b3, b4 и b5 удовлетворяет условию 0≤br≤255. b1, b2, b3, b4 и b5 образуют матрицу 1*5. В этом варианте реализации, способы определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1 и Wi2 заранее заданному условию, одинаковы, и, таким образом, по прежнему используется матрица R. В матрице R осуществляется поиск соответствующего значения согласно значению b1 и столбцу, в котором располагается b1. Например, если b1=66, и b1 располагается в 1-м столбце, осуществляется поиск значения, соответствующего h66,1. В матрице R осуществляется поиск соответствующего значения согласно значению b2 и столбцу, в котором располагается b2. Например, если b2=48, и b2 располагается во 2-м столбце, осуществляется поиск значения, соответствующего h48,2. В матрице R осуществляется поиск соответствующего значения согласно значению b3 и столбцу, в котором располагается b3. Например, если b3=99, и b3 располагается в 3-м столбце, осуществляется поиск значения, соответствующего h99,3. В матрице R осуществляется поиск соответствующего значения согласно значению b4 и столбцу, в котором располагается b4. Например, если b4=26, и b4 располагается в 4-м столбце, осуществляется поиск значения, соответствующего h26,4. В матрице R осуществляется поиск соответствующего значения согласно значению b5 и столбцу, в котором располагается b5. Например, если b5=90, и b5 располагается в 5-м столбце, осуществляется поиск значения, соответствующего h90,5. S2=h66,1+h48,2+h99,3+h26,4+h90,5, и поскольку матрица R подчиняется биномиальному распределению, S2 также подчиняется биномиальному распределению. Когда S2 является четным числом, по меньшей мере, часть данных в Wi2[ki-170, ki-1] удовлетворяет заранее заданному условию C2; Когда S2 является нечетным числом, по меньшей мере, часть данных в Wi2[ki-170, ki-1] не удовлетворяет заранее заданному условию C2. Вероятность того, что S2 является четным числом, равна 1/2. В варианте осуществления, показанном на фиг. 21, по меньшей мере, часть данных в Wi2[ki-170, ki-1] удовлетворяет заранее заданному условию C2. С использованием того же правила, по отдельности, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-172, ki-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-173, ki-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[ki-174, ki-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[ki-175, ki-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[ki-176, ki-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[ki-177, ki-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[ki-178, ki-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[ki-179, ki-10] заранее заданному условию C11. В варианте реализации, показанном на фиг. 21, по меньшей мере, часть данных в Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5, 7 байтов пропускаются от точки потенциального деления ki в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 7-го байта. Как показано на фиг. 22, согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wj1[kj-169, kj] определяется для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[kj-169, kj] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, как показано на фиг. 33, Wj1 представляет окно Wj1[kj-169, kj], и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-169, kj] заранее заданному условию C1. На фиг. 33, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуются в десятичные значения, которые представлены как a1', a2', a3', a4' и a5' соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое ar' из a1', a2', a3', a4' и a5' удовлетворяет условию 0≤ar'≤255. a1', a2', a3', a4' и a5' образуют матрицу 1*5. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[kj-169, kj] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, по прежнему используется матрица R, и представлена как: .

[0185] В матрице R осуществляется поиск соответствующего значения согласно значению a1' и столбцу, в котором располагается a1'. Например, если a1'=16, и a1' располагается в 1-м столбце, осуществляется поиск значения, соответствующего h16,1. В матрице R осуществляется поиск соответствующего значения согласно значению a2' и столбцу, в котором располагается a2'. Например, если a2'=98, и a2' располагается во 2-м столбце, осуществляется поиск значения, соответствующего h98,2. В матрице R осуществляется поиск соответствующего значения согласно значению a3' и столбцу, в котором располагается a3'. Например, если a3'=56, и a3' располагается в 3-м столбце, осуществляется поиск значения, соответствующего h56,3. В матрице R осуществляется поиск соответствующего значения согласно значению a4' и столбцу, в котором располагается a4'. Например, если a4'=36, и a4' располагается в 4-м столбце, осуществляется поиск значения, соответствующего h36,4. В матрице R осуществляется поиск соответствующего значения согласно значению a5' и столбцу, в котором располагается a5'. Например, если a5'=99, и a5' располагается в 5-м столбце, осуществляется поиск значения, соответствующего h99,5. S1'=h16,1+h98,2+h56,3+h36,4+h99,5, и поскольку матрица R подчиняется биномиальному распределению, S1' также подчиняется биномиальному распределению. Когда S1' является четным числом, по меньшей мере, часть данных в Wj1[kj-169, kj] удовлетворяет заранее заданному условию C1; когда S1' является нечетным числом, по меньшей мере, часть данных в Wj1[kj-169, kj] не удовлетворяет заранее заданному условию C1. Вероятность того, что S1' является четным числом, равна 1/2.

[0186] Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C2. Таким образом, как показано на фиг. 33, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[kj-170, kj-1] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. Выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 преобразуются в десятичные значения, которые представлены как b1', b2', b3', b4' и b5' соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое br' из b1', b2', b3', b4' и b5' удовлетворяет условию 0≤br'≤255. b1', b2', b3', b4' и b5' образуют матрицу 1*5. Матрица R идентична используемой при осуществлении определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[ki-170, ki-1] заранее заданному условию C2. В матрице R осуществляется поиск соответствующего значения согласно значению b1' и столбцу, в котором располагается b1'. Например, если b1'=210, и b1' располагается в 1-м столбце, осуществляется поиск значения, соответствующего h210,1. В матрице R осуществляется поиск соответствующего значения согласно значению b2' и столбцу, в котором располагается b2'. Например, если b2'=156, и b2' располагается во 2-м столбце, осуществляется поиск значения, соответствующего h156,2. В матрице R осуществляется поиск соответствующего значения согласно значению b3' и столбцу, в котором располагается b3'. Например, если b3'=144, и b3' располагается в 3-м столбце, осуществляется поиск значения, соответствующего h144,3. В матрице R осуществляется поиск соответствующего значения согласно значению b4' и столбцу, в котором располагается b4'. Например, если b4'=60, и b4' располагается в 4-м столбце, осуществляется поиск значения, соответствующего h60,4. В матрице R осуществляется поиск соответствующего значения согласно значению b5' и столбцу, в котором располагается b5'. Например, если b5'=90, и b5' располагается в 5-м столбце, осуществляется поиск значения, соответствующего h90,5. S2'=h210,1+h156,2+h144,3+h60,4+h90,5. Идентично условию определения S2, когда S2' является четным числом, по меньшей мере, часть данных в Wj2[kj-170, kj-1] удовлетворяет заранее заданному условию C2, и когда S2' является нечетным числом, по меньшей мере, часть данных в Wj2[kj-170, kj-1] не удовлетворяет заранее заданному условию C2. Вероятность того, что S2' является четным числом, равна 1/2.

[0187] Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-171, kj-2] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-172, kj-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-173, kj-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-174, kj-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-175, kj-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-176, kj-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-177, kj-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-178, kj-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-179, kj-10] заранее заданному условию C11, которые здесь повторно не описаны.

[0188] В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz. Вариант реализации, показанный на фиг. 21, используется в порядке примера. Согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wi1[ki-169, ki] определяется для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. Как показано на фиг. 32, Wi1 представляет окно Wi1[ki-169, ki], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. На фиг. 32, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуются в десятичные значения, которые представлены как a1, a2, a3, a4 и a5 соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любой as из a1, a2, a3, a4 и a5 удовлетворяет условию 0≤as≤255. a1, a2, a3, a4 и a5 образуют матрицу 1*5. 256*5 случайных чисел выбираются из случайных чисел, которые подчиняются биномиальному распределению, для формирования матрицы R, которая представлена как: . 256*5 случайных чисел выбираются из случайных чисел, которые подчиняются биномиальному распределению, для формирования матрицы G, которая представлена как: .

[0189] Согласно значению a1 и столбцу, в котором располагается a1, например, a1=36, и a1 располагается в 1-м столбце, в матрице R осуществляется поиск значения, соответствующего h36,1, и в матрице G осуществляется поиск значения, соответствующего g36,1. Согласно значению a2 и столбцу, в котором располагается a2, например, a2=48, и a2 располагается во 2-м столбце, в матрице R осуществляется поиск значения, соответствующего h48,2, и в матрице G осуществляется поиск значения, соответствующего g48,2. Согласно значению a3 и столбцу, в котором располагается a3, например, a3=26, и a3 располагается в 3-м столбце, в матрице R осуществляется поиск значения, соответствующего h26,3, и в матрице G осуществляется поиск значения, соответствующего g26,3. Согласно значению a4 и столбцу, в котором располагается a4, например, a4=26, и a4 располагается в 4-м столбце, в матрице R осуществляется поиск значения, соответствующего h26,4, и в матрице G осуществляется поиск значения, соответствующего g26,4. Согласно значению a5 и столбцу, в котором располагается a5, например, a5=88, и a5 располагается в 5-м столбце, в матрице R осуществляется поиск значения, соответствующего h88,5, и в матрице G осуществляется поиск значения, соответствующего g88,5. S1h=h36,1+h48,2+h26,3+h26,4+h88,5, и поскольку матрица R подчиняется биномиальному распределению, S1h также подчиняется биномиальному распределению. S1g g36,1+g48,2+g26,3+g26,4+g88,5, и поскольку матрица G подчиняется биномиальному распределению, S1g также подчиняется биномиальному распределению. Когда одно из S1h и S1g является четным числом, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1; когда оба S1h и S1g являются нечетными числами, по меньшей мере, часть данных в Wi1[ki-169, ki] не удовлетворяет заранее заданному условию C1, и C1 указывает, что одно из S1h и S1g, полученных согласно вышеупомянутому способу, является четным числом. Поскольку оба S1h и S1g подчиняются биномиальному распределению, вероятность того, что S1h является четным числом, равна 1/2, вероятность того, что S1g является четным числом, равна 1/2, и вероятность того, что одно из S1h и S1g является четным числом, равна 1-1/4=3/4. Таким образом, вероятность того, что, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1, равна 3/4. В варианте осуществления, показанном на фиг. 21, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1. В варианте реализации, показанном на фиг. 21, для Wi1[ki-169, ki], Wi2[ki-170, ki-1], Wi3[ki-171, ki-2], Wi4[ki-172, ki-3], Wi5[ki-173, ki-4], Wi6[ki-174, ki-5], Wi7[ki-175, ki-6], Wi8[ki-176, ki-7], Wi9[ki-177, ki-8], Wi10[ki-178, ki-9] и Wi11[ki-179, ki-10], окна одинаковы по размеру, то есть все окна имеют размер 169 байтов, и при этом способы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию, также одинаковы. Подробности можно найти в вышеприведенном описании определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, как показано на фиг. 32, "" представляет 1 байт, по отдельности выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[ki-170, ki-1] заранее заданному условию C2. На фиг. 32, выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 преобразуются в десятичные значения, которые представлены как b1, b2, b3, b4 и b5 соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любой bs из b1, b2, b3, b4 и b5 удовлетворяет условию 0≤bs≤255. b1, b2, b3, b4 и b5 образуют матрицу 1*5. В этом варианте реализации, способы определения, удовлетворяет ли, по меньшей мере, часть данных в каждом окне заранее заданному условию, одинаковы, и, таким образом, по прежнему используются одни и те же матрицы R и G. Согласно значению b1 и столбцу, в котором располагается b1, например, b1=66, и b1 располагается в 1-м столбце, в матрице R осуществляется поиск значения, соответствующего h66,1, и в матрице G осуществляется поиск значения, соответствующего g66,1. Согласно значению b2 и столбцу, в котором располагается b2, например, b2=48, и b2 располагается во 2-м столбце, в матрице R осуществляется поиск значения, соответствующего h48,2, и в матрице G осуществляется поиск значения, соответствующего g48,2. Согласно значению b3 и столбцу, в котором располагается b3, например, b3=99, и b3 располагается в 3-м столбце, в матрице R осуществляется поиск значения, соответствующего h99,3, и в матрице G осуществляется поиск значения, соответствующего g99,3. Согласно значению b4 и столбцу, в котором располагается b4, например, b4=26, и b4 располагается в 4-м столбце, в матрице R осуществляется поиск значения, соответствующего h26,4, и в матрице G осуществляется поиск значения, соответствующего g26,4. Согласно значению b5 и столбцу, в котором располагается b5, например, b5=90, и b5 располагается в 5-м столбце, в матрице R осуществляется поиск значения, соответствующего h90,5, и в матрице G осуществляется поиск значения, соответствующего g90,5. g90,5=h66,1+h48,2+h99,3+h26,4+h90,5, и поскольку матрица R подчиняется биномиальному распределению, S2h также подчиняется биномиальному распределению. S2g=g66,1+g48,2+g99,3+g26,4+g90,5, и поскольку матрица G подчиняется биномиальному распределению, S2g также подчиняется биномиальному распределению. Когда одно из S2h и S2g является четным числом, по меньшей мере, часть данных в Wi2[ki-170, ki-1] удовлетворяет заранее заданному условию C2; когда оба S2h и S2g являются нечетными числами, по меньшей мере, часть данных в Wi2[ki-170, ki-1] не удовлетворяет заранее заданному условию C2. Вероятность того, что одно из S2h и S2g является четным числом, равно 3/4. В варианте осуществления, показанном на фиг. 21, по меньшей мере, часть данных в Wi2[ki-170, ki-1] удовлетворяет заранее заданному условию C2. С использованием того же правила, по отдельности, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-172, ki-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-173, ki-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[ki-174, ki-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[ki-175, ki-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[ki-176, ki-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[ki-177, ki-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[ki-178, ki-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[ki-179, ki-10] заранее заданному условию C11. В варианте реализации, показанном на фиг. 21, по меньшей мере, часть данных в Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5, 7 байтов пропускаются от точки потенциального деления ki в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 7-го байта. Как показано на фиг. 22, согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wj1[kj-169, kj] определяется для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[kj-169, kj] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, как показано на фиг. 33, Wj1 представляет окно Wj1[kj-169, kj], и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-169, kj] заранее заданному условию C1. На фиг. 33, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуются в десятичные значения, которые представлены как a1', a2', a3', a4' и a5' соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое as' из a1', a2', a3', a4' и a5' удовлетворяет условию 0≤as'≤255. a1', a2', a3', a4' и a5' образуют матрицу 1*5. Матрицы R и G, идентичные используемым при осуществлении определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1 используются, и представлены как: и соответственно.

[0190] Согласно значению a1' и столбцу, в котором располагается a1', например, a1'=16, и a1' располагается в 1-м столбце, в матрице R осуществляется поиск значения, соответствующего h16,1, и в матрице G осуществляется поиск значения, соответствующего g16,1. Согласно значению a2' и столбцу, в котором располагается a2', например, a2'=98, и a2' располагается во 2-м столбце, в матрице R осуществляется поиск значения, соответствующего h98,2, и в матрице G осуществляется поиск значения, соответствующего g98,2. Согласно значению a3' и столбцу, в котором располагается a3', например, a3'=56, и a3' располагается в 3-м столбце, в матрице R осуществляется поиск значения, соответствующего h56,3, и в матрице G осуществляется поиск значения, соответствующего g56,3. Согласно значению a4' и столбцу, в котором располагается a4', например, a4'=36, и a4' располагается в 4-м столбце, в матрице R осуществляется поиск значения, соответствующего h36,4, и в матрице G осуществляется поиск значения, соответствующего g36,4. Согласно значению a5' и столбцу, в котором располагается a5', например, a5'=99, и a5' располагается в 5-м столбце, в матрице R осуществляется поиск значения, соответствующего h99,5, и в матрице G осуществляется поиск значения, соответствующего g99,5. S1h'=h16,1+h98,2+h56,3+h36,4+h99,5, и поскольку матрица R подчиняется биномиальному распределению, S1h' также подчиняется биномиальному распределению. S1g'=g16,1+g98,2+g56,3+g36,4+g99,5, и поскольку матрица G подчиняется биномиальному распределению, S1g' также подчиняется биномиальному распределению. Когда одно из S1h' и S1g' является четным числом, по меньшей мере, часть данных в Wj1[kj-169, kj] удовлетворяет заранее заданному условию C1; когда оба S1h' и S1g' являются нечетными числами, по меньшей мере, часть данных в Wj1[kj-169, kj] не удовлетворяет заранее заданному условию C1. Вероятность того, что один из S1h' и S1g' является четным числом, равна 3/4.

[0191] Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C2. Таким образом, как показано на фиг. 33, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[kj-170, kj-1] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. На фиг. 33, выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 преобразуются в десятичные значения, которые представлены как b1', b2', b3', b4' и b5' соответственно. Поскольку 1 байт образован 8 битами, каждый байт "" служит значением, и любое bs' из b1', b2', b3', b4' и b5' удовлетворяет условию 0≤bs'≤255. b1', b2', b3', b4' и b5' образуют матрицу 1*5. Матрицы R и G, идентичные используемым при осуществлении определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[ki-170, ki-1] заранее заданному условию C2 используются. Согласно значению b1' и столбцу, в котором располагается b1', например, b1'=210, и b1' располагается в 1-м столбце, в матрице R осуществляется поиск значения, соответствующего h210,1, и в матрице G осуществляется поиск значения, соответствующего g210,1. Согласно значению b2' и столбцу, в котором располагается b2', например, b2'=156, и b2' располагается во 2-м столбце, в матрице R осуществляется поиск значения, соответствующего h156,2, и в матрице G осуществляется поиск значения, соответствующего g156,2. Согласно значению b3' и столбцу, в котором располагается b3', например, b3'=144, и b3' располагается в 3-м столбце, в матрице R осуществляется поиск значения, соответствующего h144,3, и в матрице G осуществляется поиск значения, соответствующего g144,3. Согласно значению b4' и столбцу, в котором располагается b4', например, b4'=60, и b4' располагается в 4-м столбце, в матрице R осуществляется поиск значения, соответствующего h60,4, и в матрице G осуществляется поиск значения, соответствующего g60,4. Согласно значению b5' и столбцу, в котором располагается b5', например, b5'=90, и b5' располагается в 5-м столбце, в матрице R осуществляется поиск значения, соответствующего h90,5, и в матрице G осуществляется поиск значения, соответствующего g90,5. S2h'=h210,1+h156,2+h144,3+h60,4+h90,5, и S2g'=g210,1+g156,2+g144,3+g60,4+g90,5. Когда одно из S2h' и S2g' является четным числом, по меньшей мере, часть данных в Wj2[kj-170, kj-1] удовлетворяет заранее заданному условию C2; когда оба S2h' и S2g' являются нечетными числами, по меньшей мере, часть данных в Wj2[kj-170, kj-1] не удовлетворяет заранее заданному условию C2. Вероятность того, что один из S2h' и S2g' является четным числом, равна 3/4.

[0192] Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-171, kj-2] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-172, kj-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-173, kj-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-174, kj-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-175, kj-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-176, kj-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-177, kj-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-178, kj-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-179, kj-10] заранее заданному условию C11, которые здесь повторно не описаны.

[0193] В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz. Вариант реализации, показанный на фиг. 21, используется в порядке примера. Согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wi1[ki-169, ki] определяется для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. Как показано на фиг. 32, Wi1 представляет окно Wi1[ki-169, ki], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. На фиг. 32, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 рассматриваются как 40 последовательных битов, которые представлены как a1, a2, a3, a4, ..., и a40 по отдельности. Для любого at из a1, a2, a3, a4, ..., и a40, когда at=0, Vat=-1, и когда at=1, Vat=1. Согласно соответствию между at и Vat, генерируются Va1, Va2, Va3, Va4, ..., и Va40. 40 случайных чисел выбирается из случайных чисел, которые подчиняются нормальному распределению, и представлены как: h1, h2, h3, h4, ..., и h40 по отдельности. Sa=Va1*h1+Va2*h2+Va3*h3+Va4*h4+...+Va40*h40. Поскольку h1, h2, h3, h4, ..., и h40 подчиняются нормальному распределению, Sa также подчиняется нормальному распределению. Когда Sa является положительным числом, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1; когда Sa является отрицательным числом или 0, по меньшей мере, часть данных в Wi1[ki-169, ki] не удовлетворяет заранее заданному условию C1. Вероятность того, что Sa является положительным числом, равна 1/2. В варианте осуществления, показанном на фиг. 21, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1. Как показано на фиг. 32, "" представляет 1 байт, по отдельности выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[ki-170, ki-1] заранее заданному условию C2. На фиг. 32, выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 рассматриваются как 40 последовательных битов, которые представлены как b1, b2, b3, b4, ..., и b40 по отдельности. Для любого bt из b1, b2, b3, b4, ..., и b40, когда bt=0, Vbt=-1, и когда bt=1, Vbt=1. Согласно соответствию между bt и Vbt, генерируются Vb1, Vb2, Vb3, Vb4, ..., и Vb40. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi2[ki-170, ki-1] заранее заданному условию C2. Таким образом, используются одни и те же случайные числа: h1, h2, h3, h4, ..., и h40, и Sb=Vb1*h1+Vb2*h2+Vb3*h3+Vb4*h4+...+Vb40*h40. Поскольку h1, h2, h3, h4, ..., и h40 подчиняются нормальному распределению, Sb также подчиняется нормальному распределению. Когда Sb является положительным числом, по меньшей мере, часть данных в Wi2[ki-170, ki-1] удовлетворяет заранее заданному условию C2; когда Sb является отрицательным числом или 0, по меньшей мере, часть данных в Wi2[ki-170, ki-1] не удовлетворяет заранее заданному условию C2. Вероятность того, что Sb является положительным числом, равна 1/2. В варианте осуществления, показанном на фиг. 21, по меньшей мере, часть данных в Wi2[ki-170, ki-1] удовлетворяет заранее заданному условию C2. С использованием того же правила, по отдельности, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-172, ki-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-173, ki-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi6[ki-174, ki-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi7[ki-175, ki-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi8[ki-176, ki-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi9[ki-177, ki-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi10[ki-178, ki-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi11[ki-179, ki-10] заранее заданному условию C11. В варианте реализации, показанном на фиг. 21, по меньшей мере, часть данных в Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5, 7 байтов пропускаются от точки потенциального деления ki в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 7-го байта. Как показано на фиг. 22, согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wj1[kj-169, kj] определяется для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[kj-169, kj] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, как показано на фиг. 33, Wj1 представляет окно Wj1[kj-169, kj], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-169, kj] заранее заданному условию C1. На фиг. 33, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 на фиг. 33 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 169, 127, 85, 43 и 1 рассматриваются как 40 последовательных битов, которые представлены как a1', a2', a3', a4', ..., и a40' по отдельности. Для любого at' из a1', a2', a3', a4', ..., и a40', когда at'=0, Vat'=-1, и когда at'=1, Vat'=1. Согласно соответствию между at' и Vat', генерируются Va1', Va2', Va3', Va4', ..., и Va40'. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[kj-169, kj] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, используются одни и те же случайные числа: h1, h2, h3, h4, ..., и h40. Sa'=Va1'*h1+Va2'*h2+Va3'*h3+Va4'*h4+...+Va40'*h40. Поскольку h1, h2, h3, h4, ..., и h40 подчиняются нормальному распределению, Sa' также подчиняется нормальному распределению. Когда Sa' является положительным числом, по меньшей мере, часть данных в Wj1[kj-169, kj] удовлетворяет заранее заданному условию C1; когда Sa' является отрицательным числом или 0, по меньшей мере, часть данных в Wj1[kj-169, kj] не удовлетворяет заранее заданному условию C1. Вероятность того, что Sa' является положительным числом, равна 1/2.

[0194] Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C2. Таким образом, как показано на фиг. 33, "" представляет 1 байт, выбранный, когда производится определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wj2[kj-170, kj-1] заранее заданному условию C2, и между двумя соседними выбранными байтами существует 42 байта. На фиг. 33, выбранные байты представлены как порядковые номера 170, 128, 86, 44 и 2 по отдельности, и между двумя соседними выбранными байтами существует 42 байта. Байты "" с порядковыми номерами 170, 128, 86, 44 и 2 рассматриваются как 40 последовательных битов, которые представлены как b1', b2', b3', b4', ..., и b40' по отдельности. Для любого bt' из b1', b2', b3', b4', ..., и b40', когда bt'=0, Vbt'=-1, и когда bt'=1, Vbt'=1. Согласно соответствию между bt' и Vbt', генерируются Vb1', Vb2', Vb3', Vb4', ..., и Vb40'. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C2. Таким образом, используются одни и те же случайные числа: h1, h2, h3, h4, ..., и h40, и Sb'=Vb1'*h1+Vb2'*h2+Vb3'*h3+Vb4'*h4+...+Vb40'*h40. Поскольку h1, h2, h3, h4, ..., и h40 подчиняются нормальному распределению, Sb' также подчиняется нормальному распределению. Когда Sb' является положительным числом, по меньшей мере, часть данных в Wj2[kj-170, kj-1] удовлетворяет заранее заданному условию C2; когда Sb' является отрицательным числом или 0, по меньшей мере, часть данных в Wj2[kj-170, kj-1] не удовлетворяет заранее заданному условию C2. Вероятность того, что Sb' является положительным числом, равна 1/2.

[0195] Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-171, kj-2] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-172, kj-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-173, kj-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-174, kj-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-175, kj-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-176, kj-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-177, kj-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-178, kj-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-179, kj-10] заранее заданному условию C11, которые здесь повторно не описаны.

[0196] В этом варианте осуществления, производится определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz. Вариант реализации, показанный на фиг. 21, по прежнему используется в порядке примера. Согласно правилу, заранее заданному на сервере 103 дедупликации, для точки потенциального деления ki, окно Wi1[ki-169, ki] определяется для точки потенциального деления ki, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. Как показано на фиг. 32, Wi1 представляет окно Wi1[ki-169, ki], и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. На фиг. 32, каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта. Каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуется в 1 десятичное число, диапазон которого составляет 0-(2^40-1). Генератор равномерного распределения случайных чисел используется для генерации 1 назначенного значения для каждого десятичного числа в 0-(2^40-1), и соответствие R между каждым десятичным числом в 0-(2^40-1) и назначенным значением записывается. Будучи назначенным, назначенное значение, соответствующее десятичному числу, остается неизменным, и назначенное значение подчиняется равномерному распределению. Если назначенное значение является четным числом, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1; если назначенное значение является нечетным числом, по меньшей мере, часть данных в Wi1[ki-169, ki] не удовлетворяет заранее заданному условию C1. C1 представляет, что назначенное значение, полученное согласно вышеупомянутому способу является четным числом. Поскольку вероятность того, что случайное число в равномерном распределении является четным числом, равна 1/2, вероятность того, что, по меньшей мере, часть данных в Wi1[ki-169, ki] удовлетворяет заранее заданному условию C1, равна 1/2. В варианте реализации, показанном на фиг. 21, с использованием того же правила, по отдельности, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi4[ki-172, ki-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wi5[ki-173, ki-4] заранее заданному условию C5, которые здесь повторно не описаны.

[0197] Когда, по меньшей мере, часть данных в Wi5[ki-173, ki-4] не удовлетворяет заранее заданному условию C5, 7 байтов пропускаются от точки потенциального деления ki в направлении поиска точки деления потока данных, и текущая точка потенциального деления kj получается в концевой позиции 7-го байта. Как показано на фиг. 22, согласно правилу, заранее заданному на сервере 103 дедупликации, окно Wj1[kj-169, kj] определяется для точки потенциального деления kj. Способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1[kj-169, kj] заранее заданному условию C1, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1[ki-169, ki] заранее заданному условию C1. Таким образом, одно и то же соответствие R между каждым десятичным числом в 0-(2^40-1), и используется назначенное значение. Как показано на фиг. 33, Wj1 представляет окно, и 5 байтов выбирается для определения, удовлетворяет ли, по меньшей мере, часть данных в Wj1[kj-169, kj] заранее заданному условию C1. На фиг. 33, "" представляет 1 выбранный байт, и между двумя соседними выбранными байтами существует 42 байта "". Каждый из байтов "" с порядковыми номерами 169, 127, 85, 43 и 1 преобразуется в 1 десятичное число, и в R осуществляется поиск назначенного значения, соответствующего десятичному числу. Если назначенное значение является четным числом, по меньшей мере, часть данных в Wj1[kj-169, kj] удовлетворяет заранее заданному условию C1; если назначенное значение является нечетным числом, по меньшей мере, часть данных в Wj1[kj-169, kj] не удовлетворяет заранее заданному условию C1. Поскольку вероятность того, что случайное число в равномерном распределении является четным числом, равна 1/2, вероятность того, что, по меньшей мере, часть данных в Wj1[kj-169, kj] удовлетворяет заранее заданному условию C1, равна 1/2. Аналогично, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2[ki-170, ki-1] заранее заданному условию C2, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2[kj-170, kj-1] заранее заданному условию C2, и способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi3[ki-171, ki-2] заранее заданному условию C3, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj3[kj-171, kj-2] заранее заданному условию C3. Аналогично, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj4[kj-172, kj-3] заранее заданному условию C4, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj5[kj-173, kj-4] заранее заданному условию C5, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj6[kj-174, kj-5] заранее заданному условию C6, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj7[kj-175, kj-6] заранее заданному условию C7, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj8[kj-176, kj-7] заранее заданному условию C8, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj9[kj-177, kj-8] заранее заданному условию C9, производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj10[kj-178, kj-9] заранее заданному условию C10, и производится определение, удовлетворяет ли, по меньшей мере, часть данных в Wj11[kj-179, kj-10] заранее заданному условию C11, которые здесь повторно не описаны.

[0198] Сервер 103 дедупликации согласно варианту осуществления настоящего изобретения, показанный на фиг. 1, представляет собой устройство, которое может реализовать техническое решение, описанное согласно варианту осуществления настоящего изобретения, и, как показано на фиг. 18, обычно включает в себя центральный процессор, первичную память и интерфейс ввода/вывода. Центральный процессор, первичная память и интерфейс ввода/вывода осуществляют связь друг с другом. В основной памяти хранится исполнимая инструкция, и центральный процессор выполняет исполнимую инструкцию, хранящуюся в основной памяти для осуществления конкретной функции, благодаря чему, сервер 103 дедупликации имеет конкретную функцию, например, поиска точки деления потока данных, описанной на фиг. 20-33 в вариантах осуществления настоящего изобретения. Таким образом, как показано на фиг. 19, согласно вариантам осуществления настоящего изобретения, показанным на фиг. 20-33, для сервера 103 дедупликации, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами.

[0199] Сервер 103 дедупликации включает в себя блок 1901 определения и блок 1902 принятия решения и обработки. Блок 1901 определения выполнен с возможностью осуществления этапа (a):

(a) определения соответствующего окна Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, где i и z являются целыми числами, и 1≤z≤M.

[0200] Блок 1902 принятия решения и обработки выполнен с возможностью: определять, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz;

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, где N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения новой точки потенциального деления, где блок 1901 определения осуществляет этап (a) для новой точки потенциального деления; и

когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

[0201] Кроме того, правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям | Ae+Be|=|Af+Bf| и Ce=Cf. Кроме того, правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами. Кроме того, правило дополнительно предусматривает, что Ae-1=Af и Be+1=Bf.

[0202] Кроме того, блок 1902 принятия решения и обработки в частности, выполнен с возможностью определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz. Кроме того, блок 1902 принятия решения и обработки, в частности, определяет, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

[0203] Кроме того, блок 1902 принятия решения и обработки выполнен с возможностью: когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и блок 1901 определения осуществляет этап (a) для новой точки потенциального деления, где, согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], где окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

[0204] Кроме того, блок 1902 принятия решения и обработки определяет, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, и это определение включает в себя:

выбор F байтов в окне Wiz[ki-Az, ki+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, где F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, где am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] удовлетворяет заранее заданному условию Cz.

[0205] Согласно способу поиска точки деления потока данных на основе сервера в вариантах осуществления настоящего изобретения, показанных на фиг. 20-33, определяется окно Wix[ki-Ax, ki+Bx] для точки потенциального деления ki, где x указывает последовательные натуральные числа от 1 до M по отдельности, и M≥2. Параллельно можно определять, удовлетворяет ли, по меньшей мере, часть данных в каждом окне из M окон заранее заданному условию Cx, или можно последовательно определять, удовлетворяет ли, по меньшей мере, часть данных в окнах заранее заданному условию, или можно сначала определять, что, по меньшей мере, часть данных в окне Wi1[pi1-A1, pi1+B1] удовлетворяет заранее заданному условию C1, затем принимать решение, что, по меньшей мере, часть данных в Wi2[pi2-A2, pi2+B2] удовлетворяет заранее заданному условию C2, пока не будет принято решение, что, по меньшей мере, часть данных в Wim[pim-Am, pim+Bm] удовлетворяет заранее заданному условию Cm. Другие окна в этом варианте осуществления определяются таким же образом, как описано, что не описано повторно.

[0206] Кроме того, согласно вариантам осуществления настоящего изобретения, показанным на фиг. 20-33, правило заранее задается на сервере 103 дедупликации, причем правило предусматривает: определение M окон Wx[k-Ax, k+Bx] для точки потенциального деления k и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до M по отдельности, и M≥2. Согласно заранее заданному правилу, A1, A2, A3, ..., и Am могут не все быть равны, B1, B2, B3, ..., и Bm могут не все быть равны, и C1, C2, C3, ..., и CM также могут не все быть равны. В варианте реализации, показанном на фиг. 21, для Wi1[ki-169, ki], Wi2[ki-170, ki-1], Wi3[ki-171, ki-2], Wi4[ki-172, ki-3], Wi5[ki-173, ki-4], Wi6[ki-174, ki-5], Wi7[ki-175, ki-6], Wi8[ki-176, ki-7], Wi9[ki-177, ki-8], Wi10[ki-178, ki-9] и Wi11[ki-179, ki-10], окна одинаковы по размеру, то есть все окна имеют размер 169 байтов, и при этом способы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию, также одинаковы. Подробности можно найти в вышеприведенном описании определения, удовлетворяет ли, по меньшей мере, часть данных в Wi1[ki-169, ki] заранее заданному условию C1. Однако, в варианте реализации, показанном на фиг. 11, окна Wi1[ki-169, ki], Wi2[ki-170, ki-1], Wi3[ki-171, ki-2], Wi4[ki-172, ki-3], Wi5[ki-173, ki-4], Wi6[ki-174, ki-5], Wi7[ki-175, ki-6], Wi8[ki-176, ki-7], Wi9[ki-177, ki-8], Wi10[ki-168, ki+1] и Wi11[ki-179, ki+3] могут отличаться размером, и при этом способы определения, удовлетворяет ли, по меньшей мере, часть данных в окне заранее заданному условию, также могут отличаться. Во всех вариантах осуществления, согласно правилу, заранее заданному на сервере 103 дедупликации, способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wi1 заранее заданному условию C1, конечно, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wj1 заранее заданному условию C1, способ определения, удовлетворяет ли, по меньшей мере, часть данных в Wi2 заранее заданному условию C2, конечно, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в Wj2 заранее заданному условию C2, ..., и способ определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wim заранее заданному условию CM, конечно, идентичен способу определения, удовлетворяет ли, по меньшей мере, часть данных в окне WjM заранее заданному условию CM, которые здесь повторно не описаны.

[0207] Согласно вариантам осуществления настоящего изобретения, показанным на фиг. 20-33, правило заранее задается на сервере 103 дедупликации, ka, ki, kj, kl и km являются точками потенциального деления, полученными при поиске точки деления в направлении поиска точки деления потока данных, и все ka, ki, kj, kl и km подчиняются правилу. В этом варианте осуществления настоящего изобретения, окно Wx[k-Ax, k+Bx] представляет конкретный диапазон, и данные выбираются в конкретном диапазоне для определения, удовлетворяют ли данные заранее заданному условию Cx. В частности, в конкретном диапазоне можно выбирать, часть данных или можно выбирать все данные для определения, удовлетворяют ли данные заранее заданному условию Cx. Можно рассматривать окно Wx[k-Ax, k+Bx] в качестве примера понятия окна, в частности, используемого в этом варианте осуществления настоящего изобретения, который здесь повторно не описан.

[0208] В окне Wx[k-Ax, k+Bx], (k-Ax) и (k+Bx) представляют две границы окна Wx[k-Ax, k+Bx], где (k-Ax) представляет границу, которая ориентирована в направлении, противоположном направлению поиска точки деления потока данных относительно точки потенциального деления k, окна Wx[k-Ax, k+Bx], и (k+Bx) представляет границу, которая ориентирована в направлении поиска точки деления потока данных относительно точки потенциального деления k, окна Wx[k-Ax, k+Bx]. В частности, согласно варианту осуществления настоящего изобретения, направление поиска точки деления потока данных, показанное на фиг. 20-33, является направлением слева направо; таким образом, (k-Ax) представляет границу (то есть левую границу), которая ориентирована в направлении, противоположном направлению поиска точки деления потока данных относительно точки потенциального деления k, окна Wx[k-Ax, k+Bx], и (k+Bx) представляет границу (то есть правую границу), которая ориентирована в направлении поиска точки деления потока данных относительно точки потенциального деления k, окна Wx[k-Ax, k+Bx]. Если направление поиска точки деления потока данных, показанное на фиг. 20-33, ориентировано справа налево, (k-Ax) представляет границу (то есть правую границу), которая ориентирована в направлении, противоположном направлению поиска точки деления потока данных относительно точки потенциального деления k, окна Wx[k-Ax, k+Bx], и (k+Bx) представляет границу (то есть левую границу), которая ориентирована в направлении поиска точки деления потока данных относительно точки потенциального деления k, окна Wx[k-Ax, k+Bx].

[0209] Специалист в данной области техники может понять, что, совместно с различными иллюстративными блоками и этапами алгоритма, описанными на фиг. 20-33 вариантов осуществления настоящего изобретения, ключевой признак в вариантах осуществления настоящего изобретения можно объединить с другими технологиями и представить в более сложной форме; однако ключевой признак настоящего изобретения по прежнему включен. Альтернативная точка деления может использоваться в реальном окружении. Например, в варианте реализации, согласно правилу, заранее заданному на сервере 103 дедупликации, для точки потенциального деления ki, 11 окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx] определяются, где x указывает последовательные натуральные числа от 1 до 11. Когда, по меньшей мере, часть данных в каждом окне Wx[k-Ax, k+Bx] из 11 окон удовлетворяет заранее заданному условию Cx, точка потенциального деления ki является точкой деления потока данных. Когда ни одной точки деления не найдено по прохождении максимального фрагмента данных, для альтернативной точки может использоваться заранее заданное правило. Заранее заданное правило для альтернативной точки аналогично правилу, заранее заданному на сервере 103 дедупликации, и заранее заданное правило для альтернативной точки предусматривает: например, для точки потенциального деления ki, определение 10 окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], где x указывает последовательные натуральные числа от 1 до 10. Когда определено, что, по меньшей мере, часть данных в каждом окне Wx[k-Ax, k+Bx] из 10 окон удовлетворяет заранее заданному условию Cx, точка потенциального деления ki является точкой деления потока данных. Когда не найдено ни одной точки деления потока данных по прохождении максимального фрагмента данных, концевая позиция максимального фрагмента данных служит точкой принудительного деления.

[0210] Согласно вариантам осуществления настоящего изобретения, показанным на фиг. 20-33, Правило заранее задается на сервере 103 дедупликации, и согласно правилу, M окон определяются для точки потенциального деления k. Не требуется, чтобы заранее существовала точка потенциального деления k, и точка потенциального деления k может определяться с использованием определенного M окон.

[0211] Специалист в данной области техники может понять, что, наряду с примерами, приведенными в вариантах осуществления, раскрытый в этом описании изобретения, блоки и этапы алгоритма могут быть реализованы посредством электронного оборудования или комбинации компьютерного программного обеспечения и электронного оборудования. Осуществляются ли функции посредством оборудования или программного обеспечения, зависит от конкретных применений и условий ограничения конструкции технических решений. Специалист в данной области техники может использовать разные способы реализации описанных функций для каждого конкретного применения, но не следует предполагать, что реализация выходит за пределы объема настоящего изобретения.

[0212] Специалисту в данной области техники совершенно понятно, что, в целях удобства и краткости описания процесса работы вышеупомянутой системы, устройства и блока, можно обратиться к соответствующему процессу в вышеупомянутых вариантах осуществления способа, и подробности здесь повторно не описаны.

[0213] В нескольких обеспеченных вариантах осуществления, следует понимать, что раскрытые система и способ можно реализовать иначе. Например, описанный вариант осуществления устройства является только иллюстративным. Например, деление на блоки является только делением на логические функции, и в фактической реализации может существовать другое деление. Например, несколько блоков или компонентов может быть объединено или встроено в другую систему, или некоторые признаки можно игнорировать или не осуществлять. Кроме того, изображенные или рассмотренные взаимные соединения или прямые соединения или соединения с возможностью связи могут быть реализованы через некоторые интерфейсы. Непрямые соединения или соединения с возможностью связи между устройствами или блоками могут быть реализованы в электронной, механической или других формах.

[0214] Блоки, описанные как отдельные части, могут быть или не быть физически отдельными, и части, изображенные как блоки, могут быть или не быть физическими блоками, могут располагаться в одной позиции, или могут распределяться по нескольким сетевым блокам. Некоторые или все из блоков можно выбирать согласно фактическим потребностям для достижения целей решений вариантов осуществления.

[0215] Кроме того, функциональные блоки в вариантах осуществления настоящего изобретения могут быть встроены в один блок обработки, или каждый из блоков может существовать физически отдельно, или два или более блоков встроены в один блок.

[0216] Когда функции реализованы в форме программного функционального блока и продаются или используются как независимый продукт, функции могут храниться на компьютерно-считываемом энергонезависимом носителе данных. На основании такого понимания, технические решения настоящего изобретения по существу, или часть, образующая уровень техники, или некоторые из технических решений могут быть реализованы в форме программного продукта. Программный продукт хранится на энергонезависимом носителе данных и включает в себя несколько инструкций, предписывающих компьютерному устройству (которое может представлять собой персональный компьютер, сервер или сетевое устройство) осуществлять все или некоторые из этапов способов, описанных в вариантах осуществления настоящего изобретения. Вышеупомянутый энергонезависимый носитель данных включает в себя: любой носитель, где может храниться программный код, например, флэш-носитель на основе USB, сменный жесткий диск, постоянную память (Read-Only Memory, ROM), магнитный диск или оптический диск.

[0217] Выше приведены описания только конкретной реализации способов настоящего изобретения, но не призваны ограничивать объем защиты настоящего изобретения. Любые изменения или замены, которые может предложить специалист в данной области техники в техническом объеме, раскрытом в настоящем изобретении, попадают в объем защиты настоящего изобретения. Таким образом, объем защиты настоящего изобретения определяется объемом защиты формулы изобретения.

1. Способ поиска точки деления потока данных, осуществляемый сервером, содержащий этапы, на которых:

правило, заранее заданное на сервере, предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], причем x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

причем способ содержит этапы, на которых:

(a) определяют точку piz и окно Wiz[piz-Az, piz+Bz], соответствующее точке piz, для текущей точки потенциального деления ki согласно правилу, причем i и z являются целыми числами, и 1≤z≤M;

(b) определяют, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропускают N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, причем N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, и осуществляют этап (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбирают текущую точку потенциального деления ki в качестве точки деления потока данных.

2. Способ по п. 1, в котором правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf.

3. Способ по п. 2, в котором правило дополнительно содержит: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

4. Способ по п. 2 или 3, в котором правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

5. Способ по любому из пп. 1-3, в котором определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, содержит этап, на котором:

определяют, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

6. Способ по п. 5, в котором определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, содержит этап, на котором: определяют, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

7. Способ по любому из пп. 1-3, в котором, когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[piz-Az, piz+Bz], причем точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

8. Способ по п. 5, в котором определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, содержит этапы, на которых:

выбирают F байтов в окне Wiz[piz-Az, piz+Bz] и повторно используют F байтов H раз для получения всего F*H байтов, причем F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, причем am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] удовлетворяет заранее заданному условию Cz.

9. Способ поиска точки деления потока данных, осуществляемый сервером, содержащий этапы, на которых:

правило, заранее заданное на сервере, предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], причем x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

причем способ содержит этапы, на которых:

(a) определяют соответствующее окно Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, причем i и z являются целыми числами, и 1≤z≤M;

(b) определяют, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропускают N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, причем N*U не превышает ‖Bz‖+maxx(‖Ax ‖), для получения новой точки потенциального деления, и осуществляют этап (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбирают текущую точку потенциального деления ki в качестве точки деления потока данных.

10. Способ по п. 9, в котором правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям | Ae+Be|=|Af+Bf| и Ce=Cf.

11. Способ по п. 10, в котором правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами.

12. Способ по п. 10 или 11, в котором правило дополнительно содержит Ae-1=Af и Be+1=Bf.

13. Способ по любому из пп. 9-11, в котором определение, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, содержит этап, на котором:

определяют, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

14. Способ по п. 13, в котором определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, содержит, в частности, этап, на котором: определяют, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

15. Способ по любому из пп. 9-11, в котором, когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], причем окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

16. Способ по п. 13, в котором определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, содержит этапы, на которых:

выбирают F байтов в окне Wiz[ki-Az, ki+Bz] и повторно используют F байтов H раз для получения всего F*H байтов, причем F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, причем am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] удовлетворяет заранее заданному условию Cz.

17. Сервер для поиска точки деления потока данных, причем сервер содержит центральный процессор и первичную память, центральный процессор осуществляет связь с первичной памятью, и правило заранее задается на сервере, причем правило, заранее заданное на сервере, предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], причем x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

основная память выполнена с возможностью хранения исполнимой инструкции, и центральный процессор выполняет исполнимую инструкцию для осуществления следующих этапов:

(a) определения точки piz и окна Wiz[piz-Az, piz+Bz], соответствующего точке piz, для текущей точки потенциального деления ki согласно правилу, причем i и z являются целыми числами, и 1≤z≤M;

(b) определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, причем N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, и осуществление этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

18. Сервер по п. 17, в котором правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf.

19. Сервер по п. 18, в котором правило дополнительно содержит: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

20. Сервер по п. 18 или 19, в котором правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

21. Сервер по любому из пп. 17-19, в котором центральный процессор, в частности, выполнен с возможностью определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

22. Сервер по п. 21, в котором центральный процессор, в частности, выполнен с возможностью определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

23. Сервер по любому из пп. 17-19, в котором, когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[piz-Az, piz+Bz], причем точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

24. Сервер по п. 21, в котором определение, посредством центрального процессора с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, содержит:

выбор F байтов в окне Wiz[piz-Az, piz+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, причем F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, причем am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] удовлетворяет заранее заданному условию Cz.

25. Сервер для поиска точки деления потока данных, причем сервер содержит центральный процессор и первичную память, центральный процессор осуществляет связь с первичной памятью, и правило, заранее заданное на сервере, предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], причем x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

основная память выполнена с возможностью хранения исполнимой инструкции, и центральный процессор выполняет исполнимую инструкцию для осуществления следующих этапов:

(a) определения соответствующего окна Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, причем i и z являются целыми числами, и 1≤z≤M;

(b) определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, причем N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения новой точки потенциального деления, и осуществления этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

26. Сервер по п. 25, в котором правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям | Ae+Be|=|Af+Bf| и Ce=Cf.

27. Сервер по п. 26, в котором правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами.

28. Сервер по п. 26 или 27, в котором правило дополнительно содержит Ae-1=Af и Be+1=Bf.

29. Сервер по любому из пп. 25-27, в котором центральный процессор, в частности, выполнен с возможностью определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

30. Сервер по п. 29, в котором центральный процессор, в частности, выполнен с возможностью определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

31. Сервер по любому из пп. 25-27, в котором, когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], причем окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

32. Сервер по п. 29, в котором определение, посредством центрального процессора с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, содержит:

выбор F байтов в окне Wiz[ki-Az, ki+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, причем F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, причем am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] удовлетворяет заранее заданному условию Cz.

33. Сервер для поиска точки деления потока данных, в котором правило, заранее заданное на сервере, предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], причем x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

сервер содержит: блок определения, выполненный с возможностью осуществления этапа (a): (a) определения точки piz и окна Wiz[piz-Az, piz+Bz], соответствующего точке piz, для текущей точки потенциального деления ki согласно правилу, причем i и z являются целыми числами, и 1≤z≤M; и

блок принятия решения и обработки, выполненный с возможностью: определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz;

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, причем N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, причем блок определения осуществляет этап (a) для новой точки потенциального деления; и

когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

34. Сервер по п. 33, в котором правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf.

35. Сервер по п. 34, в котором правило дополнительно содержит: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

36. Сервер по п. 34 или 35, в котором правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

37. Сервер по любому из пп. 33-35, в котором блок принятия решения и обработки в частности, выполнен с возможностью определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

38. Сервер по п. 37, в котором блок принятия решения и обработки в частности, выполнен с возможностью определения, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

39. Сервер по любому из пп. 33-35, в котором блок принятия решения и обработки выполнен с возможностью: когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, блок определения осуществляет этап (a) для новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc] попадает в диапазон окна Wiz[piz-Az, piz+Bz], причем точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

40. Сервер по п. 37, в котором блок принятия решения и обработки в частности, выполнен с возможностью определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, которое, в частности, содержит:

выбор F байтов в окне Wiz[piz-Az, piz+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, причем F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, причем am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] удовлетворяет заранее заданному условию Cz.

41. Сервер для поиска точки деления потока данных, в котором правило, заранее заданное на сервере, предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], причем x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

сервер содержит: блок определения, выполненный с возможностью осуществления этапа (a):

(a) определения соответствующего окна Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, причем i и z являются целыми числами, и 1≤z≤M; и

блок принятия решения и обработки, выполненный с возможностью определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz;

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, причем N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения новой точки потенциального деления, причем блок определения осуществляет этап (a) для новой точки потенциального деления; и

когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

42. Сервер по п. 41, в котором правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям | Ae+Be|=|Af+Bf| и Ce=Cf.

43. Сервер по п. 42, в котором правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами.

44. Сервер по п. 42 или 43, в котором правило дополнительно содержит Ae-1=Af и Be+1=Bf.

45. Сервер по любому из пп. 41-43, в котором блок принятия решения и обработки в частности, выполнен с возможностью:

определения, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

46. Сервер по п. 45, в котором блок принятия решения и обработки, в частности, определяет, с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

47. Сервер по любому из пп. 41-43, в котором блок принятия решения и обработки выполнен с возможностью: когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, блок определения осуществляет этап (a) для новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], причем окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

48. Сервер по п. 46, в котором блок принятия решения и обработки определяет, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, и это определение, в частности, содержит:

выбор F байтов в окне Wiz[ki-Az, ki+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, причем F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, причем am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] удовлетворяет заранее заданному условию Cz.

49. Компьютерно-считываемый носитель данных, причем компьютерно-считываемый носитель данных выполнен с возможностью хранения исполнимой инструкции, сервер выполняет исполнимую инструкцию для поиска точки деления потока данных, и правило, заранее заданное на сервере, предусматривает: для точки потенциального деления k, определение M точек px, окна Wx[px-Ax, px+Bx], соответствующего точке px, и заранее заданного условия Cx, соответствующего окну Wx[px-Ax, px+Bx], причем x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

сервер выполняет исполнимую инструкцию для осуществления следующих этапов:

(a) определения piz и окна Wiz[piz-Az, piz+Bz], соответствующего piz для текущей точки потенциального деления ki согласно правилу, причем i и z являются целыми числами, и 1≤z≤M;

(b) определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от точки piz в направлении поиска точки деления потока данных, причем N*U не превышает ‖Bz‖+maxx(‖Ax‖+‖(ki-pix)‖), для получения новой точки потенциального деления, и осуществление этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[pix-Ax, pix+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

50. Компьютерно-считываемый носитель данных по п. 49, в котором правило дополнительно предусматривает, что, по меньшей мере, две точки pe и pf удовлетворяют условиям Ae=Af, Be=Bf и Ce=Cf.

51. Компьютерно-считываемый носитель данных по п. 50, в котором правило дополнительно содержит: относительно точки потенциального деления k, по меньшей мере, две точки pe и pf ориентированы в направлении, противоположном направлению поиска точки деления потока данных.

52. Компьютерно-считываемый носитель данных по п. 50 или 51, в котором правило дополнительно предусматривает, что расстояние между, по меньшей мере, двумя точками pe и pf равно 1 U.

53. Компьютерно-считываемый носитель данных по любому из пп. 49-51, в котором определение, посредством сервера, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, содержит:

определение, посредством сервера с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

54. Компьютерно-считываемый носитель данных по п. 53, в котором определение, посредством сервера с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, содержит:

определение, посредством сервера с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz.

55. Компьютерно-считываемый носитель данных по любому из пп. 49-51, в котором, когда, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от точки piz в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[piz-Az, piz+Bz], или левая граница окна Wic[pic-Ac, pic+Bc], соответствующая точке pic, которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[piz-Az, piz+Bz], причем точка pic, определенная для новой точки потенциального деления, является точкой, занимающей первую позицию в последовательности, которая получена согласно направлению направлению поиска точки деления потока данных, из M точек, которые определены для новой точки потенциального деления согласно правилу.

56. Компьютерно-считываемый носитель данных по п. 53, в котором определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] заранее заданному условию Cz, в частности, содержит:

выбор F байтов в окне Wiz[piz-Az, piz+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, причем F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, причем am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[piz-Az, piz+Bz] удовлетворяет заранее заданному условию Cz.

57. Компьютерно-считываемый носитель данных, причем компьютерно-считываемый носитель данных выполнен с возможностью хранения исполнимой инструкции, сервер выполняет исполнимую инструкцию для поиска точки деления потока данных, и правило, заранее заданное на сервере, предусматривает: для точки потенциального деления k, определение M окон Wx[k-Ax, k+Bx] и заранее заданного условия Cx, соответствующего окну Wx[k-Ax, k+Bx], причем x указывает последовательные натуральные числа от 1 до M, M≥2, и Ax и Bx являются целыми числами; и

сервер выполняет исполнимую инструкцию для осуществления следующих этапов:

(a) определения соответствующего окна Wiz[ki-Az, ki+Bz] для текущей точки потенциального деления ki согласно правилу, причем i и z являются целыми числами, и 1≤z≤M;

(b) определения, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz; и

когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, пропуска N минимальных единиц U для поиска точки деления потока данных от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, причем N*U не превышает ‖Bz‖+maxx(‖Ax‖), для получения новой точки потенциального деления, и осуществление этапа (a); и

(c) когда, по меньшей мере, часть данных в каждом окне Wix[ki-Ax, ki+Bx] из M окон текущей точки потенциального деления ki удовлетворяет заранее заданному условию Cx, выбора текущей точки потенциального деления ki в качестве точки деления потока данных.

58. Компьютерно-считываемый носитель данных по п. 57, в котором правило дополнительно предусматривает, что, по меньшей мере, два окна Wie[ki-Ae, ki+Be] и Wif[ki-Af, ki+Bf] удовлетворяют условиям | Ae+Be|=|Af+Bf| и Ce=Cf.

59. Компьютерно-считываемый носитель данных по п. 58, в котором правило дополнительно предусматривает, что Ae и Af являются положительными целыми числами.

60. Компьютерно-считываемый носитель данных по п. 58 или 59, в котором правило дополнительно содержит Ae-1=Af и Be+1=Bf.

61. Компьютерно-считываемый носитель данных по любому из пп. 57-59, в котором:

определение, посредством сервера, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, содержит:

определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

62. Компьютерно-считываемый носитель данных по п. 61, в котором определение, посредством сервера с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, содержит: определение, посредством сервера с использованием хэш-функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz.

63. Компьютерно-считываемый носитель данных по любому из пп. 57-59, в котором, когда, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] не удовлетворяет заранее заданному условию Cz, N минимальных единиц U для поиска точки деления потока данных пропускается от текущей точки потенциального деления ki в направлении поиска точки деления потока данных, для получения новой точки потенциального деления, и, согласно правилу, левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, совпадает с правой границей окна Wiz[ki-Az, ki+Bz], или левая граница окна Wic[ki-Ac, ki+Bc], которая определена для новой точки потенциального деления, попадает в диапазон окна Wiz[ki-Az, ki+Bz], причем окно Wic[ki-Ac, ki+Bc], определенное для новой точки потенциального деления является окном, занимающим первую позицию в последовательности, которая получена согласно направлению поиска точки деления потока данных, из M окон, которые определены для новой точки потенциального деления согласно правилу.

64. Компьютерно-считываемый носитель данных по п. 61, в котором определение, с использованием случайной функции, удовлетворяет ли, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] заранее заданному условию Cz, в частности, содержит:

выбор F байтов в окне Wiz[ki-Az, ki+Bz], и повторное использование F байтов H раз для получения всего F*H байтов, причем F≥1, каждый байт образован 8 битами, которые обозначены как am,1, ..., и am,8, представляющими биты с 1-го по 8-й m-го байта в F*H байтов, биты, соответствующие F*H байтам можно представить как: , причем, когда am,n=1, Vam,n=1, и когда am,n=0, Vam,n=-1, причем am,n представляет любой из am,1, ..., и am,8, матрица Va получается согласно соотношению преобразования между am,n и Vam,n из битов, соответствующих F*H байтам, причем матрица Va представлена как: , F*H*8 случайных чисел выбирается из случайных чисел, подчиняющихся нормальному распределению, для формирования матрицы R, причем матрица R представлена как: , случайные числа в m-й строке матрицы Va и m-й строке матрицы R перемножаются, и произведения суммируются для получения значения, которое, в частности, представляется как Sam=Vam,1*hm,1+Vam,2*hm,2+...+Vam,8*hm,8, Sa1, Sa2, ..., и SaF*H получаются таким же образом, подсчитывается количество k значений, больших 0, из Sa1, Sa2, ..., и SaF*H, и когда k является четным числом, по меньшей мере, часть данных в окне Wiz[ki-Az, ki+Bz] удовлетворяет заранее заданному условию Cz.



 

Похожие патенты:

Изобретение относится к содействию связи от устройства к устройству. Технический результат – устранение громоздкости назначения маяковых сигналов в сети и передача информации о их назначении в устройства ввиду увеличения возможного количества устройств.

Изобретение относится к области технологий сетевой связи и раскрывает узел доступа, сетевой элемент управления мобильностью и способ обработки пейджингового сообщения, согласно которому после приема сетевым элементом управления мобильностью уведомляющего сообщения о функциональных возможностях узла, переданного узлом доступа, причем уведомляющее сообщение о функциональных возможностях узла используется для обозначения, что узел доступа поддерживает использование Протокола пользовательских датаграмм, отличающегося от Протокола передачи и управления потоком, для приема пейджингового сообщения с сетевого элемента управления мобильностью, сетевой элемент управления мобильностью выбирает и использует Протокол пользовательских датаграмм для передачи первого пейджингового сообщения на узел доступа, так чтобы пользовательское требование надежной передачи пейджингового сообщения могло выполняться, степень потребления ресурсов сетевого элемента управления мобильностью могло быть снижено и удавалось бы избежать возникновения перегрузки на сетевом элементе управления мобильностью.

Изобретение относится к области связи. Технический результат изобретения заключается в улучшении использования сетевого ресурса, снижении проблемы защиты, вызванной перегруженностью узла проверки подлинности, и снижении риска возникновения ошибок в начислении абонементской платы за время подключения.

Изобретение относится к агрегированию линий связи. Технический результат изобретения заключается в увеличении пропускной способности.

Изобретение относится к сетям связи. Технический результат заключается в добавлении элементов протокола, которые могут использоваться для улучшения эвристики очистки таблицы на посредниках, что приводит к повышению быстродействия и эффективности сети связи.

Группа изобретений относится к области кодирования. Техническим результатом является повышение эффективности сжатия данных.

Изобретение относится к области беспроводной связи. Технический результат изобретения заключается в гибком управлении отправкой сигнала и изменении содержимого этого сигнала, используя аутентификацию.

Изобретение относится к электросвязи. .

Изобретение относится к технике связи. .

Изобретение относится к электросвязи. .

Группа изобретений относится к медицине, биологии и включает систему и способ ее использования для адресного контроля нейронов мозга живых, свободноподвижных животных на основе размыкаемого волоконно-оптического зонда с многоканальными волокнами.

Изобретение относится к области обработки изображений. Технический результат – обеспечение сворачивания изображений для создания серий изображений, в соответствии с различными требованиями к сходству изображений различных пользователей.

Изобретение относится к компьютерной безопасности. Технический результат заключается в повышении безопасности во время аутентификации пользователя.

Изобретение относится к информационным дисплеям. Технический результат состоит в визуальном отображении на экране контента с применением тематических ассоциаций для эффективного сравнения различного информационного контента на одном дисплее.

Изобретение относится к калибровке инструментов, используемых для измерения поведения сигналов. Технический результат – получение характеристики сети и выполнение калибровки сети с неподдерживаемыми типами разъема, которые не отслеживают в соответствии с известными стандартами.

Группа изобретений относится к технологиям, раскрывающим устройства отображения пропускающего типа. Техническим результатом является обеспечение восприятия виртуального объекта в правильном местоположении относительно реального объекта за счет возможности регулировать угол конвергенции пользователя так, чтобы он соответствовал обнаруженному расстоянию между пользователем и реальным объектом.

Изобретение относится к области экранов дисплеев на жидких кристаллах, в частности к способу и устройству распознавания отпечатков пальцев. Технический результат заключается в сокращении расхода ресурсов, вызванном тем, что все датчики распознавания отпечатков пальцев, расположенные на всей поверхности экрана жидкокристаллического дисплея, имеют возможность распознавать отпечатки пальцев, что сберегает используемые ресурсы.

Группа изобретений относится к области компьютерной техники. Технический результат – обеспечение возможности точного выбора значения цветовой температуры.

Изобретение относится к средствам генерирования изображения. Технический результат заключается в уменьшении запаздывания от генерирования до отображения панорамного изображения.

Изобретение относится к средствам информационно-развлекательных систем для транспортных средств. Технический результат заключается в расширении арсенала технических средств.

Изобретение относится к системе автоматизированной подготовки статистической отчетности. Техническим результатом является оптимизация процессов сбора, анализа, агрегирования статистической информации, подготовки и согласования регламентированных отчетов.
Наверх