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

1. Наблюдающая компьютерная система (101) в асинхронной распределенной системе (100), включающая множество компьютерных систем (101, 151, 191), причем наблюдающая компьютерная система (101) включает в себя процессор и системную память, асинхронная распределенная система (100) имеет квантовое ограничение тактового генератора (192) и ограничение скорости ухода (193), причем квантовое ограничение тактового генератора (192) указывает максимальную разность между квантованиями тактовых генераторов среди компьютерных систем (101, 151, 191) в асинхронной распределенной системе (100), ограничение скорости ухода (193) указывает максимальный уход тактового генератора за указанный период времени для каждой компьютерной системы в асинхронной распределенной системе (100), способ для определения расхождения между тем, какое время наблюдающая компьютерная система (100) подразумевает в наблюдаемой компьютерной системе (151), и фактическим временем в наблюдаемой компьютерной системе (151), содержащий этапы, на которых:
принимают участие в одном или нескольких обменах сообщениями (184, 185) с наблюдаемой компьютерной системой (151), причем обмены сообщениями включают в себя этапы, на которых:
записывают время отправки (171) у тактового генератора (103) в наблюдающей компьютерной системе (101), когда отправляется сообщение (181);
отправляют сообщение (181) наблюдаемой компьютерной системе (151), причем сообщение (181) включает в себя записанное время отправки (171);
принимают впоследствии коррелирующее сообщение (182) в ответ на сообщение (181) от наблюдаемой компьютерной системы (151), причем коррелирующее сообщение (182) содержит время (183) от наблюдаемой компьютерной системы (151);
записывают принятое время (172) тактового генератора (103) в наблюдающей компьютерной системе (101), когда принимается коррелирующее сообщение (182); и
записывают время (173) от наблюдаемой компьютерной системы (151);
вычисляют нижнюю границу (161) для времени в наблюдаемой компьютерной системе относительно времени наблюдающей компьютерной системы на основе разности между временем (181), записанным для отправки сообщения, и временем (183) от наблюдаемой компьютерной системы, включенным в коррелирующее сообщение, квантового ограничения тактового генератора (192) и ограничения ухода тактового генератора (193);
вычисляют верхнюю границу (162) для времени в наблюдаемой компьютерной системе относительно времени наблюдающей компьютерной системы на основе разности между временем (182), записанным для приема коррелирующего сообщения, и временем (183) от наблюдаемой компьютерной системы, включенным в коррелирующее сообщение, квантового ограничения тактового генератора (192) и ограничения ухода тактового генератора (193);
вычисляют разность между верхней границей (162) и нижней границей (161); и
вычисляют с помощью процессора максимальное расхождение между тем, какое время наблюдающая компьютерная система подразумевает в наблюдаемой компьютерной системе, и фактическим временем в наблюдаемой компьютерной системе, путем деления вычисленной разности на усредняющий коэффициент.
2. Способ по п.1, дополнительно содержащий этап, на котором в наблюдающей компьютерной системе используют вычисленное максимальное расхождение, чтобы составить надежное представление о течении времени в наблюдаемой компьютерной системе.
3. Способ по п.1, дополнительно содержащий этап, на котором наблюдающая компьютерная система и наблюдаемая компьютерная система договариваются о том, когда происходит событие.
4. Способ по п.3, в котором этап, на котором наблюдающая компьютерная система и наблюдаемая компьютерная система договариваются о том, когда происходит событие, содержит этап, на котором в наблюдающей компьютерной системе обнаруживают возникновение прошлого события в наблюдаемой компьютерной системе.
5. Способ по п.3, в котором этап, на котором наблюдающая компьютерная система и наблюдаемая компьютерная система договариваются о том, когда происходит событие, содержит этап, на котором наблюдающая компьютерная система и наблюдаемая компьютерная система договариваются о том, когда событие произойдет в будущем.
6. Способ по п.1, дополнительно содержащий этапы, на которых:
принимают участие посредством наблюдающей компьютерной системы в одном или нескольких дальнейших обменах сообщениями с наблюдаемой компьютерной системой; и
в наблюдающей компьютерной системе уточняют одну или несколько из нижней границы и верхней границы на основе записанного времени, соответствующего одному или нескольким дальнейшим обменам сообщениями.
7. В наблюдающей компьютерной системе (101), причем наблюдающая компьютерная система включает в себя процессор и системную память, способ для указания времени, когда произошло событие в наблюдаемой компьютерной системе (151), содержащий этапы, на которых:
принимают участие в одном или нескольких обменах сообщениями (184, 185) с наблюдаемой компьютерной системой (151), причем каждый обмен сообщениями включает в себя этапы, на которых:
записывают время (171) у тактового генератора (103) в наблюдающей компьютерной системе (101), когда отправляется запрос (181);
отправляют один или несколько запросов (181) наблюдаемой компьютерной системе (151), причем каждый запрос включает в себя соответствующее записанное время отправки;
принимают впоследствии одно или несколько ответных сообщений (182) в ответ на один или несколько запросов (181) от наблюдаемой компьютерной системы (151), причем каждое ответное сообщение содержит время (183) от наблюдаемой компьютерной системы; и
записывают время (172) у тактового генератора (103) в наблюдающей компьютерной системе (101), когда принимается ответное сообщение (182);
вычисляют временные границы (161, 162) для наблюдаемой компьютерной системы (151) относительно времени наблюдающей компьютерной системы (101) на основе одного или нескольких обменов сообщениями (184, 185), причем временные границы (161, 162) сконфигурированы для применения ко времени в наблюдающей компьютерной системе (101), чтобы предположить заданный диапазон времени в наблюдаемой компьютерной системе (151) после одного или нескольких обменов сообщениями (184, 185), причем временные границы включают:
нижнюю временную границу (161), представляющую нижнюю часть вычисленных временных границ; и
верхнюю временную границу (162), представляющую верхнюю часть вычисленных временных границ;
принимают с помощью процессора указание, выбранное из: a) указания возникновения прошлого события в наблюдаемой компьютерной системе (151) и b) указания того, когда событие должно произойти в наблюдаемой компьютерной системе (151) после одного или нескольких обменов сообщениями (184, 185);
вычисляют с помощью процессора диапазон времени для наблюдаемой компьютерной системы (151), причем диапазон времени указывает a) когда произошло событие или b) когда событие должно произойти в наблюдаемой компьютерной системе (151), причем диапазон времени вычисляется на основе времени в наблюдающей компьютерной системе (101), когда принималось указание, и на основе нижней границы (161) и верхней границы (162) вычисленной временной границы; и
отправляют сообщение о событии (197), включающее указание и вычисленный диапазон времени (186), одной или нескольким другим компьютерным системам (191).
8. Способ по п.7, в котором этап, на котором вычисляют временные границы для наблюдаемой компьютерной системы относительно времени в наблюдающей компьютерной системе на основе одного или нескольких сообщений, содержит этап, на котором устанавливают нижнюю границу в значение, по меньшей мере частично основанное на наименьшей разности между временем, записанным для отправки запроса, и временем от наблюдаемой компьютерной системы, включенным в соответствующее ответное сообщение в любом одном или нескольких обменах сообщениями.
9. Способ по п.8, в котором этап, на котором устанавливают нижнюю границу в значение, содержит этап, на котором устанавливают нижнюю границу в значение, по меньшей мере частично основанное на указании разности между квантованием тактового генератора в наблюдающей компьютерной системе и квантованием тактового генератора в наблюдаемой компьютерной системе.
10. Способ по п.8, в котором этап, на котором устанавливают нижнюю границу в значение, содержит этап, на котором устанавливают нижнюю границу в значение, по меньшей мере частично основанное на уходе тактового генератора в наблюдающей компьютерной системе и уходе тактового генератора в наблюдаемой компьютерной системе.
11. Способ по п.7, в котором этап, на котором вычисляют временные границы для наблюдаемой компьютерной системы относительно времени в наблюдающей компьютерной системе на основе одного или нескольких запросов/ответных сообщений, содержит этап, на котором устанавливают верхнюю границу в значение, по меньшей мере частично основанное на наименьшей разности между временем, записанным для приема ответного сообщения, и временем от наблюдаемой компьютерной системы, включенным в ответное сообщение в любом одном или нескольких обменах запросом/ответным сообщением.
12. Способ по п.11, в котором этап, на котором устанавливают верхнюю границу в значение, содержит этап, на котором устанавливают верхнюю границу в значение, по меньшей мере частично основанное на указании разности между квантованием тактового генератора в наблюдающей компьютерной системе и квантованием тактового генератора в наблюдаемой компьютерной системе.
13. Способ по п.11, в котором этап, на котором устанавливают верхнюю границу в значение, содержит этап, на котором устанавливают верхнюю границу в значение, по меньшей мере частично основанное на уходе тактового генератора в наблюдающей компьютерной системе и уходе тактового генератора в наблюдаемой компьютерной системе.
14. Способ по п.7, в котором асинхронная распределенная система является одноранговой системой.
15. В компьютерной системе (501), включающей процессор и системную память, способ для вычисления максимального расхождения (514) между тактовыми генераторами в разных компьютерных системах в асинхронной распределенной системе, которая включает в себя множество компьютерных систем, содержащий этапы, на которых:
обращаются к квантовому ограничению тактового генератора (511), причем квантовое ограничение тактового генератора указывает максимальную разность между квантованиями тактовых генераторов среди компьютерных систем в асинхронной распределенной системе;
обращаются к ограничению скорости ухода (512), причем ограничение скорости ухода указывает максимальный уход тактового генератора в заданном периоде времени для каждой компьютерной системы в асинхронной распределенной системе;
обращаются к ограничению максимального кругового пути (513), причем ограничение максимального кругового пути указывает максимальное количество времени для совершения обмена запросом/ответным сообщением между любыми двумя компьютерными системами в асинхронной распределенной системе; и
вычисляют с помощью процессора максимальное расхождение (514) между тактовыми генераторами в разных компьютерных системах в асинхронной системе на основе квантового ограничения тактового генератора, ограничения скорости ухода и ограничения максимального кругового пути.