АТОМАРНАЯ МНОЖЕСТВЕННАЯ МОДИФИКАЦИЯ ДАННЫХ В РАСПРЕДЕЛЕННОЙ СИСТЕМЕ ХРАНЕНИЯ ДАННЫХ

1. Один или несколько машиночитаемых носителей, хранящих исполняемые компьютером команды для выполнения способа выполнения множественных модификаций одного или нескольких потоков в виде одного атомарного элемента, при этом способ содержит этапы, на которых:
выбирают (601) один или несколько потоков для модификации в виде одного или нескольких выбранных потоков;
получают (602) блокировку на одних или нескольких метаданных, ассоциированных с одним или несколькими выбранными потоками;
отсоединяют (603) каждый из одного или нескольких выбранных потоков от одного или нескольких имен, ассоциированных с каждым потоком;
выполняют (604, 605) множество модификаций одного или нескольких выбранных потоков;
присоединяют (606) каждый из одного или нескольких выбранных потоков к по меньшей мере одному имени, ассоциированному с каждым потоком; и
освобождают (607) блокировку на одних или нескольких метаданных одного или нескольких выбранных потоков.
2. Носитель по п.1, в котором один или несколько потоков являются только дополняемыми потоками.
3. Носитель по п.1, в котором отсоединение содержит поддержку временной карты преобразования данных, хранящей исходное соединение каждого из одного или нескольких выбранных потоков с именем, ассоциированным с каждым потоком.
4. Носитель по п.3, в котором временная карта преобразования данных основана на GUID (глобально уникальном идентификаторе) каждого из одного или нескольких потоков.
5. Носитель по п.1, в котором множество модификаций содержит одно или несколько из следующего: создание нового потока, добавление к существующему потоку, создание копии существующего потока, удаление потока, переименование потока, обновление метаданных потока, и копирование поднабора экстентов потока во второй поток.
6. Носитель по п.1, в котором воссоединение содержит ассоциирование одного или нескольких GUID одного или нескольких выбранных потоков с одним или несколькими именами.
7. Носитель по п.6, в котором воссоединение содержит использование временной карты преобразования данных между одним или несколькими GUID, идентифицирующими потоки, и одним или несколькими именами.
8. Носитель по п.1, в котором множество модификаций воздействует на один или несколько выбранных потоков посредством изменения одного или нескольких указателей на экстенты без перемещения данных одного или нескольких экстентов.
9. Один или несколько машиночитаемых носителей, хранящих исполняемые компьютером команды для выполнения способа выполнения множественных модификаций одного или нескольких потоков в виде одного атомарного элемента, при этом способ содержит этапы, на которых:
выбирают (701) один или несколько потоков для модификации в виде одного или нескольких выбранных потоков;
получают (702) блокировку на одних или нескольких метаданных, ассоциированных с одним или несколькими выбранными потоками;
отсоединяют (703) каждый из одного или нескольких выбранных потоков от имени, ассоциированного с каждым потоком;
выполняют (704) первую из множества модификаций одного или нескольких выбранных потоков;
определяют (705), что вторая из множества модификаций одного или нескольких выбранных потоков создаст нарушение целостности;
отменяют (706) первую из множества модификаций одного или нескольких выбранных потоков;
присоединяют (707) каждый из одного или нескольких выбранных потоков к по меньшей мере одному имени, ассоциированному с каждым потоком; и
освобождают (708) блокировку на одних или нескольких метаданных одного или нескольких выбранных потоков.
10. Носитель по п.9, в котором один или несколько потоков являются только дополняемыми.
11. Носитель по п.9, в котором отсоединение содержит поддержку временной карты преобразования данных, хранящей исходное соединение каждого из одного или нескольких выбранных потоков с именем, ассоциированным с каждым потоком.
12. Носитель по п.11, в котором множество модификаций выполняет одно или несколько изменений во временной карте преобразования данных.
13. Носитель по п.11, в котором каждое из множества модификаций создает новую копию временной карты преобразования данных, причем каждая копия обозначает моментальный снимок одного или нескольких выбранных потоков после применения модификации множества модификаций, ассоциированных с новой копией временной карты преобразования данных.
14. Носитель по п.11, в котором отмена первой из множества модификаций содержит отмену изменений в каждом из выбранных потоков.
15. Носитель по п.11, в котором воссоединение использует временную карту преобразования данных, хранящую исходные соединения для воссоединения каждого из одного или нескольких выбранных потоков с именами, ассоциированными с каждым потоком.
16. Носитель по п.9, в котором множество модификаций содержит одно или несколько из следующего: создание нового потока, добавление к существующему потоку, создание копии существующего потока, удаление потока, переименование потока, обновление метаданных потока, и копирование поднабора экстентов потока во второй поток.
17. Носитель по п.9, в котором множество модификаций воздействует на один или несколько выбранных потоков посредством изменения одного или нескольких указателей на экстенты без перемещения данных одного или нескольких экстентов.
18. Один или несколько машиночитаемых носителей, хранящих исполняемые компьютером команды для выполнения способа выполнения множественных модификаций одного или нескольких потоков в виде одного атомарного элемента, при этом способ содержит этапы, на которых:
выбирают (801) один или несколько только добавляемых потоков для модификации в виде одного или нескольких выбранных потоков;
получают (802) блокировку на одних или нескольких метаданных, ассоциированных с одним или несколькими выбранными потоками; причем получение блокировки содержит модифицирование потока с предварительно определенным именем, подлежащего быть заблокированным потоком;
отсоединяют (803) каждый из одного или нескольких потоков от одного или нескольких имен, ассоциированных с каждым потоком;
выполняют (804) первую из множества модификаций одного или нескольких выбранных потоков;
определяют (805), создаст ли нарушение целостности вторая из множества модификаций одного или нескольких выбранных потоков;
если вторая из множества модификаций создаст нарушение целостности, отменяют (807) первую из множества модификаций одного или нескольких выбранных потоков;
если вторая из множества модификаций не создаст нарушение целостности, выполняют (806) вторую из множества модификаций одного или нескольких выбранных потоков;
присоединяют (808) каждый из одного или нескольких выбранных потоков к по меньшей мере одному имени, ассоциированному с каждым потоком; и
освобождают (809) блокировку на одних или нескольких метаданных одного или нескольких выбранных потоков.
19. Носитель по п.18, в котором множество модификаций воздействует на один или несколько выбранных потоков посредством изменения одного или нескольких указателей на экстенты без перемещения данных одного или нескольких экстентов.
20. Носитель по п. 18, в котором множество модификаций содержит одно или несколько из следующего: создание нового потока, добавление к существующему потоку, создание копии существующего потока, удаление потока, переименование потока, обновление метаданных потока, и копирование поднабора экстентов потока во второй поток.