RU2615060C2 - Способ модификации набора данных в памяти - Google Patents
Способ модификации набора данных в памяти Download PDFInfo
- Publication number
- RU2615060C2 RU2615060C2 RU2014144437A RU2014144437A RU2615060C2 RU 2615060 C2 RU2615060 C2 RU 2615060C2 RU 2014144437 A RU2014144437 A RU 2014144437A RU 2014144437 A RU2014144437 A RU 2014144437A RU 2615060 C2 RU2615060 C2 RU 2615060C2
- Authority
- RU
- Russia
- Prior art keywords
- memory
- blocks
- transaction
- state
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Изобретение относится к области управления записями в памяти устройства обработки информации и более конкретно к записи набора данных в памяти унитарным и когерентным образом. Технический результат заключается в исключении прерывания записи элемента данных в память устройства при переходном состоянии. Технический результат достигается за счет этапов запоминания в энергонезависимой памяти состояния, связанного с каждой транзакцией, и перекопированния блока памяти, называемого исходным, включающего в себя один элемент данных или несколько данных, которые должны быть записаны в блок памяти, называемый блоком резервного копирования, при этом запись данных делается в исходный блок памяти или в блок памяти резервного копирования. 4 н. и 2 з.п. ф-лы, 3 ил.
Description
Настоящее изобретение касается области управления записями в памяти устройства обработки информации и, точнее говоря, способа записи набора данных унитарным и когерентным образом. Изобретение, хотя и носит более общий характер, применяется в частности в области чип-карт (по-английски - smartcard).
Хотелось бы избежать, чтобы запись элемента данных могла быть прервана и чтобы пространство памяти элемента данных находилось в не определенном переходном состоянии, что делает элемент данных непригодным для использования.
Иногда желательно записать в память набор связанных данных. В этом случае данные должны быть записаны полностью или не записаны совсем. Следует избегать, чтобы некоторые данные могли быть записаны, а другие нет.
Иногда желательно накопить модификации данных и не подтверждать набор этих модификаций, когда происходит событие.
Изобретение направлено на решение вышеуказанных проблем с помощью способа записи элемента данных или несколько данных в память устройства обработки информации, который включает в себя этап перекопирования блока памяти, называемого исходным, включающего в себя один элемент данных или несколько данных, которые должны быть записаны в блок памяти, называемый блоком резервного копирования. Тогда этап записи данных делается в исходном блоке памяти или в блоке памяти резервного копирования. Тогда, если необходимо, всегда можно вернуться к исходным значениям данных, если фаза записи не удалась.
Изобретение относится к способу модификации в памяти набора данных, который включает в себя следующие этапы внутри устройства обработки информации: этап определения одного или нескольких блоков памяти, включающих данные, которые должны быть модифицированы, пространство памяти, содержащее данные, подлежащие модификации, относят к исходному пространству памяти, блок или блоки памяти, определенные таким образом, относят к исходным блокам памяти; этап перекопирования в пространство памяти, относящееся к пространству памяти для резервного копирования указанных исходных блоков памяти, блоки, модифицированные таким образом, относят к блокам резервного копирования; этап модификации данных внутри исходных блоков памяти и, в случае неудачи операции модификации до ее завершения, этап перекопирования указанных блоков резервного копирования на исходные блоки для того, чтобы обеспечить, что модификация набора данных, которую относят к транзакции, осуществлена унитарным и когерентным образом.
В соответствии с частным вариантом осуществления изобретения, исходные пространства памяти и пространство резервного копирования являются пространствами энергонезависимой памяти, способ включает в себя дополнительно этап запоминания в энергонезависимой памяти состояния, связанного с каждой транзакцией из следующих состояний: состояние «вне транзакции», когда транзакция не осуществляется; состояние «осуществления модификации», в котором осуществляются модификации, связанные с транзакцией, и состояние «осуществления перекопирования», в котором осуществляется перекопирование блоков резервного копирования на исходные блоки, и этап восстановления, при возвращении электрического питания вслед за его потерей, который состоит в перекопировании блоков резервного копирования на исходные блоки, если сохраненное состояние является состоянием «осуществление модификации» или «осуществление перекопирования».
Изобретение также касается способа, включающего в себя следующие этапы внутри устройства обработки информации: этап определения одного или нескольких блоков памяти, включающих данные, которые должны быть модифицированы, пространство памяти, содержащее данные, подлежащие модификации, относят к исходному пространству памяти, блок памяти или блоки памяти, определенные таким образом, относят к исходным блокам памяти; этап перекопирования в пространство памяти, относящееся к пространству памяти для резервного копирования упомянутых исходных блоков памяти, модифицированные таким образом блоки относят к блокам резервного копирования; этап модификации данных внутри блоков памяти резервного копирования и в случае успеха операции модификации этап перекопирования упомянутых блоков резервного копирования на исходные блоки для того, чтобы обеспечить, что модификации набора данных, которые относят к транзакции, осуществлены унитарным образом.
В соответствии с частным вариантом осуществления изобретения, исходное пространство памяти и пространство для резервного копирования являются пространствами энергонезависимой памяти, при этом способ содержит, кроме того, этап запоминания в энергонезависимой памяти состояния, связанного с каждой транзакцией, из следующих состояний: состояние «вне транзакции», когда транзакция не осуществляется; состояние «осуществления модификаций», в котором осуществляются модификации, связанные с транзакцией, и состояние «осуществления перекопирования», в котором осуществляется перекопирование блоков резервного копирования на исходные блоки, и этап восстановления во время возвращения электрического питания вслед за его потерей, который состоит в перекопировании блоков резервного копирования на исходные блоки, сохраненным состоянием является состояние «осуществление перекопирования».
В соответствии с частным вариантом осуществления изобретения, две транзакции имеют временное перекрытие и физическое перекрытие, то есть блоки памяти, связанные с двумя транзакциями, перекрываются, при этом пересечение определяет блок перекрытия, при этом способ дополнительно включает в себя этап расчета разницы между исходным блоком перекрытия и блоком, полученным от модификаций, привнесенных первой завершившейся транзакцией, и этап применения этой разницы внутри блока памяти резервного копирования, связанного с этой транзакцией.
В соответствии с частным вариантом осуществления изобретения, блоки памяти имеют фиксированный размер.
Изобретение также относится к устройству обработки информации, которое включает в себя, для модификации в памяти набора данных, средства для определения одного или нескольких блоков памяти, включающих данные, которые должны быть модифицированы, пространство памяти, содержащее данные, подлежащие модификации, относят к исходному пространству памяти, один или несколько блоков памяти, определенные таким образом, относят к исходным блокам, средства для перекопирования в пространство памяти, относящееся к пространству памяти для резервного копирования указанных исходных блоков памяти, модифицированные таким образом блоки относят к блокам резервного копирования; средства для модификации данных внутри исходных блоков памяти и в случае неудачи операции модификации до ее завершения, средства для перекопирования указанных блоков резервного копирования на исходные блоки для того, чтобы обеспечить, что модификации набора данных, которые относят к транзакциям, осуществлены унитарным образом.
Изобретение также относится к устройству обработки информации, отличающемуся тем, что оно включает в себя, для модификации в памяти набора данных, средства для определения одного или нескольких блоков памяти, включающих данные, которые должны быть модифицированы, пространство памяти, содержащее данные, подлежащие модификации, относят к исходному пространству памяти; блок или блоки памяти, определенные таким образом, относят к исходным блокам памяти; средства для перекопирования в пространство памяти, относящееся к пространству памяти для резервного копирования указанных исходных блоков памяти, блоки, модифицированные таким образом, относят к блокам резервного копирования; средства для модификации данных внутри блоков памяти резервного копирования и в случае успеха операции модификации, средства для перекопирования указанных блоков резервного копирования на исходные блоки для того, чтобы обеспечить, что модификации набора данных, которые относят к транзакции, осуществлены унитарным образом.
Характеристики изобретения, упомянутые выше, а также другие будут более понятны при прочтении нижеследующего описания варианта осуществления, указанное описание приведено в сочетании с прилагаемыми чертежами, на которых:
Фиг. 1 показывает блок-схему функционирования первого варианта осуществления изобретения.
Фиг. 2 показывает блок-схему функционирования второго варианта осуществления настоящего изобретения.
Фиг. 3 иллюстрирует машину состояний, используемую в варианте осуществления изобретения.
Данные, обрабатываемые устройством обработки информации, как правило, запоминаются в пространствах памяти. Эти пространства памяти можно рассматривать как одномерные таблицы элементов памяти. Каждый элемент памяти содержит определенное количество битов, одинаковое для всех элементов памяти. Индекс в таблице определяется как адрес памяти элемента. Размеры элементов памяти, обычно используемые сегодня, составляют 32 или 64 бита.
Элемент данных запоминается таким образом, в зависимости от его размера, в одном или нескольких элементах памяти. Эти элементы памяти, как правило, смежные. Если хотят модифицировать элемент данных, вызывают запись его нового значения в один или несколько элементов памяти, где этот элемент данных хранится.
Транзакция определена в данном документе как совокупность записей данных, которые должна быть выполнена унитарным образом. Что означает, что эта совокупность записей данных должна быть выполнена полностью или не выполнена совсем. Стремятся избежать возможности частичной записи этой совокупности данных (например, обновление элемента данных и связанной с ним целостности).
Блоком памяти называют прилежащее пространство памяти, которое содержит все или часть данных, которые подлежат записи во время транзакции. Блок памяти может служить в качестве единицы манипуляции памяти для переходной системы, которая описана. Можно определить размер блока памяти по-разному. Один из способов заключается в статическом фиксировании размера блока внутри системы. Тогда все блоки памяти имеют одинаковый размер. Управление блоками памяти, таким образом, упрощается, но зато может быть необходимо работать с несколькими различными блоками памяти для одной и той же транзакции. Обычно говорят о страницах памяти вместо блоков памяти в случае блоков фиксированного размера и памяти со страничной организацией.
Размер блока памяти может быть переменным и зависимым от данных, подлежащих модификации. Размер блока определяется тогда, как наименьшее пространство памяти, охватывающее данные одной и той же транзакции, и это - для каждой транзакции. Управление в таком случае более сложное, но более оптимальное в потреблении памяти.
Фиг. 1 демонстрирует первый вариант осуществления изобретения. На первом этапе 1.1 запускается транзакция. Этап 1.2 состоит в перекопировании одного или нескольких блоков памяти, которые содержат данные, участвующие в транзакции. Эти данные представляют собой данные, которые должны быть модифицированы унитарным образом, определяя транзакцию. Для каждого из блоков памяти, обработанных таким образом, следовательно, определяют исходный блок. Этот исходный блок памяти является блоком памяти, содержащим данные, подлежащие модификации. Копия исходного блока памяти производится в пространстве памяти, которое называют пространством памяти для резервного копирования. Таким образом, перекопированный блок памяти относят к блоку памяти резервного копирования. Следовательно, после этого этапа располагают идентичной копией блока или блоков памяти, включающих данные, подлежащие модификации.
На этапе 1.3 происходят модификации данных, связанных с этой транзакцией. Этот этап может занять некоторое время и зависит от определения транзакции. Записи памяти производятся, в этом первом варианте осуществления изобретения, внутри исходного пространства памяти. Так что именно исходные блоки памяти содержат данные, модифицированные транзакцией.
Если ничего не помешает этому этапу модификации данных, в конце этого этапа происходит подтверждение транзакции. Затем переходят к этапу 1.4. Модификации данных сделаны непосредственно в исходном пространстве памяти, в этом пространстве не требуется никакого вмешательства. Транзакция завершается, будучи подтвержденной, пространство памяти для резервного копирования может быть освобождено.
В любой момент в течение этого этапа модификации не исключено, что транзакция будет отменена. Причины отмены зависят от приложения и не разбираются здесь. В этом случае переходят к этапу 1.5. Транзакция не смогла закончиться успешно, необходимо восстановить исходное пространство памяти в состояние, в котором оно находилось до начала транзакции. Таким образом, этап 1.5 состоит в перекопировании блока или блоков памяти из пространства для резервного копирования в соответствующие блоки исходного пространства памяти. После этого перекопирования пространство памяти для резервного копирования может быть освобождено.
Затем переходят в состояние 1.6 завершения транзакции. Отмененная транзакция не привела ни к какой модификации исходного пространства памяти, которое было восстановлено.
Отметим, что поставленная цель, то есть позволить совокупности записей памяти осуществляться унитарным образом, достигнута.
Фиг. 2 демонстрирует второй вариант осуществления изобретения. Этот второй вариант близок к первому. Этапы 2.1 и 2.2 являются идентичными их аналогам 1.1 и 1.2 согласно первому варианту осуществления.
Этап 2.3 отличается от этапа 1.3 выбором пространства памяти, в котором осуществляются модификации. В этом втором варианте осуществления выбор касается пространства памяти для резервного копирования. Этап модификации 1.3, таким образом, оставляет исходное пространство памяти без модификаций.
Этот выбор затрагивает операции, которые будут осуществляться во время подтверждения транзакции, а также при аннулировании.
В случае подтверждения транзакции теперь необходимо выполнить этап 2.4 перекопирования из пространства памяти для резервного копирования в исходное пространство памяти, чтобы перенести модификации на фактические данные, хранящиеся в этом пространстве. Затем, этап 2.6 подтверждает транзакцию.
В случае аннулирования транзакции исходное пространство не было модифицировано, не требуется осуществлять никаких операций в этом пространстве. Пространство памяти для резервного копирования освобождается и транзакция завершается на аннулированном состоянии во время этапа 2.5.
Этот вариант осуществления достигает той же цели, что и первый, главное отличие заключается исключительно в использовании исходных блоков и блоков резервного копирования.
Может быть выгодно предложить механизм записи в памяти, который также устойчив к потере питания устройства. Нужно различать два типа работы с памятью. Память, используемая в устройстве обработки информации, может быть энергозависимой. Этот тип памяти должен подпитываться электричеством для запоминания своего содержимого. Потеря питания приводит к полной потере запомненной информации. Второй тип памяти - энергонезависимая память. В этом случае потеря питания не приводит к потере запомненных данных. Оба типа памяти могут сосуществовать в одном устройстве обработки информации, это же самый общий случай. Обычно чип-карта запоминает свои данные в энергонезависимой памяти, но имеет энергозависимое рабочее пространство памяти. Действительно, время доступа к энергозависимой памяти значительно выше, чем время доступа к энергонезависимой памяти.
Первые два варианта осуществления функционируют независимо от типа памяти. Если мы хотим сделать их устойчивыми к потере питания, нужно учитывать тип памяти. Устойчивость механизма транзакций к потере питания означает, что исходное пространство памяти находится в энергонезависимой памяти. Действительно, в противном случае, все данные теряются при потере питания и изобретение не имеет больше смысла. Аналогичным образом, пространство памяти для резервного копирования должно быть также в энергонезависимой памяти, чтобы позволить перекопирование блока после прерывания питания.
Для того чтобы сделать механизм транзакций устойчивым к потере питания, определим автомат состояний. Этот автомат описан на фиг. 3. Определяют первое состояние 3.1, которое соответствует состоянию вне транзакции. В этом состоянии не выполняется никакая транзакция. Начало транзакции 3.4 переводит систему в состояние 3.2, которое соответствует состоянию, в котором выполняются модификации, связанные с транзакцией. Речь идет о случае первого варианта осуществления, в котором модификации происходят в исходном пространстве памяти. Подтверждение транзакции 3.5 приводит нас тогда в состояние вне транзакции. Модификации подтверждены в исходном пространстве памяти. Отмена транзакции 3.6 приводит нас тогда в состояние 3.3 выполнения перекопирования. Это состояние, в котором происходит перекопирование пространства памяти для резервного копирования в исходное пространство памяти. В конце перекопирования 3.7 переходят в состояние 3.1 вне транзакции.
В случае второго варианта осуществления, в котором модификации происходят в пространстве памяти для резервного копирования, автомат почти такой же. Единственные различия заключаются в перемене местами меток 3.5 и 3.6. Переходят в состояние выполнения перекопирования при подтверждении 3.6 транзакции, пространство памяти для резервного копирования, где происходят модификации, тогда должно быть перекопировано в исходное пространство памяти. Именно при отмене 3.5 транзакции непосредственно переходят в состояние 3.1 вне транзакции.
Способ согласно изобретению, таким образом, дополнительно включает в себя этап запоминания в энергонезависимой памяти состояния, в котором находится. Таким образом, независимо от того, когда происходит обрыв питания, состояние системы по отношению к этому автомату запоминается и может быть восстановлено, когда восстанавливается электрическое питание устройства.
Способ также дополнительно включает этап восстановления при возобновлении питания. Этот этап восстановления выполняет совокупность операций в зависимости от запомненного состояния системы и варианта функционирования механизма транзакции. Вариант функционирования является вариантом модификации в исходной памяти или в памяти для резервного копирования.
Если система находится в состоянии вне транзакции, независимо от варианта функционирования, никакая операция не будет осуществляться.
Если система находится в состоянии осуществления модификаций и модификации происходят в исходной памяти, нужно перекопировать память для резервного копирования в исходную память для отмены прерванной транзакции. Система переходит в состояние осуществления перекопирования во время этой операции.
Если система находится в состоянии осуществления модификаций и модификации происходят в памяти для резервного копирования, ничего делать не надо.
Если система находится в состоянии «осуществления перекопирования», без возможности узнать прогресс перекопирования, оно возобновляется с нуля. Таким образом, пространство памяти для резервного копирования полностью копируют в исходное пространство памяти. Система остается в состоянии осуществления перекопирования.
После этого этапа система соблюдает ограничение транзакции, другими словами, совокупность записей, связанных с транзакцией, осуществляется полностью или не осуществляется вообще.
Эта система может управлять, как есть, любым количеством транзакций. В этом случае необходимо управлять таким же количеством автоматов состояний, сколько имеется одновременных транзакций. Под одновременными транзакциями подразумеваются две транзакции, имеющие как минимум частичное временное перекрытие. Тем не менее, единственным условием, которое следует соблюдать для правильной работы, является невозможность наличия двух транзакций, имеющих одновременно временное перекрытие и физическое перекрытие, физическое перекрытие означает, что блоки памяти, связанные с двумя транзакциями, перекрываются. Это ограничение распространяется на оба варианта реализации.
Действительно, в таком случае есть риск, что копирование блока, выполненное одной из транзакций, аннулирует модификации, сделанные другой транзакцией. Рассмотрим случай, когда модификации выполняются в исходном пространстве памяти. Две транзакции выполнят свои записи в одно и то же исходное пространство, что не представляет проблемы до тех пор, пока они не хотят модифицировать один и тот же элемент памяти. Тем не менее, если одна из транзакций не удается, она будет копировать блок памяти резервного копирования, таким образом, потенциально аннулируя модификации, внесенные другой транзакцией.
В другом варианте функционирования каждая транзакция выполняет перекопирование своего блока памяти в объем пространства памяти резервного копирования. Общая часть, таким образом, дублируется в пространство резервного копирования. Каждая транзакция выполняет свои модификации на своей копии. Первая транзакция, которая заканчивается, копирует свой блок памяти в исходное пространство. Когда завершается вторая транзакция, она делает так же, таким образом стирая модификации, внесенные первой транзакцией в общей части. Этот недостаток происходит, даже если обе транзакции не затрагивают на самом деле одни и те же элементы памяти, но соседние элементы памяти, расположенные в общей части, соответствующей одному и тому же блоку памяти.
Для решения этой проблемы разработан новый предпочтительный вариант осуществления. В этом новом варианте ограничивается функционирование переходов, в которых модификации происходят в пространстве памяти резервного копирования. Таким образом, когда две транзакции перекрываются во времени и физически, каждая из двух выполняет свою собственную копию блока или блоков памяти, которые ей соответствуют, и каждая выполняет свои модификации на своей собственной копии.
Понятие блока перекрытия определяется как общее пространство памяти в блоках памяти, связанных с двумя транзакциями.
Способ, согласно этому варианту осуществления, включает в себя дополнительный этап, который происходит перед копированием блока памяти, связанного с завершающейся первой транзакцией. Он включает этап расчета разницы между исходным блоком перекрытия и блоком, полученным после модификаций, привнесенных завершающейся первой транзакцией. Он также включает в себя этап применения этой разницы внутри блока памяти резервного копирования, связанного с другой транзакцией.
Таким образом, модификации, привнесенные первой транзакцией в общей части, перенесены на рабочий блок второй. Копирование этого рабочего блока во время подтверждения второй транзакции, таким образом, переносит модификации, привнесенные первой транзакцией, вместо того, чтобы стирать их, в исходное пространство памяти. Если вторая транзакция не удается, и этот блок не копируется в память, модификации, сделанные первой транзакцией, которые были скопированы в исходное пространство памяти, останутся действительными.
Единственный случай, который не рассмотрен, - случай, в котором две транзакции модифицируют один и тот же элемент памяти по-разному. Этот случай априори не разрешим, один и тот же элемент памяти не может иметь два различных значения по завершении двух транзакций. В этом случае модификация элемента памяти, сделанная второй транзакцией, будет преобладать.
Читатель понимает, что управление блока перекрытия и механизма этого последнего варианта осуществления значительно облегчается при использовании памяти со страничной организацией и блоков фиксированного размера. Тогда блок перекрытия состоит из целого числа страниц.
Claims (58)
1. Способ модификации в памяти набора данных, включающий в себя следующие этапы внутри устройства обработки информации:
- этап определения одного или нескольких блоков памяти, включающих данные, которые должны быть модифицированы, пространство памяти, содержащее данные, подлежащие модификации, относят к исходному пространству памяти, блок или блоки памяти, определенные таким образом, относят к исходным блокам памяти;
- этап перекопирования в пространство энергонезависимой памяти, пространство, относящееся к пространству памяти для резервного копирования указанных исходных блоков памяти, блоки, определенные таким образом, относят к блокам резервного копирования;
- этап модификации данных внутри исходных блоков памяти;
отличающийся тем, что он дополнительно включает в себя:
- этап запоминания в энергонезависимой памяти состояния транзакции из следующих состояний:
- состояние, называемое "вне транзакции", когда транзакция не осуществляется;
- состояние, называемое "осуществление модификации", запомненное, когда осуществляемая транзакция реализует этап модификации данных внутри исходных блоков памяти, и
- состояние, называемое "осуществление перекопирования", запомненное, когда отмененная транзакция реализует этап перекопирования блоков данных из пространства памяти для резервного копирования в исходное пространство памяти; и
- этап восстановления, реализуемый при возвращении питания указанного устройства обработки информации после отключения питания, указанный этап восстановления состоит в том, чтобы:
- если запомненное состояние является состоянием "вне транзакции", ничего не делать;
- если запомненное состояние является состоянием "выполнения модификации", копировать блоки данных из пространства памяти для резервного копирования в исходное пространство памяти, и
- если запомненное состояние является состоянием "выполнения перекопирования", копировать блоки данных из пространства памяти для резервного копирования в исходное пространство памяти.
2. Способ модификации в памяти набора данных, включающий в себя следующие этапы внутри устройства обработки информации:
- этап определения одного или более блоков памяти, включающих данные, которые должны быть модифицированы, пространство памяти, содержащее данные, подлежащие модификации, относят к исходному пространству памяти, блок или блоки памяти, определенные таким образом, относят к исходным блокам памяти;
- этап перекопирования в пространство энергонезависимой памяти, пространство, относящееся к пространству памяти для резервного копирования указанных исходных блоков памяти, блоки, определенные таким образом, относят к блокам резервного копирования;
- этап модификации данных внутри блоков памяти для резервного копирования; и
- этап перекопирования в исходное пространство памяти блоков памяти для резервного копирования, модифицированных таким образом;
отличающийся тем, что он дополнительно включает в себя:
- этап запоминания в энергонезависимой памяти состояния транзакции из следующих состояний:
- состояние, называемое "вне транзакции", когда транзакция не осуществляется;
- состояние, называемое "осуществление модификации", запомненное, когда осуществляемая транзакция реализует этап модификации данных внутри блоков памяти для резервного копирования, и
- состояние, называемое "осуществление перекопирования", запомненное, когда транзакция, реализовавшая с успехом этап модификации, теперь реализует этап перекопирования блоков данных из пространства памяти для резервного копирования в исходное пространство памяти, и
- этап восстановления, реализуемый при возвращении питания указанного устройства обработки информации после отключения питания, указанный этап восстановления состоит в том, чтобы:
- если запомненное состояние является состоянием "вне транзакции", ничего не делать;
- если запомненное состояние является состоянием "выполнения модификации", ничего не делать; и
- если запомненное состояние является состоянием "выполнения перекопирования", копировать блоки данных из пространства памяти для резервного копирования в исходное пространство памяти.
3. Способ согласно п. 2, отличающийся тем, что две транзакции, имеющие временное перекрытие и физическое перекрытие, то есть блоки памяти, связанные с двумя транзакциями, перекрываются, при этом пересечение определяет блок перекрытия, способ дополнительно включает в себя:
- этап расчета разницы между исходным блоком перекрытия и блоком, полученным от модификаций, привнесенных первой завершающейся транзакцией;
- этап применения этой разницы внутри блока памяти резервного копирования, связанного с другой транзакцией.
4. Способ по любому из пп. 1-3, отличающийся тем, что блоки памяти имеют фиксированный размер.
5. Устройство обработки информации, включающее в себя для модификации в памяти набора данных:
- средства для определения одного или нескольких блоков памяти, включающих данные, которые должны быть модифицированы, пространство памяти, включающее данные для модификации, относится к исходному пространству памяти, один или несколько блоков памяти, определенные таким образом, относятся к исходным блокам,
- средства для перекопирования в пространство энергонезависимой памяти, пространство, относящееся к пространству памяти для резервного копирования указанных исходных блоков памяти, блоки, определенные таким образом, относятся к блокам резервного копирования;
- средства для модификации данных внутри исходных блоков памяти;
отличающееся тем, что оно дополнительно включает в себя:
- средства для запоминания в энергонезависимой памяти состояния транзакции из следующих состояний:
- состояние, называемое "вне транзакции", когда транзакция не осуществляется;
- состояние, называемое "осуществления модификации", запомненное, когда осуществляемая транзакция реализует этап модификации данных внутри исходных блоков памяти, и
- состояние, называемое "осуществления перекопирования", запомненное, когда отмененная транзакция реализует этап перекопирования блоков данных из пространства памяти для резервного копирования в исходное пространство памяти; и
- средства восстановления, используемые при возвращении питания указанного устройства обработки информации после отключения питания, указанные средства восстановления:
- если запомненное состояние является состоянием "вне транзакции", ничего не делают;
- если запомненное состояние является состоянием "выполнения модификации", копируют блоки данных из пространства памяти для резервного копирования в исходное пространство памяти, и
- если запомненное состояние является состоянием "выполнения перекопирования", копируют блоки данных из пространства памяти для резервного копирования в исходное пространство памяти.
6. Устройство обработки информации, включающее в себя для модификации в памяти набора данных:
- средства для определения одного или нескольких блоков памяти, включающих данные, которые должны быть модифицированы, пространство памяти, включающее данные, подлежащие модификации, относится к исходному пространству памяти, один или несколько блоков памяти, определенные таким образом, относятся к исходным блокам памяти,
- средства для перекопирования в пространство энергонезависимой памяти, пространство, относящееся к пространству памяти для резервного копирования указанных исходных блоков памяти, блоки, определенные таким образом, относятся к блокам резервного копирования;
- средства для модификации данных внутри блоков памяти резервного копирования; и
- средства для перекопирования в исходное пространство памяти блоков памяти резервного копирования, модифицированных таким образом;
отличающееся тем, что оно дополнительно включает в себя:
- средства для запоминания в энергонезависимой памяти состояния транзакции из следующих состояний:
- состояние, называемое "вне транзакции", когда транзакция не осуществляется;
- состояние, называемое "осуществление модификации", запомненное, когда осуществляемая транзакция реализует этап модификации данных внутри блоков памяти резервного копирования, и
- состояние, называемое "осуществление перекопирования", запомненное, когда транзакция, реализовавшая с успехом этап модификации, теперь реализует этап перекопирования блоков данных из пространства памяти резервного копирования в исходное пространство памяти, и
- средства восстановления, используемые при возвращении питания указанного устройства обработки информации после отключения питания, указанные средства восстановления:
- если запомненное состояние является состоянием "вне транзакции", ничего не делают;
- если запомненное состояние является состоянием "выполнения модификации", ничего не делают; и
- если запомненное состояние является состоянием "выполнения перекопирования", копируют блоки данных из пространства памяти резервного копирования в исходное пространство памяти.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR12/52989 | 2012-04-02 | ||
FR1252989A FR2988878B1 (fr) | 2012-04-02 | 2012-04-02 | Procede de modification en memoire d'un ensemble de donnees |
PCT/EP2013/055737 WO2013149829A1 (fr) | 2012-04-02 | 2013-03-19 | Procédé de modification en mémoire d'un ensemble de données |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2014144437A RU2014144437A (ru) | 2016-05-27 |
RU2615060C2 true RU2615060C2 (ru) | 2017-04-03 |
Family
ID=46963774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014144437A RU2615060C2 (ru) | 2012-04-02 | 2013-03-19 | Способ модификации набора данных в памяти |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150081946A1 (ru) |
EP (1) | EP2834741B1 (ru) |
FR (1) | FR2988878B1 (ru) |
RU (1) | RU2615060C2 (ru) |
WO (1) | WO2013149829A1 (ru) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9996291B1 (en) * | 2016-07-29 | 2018-06-12 | EMC IP Holding Company LLC | Storage system with solid-state storage device having enhanced write bandwidth operating mode |
KR20210029384A (ko) * | 2019-09-06 | 2021-03-16 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
FR3102868B1 (fr) * | 2019-11-04 | 2021-11-12 | Idemia Identity & Security France | Procédé pour exécuter une transaction |
TWI730714B (zh) * | 2020-04-10 | 2021-06-11 | 啓碁科技股份有限公司 | 記憶體設備和設備信息維護方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003022A (en) * | 1994-06-24 | 1999-12-14 | International Buisness Machines Corporation | Database execution cost and system performance estimator |
US7100195B1 (en) * | 1999-07-30 | 2006-08-29 | Accenture Llp | Managing user information on an e-commerce system |
US20070061487A1 (en) * | 2005-02-01 | 2007-03-15 | Moore James F | Systems and methods for use of structured and unstructured distributed data |
WO2008078207A2 (en) * | 2006-12-22 | 2008-07-03 | International Business Machines Corporation | System and method for recovery of memory transactions |
RU2398275C2 (ru) * | 2005-02-28 | 2010-08-27 | Майкрософт Корпорейшн | Файловая система, представленная внутри базы данных |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3364356B2 (ja) * | 1995-03-30 | 2003-01-08 | 富士通株式会社 | メモリ書替え装置 |
KR100204027B1 (ko) * | 1996-02-16 | 1999-06-15 | 정선종 | 이중면 비휘발성 메모리를 이용한 데이타베이스 회복 장치 및 그 방법 |
US6199074B1 (en) * | 1997-10-09 | 2001-03-06 | International Business Machines Corporation | Database backup system ensuring consistency between primary and mirrored backup database copies despite backup interruption |
US6272607B1 (en) * | 1998-08-28 | 2001-08-07 | International Business Machines Corporation | Method and apparatus for transactional writing of data into a persistent memory |
US6317755B1 (en) * | 1999-07-26 | 2001-11-13 | Motorola, Inc. | Method and apparatus for data backup and restoration in a portable data device |
FI109620B (fi) * | 1999-10-26 | 2002-09-13 | Tellabs Oy | Menetelmä ja järjestely atomaaristen päivitysten toteuttamiseksi loogista flashmuistilaitetta käyttäen |
US6802022B1 (en) * | 2000-04-14 | 2004-10-05 | Stratus Technologies Bermuda Ltd. | Maintenance of consistent, redundant mass storage images |
US7546482B2 (en) * | 2002-10-28 | 2009-06-09 | Emc Corporation | Method and apparatus for monitoring the storage of data in a computer system |
KR100746198B1 (ko) * | 2005-07-08 | 2007-08-06 | 삼성전자주식회사 | 데이터 저장장치, 데이터 저장방법, 및 그 기록매체 |
US20080320253A1 (en) * | 2007-06-19 | 2008-12-25 | Andrew Tomlin | Memory device with circuitry for writing data of an atomic transaction |
US8788740B2 (en) * | 2007-12-21 | 2014-07-22 | Spansion Llc | Data commit on multicycle pass complete without error |
WO2010016058A2 (en) * | 2008-08-04 | 2010-02-11 | Red Bend Ltd. | Performing an in-place update of an operating storage device |
-
2012
- 2012-04-02 FR FR1252989A patent/FR2988878B1/fr not_active Expired - Fee Related
-
2013
- 2013-03-19 RU RU2014144437A patent/RU2615060C2/ru active
- 2013-03-19 US US14/389,886 patent/US20150081946A1/en not_active Abandoned
- 2013-03-19 WO PCT/EP2013/055737 patent/WO2013149829A1/fr active Application Filing
- 2013-03-19 EP EP13713124.9A patent/EP2834741B1/fr active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003022A (en) * | 1994-06-24 | 1999-12-14 | International Buisness Machines Corporation | Database execution cost and system performance estimator |
US7100195B1 (en) * | 1999-07-30 | 2006-08-29 | Accenture Llp | Managing user information on an e-commerce system |
US20070061487A1 (en) * | 2005-02-01 | 2007-03-15 | Moore James F | Systems and methods for use of structured and unstructured distributed data |
RU2398275C2 (ru) * | 2005-02-28 | 2010-08-27 | Майкрософт Корпорейшн | Файловая система, представленная внутри базы данных |
WO2008078207A2 (en) * | 2006-12-22 | 2008-07-03 | International Business Machines Corporation | System and method for recovery of memory transactions |
Also Published As
Publication number | Publication date |
---|---|
EP2834741A1 (fr) | 2015-02-11 |
RU2014144437A (ru) | 2016-05-27 |
FR2988878B1 (fr) | 2015-01-16 |
WO2013149829A1 (fr) | 2013-10-10 |
US20150081946A1 (en) | 2015-03-19 |
EP2834741B1 (fr) | 2019-05-01 |
FR2988878A1 (fr) | 2013-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102012852B (zh) | 一种增量写快照的实现方法 | |
KR101215864B1 (ko) | 전력 손실에 의한 데이터 손상을 방지하는 플래시 메모리관리 방법 | |
US9239761B2 (en) | Storage system format for transaction safe file system | |
EP1224558B1 (en) | Method and arrangement for performing atomic updates using a logical flash memory device | |
US20090172256A1 (en) | Data writing method for flash memory, and flash memory controller and storage device thereof | |
EP2100222B1 (en) | Recovery of a failed file transfer between a host and a data storage device | |
RU2615060C2 (ru) | Способ модификации набора данных в памяти | |
US9213634B2 (en) | Efficient reuse of segments in nonoverwrite storage systems | |
CN101978357A (zh) | 数据更新方法、存储器***和存储器设备 | |
CN101231604B (zh) | 用于集群服务器数据的卷级恢复的设备、***及方法 | |
CN102089746A (zh) | 采用事务日志的闪存恢复 | |
CN105260270A (zh) | 一种Flash存储空间的动态恢复方法及装置 | |
WO2009017368A2 (en) | Input/output control method and apparatus optimized for flash memory | |
CN101482837B (zh) | 闪存文件***纠错方法和装置 | |
CN103198088A (zh) | 基于阴影分页的日志段目录 | |
CN103049539A (zh) | 一种文件***中文件数据的存储方法及其装置 | |
CN109815158A (zh) | 进行***备份的方法、记忆装置及控制器、及电子装置 | |
CN110032526B (zh) | 一种基于非易失性介质的页缓存方法、***及设备 | |
CN102473141A (zh) | 非易失性存储装置以及存储控制器 | |
CN111158858A (zh) | 一种虚拟机的克隆方法和装置,及计算机可读存储介质 | |
TWI676933B (zh) | 韌體更新方法 | |
CN102508743B (zh) | Linux文件***的多点备份和实时保护方法 | |
KR101548452B1 (ko) | 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치 | |
CN108509295B (zh) | 存储器***的操作方法 | |
JPS63133240A (ja) | 常駐テ−ブルの内容保証方式 |