СПОСОБЫ И УСТРОЙСТВО ДЛЯ РАСПРЕДЕЛЕННОЙ БАЗЫ ДАННЫХ, КОТОРАЯ ПОЗВОЛЯЕТ УДАЛЯТЬ СОБЫТИЯ

1. Устройство для реализации распределенной базы данных, содержащее:
память, связанную с экземпляром распределенной базы данных на первом вычислительном устройстве, приспособленном для включения во множество вычислительных устройств, которые реализуют распределенную базу данных посредством сети, функционально соединенной с множеством вычислительных устройств,
процессор, функционально соединенный с памятью,
при этом процессор приспособлен для:
приема события со второго вычислительного устройства из множества вычислительных устройств, при этом событие представляет собой последовательность байтов, связанных с набором событий-родителей, при этом каждое событие-родитель из набора событий-родителей связано со (1) значением хеша и (2) значением созданного раунда,
исключения принятого события из определения порядка событий, когда по меньшей мере один из первого критерия или второго критерия удовлетворен, при этом первый критерий удовлетворен, когда:
(1) по меньшей мере одно событие-родитель из набора событий-родителей не имеет идентификатора в экземпляре распределенной базы данных, и
(2) по меньшей мере одно событие-родитель связано со значением созданного раунда, которое превышает первый порог созданного раунда, и
второй критерий удовлетворен, когда:
(1) первый критерий не удовлетворен, и
(2) каждое событие-родитель из набора событий-родителей связано со значением созданного раунда, которое меньше, чем второй порог созданного раунда, и
сохранения события в экземпляре распределенной базы данных, когда событие не исключено на основе первого критерия или второго критерия.
2. Устройство по п. 1, отличающееся тем, что первый порог созданного раунда основан на текущем номере принятого раунда, идентифицированном экземпляром распределенной базы данных.
3. Устройство по п. 1, отличающееся тем, что второй порог созданного раунда основан на текущем номере принятого раунда, идентифицированном экземпляром распределенной базы данных.
4. Устройство по п. 1, отличающееся тем, что первый порог созданного раунда соответствует второму порогу созданного раунда.
5. Устройство по п. 1, отличающееся тем, что первый порог созданного раунда отличается от второго порога созданного раунда.
6. Устройство по п. 1, отличающееся тем, что принятое событие содержит набор транзакций, при этом принятое событие исключают из определения порядка событий в первый момент времени, и набор транзакций выполняют во второй момент времени до первого момента времени.
7. Способ реализации распределенной базы данных, включающий:
прием на первом вычислительном устройстве из множества вычислительных устройств, которое реализует распределенную базу данных посредством сети, события от второго вычислительного устройства из множества вычислительных устройств, причем событие содержит идентификатор каждого события-родителя из набора событий-родителей, относящихся к событию, причем каждое событие-родитель из набора событий-родителей имеет значение атрибута;
отклонение события, когда по меньшей мере один из первого критерия или второго критерия удовлетворен, при этом первый критерий удовлетворен, когда:
(1) идентификатор для по меньшей мере одного события-родителя из набора событий-родителей не находится в экземпляре распределенной базы данных на первом вычислительном устройстве, и
(2) значение атрибута для по меньшей мере одного события-родителя больше, чем первый порог атрибута, и
второй критерий удовлетворен, когда:
(1) первый критерий не удовлетворен, и
(2) значение атрибута для каждого события-родителя из набора событий-родителей меньше, чем второй порог атрибута, и
сохранение события в экземпляре распределенной базы данных, когда событие не отклонено на основе первого критерия или второго критерия.
8. Способ по п. 7, отличающийся тем, что событие содержит значение атрибута для каждого события-родителя из набора событий-родителей.
9. Способ по п. 7, отличающийся тем, что событие содержит значение атрибута для каждого события-родителя из набора событий-родителей, причем значение атрибута представляет собой созданный раунд каждого события-родителя из набора событий-родителей, первый порог атрибута представляет собой первый порог созданного раунда, и второй порог атрибута представляет собой второй порог созданного раунда.
10. Способ по п. 7, отличающийся тем, что идентификатор каждого события-родителя из набора событий-родителей представляет собой значение хеша, связанное с этим событием-родителем из набора событий-родителей.
11. Способ по п. 7, отличающийся тем, что дополнительно включает:
вычисление с использованием протокола консенсуса порядка консенсуса множества событий на основе по меньшей мере частично события и идентификатора каждого события-родителя из набора событий-родителей, когда событие не отклонено на основе первого критерия или второго критерия.
12. Способ по п. 7, отличающийся тем, что дополнительно включает:
определение направленного ациклического графа (DAG) на основе по меньшей мере частично события и идентификатора каждого события-родителя из набора событий-родителей, когда событие не отклонено на основе первого критерия или второго критерия; и
вычисление порядка консенсуса множества событий на основе DAG.
13. Способ по п. 7, отличающееся тем, что первый порог атрибута соответствует второму порогу атрибута.
14. Способ по п. 7, отличающееся тем, что первый порог атрибута отличается от второго порога атрибута.
15. Энергонезависимый считываемый процессором носитель, хранящий код, представляющий инструкции, которые должны быть исполнены процессором для реализации распределенной базы данных, причем код содержит код для предписывания процессору:
принять на первом вычислительном устройстве из множества вычислительных устройств, которое реализует распределенную базу данных посредством сети, событие от второго вычислительного устройства из множества вычислительных устройств, причем событие содержит идентификатор каждого события-родителя из набора событий-родителей, относящихся к событию, и значение атрибута для каждого события-родителя из набора событий-родителей;
исключить событие из определения порядка событий, когда:
(1) идентификатор для по меньшей мере одного события-родителя из набора событий-родителей не находится в экземпляре распределенной базы данных на первом вычислительном устройстве, и
(2) значение атрибута для по меньшей мере одного события-родителя больше, чем порог атрибута; и
сохранить событие в экземпляре распределенной базы данных, когда событие не исключено.
16. Энергонезависимый считываемый процессором носитель по п. 15, отличающийся тем, что порог атрибута представляет собой первый порог атрибута, причем энергонезависимый считываемый процессором носитель дополнительно содержит код для предписывания процессору:
исключить событие из определения порядка событий, когда:
(1) идентификатор для по меньшей мере одного события-родителя из набора событий-родителей находится в экземпляре распределенной базы данных на первом вычислительном устройстве, или (2) значение атрибута для по меньшей мере одного события-родителя не превышает первый порог атрибута, и
значение атрибута для каждого события-родителя из набора событий-родителей меньше, чем второй порог атрибута.
17. Энергонезависимый считываемый процессором носитель по п. 15, отличающийся тем, что значение атрибута для каждого события-родителя из набора событий-родителей представляет собой значение созданного раунда для этого события-родителя.
18. Энергонезависимый считываемый процессором носитель по п. 15, отличающийся тем, что идентификатор каждого события-родителя из набора событий-родителей представляет собой значение хеша, связанное с этим событием-родителем из набора событий-родителей.
19. Энергонезависимый считываемый процессором носитель по п. 15, отличающийся тем, что набор событий-родителей содержит множество событий-родителей.
20. Энергонезависимый считываемый процессором носитель по п. 15, отличающийся тем, что дополнительно содержит код для предписывания процессору:
определить направленный ациклический граф (DAG) на основе по меньшей мере частично события и идентификатора каждого события-родителя из набора событий-родителей, когда событие не исключено; и
вычислить порядок консенсуса множества событий на основе DAG.
21. Энергонезависимый считываемый процессором носитель по п. 15, отличающийся тем, что дополнительно содержит код для предписывания процессору:
вычислить, когда событие не исключено, и с использованием протокола консенсуса порядок консенсуса множества событий на основе по меньшей мере частично события и идентификатора каждого события-родителя из набора событий-родителей.