RU2746187C1 - Method for backup of data block versions, machine-readable media and system for using this method - Google Patents

Method for backup of data block versions, machine-readable media and system for using this method Download PDF

Info

Publication number
RU2746187C1
RU2746187C1 RU2020115418A RU2020115418A RU2746187C1 RU 2746187 C1 RU2746187 C1 RU 2746187C1 RU 2020115418 A RU2020115418 A RU 2020115418A RU 2020115418 A RU2020115418 A RU 2020115418A RU 2746187 C1 RU2746187 C1 RU 2746187C1
Authority
RU
Russia
Prior art keywords
versions
data block
function
intervals
values
Prior art date
Application number
RU2020115418A
Other languages
Russian (ru)
Inventor
Александр Сергеевич Хлебущев
Original Assignee
Александр Сергеевич Хлебущев
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Александр Сергеевич Хлебущев filed Critical Александр Сергеевич Хлебущев
Priority to RU2020115418A priority Critical patent/RU2746187C1/en
Application granted granted Critical
Publication of RU2746187C1 publication Critical patent/RU2746187C1/en
Priority to PCT/RU2021/050122 priority patent/WO2021225475A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system

Abstract

FIELD: machine-readable media.
SUBSTANCE: invention relates to machine-readable media and a system for backing up data block versions. The method stores the newest version of the data block into an array of data block versions, on the basis of which a lot of data block versions are determined. The values ​​of the function of the lengths of the intervals and the values ​​of the function of the number of versions left in the intervals are determined, and the function of the ratio of the values ​​of the function of the number of versions left in the intervals to the values ​​of the function of the lengths of the intervals with the corresponding values ​​of the argument is decreasing; a sequence of version numbers of a data block in a lot of versions is divided into intervals according to the values ​​of the interval length function in the direction from the latest version to the earliest version of the data block. If there are intervals containing more stored versions of the data block than the corresponding value of the function of the number of versions left in the intervals, versions of the data block are deleted in these intervals so that there are no more stored versions in each interval than the corresponding value of the function of the number of versions within the intervals.
EFFECT: invention increases efficiency of backup storage.
4 cl, 2 dwg

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕTECHNICAL FIELD OF THE INVENTION

Техническое решение относится к области средств осуществления резервного сохранения (копирования) данных, а также к области средств, позволяющих устранить избыточность хранимых версий с целью оптимизации (снижения объема) занимаемой памяти на носителях информации.The technical solution relates to the field of means for backing up (copying) data, as well as to the field of means that allow eliminating the redundancy of stored versions in order to optimize (reduce the amount) of memory occupied on storage media.

УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY

Из уровня техники (публикация «Веб-справка для Acronis True Image 2013 Update 1». Copyright © Acronis International GmbH) известны различные способы (схемы) резервного сохранения данных.The prior art (publication "Online Help for Acronis True Image 2013 Update 1". Copyright © Acronis International GmbH) knows various methods (schemes) for backing up data.

Известна «схема с одной версией» (https://www.acronis.com/ru-ru/support/documentation/ATIH2013/index.html#10804.html, Последнее изменение: 17.09.2010 13:37:07), в соответствии с которой сохраняется одна новая полная версия блока данных, а при сохранении новой версии блока данных предыдущая версия удаляется.Known "scheme with one version" (https://www.acronis.com/ru-ru/support/documentation/ATIH2013/index.html#10804.html, last modified: 17.09.2010 13:37:07), in according to which one new full version of the data block is saved, and when a new version of the data block is saved, the previous version is deleted.

Этот способ позволяет сократить объем требуемого дискового пространства, однако, не позволяет восстанавливать данные, измененные ранее момента сохранения новой версии.This method allows you to reduce the amount of required disk space, however, it does not allow you to recover data that was changed before the moment the new version was saved.

Известна «Схема с цепочкой версий» (https://www.acronis.com/ru-ru/support/documentation/ATIH2013/index.html#10805.html, Последнее изменение: 12.09.2011 18:47:37), в соответствии с которой сохраняются полные версии блока данных и по прошествии установленного периода времени и некоторого установленного минимального количества хранимых версий удаляются наиболее старые версии блока данных.Known "Scheme with a chain of versions" (https://www.acronis.com/ru-ru/support/documentation/ATIH2013/index.html#10805.html, Last modified: 09/12/2011 18:47:37), in according to which the full versions of the data block are saved and after a specified period of time and a certain specified minimum number of stored versions, the oldest versions of the data block are deleted.

Схема с цепочкой версий требует для своего осуществления несколько большего объема пространства носителей информации. При ограничении объема пространства в этой схеме исходят из того принципа, что наиболее новые версии более востребованы. В результате схема позволяет хранить версии блока данных несколько более детализировано, однако, стремление к экономии пространства носителей информации приводит к недоступности более ранних версий блока данных.A version-chained scheme requires a slightly larger amount of media space for its implementation. When limiting the amount of space in this scheme, they proceed from the principle that the newest versions are more in demand. As a result, the scheme allows storing versions of the data block in a slightly more detailed way, however, the desire to save space of information carriers leads to the inaccessibility of earlier versions of the data block.

Также известны различные схемы, в которых задается некоторая периодичность сохранения версий блока данных («Примеры пользовательских схем», https://www.acronis.com/ru-ru/support/documentation/ATIH2013/index.html#16448.html, Последнее изменение: 25.11.2011 16:18:54). Такие схемы по сути просто задают периодичность сохранения версий, но не решают проблему занимаемого пространства. В результате, когда общий объем резервных копий превысит некоторую величину (в источнике - 100 Гб), система удаляет резервные копии.Also, various schemes are known in which a certain frequency of saving versions of a data block is specified ("Examples of custom schemes", https://www.acronis.com/en-us/support/documentation/ATIH2013/index.html#16448.html, Last modified: 11/25/2011 4:18:54 PM). Such schemes in fact simply set the frequency of saving versions, but do not solve the problem of occupied space. As a result, when the total volume of backups exceeds a certain value (in the source - 100 GB), the system deletes the backups.

Такое решение не решает проблему использования дискового пространства, а также не учитывает, что вероятность возникновения необходимости обращения к более новым версиям выше, чем к старым. Периодичность сохранения устанавливается, исходя из некоей предположительной усредненной вероятности возникновения потребности обращения к каждой из версий. Следовательно, для наиболее новых версий установленная периодичность сохранения будет недостаточной, а для более старых - избыточной.This solution does not solve the problem of disk space usage, and also does not take into account that the likelihood of the need to refer to newer versions is higher than to old ones. The frequency of saving is set based on a certain estimated average probability of the need to refer to each of the versions. Consequently, for the newest versions, the established storage frequency will be insufficient, and for older versions, it will be excessive.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯDISCLOSURE OF THE INVENTION

Задача, стоявшая перед разработчиками раскрытого технического решения, заключалась в оптимизации хранения резервных версий данных с тем, чтобы с одной стороны уменьшить объем пространства носителей информации, на которых сохранен массив версий блока данных, а с другой - обеспечить частоту хранимых версий блока данных в соответствии с вероятностью версий быть востребованными.The task faced by the developers of the disclosed technical solution was to optimize the storage of backup versions of data in order, on the one hand, to reduce the amount of storage media space on which an array of versions of a data block is stored, and on the other hand, to ensure the frequency of stored versions of a data block in accordance with the likelihood of versions to be in demand.

При решении этой задачи разработчики исходили из того, что чем новее версия блока данных, тем более вероятным является то, что она станет востребованной.When solving this problem, the developers proceeded from the fact that the newer the version of the data block, the more likely it is that it will become in demand.

Под блоком данных может пониматься некоторый периодически изменяемый файл, папка с файлами, база данных, все данные (или определенная их часть) некоторого носителя информации, состояние операционной системы и т.п.A data block can be understood as a periodically changed file, a folder with files, a database, all data (or a certain part of them) of a certain storage medium, the state of the operating system, etc.

Основная идея технического решения состоит в том, чтобы, периодически удаляя старые версии, обеспечить высокую частоту свежих версий и снижение частоты при увеличении возраста версий. Например, если свежие версии сохраняются ежедневно, то версии давностью в 3 месяца может быть достаточно хранить, например, с частотой одна в неделю. Таким образом, за счет снижения детализации истории версий по направлению в прошлое (от наиболее поздней версии к наиболее ранней версии) экономится дисковое пространство. С другой стороны, обеспечивается доступность не только последних версий, а также и более старых.The main idea of the technical solution is to ensure a high frequency of newer versions by periodically deleting old versions and a decrease in frequency as the age of versions increases. For example, if the latest versions are stored daily, then versions that are 3 months old may be sufficient to store, for example, at a frequency of one per week. Thus, by reducing the granularity of the version history backward (from the most recent version to the earliest version), disk space is saved. On the other hand, not only the latest versions are available, but also older ones.

Чаще всего на практике нет необходимости обращаться к некоей конкретной версии в далеком прошлом (например, сохраненной в конкретный день версии блока данных), обычно является приемлемой погрешность такого обращения в неделю, месяц или более длительный промежуток времени.Most often, in practice, there is no need to refer to a specific version in the distant past (for example, the version of a data block saved on a specific day), usually an acceptable error of such a reference in a week, month, or a longer period of time is acceptable.

Предлагаемый алгоритм итеративно модифицирует историю версий всякий раз при добавлении новой свежей версии таким образом, чтобы гарантировать заведомо предустановленный характер уменьшающейся детализации по направлению в прошлое (то есть от наиболее новых версий к более старым версиям).The proposed algorithm iteratively modifies the version history each time a newer version is added in such a way as to guarantee the predetermined nature of decreasing granularity towards the past (that is, from newer versions to older versions).

В первом аспекте настоящего изобретения поставленная задача была решена путем создания способа резервного сохранения версий блока данных, включающего в себя этапы, на которыхIn the first aspect of the present invention, the problem was solved by creating a method for backing up versions of a data block, including the steps in which

в массив версий блока данных сохраняется новейшая версия блока данных;the newest version of the data block is saved to the array of data block versions;

определяется множество версий блока данных, включающее в себя по меньшей мере часть массива версий блока данных;a plurality of data block versions is defined, including at least a portion of the data block version array;

определяются значения функции длин интервалов, которая является монотонно возрастающей по направлению от наиболее поздней версии к наиболее ранней версии блока данных;the values of the interval length function are determined, which is monotonically increasing in the direction from the latest version to the earliest version of the data block;

определяются значения функции количества оставляемых в интервалах версий, причем функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента является убывающей;the values of the function of the number of versions left in the intervals are determined, and the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument is decreasing;

последовательность номеров версий блока данных в множестве версий разбивается на интервалы в соответствии со значениями функции длин интервалов по направлению от наиболее поздней версии к наиболее ранней версии блока данных;a sequence of version numbers of a data block in a plurality of versions is divided into intervals according to the values of the interval length function in the direction from the latest version to the earliest version of the data block;

в случае наличия интервалов, в которых содержится больше хранимых версий блока данных, чем соответствующее значение функции количества оставляемых в интервалах версий, в этих интервалах удаляются версии блока данных таким образом, чтобы в каждом интервале осталось хранимых версий не больше, чем соответствующее значение функции количества оставляемых в интервалах версий.if there are intervals that contain more stored versions of a data block than the corresponding value of the function of the number of versions left in the intervals, versions of the data block are deleted in these intervals so that in each interval there are no more stored versions than the corresponding value of the function of the number of retained in version intervals.

Во втором аспекте настоящего изобретения поставленная задача была решена путем создания системы резервного сохранения версий блока данных, выполненной с возможностью последовательного получения сохраняемых версий блока данных и включающей в себяIn the second aspect of the present invention, the problem was solved by creating a backup system for storing versions of a data block, configured to sequentially obtain the stored versions of a data block and including

узел сохранения данных, выполненный с возможностью сохранения и удаления версий блока данных;a data storage unit configured to save and delete versions of the data block;

вычислительный узел;computing node;

при этомwherein

вычислительный узел выполнен с возможностью определения значений функции длин интервалов, которая является монотонно возрастающей по направлению от наиболее поздней версии к наиболее ранней версии блока данных;the computing unit is configured to determine the values of the interval length function, which is monotonically increasing in the direction from the latest version to the earliest version of the data block;

вычислительный узел выполнен с возможностью определения значений функции количества оставляемых в интервалах версий, причем функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значений аргумента является убывающей;the computing node is configured to determine the values of the function of the number of versions left in the intervals, and the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument is decreasing;

вычислительный узел выполнен с возможностью разбиения последовательности номеров версий блока данных на интервалы в соответствии со значениями функции длин интервалов по направлению от наиболее новой версии блока данных к наиболее старым версиям блока данных;the computing node is configured to split the sequence of version numbers of the data block into intervals in accordance with the values of the function of the lengths of the intervals in the direction from the newest version of the data block to the oldest versions of the data block;

система резервного сохранения версий блока данных выполнена с возможностью удаления версий блока данных таким образом, чтобы в каждом интервале осталось хранимых версий не больше, чем соответствующее значение функции количества оставляемых в интервалах версий.The backup system for storing the versions of the data block is made with the possibility of deleting the versions of the data block in such a way that in each interval there are no more stored versions than the corresponding value of the function of the number of versions left in the intervals.

В третьем аспекте настоящего изобретения поставленная задача была решена путем создания машиночитаемого носителя, содержащего машиноисполняемые инструкции, которые при выполнении их системой резервного сохранения версий блока данных вынуждают ее выполнять этапы, на которыхIn a third aspect of the present invention, the object has been achieved by providing a computer-readable medium containing computer-executable instructions that, when executed by the backup system for storing versions of a data block, cause it to perform the steps at which

в массив версий блока данных сохраняется новейшая версия блока данных;the newest version of the data block is saved to the array of data block versions;

определяется множество версий блока данных, включающее в себя по меньшей мере часть массива версий блока данных;a plurality of data block versions is defined, including at least a portion of the data block version array;

определяются значения функции длин интервалов, которая является монотонно возрастающей по направлению от наиболее поздней версии к наиболее ранней версии блока данных;the values of the interval length function are determined, which is monotonically increasing in the direction from the latest version to the earliest version of the data block;

определяются значения функции количества оставляемых в интервалах версий, причем функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента является убывающей;the values of the function of the number of versions left in the intervals are determined, and the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument is decreasing;

последовательность номеров версий блока данных в множестве версий разбивается на интервалы в соответствии со значениями функции длин интервалов по направлению от наиболее поздней версии к наиболее ранней версии блока данных;a sequence of version numbers of a data block in a plurality of versions is divided into intervals according to the values of the interval length function in the direction from the latest version to the earliest version of the data block;

в случае наличия интервалов, в которых содержится больше хранимых версий блока данных, чем соответствующее значение функции количества оставляемых в интервалах версий, в этих интервалах удаляются версии блока данных таким образом, чтобы в каждом интервале осталось хранимых версий не больше, чем соответствующее значение функции количества оставляемых в интервалах версий.if there are intervals that contain more stored versions of a data block than the corresponding value of the function of the number of versions left in the intervals, versions of the data block are deleted in these intervals so that in each interval there are no more stored versions than the corresponding value of the function of the number of retained in version intervals.

Технический результат, достигаемый раскрытым изобретением в каждом из трех его аспектов, заключается в уменьшении объема пространства носителей информации, занимаемого хранимыми версиями блока данных, при обеспечении доступности версий блока данных, которые с наибольшей вероятностью будут востребованы.The technical result achieved by the disclosed invention in each of its three aspects is to reduce the amount of storage media space occupied by the stored versions of the data block, while ensuring the availability of the versions of the data block that are most likely to be in demand.

Далее в настоящем описании раскрытое техническое решение будет описано более детально со ссылкой на прилагаемые фигуры чертежей.Hereinafter, the disclosed technical solution will be described in more detail with reference to the accompanying drawings.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF DRAWINGS

Фиг. 1 - блок-схема способа резервного сохранения версий блока данных;FIG. 1 is a block diagram of a method for backing up data block versions;

Фиг. 2 - иллюстрация работы способа резервного сохранения версий блока данных в одном из вариантов его осуществления.FIG. 2 illustrates the operation of a method for backing up versions of a data block in one embodiment.

ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯMODES FOR CARRYING OUT THE INVENTION

Для целей настоящего описания под термином «блок данных» может пониматься любой файл, подвергающийся изменениям, папка с файлами, база данных, массив информации некоторого жесткого диска, массив данных, позволяющих восстановить состояние операционной системы или другие возможные варианты воплощения блока данных.For the purposes of this description, the term "data block" can mean any file undergoing changes, a folder with files, a database, an array of information on a hard disk, an array of data that allows you to restore the state of the operating system, or other possible embodiments of a data block.

Технический результат достигается раскрытым техническим решением путем решения задачи, заключающейся в обеспечении хранения свежих версий с высокой частотой детализации, при снижении частоты детализации хранения по мере увеличения возраста версий блока данных. Такое изменение частоты хранимых версий соответствует изменению вероятности возникновения необходимости обращения к этим версиям (резервным копиям) блока данных. Например, в некоторых областях применения, если свежие версии блока данных необходимо сохранять ежедневно (вероятность возникновения необходимости к свежим версиям наиболее высокая), то версии давностью в 3 месяца может быть достаточно хранить, скажем, с частотой одна версия блока данных в неделю. Таким образом может экономиться дисковое пространство за счет снижения излишней детализации версий, сохраненных в далеком прошлом. На практике, когда возникает необходимость обратиться к старой версии, обычно не стоит вопрос о высокой степени конкретики этой версии. В подавляющем большинстве таких случаев допустима погрешность, например, в неделю или в месяц. Раскрытый алгоритм итеративно модифицирует историю версий (множество версий блока данных) всякий раз при добавлении новой свежей версии таким образом, чтобы гарантировать предустановленный характер уменьшающейся детализации в прошлом.The technical result is achieved by the disclosed technical solution by solving the problem of ensuring the storage of fresh versions with a high detail frequency, while reducing the storage detail frequency as the age of the data block versions increases. This change in the frequency of stored versions corresponds to a change in the likelihood that it will be necessary to refer to these versions (backups) of the data block. For example, in some applications, if newer versions of a data block need to be stored daily (the likelihood of the need for newer versions being the highest), then versions 3 months old may be sufficient to store, say, one version of the data block per week. In this way, disk space can be saved by reducing the unnecessary granularity of versions stored in the distant past. In practice, when it becomes necessary to refer to an older version, there is usually no question of the high degree of specificity of that version. In the overwhelming majority of such cases, an error is permissible, for example, per week or per month. The disclosed algorithm iteratively modifies the version history (multiple versions of a data block) each time a new, fresh version is added in such a way as to guarantee the predefined nature of decreasing granularity in the past.

В предпочтительном варианте осуществления изобретения способ осуществляется с помощью системы резервного сохранения блока данных, включающей в себя узел сохранения данных и вычислительный узел. В наиболее предпочтительном варианте осуществления изобретения способ осуществляется с помощью системы резервного сохранения блока данных в соответствии со вторым аспектом настоящего изобретения.In a preferred embodiment of the invention, the method is carried out using a data block backup system including a data storage unit and a computing unit. In the most preferred embodiment of the invention, the method is performed with a block backup system in accordance with the second aspect of the present invention.

В большинстве вариантов осуществления выполнению раскрытого способа резервного сохранения версий блока данных предшествует фаза подготовки (настройки), в ходе которой выбираются функция длин интервалов или ее значения, а также функция количества оставляемых в интервалах версий или ее значения. Такая подготовка (настройка) может включать в себя настройку параметров программы, под управлением которой система резервного сохранения блока данных выполняет этапы способа резервного сохранения блока данных. Настройка (подготовка) может выполняться вручную или по меньшей мере частично автоматизировано. Также на этом предварительном этапе к по меньшей мере части версий из массива сохраненных версий может применяться иной способ сохранения резервных версий блока данных.In most embodiments, the implementation of the disclosed method of backing up data block versions is preceded by a preparation (tuning) phase, during which a function of interval lengths or its values is selected, as well as a function of the number of versions left in the intervals or its values. Such preparation (tuning) may include setting the parameters of the program under the control of which the data block backup system performs the steps of the data block backup method. Configuration (preparation) can be done manually or at least partially automated. Also, at this preliminary stage, a different method of storing backup versions of the data block can be applied to at least part of the versions from the array of saved versions.

В предпочтительном варианте осуществления изобретения способ резервного сохранения версий блока данных выполняется итеративно с сохранением очередной новейшей версии блока данных. Так, способ сохранения в соответствии с настоящим изобретением включает в себя этап, на котором в массив хранимых версий блока данных сохраняется (1) новейшая версия блока данных. Сохранение может выполняться узлом сохранения данных под управлением вычислительного узла. Под массивом версий блока данных понимается по существу вся совокупность сохраненных до некоторого момента версий блока данных. При этом необходимо понимать, что массив версий блока данных может включать в себя как хранимые версии блока данных, так и удаленные версии блока данных.In a preferred embodiment of the invention, the method for backing up data block versions is performed iteratively, keeping the next newest version of the data block. Thus, the storage method according to the present invention includes the step of storing (1) the newest version of the data block in an array of stored versions of a data block. The storage can be performed by a data storage node under the control of a computing node. An array of versions of a data block is understood as essentially the entire set of versions of a data block saved up to a certain point. It should be understood that the array of data block versions can include both stored versions of the data block and deleted versions of the data block.

При этом способ сохранения в соответствии с настоящим изобретением включает в себя этап, на котором определяется (2) множество версий блока данных, включающее в себя по меньшей мере часть массива сохраненных версий блока данных. Определение множества версий блока данных может выполняться путем совершения соответствующих операций вычислительным узлом, который при этом выполнен с возможностью чтения и обработки информации, хранимой на узле сохранения данных. Предполагается, что с помощью раскрытого способа может быть эффективно организовано сохранение (и хранение) как всего массива имеющихся версий блока данных, так и части этого массива. В некоторых вариантах осуществления изобретения сохранение и/или хранение версий блока данных, входящих в массив версий, но не входящих в упомянутое множество версий блока данных, может быть осуществлено и/или организовано другим способом. При этом технический результат настоящего изобретения будет достигаться в первую очередь в отношении упомянутого множества версий блока данных, а также достигается в отношении массива версий блока данных. При этом новейшая версия блока данных может автоматически определяться как входящая в множество версий, в отношении которого выполняется способ сохранения версии блока данных. Необходимо понимать, что множество версий блока данных может включать в себя как хранимые версии блока данных, так и удаленные версии блока данных.Meanwhile, the storage method according to the present invention includes the step of determining (2) a plurality of data block versions including at least a portion of an array of stored data block versions. Determination of the plurality of versions of the data block can be performed by performing the corresponding operations by the computing unit, which is then configured to read and process the information stored on the data storage unit. It is assumed that using the disclosed method, the storage (and storage) of both the entire array of available versions of the data block and a part of this array can be effectively organized. In some embodiments of the invention, storing and / or storing versions of a data block included in a version array but not included in said plurality of data block versions may be implemented and / or organized in another way. In this case, the technical result of the present invention will be achieved primarily in relation to the aforementioned plurality of data block versions, and also achieved in relation to the array of data block versions. In this case, the newest version of the data block can be automatically detected as included in the plurality of versions, in relation to which the method of storing the version of the data block is performed. It should be understood that multiple versions of a data block can include both stored versions of the data block and deleted versions of the data block.

Допустим, в массиве всех когда-либо созданных версий блока данных определено некоторое множество версий блока данных, включающее в себя по меньшей мере часть массива сохраненных версий блока данных. Пусть все версии упомянутого множества версий блока данных могут быть пронумерованы от 1 до N в порядке от самой старой к самой новой. В процессе выполнения способа сохранения среди версий этого множества имеются как хранящиеся версии, так и уже удаленные. Каждая итерация способа сохранения запускается, когда добавляется новая свежая версия в массив (под номером N).Suppose, in the array of all ever created versions of the data block, a plurality of versions of the data block are defined, including at least a part of the array of stored versions of the data block. Let all versions of the mentioned plurality of data block versions be numbered from 1 to N in order from oldest to newest. In the process of performing the saving method, among the versions of this set, there are both stored versions and those that have already been deleted. Each iteration of the save method starts when a new fresh version is added to the array (numbered N).

Способ в соответствии с настоящим изобретением включает в себя этап, на котором определяются (3) значения функции длин интервалов, которая является монотонно возрастающей по направлению от наиболее поздней версии к наиболее ранней версии. Определение значений функции длин интервалов может выполняться путем выполнения соответствующих вычислительных операций вычислительным узлом в соответствии с предварительно заданной функцией длин интервалов. Также определение значений функции длин интервалов может выполняться путем считывания их с некоторого носителя информации. Функция длин интервалов может быть задана в любом известном виде, например, в табличном или в аналитическом виде, а также путем сочетания различных способов задания функции. Длинами интервалов могут являться только натуральные числа, и в предпочтительном варианте осуществления настоящего изобретения значения функции при натуральных значениях аргумента (например, условного номера интервала) являются натуральными числами. Функция длин интервалов устанавливается (задается) предварительно, и в рамках выполнения этапов способа является предустановленной. Такое задание функции может выполняться в ходе предварительной настройки программы, реализующей способ.The method according to the present invention includes the step of determining (3) the values of the interval length function, which is monotonically increasing from the most recent version to the earliest version. The determination of the values of the function of the interval lengths can be performed by performing the corresponding computational operations by the computing node in accordance with the predetermined function of the interval lengths. Also, the determination of the values of the function of the lengths of the intervals can be performed by reading them from some information carrier. The function of interval lengths can be specified in any known form, for example, in tabular or analytical form, as well as by combining various methods of defining the function. The lengths of the intervals can only be natural numbers, and in the preferred embodiment of the present invention, the values of the function at natural values of the argument (eg, the conditional number of the interval) are natural numbers. The function of the lengths of the intervals is set (set) in advance, and within the framework of the execution of the steps of the method is preset. This setting of the function can be performed during the presetting of the program that implements the method.

При этом необходимо понимать, что даже если в некоем алгоритме используется определяющая длины интервалов функция, которая при натуральных значениях аргумента принимает значения, отличные от натуральных, длины интервалов, определенные неким образом (например, округлением, отбрасыванием дробной части или иным преобразованием) из этой функции, в итоге все равно примут натуральные значения. В этом случае, как и в других, корректно считать функцией длин интервалов, например, функцию, заданную в табличном виде, отражающую соответствие номера интервала фактическому значению его длины.It should be understood that even if some algorithm uses a function that determines the lengths of the intervals, which for natural values of the argument takes values other than natural values, the lengths of the intervals are determined in some way (for example, by rounding, discarding the fractional part or other transformation) from this function , in the end they will still take natural values. In this case, as in others, it is correct to consider as a function of interval lengths, for example, a function specified in a tabular form, reflecting the correspondence of the interval number to the actual value of its length.

Определение значений функции длин интервалов может выполняться путем вычисления значения функции при некотором (некоторых) значениях аргумента k, путем извлечения предопределенного значения функции длин интервалов из некоторого хранилища, или любым другим способом, в результате которого требуемые значения функции длин интервалов определяются для дальнейшего использования их в способе.The determination of the values of the interval length function can be performed by calculating the value of the function for some (some) values of the argument k, by extracting a predefined value of the interval length function from some storage, or in any other way, as a result of which the required values of the interval length function are determined for further use in way.

В результате определения значений функции длин интервалов мы получаем последовательность длин интервалов а(k), где k=1, 2, 3 … . Областью определения этой функции являются натуральные числа, значения ее аргумента фактически представляют собой порядковые номера интервалов при нумерации по направлению от самых новых версий множества версий блока данных к более ранним версиям. Областью значений функции длин интервалов (последовательности длин интервалов) являются натуральные числа.As a result of determining the values of the function of the lengths of the intervals, we get a sequence of the lengths of the intervals a (k), where k = 1, 2, 3…. The scope of this function is natural numbers, the values of its argument actually represent the ordinal numbers of intervals when numbered in the direction from the newest versions of the set of versions of the data block to earlier versions. The range of values of the function of lengths of intervals (sequences of lengths of intervals) are natural numbers.

В качестве вспомогательного способ может включать в себя этап, на котором по последовательности значений функции длин интервалов а(k) восстанавливается агрегирующая последовательность значений функции b(k), которая указывает на номера версий блока данных, приходящихся на концы соответствующих интервалов под номером k (при нумерации интервалов и версий блока данных от наиболее новой к более ранним версиям).As an auxiliary method, the method may include the step of reconstructing the aggregating sequence of values of the function b (k) from the sequence of values of the function of the lengths of the intervals a (k), which indicates the version numbers of the data block falling on the ends of the corresponding intervals numbered k (for the numbering of intervals and versions of the data block from the most recent to earlier versions).

Figure 00000001
Figure 00000001

При этом b(0)=0.Moreover, b (0) = 0.

Необходимо понимать, что для удобства иллюстрации сущности изобретения версии блока данных на фигурах чертежей условно обозначаются номерами версий блока данных по порядку их сохранения (от 1 до N), но нумерация интервалов (k) и версий блока данных в агрегирующей последовательности (b(k)) в рамках способа выполняется, начиная от наиболее новой версии к более старой.It should be understood that for the convenience of illustrating the essence of the invention, the versions of the data block in the figures of the drawings are conventionally denoted by the version numbers of the data block in the order of their storage (from 1 to N), but the numbering of intervals (k) and versions of the data block in the aggregating sequence (b (k) ) within the method is executed from the newest version to the older one.

Способ в соответствии с настоящим изобретением включает в себя этап, на котором определяются (4) значения функции количества оставляемых в интервалах версий, причем функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента является убывающей. Определение значений функции количества оставляемых в интервалах версий может выполняться путем выполнения соответствующих вычислительных операций вычислительным узлом в соответствии с предварительно заданной функцией количества оставляемых в интервалах версий. Также определение значений функции количества оставляемых в интервалах версий может выполняться путем считывания их с некоторого носителя информации. В сущности, функция количества оставляемых в интервалах версий определяет максимальное количество версий в каждом из интервалов. Функция количества оставляемых в интервалах версий устанавливается (задается) предварительно, и в рамках выполнения этапов способа сохранения является предустановленной. Такое задание функции может выполняться в ходе предварительной настройки программы, реализующей способ.The method in accordance with the present invention includes the step of determining (4) the values of the function of the number of versions left in the intervals, and the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument is decreasing. The determination of the values of the function of the number of versions left in the intervals can be performed by performing the corresponding computational operations by the computing node in accordance with a predetermined function of the number of versions left in the intervals. Also, the determination of the values of the function of the number of versions left in the intervals can be performed by reading them from some information carrier. In essence, the function of the number of versions left in the intervals determines the maximum number of versions in each of the intervals. The function of the number of versions to be retained in the intervals is set (set) in advance, and is preset within the steps of the saving method. This setting of the function can be performed during the presetting of the program that implements the method.

Функция количества оставляемых в интервалах версий может быть задана в любом известном виде, например, в табличном или в аналитическом виде, а также путем сочетания различных способов задания функции. Значениями количества версий могут являться только натуральные числа, и в предпочтительном варианте осуществления настоящего изобретения значения функции количества оставляемых версий при натуральных значениях аргумента (например, условного номера интервала) являются натуральными числами.The function of the number of versions left in the intervals can be specified in any known form, for example, in a tabular or analytical form, as well as by combining various methods of defining the function. The values of the number of versions can only be natural numbers, and in the preferred embodiment of the present invention, the values of the function of the number of versions to keep with natural values of the argument (for example, the conditional number of the interval) are natural numbers.

При этом необходимо понимать, что даже если в некоем алгоритме используется определяющая количество оставляемых версий в интервалах функция, которая при натуральных значениях аргумента принимает отличные от натуральных значения, количества оставляемых в интервалах версий, определенные неким образом (например, округлением, отбрасыванием дробной части или иным преобразованием) из этой функции, в итоге все равно примут натуральные значения. В этом случае, как и в других, корректно считать функцией количества оставляемых в интервалах версий, например, функцию, заданную в табличном виде, отражающую соответствие фактического значения количества оставляемых в интервалах версий условным номерам интервалов.It should be understood that even if a certain algorithm uses a function that determines the number of versions left in intervals, which, for natural values of the argument, takes values other than natural values, the number of versions left in intervals, determined in some way (for example, by rounding, discarding a fractional part, or otherwise transformation) from this function, in the end they will still take natural values. In this case, as in others, it is correct to consider as a function of the number of versions left in the intervals, for example, a function specified in a tabular form, reflecting the correspondence of the actual value of the number of versions left in the intervals to the conditional numbers of intervals.

Определение значений функции количества оставляемых в интервалах версий может выполняться путем вычисления значения функции при некотором (некоторых) значениях аргумента, путем извлечения предопределенного значения функции количества оставляемых в интервалах версий из некоторого хранилища, или любым другим способом, в результате которого требуемые значения функции количества оставляемых в интервалах версий определяются для дальнейшего использования их в способе.The determination of the values of the function of the number of versions left in the intervals can be performed by calculating the value of the function for some (some) values of the argument, by extracting the predefined value of the function of the number of versions left in the intervals from some storage, or in any other way, as a result of which the required values of the function of the number of versions left in version intervals are defined for future use in the method.

Способ в соответствии с настоящим изобретением включает в себя этап, на котором последовательность номеров версий блока данных в множестве версий разбивается (5) на интервалы в соответствии со значениями функции длин интервалов по направлению от наиболее поздней версии к наиболее ранней версии блока данных. Разбиение последовательности версий блока данных на интервалы может выполняться путем выполнения соответствующих вычислительных и/или логических операций вычислительным узлом. Такое разбиение может быть как явно задано в алгоритме программы, под управлением которой работает вычислительный узел, так и быть заключено в математические функции, используемые в алгоритме. В настоящем описании такое разбиение служит для раскрытия последовательности действий при сохранении версий блока данных и характера результата осуществления изобретения. Разбиение на интервалы может выполняться условно и служит для дальнейшего определения версий блока данных, подлежащих удалению. В первых интервалах содержатся одна или несколько наиболее свежих версий блока данных, в последующих этапах содержатся более ранние версии блока данных.The method in accordance with the present invention includes the step of splitting a sequence of version numbers of a data block in a plurality of versions (5) into intervals according to the values of a function of the interval lengths in the direction from the latest version to the earliest version of the data block. The division of the sequence of versions of the data block into intervals can be performed by performing the corresponding computational and / or logical operations by the computational node. Such a partition can be either explicitly specified in the algorithm of the program under which the computing unit operates, or it can be enclosed in mathematical functions used in the algorithm. In the present description, such a partition serves to disclose the sequence of actions while maintaining the versions of the data block and the nature of the result of the implementation of the invention. The division into intervals can be performed conditionally and serves to further determine the versions of the data block to be deleted. The first intervals contain one or more of the most recent versions of the data block, the subsequent steps contain the earlier versions of the data block.

Необходимо понимать, что номера версий блока данных являются условными; последовательность номеров в множестве версий включает в себя номера как хранимых версий, так и удаленных; интервалы также включают в себя как номера удаленных версий, так и номера хранимых версий.It should be understood that the version numbers of the data block are conditional; the sequence of numbers in the plurality of versions includes numbers of both stored and deleted versions; intervals also include both deleted version numbers and stored version numbers.

То есть, множество версий блока данных разбивается на последовательные интервалы:That is, multiple versions of a data block are split into successive intervals:

[N-b(1)+1, N-b(0)], [N-b(2)+1, N-b(1)], [N-b(3)+1, N-b(2)] … [N-b(k)+1, N-b(k-1)] …[Nb (1) +1, Nb (0)], [Nb (2) +1, Nb (1)], [Nb (3) +1, Nb (2)]… [Nb (k) +1, Nb (k-1)] ...

где литерой k=1, 2, 3 … обозначен номер интервала при нумерации от наиболее новой к наиболее старым версиям; N - это количество версий в множестве версий блока данных и номер наиболее новой версии.where the letter k = 1, 2, 3 ... denotes the number of the interval when numbered from the newest to the oldest versions; N is the number of versions in multiple versions of the data block and the most recent version.

Способ в соответствии с настоящим изобретением также включает в себя этап, на котором в случае наличия (6) интервалов, в которых содержится больше хранимых версий блока данных, чем соответствующее значение функции количества оставляемых в интервалах версий, в этих интервалах удаляются (7) версии блока данных таким образом, чтобы в каждом интервале осталось хранимых версий не больше, чем соответствующее значение функции количества оставляемых в интервалах версий. Этап может включать в себя промежуточные этапы и выполняться итеративно: для каждого интервала может выполняться определение количества хранимых версий блока данных до удаления; сравнение значения функции количества оставляемых версий блок данных с количеством хранимых версий блока данных в интервале до удаления; определение хранимых версий блока данных в интервале, подлежащих удалению; удаление версий блока данных, определенных подлежащими удалению. Удаление и предшествующие ему логические и/или математические операции могут выполняться вычислительным узлом, который выполнен с возможностью чтения и обработки информации, хранимой на узле сохранения данных. Непосредственно удаление версий блока данных на носителях может осуществляться узлом сохранения данных при поступлении соответствующих управляющих команд от вычислительного узла.The method in accordance with the present invention also includes a step, in which in the case of (6) intervals, which contain more stored versions of the data block than the corresponding value of the function of the number of versions left in the intervals, the block versions are deleted in these intervals (7) data in such a way that in each interval there are no more stored versions than the corresponding value of the function of the number of versions left in the intervals. The step may include intermediate steps and be performed iteratively: for each interval, determination of the number of stored versions of the data block before deletion may be performed; comparing the value of the function of the number of versions of the data block to be retained with the number of stored versions of the data block in the interval before deletion; determining the stored versions of the data block in the interval to be deleted; deleting the versions of the data block defined to be deleted. The deletion and the preceding logical and / or mathematical operations can be performed by a computing unit, which is configured to read and process information stored on the data storage unit. Direct deletion of versions of the data block on the media can be carried out by the data storage unit upon receipt of the corresponding control commands from the computing unit.

Так, например, если в каком-либо интервале сохранено более двух версий, то удалению могут подлежать все версии блока данных, кроме самой старой и самой новой. В других вариантах осуществления может использоваться иной порядок удаления версий блока данных из интервала.So, for example, if more than two versions are stored in any interval, then all versions of the data block, except for the oldest and the newest, can be deleted. In other embodiments, a different order of removing data block versions from the interval may be used.

Выполнение способа резервного сохранения версий блока данных завершается (8) после выполнения удаления (7) версий или после отрицательного результата проверки (6).The execution of the method for backing up versions of a data block is completed (8) after deleting (7) versions or after a negative check result (6).

Критерием эффективности способа сохранения является характер функции E(N), которая равна количеству сохраненных версий после N последовательных итераций способа сохранения (при последовательном добавлении версий 1, 2 … N).The criterion for the efficiency of the saving method is the nature of the function E (N), which is equal to the number of saved versions after N successive iterations of the saving method (with the sequential addition of versions 1, 2 ... N).

Из условия положительности и монотонного возрастания последовательности а(k) при k=1, 2, 3 … следует:From the condition of positivity and monotonic increase of the sequence a (k) for k = 1, 2, 3 ... it follows:

а(k)≥ka (k) ≥k

Отсюда следует ограничение на b(k):Hence follows the restriction on b (k):

Figure 00000002
Figure 00000002

Figure 00000003
Figure 00000003

Допустим, числу версий N соответствует m покрывающих интервалов (то есть N версий разобьются на m интервалов в соответствии с логикой способа). Тогда из условия построения интервалов следует, что:Suppose that the number of versions N corresponds to m covering intervals (that is, N versions are divided into m intervals in accordance with the logic of the method). Then it follows from the condition for constructing intervals that:

b(m-1)<Nb (m-1) <N

Следовательно (учитывая полученное ранее ограничение на b(k)):Therefore (taking into account the previously obtained restriction on b (k)):

Figure 00000004
Figure 00000004

Figure 00000005
Figure 00000005

Figure 00000006
Figure 00000006

Figure 00000007
Figure 00000007

Так как количество версий E(N) не превосходит удвоенного количества интервалов (по условию алгоритма), то:Since the number of versions E (N) does not exceed twice the number of intervals (by the condition of the algorithm), then:

Figure 00000008
Figure 00000008

Figure 00000009
Figure 00000009

Таким образом получаем, что E(N)=o(N). Запись f(n)=o(g(n)) читается как последовательность f(n) является о-малым от другой последовательности g(n), что в свою очередь означает, что отношение последовательностей f(n)/g(n) стремится к нулю при n стремящемся к бесконечности. Здесь символ о-малое является обозначением бесконечно малой функции. Определение бесконечно малой функции известно из математики (например, Основы математического анализа. В 2-х ч. Ильин В.А., Позняк Э.Г. М.: Физматлит. Ч. 1 - 2005, 7-е изд., 648 с., страница 109 и остальные). Интуитивно это нужно понимать, что значения f(n) становится все меньше и меньше в проценте от g(n) при n стремящемся к бесконечности. Поэтому с ростом n можно пренебречь функцией f(n) по сравнению с g(n) в ряде случаев.Thus, we get that E (N) = o (N). The notation f (n) = o (g (n)) reads as a sequence f (n) is o-small from another sequence g (n), which in turn means that the ratio of sequences f (n) / g (n) tends to zero as n tends to infinity. Here the symbol o-small is the designation of an infinitesimal function. The definition of an infinitesimal function is known from mathematics (for example, Fundamentals of mathematical analysis. In 2 parts. Ilyin V.A., Poznyak E.G. M .: Fizmatlit. Part 1 - 2005, 7th ed., 648 p. ., page 109 and others). Intuitively, you need to understand that the value of f (n) becomes less and less as a percentage of g (n) as n tends to infinity. Therefore, as n grows, the function f (n) can be neglected in comparison with g (n) in a number of cases.

Это является обоснованием асимптотической эффективности алгоритма. Под асимптотической эффективностью следует понимать следующее. Алгоритм является асимптотически эффективным, если функция отношения количества физически оставляемых версий ко всем версиям стремится к нулю при стремлении общего количества версий к бесконечности. В терминах о-малого эквивалентное определение асимптотической эффективности: E(N)=o(N), где N - количество версий, E(N) - функция количества физически не удаленных версий.This is the rationale for the asymptotic efficiency of the algorithm. The asymptotic efficiency should be understood as follows. An algorithm is asymptotically efficient if the function of the ratio of the number of physically retained versions to all versions tends to zero as the total number of versions tends to infinity. In terms of o-small, the equivalent definition of asymptotic efficiency is: E (N) = o (N), where N is the number of versions, E (N) is a function of the number of physically not removed versions.

В вариантах осуществления изобретения в соответствии с первым его аспектом, результаты работы которых схематично представлены на фиг. 2, функция количества оставляемых версий равна числу 2 (константе). При этом версии блока данных, составляющих множество версий блока данных, представлены в виде последовательных номеров версий блока данных по порядку сохранения. Каждая строка, начиная с первой, иллюстрирует состояние множества версий блока данных после соответствующей итерации способа сохранения версий блока данных. Цифры - номера версий блока данных, хранимых после соответствующей итерации способа; точки - удаленные версии блока данных.In embodiments of the invention in accordance with a first aspect thereof, the results of which are shown schematically in FIG. 2, the function of the number of versions to keep is equal to 2 (constant). In this case, the versions of the data block that make up the plurality of versions of the data block are presented as sequential version numbers of the data block in the order of storage. Each line starting from the first illustrates the state of the plurality of data block versions after the corresponding iteration of the method for storing the data block versions. Digits - numbers of versions of the data block stored after the corresponding iteration of the method; points are deleted versions of the data block.

В данном варианте осуществления предварительно была определена (установлена, задана) функция длин интервалов, имеющая вид:In this embodiment, the function of the lengths of the intervals was previously determined (set, set), having the form:

а(k)=2k-1+1a (k) = 2 k-1 +1

где k - порядковый номер интервала, причем интервалы считаются по направлению от наиболее новой версии к более ранним версиям блока данных. Определение функции может быть выполнено путем задания этой функции вручную в наборе инструкций, под управлением которых вычислительный узел определяет значения функций; а также в ходе настройки работы алгоритма путем введения функции или ее значений через какой-либо интерфейс.where k is the sequence number of the interval, and the intervals are counted in the direction from the most recent version to the earlier versions of the data block. The definition of a function can be performed by specifying this function manually in a set of instructions, under the control of which the computational node determines the values of the functions; as well as in the course of setting up the operation of the algorithm by introducing a function or its values through any interface.

То есть в ходе выполнения способа определяются следующие значения функции длин интерваловThat is, during the execution of the method, the following values of the function of the lengths of the intervals are determined

{а(k)}=2, 3, 5, 9, 17 …{a (k)} = 2, 3, 5, 9, 17 ...

Функция количества оставляемых версий в данном варианте осуществления определяется какThe function of the number of versions to keep in this embodiment is defined as

V(k)=2,V (k) = 2,

то есть область значений функции количества оставляемых версий в данном варианте равна постоянному числу 2.that is, the range of values of the function of the number of retained versions in this variant is equal to the constant number 2.

Для удобства реализации способа в данном варианте осуществления по последовательности значений функции а(k) восстанавливается агрегирующая последовательность значений функции b(k), которая указывает на номера версий при нумерации, начиная от новейшей в сторону более ранних, являющихся самыми ранними версиями блока данных в соответствующих интервалах, при этом в той или иной момент эти версии блока данных могут быть как хранимыми, так и удаленными.For the convenience of implementing the method in this embodiment, the sequence of values of the function a (k) is used to reconstruct the aggregating sequence of values of the function b (k), which indicates the version numbers when numbered, starting from the newest towards the earlier, which are the earliest versions of the data block in the corresponding intervals, while at one point or another, these versions of the data block can be either stored or deleted.

Figure 00000010
Figure 00000010

Агрегирующая последовательность в данном варианте осуществления принимает следующие значения:The aggregation sequence in this embodiment takes on the following values:

{b(k)}=2, 5, 10, 19, 36 …{b (k)} = 2, 5, 10, 19, 36 ...

Допустим, числу версий N соответствует m покрывающих интервалов (то есть N версий разобьются на m интервалов в соответствии с логикой способа). Тогда из условия построения интервалов следует, что:Suppose that the number of versions N corresponds to m covering intervals (that is, N versions are divided into m intervals in accordance with the logic of the method). Then it follows from the condition for constructing intervals that:

b(m-1)<Nb (m-1) <N

Следовательно:Hence:

Figure 00000011
Figure 00000011

Так как m≥1, то из вышезаписанного неравенства следует:Since m≥1, then from the above-written inequality it follows:

Figure 00000012
Figure 00000012

Figure 00000013
Figure 00000013

Figure 00000014
Figure 00000014

Figure 00000015
Figure 00000015

Так как Е(N)≤2m:Since E (N) ≤2m:

Figure 00000016
Figure 00000016

Так, мы получили зависимость количества сохраненных версий E(N) (а, следовательно, и занимаемой для хранения истории памяти) от глубины истории версий N.So, we got the dependence of the number of saved versions E (N) (and, consequently, the memory occupied to store the history) on the depth of the version history N.

Ниже приведен пример кода на Python алгоритма, реализующего способ резервного сохранения данных. Через функцию calc_В происходит подготовка алгоритма. Функция process state выполняет итерацию алгоритма и изменяет переданный ей в качестве аргумента список state, состоящий из 0 и 1. Последовательность элементов в списке соответствует последовательности версий, начиная с самой старой. 0 означает, что данная версия удалена и более не хранится в истории, 1 - версия физически существует и может быть использована.Below is a sample Python code for an algorithm that implements a way to back up data. The algorithm is prepared through the calc_B function. The process state function iterates through the algorithm and modifies the state list passed to it, consisting of 0 and 1. The sequence of items in the list corresponds to the sequence of versions, starting with the oldest. 0 means that this version has been deleted and is no longer stored in history, 1 - the version physically exists and can be used.

Figure 00000017
Figure 00000017

Figure 00000018
Figure 00000018

На фиг. 2 показана работа способа в приведенном варианте осуществления в динамике. Способ выполняется для первой версии (номер 1), потом добавляется версия 2, далее - 3, и т.д. При каждом добавлении новой версии запускается итерация способа, и, если решается удалить какую-либо версию блока данных, она она удаляется, при этом ее номер заменяется на фиг. 2 на точку. Вертикальными чертами отмечены засечки, в соответствии с которыми алгоритм разбивает историю версий на интервалы. Можно увидеть, что как только в какой-либо интервал попадает более двух (2 значение функции количества оставляемых версий) версий, выполняется удаление версий в интервале, кроме двух (в представленном варианте осуществления - двух крайних).FIG. 2 shows the operation of the method in the above embodiment in dynamics. The method is performed for the first version (number 1), then version 2 is added, then - 3, etc. Each time a new version is added, an iteration of the method is started, and if it is decided to delete any version of the data block, it is deleted, and its number is replaced in FIG. 2 per point. Vertical bars indicate serifs, according to which the algorithm breaks the version history into intervals. It can be seen that as soon as more than two (2 is the value of the function of the number of versions to be retained) versions fall into any interval, versions are deleted in the interval, except for two (in the presented embodiment, two extreme ones).

В некоторых вариантах осуществления раскрытого изобретения значения функции v(k) количества оставляемых в интервале версий может отличаться от постоянного натурального числа. При этом для достижения технического результата эта функция должна удовлетворять следующему требованию: при стремлении k к бесконечности функция отношения функции количества оставляемых в интервалах версий к функции длин интервалов должна стремиться к нулю. Фактически это означает, что доля (или процент) оставляемых в интервале версий стремится к нулю при увеличении порядкового номера интервала (при нумерации, начиная с наиболее новой версии в сторону более ранних). В реальных вариантах осуществления это требование к функции количества оставляемых в интервале версий эквивалентно следующему: функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента является убывающей. При этом очевидно, что такая функция отношения функции количества оставляемых в интервалах версий к функции длин интервалов может принимать только положительные значения.In some embodiments of the disclosed invention, the values of the function v (k) of the number of versions left in the interval may differ from a constant natural number. At the same time, to achieve a technical result, this function must satisfy the following requirement: as k tends to infinity, the function of the ratio of the function of the number of versions left in the intervals to the function of the lengths of the intervals must tend to zero. In fact, this means that the proportion (or percentage) of the versions left in the interval tends to zero as the sequence number of the interval increases (when numbered, starting from the newest version towards earlier ones). In real embodiments, this requirement on the function of the number of versions left in the interval is equivalent to the following: the function of the ratio of the values of the function of the number of versions to be left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument is decreasing. It is obvious that such a function of the ratio of the function of the number of versions left in the intervals to the function of the lengths of the intervals can only take positive values.

Соблюдение требования «функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента является убывающей» в рамках раскрытого способа приводит к тому, что от наиболее новых версий к наиболее старым (по направлению в прошлое) уменьшается частота хранимых версий блока данных, то есть достигается технический результат.Compliance with the requirement "the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument is decreasing" within the framework of the disclosed method leads to the fact that the frequency of stored versions decreases from the newest versions to the oldest (towards the past) data block, that is, a technical result is achieved.

Функция длин интервалов может быть предварительно определена (задана, установлена). Определение функции может быть выполнено путем задания этой функции вручную в наборе инструкций, под управлением которых вычислительный узел определяет значения функций; а также в ходе настройки работы алгоритма путем введения функции или ее значений через какой-либо интерфейс.The interval length function can be predefined (set, set). The definition of a function can be performed by specifying this function manually in a set of instructions, under the control of which the computational node determines the values of the functions; as well as in the course of setting up the operation of the algorithm by introducing a function or its values through any interface.

Для реализации способа резервного сохранения блока данных в соответствии с раскрытым изобретением может использоваться система резервного сохранения данных, включающая в себя узел сохранения данных, выполненный с возможностью сохранения версий блока данных и удаления хранимых версий блока данных и вычислительный узел.To implement the method for backing up a data block in accordance with the disclosed invention, a data back-up system can be used, including a data storage unit configured to store data block versions and delete stored data block versions, and a computing unit.

В качестве узла сохранения блока данных может быть использован любой известный носитель информации (например, внешний накопитель или постоянное запоминающее устройство компьютера), а также электронная вычислительная машина (ЭВМ) или группа ЭВМ в некоей системе ЭВМ, предназначенная для хранения данных, удаленное хранилище информации. Фактически, в качестве узла сохранения блока данных может выступать любое устройство или группа устройств, способных выполнять функцию сохранения и функцию частичного удаления данных.Any known storage medium (for example, an external storage device or a read-only memory device of a computer), as well as an electronic computer (computer) or a group of computers in a computer system designed for storing data, a remote storage of information, can be used as a unit for storing a data block. In fact, any device or group of devices capable of performing the function of saving and the function of partial deletion of data can act as a unit for storing a data block.

В качестве вычислительного узла может быть использован процессор вычислительного устройства, одна или несколько вычислительных машин в некоторой системе ЭВМ. Причем этот процессор, иное устройство, ЭВМ или группа ЭВМ могут быть выполнены с возможностью вычисления или определения иным способом значений функций длин интервалов, значений функции количества оставляемых в интервалах версий блока данных, а также с возможностью направлять на узел сохранения блока данных команды, под управлением которых узел сохранения блока данных выполняет сохранение или удаление тех или иных версий блока данных. Фактически, в качестве вычислительного узла может выступать любое вычислительное устройство или группа устройств, способных выполнять перечисленные функции.A processor of a computing device, one or several computers in a computer system can be used as a computing unit. Moreover, this processor, another device, a computer or a group of computers can be made with the possibility of calculating or determining in a different way the values of the functions of the lengths of the intervals, the values of the function of the number of versions of the data block left in the intervals, and also with the ability to send commands to the storage unit of the data block, under which the unit for storing the data block performs the saving or deletion of certain versions of the data block. In fact, any computing device or group of devices capable of performing the listed functions can act as a computing node.

В соответствии с настоящим изобретением вычислительный узел выполнен с возможностью определения значений функции длин интервалов, которая является монотонно возрастающей по направлению от наиболее поздней версии к наиболее ранней версии. Также вычислительный узел выполнен с возможностью определения значений функции количества оставляемых в интервалах версий, причем функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента является убывающей.In accordance with the present invention, the computing node is configured to determine the values of the interval length function, which is monotonically increasing in the direction from the latest version to the earliest version. Also, the computing node is configured to determine the values of the function of the number of versions left in the intervals, and the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument is decreasing.

Функция длин интервалов, функция количества оставляемых версий и/или их значения задаются предварительно в ходе настройки способа резервного сохранения блока данных или осуществления способа в алгоритме из машиночитаемых инструкций (программного кода). Определение значений функций может быть выполнено путем вычисления значений функции для требуемых значений ее аргумента. Также определение значений функции может быть выполнено путем считывания этих значений с некоторого носителя, если эти значения были заданы заранее (например, когда функция и/или ее значения заданы в табличном виде); в этом случае под определением значений функции следует понимать считывание значений с упомянутого носителя и обеспечение доступности значений для использования их в рамках способа.The function of the lengths of the intervals, the function of the number of versions to be left and / or their values are preset in the course of setting up the method for backing up the data block or implementing the method in an algorithm from machine-readable instructions (program code). Determining the values of functions can be done by calculating the values of the function for the required values of its argument. Also, the determination of the values of the function can be performed by reading these values from some medium, if these values were set in advance (for example, when the function and / or its values are set in a tabular form); in this case, the definition of the values of the function should be understood as reading the values from the said carrier and making the values available for use within the framework of the method.

В соответствии с настоящим изобретением вычислительный узел выполнен с возможностью разбиения последовательности номеров версий блока данных на интервалы в соответствии со значениями функции длин интервалов по направлению от новейшей версии к более старым версиям. Разбиение выполняется условно, и может существовать только в рамках программы, осуществляемой на вычислительном узле, реализующей способ.In accordance with the present invention, the computing unit is configured to split the sequence of version numbers of the data block into intervals according to the values of the interval length function in the direction from the newest version to the older versions. The splitting is performed conditionally, and can exist only within the framework of a program implemented on a computational node that implements the method.

В соответствии с настоящим изобретением система резервного сохранения данных выполнена с возможностью удаления версий блока данных таким образом, чтобы в каждом интервале осталось версий не больше, чем соответствующее значение функции количества оставляемых в интервалах версий. В предпочтительном варианте осуществления изобретения способ также содержит подэтапы, на которых с помощью вычислительного узла итеративно выполняется подсчет хранимых версий в каждом интервале; определение интервалов, в которых количество хранимых версий превышает соответствующее значение функции оставляемых в интервале версий блока данных; определение версий, подлежащих удалению; формирование и передача вычислительным узлом узлу хранения версий блока данных инструкций (или команд, указаний), при выполнении которых узел сохранения версий блока данных удаляет версии блока данных, определенных к удалению.In accordance with the present invention, the data backup system is configured to delete versions of a data block in such a way that no more versions remain in each interval than the corresponding value of the function of the number of versions left in the intervals. In a preferred embodiment of the invention, the method also comprises sub-steps in which the computation node iteratively counts the stored versions at each interval; determination of intervals in which the number of stored versions exceeds the corresponding value of the function of the data block versions left in the interval; determining the versions to be removed; generation and transmission of instructions (or commands, instructions) by the computing node to the storage node of the data block versions, when executed, the data block version storage node deletes the data block versions determined to be deleted.

В третьем аспекте настоящего изобретения раскрыт машиночитаемый носитель, содержащий машиноисполняемые инструкции, которые при выполнении их системой резервного сохранения данных вынуждают ее выполнять этапы способа резервного сохранения данных, а именно этапы, на которых в массив сохраненных версий сохраняется новейшая версия блока данных; определяется множество версий блока данных, включающее в себя по меньшей мере часть массива сохраненных версий блока данных; определяются значения функции длин интервалов, которая является монотонно возрастающей по направлению от наиболее поздней версии к наиболее ранней версии; определяются значения функции количества оставляемых в интервалах версий, причем функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента является убывающей; последовательность номеров версий блока данных в множестве версий разбивается на интервалы в соответствии со значениями функции длин интервалов по направлению от наиболее поздней версии к наиболее ранней версии; в случае наличия интервалов, в которых содержится больше версий блока данных, чем соответствующее значение функции количества оставляемых в интервалах версий, в этих интервалах удаляются версии блока данных таким образом, чтобы в каждом интервале осталось версий не больше, чем соответствующее значение функции количества оставляемых в интервалах версий.In a third aspect of the present invention, a computer-readable medium is disclosed comprising computer-executable instructions that, when executed by a data backup system, cause it to perform steps of a data backup method, namely, steps in which the latest version of a data block is stored in a stored version array; a plurality of versions of the data block are defined, including at least a portion of the array of stored versions of the data block; the values of the interval length function are determined, which is monotonically increasing in the direction from the latest version to the earliest version; the values of the function of the number of versions left in the intervals are determined, and the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument is decreasing; the sequence of version numbers of the data block in multiple versions is divided into intervals in accordance with the values of the interval length function in the direction from the latest version to the earliest version; if there are intervals that contain more versions of the data block than the corresponding value of the function of the number of versions left in the intervals, the versions of the data block are deleted in these intervals so that in each interval there are no more versions left than the corresponding value of the function of the number of left in the intervals versions.

Система резервного сохранения данных в соответствии с настоящим изобретением обычно включает в себя различные машиночитаемые носители. Также изобретение в соответствии с третьим аспектом представляет собой машиночитаемый носитель, содержащий машиноисполняемые инструкции, которые при выполнении их системой резервного сохранения данных вынуждают ее выполнять этапы способа резервного сохранения версий блока данных. При этом необходимо понимать, что такой носитель может быть представлен в виде группы физических носителей, а части инструкций, соответствующие отдельным этапам, могут быть размещены на группе машиночитаемых носителей.The data backup system in accordance with the present invention typically includes various computer-readable media. Also, the invention in accordance with a third aspect is a computer-readable medium comprising computer-executable instructions which, when executed by a data backup system, cause it to perform the steps of a method for backing up versions of a data block. It should be understood, however, that such a medium can be represented as a group of physical media, and parts of instructions corresponding to individual steps can be placed on a group of computer-readable media.

Машиночитаемый носитель, а также узел сохранения данных, могут каждый представлять собой любой пригодный носитель, к которому система или вычислительный узел могут осуществить доступ, причем такой носитель может включать в себя как энергозависимый, так и энергонезависимый носитель, а также съемный и несъемный носитель. В качестве примера, но не ограничения, машиночитаемый носитель или узел сохранения данных, могут содержать компьютерную запоминающую среду и среду связи. Компьютерная запоминающая среда включает в себя как энергозависимый, так и энергонезависимый, съемный и несъемный носитель, реализованный любым способом или по любой технологии, используемой для хранения такой информации, как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерная запоминающая среда включает в себя, но не только, ОЗУ (RAM), ПЗУ (ROM), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память либо другую технологию памяти, компакт-диск (CD-ROM), цифровой универсальный диск (DVD) либо другие оптические дисковые запоминающие устройства, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство либо другие магнитные запоминающие устройства или любой другой носитель, который можно использовать для хранения требуемой информации и к которому система или устройство может осуществить доступ. Среда связи обычно воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как сигнал несущей иди другой механизм транспортировки, и включает в себя любую среду для доставки информации. Термин «модулированный сигнал данных» означает сигнал, одна или несколько характеристик которого устанавливается или изменяется таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, но не исключения, среда связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, а также беспроводную среду, такую как акустическая, радиочастотная, инфракрасная и другая беспроводная среда. В состав машиночитаемых носителей и/или узла сохранения данных могут быть также включены комбинации из любых вышеуказанных носителей (сред).A computer-readable medium, as well as a storage unit, can each be any suitable medium that can be accessed by a system or computing node, and such media can include both volatile and nonvolatile media, as well as removable and non-removable media. By way of example, and not limitation, a computer-readable medium or storage unit may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology used to store information such as computer readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, electrically erasable programmable ROM (EEPROM), flash memory or other memory technology, compact disk (CD-ROM), digital versatile disk ( DVD) or other optical disk storage devices, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices or any other medium that can be used to store the required information and to which the system or device can access. Communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any media for delivering information. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a way as to encode information in that signal. By way of example, but not exception, communication media includes wired media such as a wired network or direct-wired connection, as well as wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the aforementioned media (s) may also be included in the computer-readable media and / or data storage unit.

Накопители и ассоциированные с ними носители компьютерной среды хранения, обсужденные выше, обеспечивают хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для функционирования систем в соответствии с настоящим изобретением, в том числе для выполнения способов в соответствии с настоящим изобретением.The drives and their associated computing storage media discussed above provide storage for machine-readable instructions, data structures, program modules, and other data for operating systems in accordance with the present invention, including for performing methods in accordance with the present invention.

Настоящее техническое решение было подробно описано со ссылкой на отдельные варианты его осуществления, однако очевидно, что оно может быть осуществлено в различных вариантах, не выходя за рамки заявленного объема правовой охраны, определяемого формулой изобретения.The present technical solution has been described in detail with reference to certain variants of its implementation, however, it is obvious that it can be implemented in various ways, without going beyond the claimed scope of legal protection defined by the claims.

Claims (22)

1. Компьютерно-реализуемый способ резервного сохранения версий блока данных, включающий в себя этапы, на которых:1. A computer-implemented method for backing up versions of a data block, which includes the stages at which: в массив версий блока данных сохраняется новейшая версия блока данных; the newest version of the data block is saved to the array of data block versions; определяется множество версий блока данных, включающее в себя по меньшей мере часть массива версий блока данных;a plurality of data block versions is defined, including at least a portion of the data block version array; определяются значения функции длин интервалов, которая является монотонно возрастающей по направлению от наиболее поздней версии к наиболее ранней версии блока данных;the values of the interval length function are determined, which is monotonically increasing in the direction from the latest version to the earliest version of the data block; определяются значения функции количества оставляемых в интервалах версий, причём функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента, являющегося порядковым номером интервала, является убывающей;the values of the function of the number of versions left in the intervals are determined, and the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument, which is the ordinal number of the interval, is decreasing; последовательность номеров версий блока данных в множестве версий разбивается на интервалы в соответствии со значениями функции длин интервалов по направлению от наиболее поздней версии к наиболее ранней версии блока данных;a sequence of version numbers of a data block in a plurality of versions is divided into intervals according to the values of the interval length function in the direction from the latest version to the earliest version of the data block; в случае наличия интервалов, в которых содержится больше хранимых версий блока данных, чем соответствующее значение функции количества оставляемых в интервалах версий, в этих интервалах удаляются версии блока данных таким образом, чтобы в каждом интервале осталось хранимых версий не больше, чем соответствующее значение функции количества оставляемых в интервалах версий.if there are intervals that contain more stored versions of a data block than the corresponding value of the function of the number of versions left in the intervals, versions of the data block are deleted in these intervals so that in each interval there are no more stored versions than the corresponding value of the function of the number of retained in version intervals. 2. Способ по п. 1, отличающийся тем, что значение функции количества оставляемых в интервалах версий равно одному натуральному числу на всём диапазоне значений.2. A method according to claim 1, characterized in that the value of the function of the number of versions left in the intervals is equal to one natural number over the entire range of values. 3. Система резервного сохранения версий блока данных, выполненная с возможностью последовательного получения сохраняемых версий блока данных и включающая в себя:3. A backup system for storing versions of a data block, made with the ability to sequentially obtain the stored versions of a data block and including: узел сохранения данных, выполненный с возможностью сохранения и удаления версий блока данных при поступлении соответствующих управляющих команд от вычислительного узла;a data storage unit configured to save and delete versions of the data block when the corresponding control commands are received from the computing unit; вычислительный узел, связанный с узлом сохранения данных с возможностью направления вычислительным узлом узлу сохранения данных управляющих команд на удаление версий блока данных таким образом, чтобы в каждом интервале осталось хранимых версий не больше, чем соответствующее значение функции количества оставляемых в интервалах версий;a computing node connected to the data storage unit with the possibility of sending the computing unit to the data storage unit of control commands to delete versions of the data block in such a way that the stored versions remain in each interval no more than the corresponding value of the function of the number of versions left in the intervals; при этом wherein вычислительный узел выполнен с возможностью определения значений функции длин интервалов, которая является монотонно возрастающей по направлению от наиболее поздней версии к наиболее ранней версии блока данных;the computing unit is configured to determine the values of the interval length function, which is monotonically increasing in the direction from the latest version to the earliest version of the data block; вычислительный узел выполнен с возможностью определения значений функции количества оставляемых в интервалах версий, причём функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента, являющегося порядковым номером интервала, является убывающей;the computing node is configured to determine the values of the function of the number of versions left in the intervals, and the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument, which is the ordinal number of the interval, is decreasing; вычислительный узел выполнен с возможностью разбиения последовательности номеров версий блока данных на интервалы в соответствии со значениями функции длин интервалов по направлению от наиболее новой версии блока данных к наиболее старым версиям блока данных.the computing node is configured to split the sequence of version numbers of the data block into intervals in accordance with the values of the function of the lengths of the intervals in the direction from the newest version of the data block to the oldest versions of the data block. 4. Машиночитаемый носитель, содержащий машиноисполняемые инструкции, которые при выполнении их системой резервного сохранения версий блока данных вынуждают её выполнять этапы, на которых:4. A computer-readable medium containing computer-executable instructions that, when executed by the backup system for storing versions of a data block, force it to perform the steps at which: в массив версий блока данных сохраняется новейшая версия блока данных; the newest version of the data block is saved to the array of data block versions; определяется множество версий блока данных, включающее в себя по меньшей мере часть массива версий блока данных;a plurality of data block versions is defined, including at least a portion of the data block version array; определяются значения функции длин интервалов, которая является монотонно возрастающей по направлению от наиболее поздней версии к наиболее ранней версии блока данных;the values of the interval length function are determined, which is monotonically increasing in the direction from the latest version to the earliest version of the data block; определяются значения функции количества оставляемых в интервалах версий, причём функция отношения значений функции количества оставляемых в интервалах версий к значениям функции длин интервалов при соответствующих значениях аргумента, являющегося порядковым номером интервала, является убывающей;the values of the function of the number of versions left in the intervals are determined, and the function of the ratio of the values of the function of the number of versions left in the intervals to the values of the function of the lengths of the intervals with the corresponding values of the argument, which is the ordinal number of the interval, is decreasing; последовательность номеров версий блока данных в множестве версий разбивается на интервалы в соответствии со значениями функции длин интервалов по направлению от наиболее поздней версии к наиболее ранней версии блока данных;a sequence of version numbers of a data block in a plurality of versions is divided into intervals according to the values of the interval length function in the direction from the latest version to the earliest version of the data block; в случае наличия интервалов, в которых содержится больше хранимых версий блока данных, чем соответствующее значение функции количества оставляемых в интервалах версий, в этих интервалах удаляются версии блока данных таким образом, чтобы в каждом интервале осталось хранимых версий не больше, чем соответствующее значение функции количества оставляемых в интервалах версий.if there are intervals that contain more stored versions of a data block than the corresponding value of the function of the number of versions left in the intervals, versions of the data block are deleted in these intervals so that in each interval there are no more stored versions than the corresponding value of the function of the number of retained in version intervals.
RU2020115418A 2020-05-06 2020-05-06 Method for backup of data block versions, machine-readable media and system for using this method RU2746187C1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2020115418A RU2746187C1 (en) 2020-05-06 2020-05-06 Method for backup of data block versions, machine-readable media and system for using this method
PCT/RU2021/050122 WO2021225475A1 (en) 2020-05-06 2021-05-03 Method and system for backing up versions of a data block

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020115418A RU2746187C1 (en) 2020-05-06 2020-05-06 Method for backup of data block versions, machine-readable media and system for using this method

Publications (1)

Publication Number Publication Date
RU2746187C1 true RU2746187C1 (en) 2021-04-08

Family

ID=75353494

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020115418A RU2746187C1 (en) 2020-05-06 2020-05-06 Method for backup of data block versions, machine-readable media and system for using this method

Country Status (2)

Country Link
RU (1) RU2746187C1 (en)
WO (1) WO2021225475A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115826881A (en) * 2023-02-14 2023-03-21 北京大道云行科技有限公司 Data consistency guaranteeing method and system, storage medium and electronic equipment

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030220948A1 (en) * 2002-01-22 2003-11-27 Columbia Data Products, Inc. Managing snapshot/backup collections in finite data storage
US7702867B2 (en) * 2002-03-18 2010-04-20 International Business Machines Corporation System and method for data backup
US8244678B1 (en) * 2008-08-27 2012-08-14 Spearstone Management, LLC Method and apparatus for managing backup data
US8417673B2 (en) * 2003-10-07 2013-04-09 International Business Machines Corporation Method, system, and program for retaining versions of files
RU2483349C2 (en) * 2007-08-23 2013-05-27 Майкрософт Корпорейшн Staged, lightweight backup system
US20130191342A1 (en) * 2007-03-05 2013-07-25 Sachhin Sreedharan Using versioning to back up multiple versions of a stored object
US9563633B1 (en) * 2016-03-30 2017-02-07 Storagecraft Technology Corporation Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage
WO2018118841A1 (en) * 2016-12-19 2018-06-28 Mcafee, Llc Intelligent backup and versioning
US20180253357A1 (en) * 2017-03-02 2018-09-06 Salesforce. Com, Inc. Reducing granularity of backup data over time

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030220948A1 (en) * 2002-01-22 2003-11-27 Columbia Data Products, Inc. Managing snapshot/backup collections in finite data storage
US7702867B2 (en) * 2002-03-18 2010-04-20 International Business Machines Corporation System and method for data backup
US8417673B2 (en) * 2003-10-07 2013-04-09 International Business Machines Corporation Method, system, and program for retaining versions of files
US20130191342A1 (en) * 2007-03-05 2013-07-25 Sachhin Sreedharan Using versioning to back up multiple versions of a stored object
RU2483349C2 (en) * 2007-08-23 2013-05-27 Майкрософт Корпорейшн Staged, lightweight backup system
US8244678B1 (en) * 2008-08-27 2012-08-14 Spearstone Management, LLC Method and apparatus for managing backup data
US9563633B1 (en) * 2016-03-30 2017-02-07 Storagecraft Technology Corporation Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage
WO2018118841A1 (en) * 2016-12-19 2018-06-28 Mcafee, Llc Intelligent backup and versioning
US20180253357A1 (en) * 2017-03-02 2018-09-06 Salesforce. Com, Inc. Reducing granularity of backup data over time

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115826881A (en) * 2023-02-14 2023-03-21 北京大道云行科技有限公司 Data consistency guaranteeing method and system, storage medium and electronic equipment

Also Published As

Publication number Publication date
WO2021225475A1 (en) 2021-11-11

Similar Documents

Publication Publication Date Title
KR102319657B1 (en) Managing operations on stored data units
US10417205B2 (en) Database system and method of operation thereof
CN102880663A (en) Optimization of a partially deduplicated file
KR102275431B1 (en) Managing operations on stored data units
US6754842B2 (en) Facilitating a restart operation within a data processing system
WO2022007937A1 (en) Method and device for processing bitmap data
RU2746187C1 (en) Method for backup of data block versions, machine-readable media and system for using this method
CN110647514A (en) Metadata updating method and device and metadata server
US20230229633A1 (en) Adding content to compressed files using sequence alignment
KR102275240B1 (en) Managing operations on stored data units
CN113419897B (en) File processing method and device, electronic equipment and storage medium thereof
CN107329699B (en) Erasure rewriting method and system
CN112631826B (en) Backup processing method and device and computer readable storage medium
CN113535482B (en) Cloud backup chain data backup method and device, equipment and readable medium
CN111737331A (en) Transaction consistency processing method and system for database and object storage
KR102179669B1 (en) Checkpointing a collection of data units
US11449389B2 (en) Techniques for performing incremental data backups
CN109783274B (en) Disk snapshot management method and device and readable storage medium
CN115328696A (en) Data backup method in database
CN112328433A (en) Processing method and device for restoring archived data, electronic device and storage medium
CN111125047A (en) Cold and hot data directory identification method and device
CN115987759B (en) Data processing method, device, electronic equipment and storage medium
US20130159360A1 (en) Information processing apparatus, data storage method and computer-readable recording medium
CN108804671B (en) Method and device for recombining physical file
CN115576503B (en) Data storage method, device, storage medium and storage equipment