Что означает приращение в качестве второго параметра конструктора BSON_TIMESTAMP в Mongodb?

#c# #mongodb

#c# #mongodb

Вопрос:

Проверяю документацию mongodb здесь . В нем говорится, что второй параметр BsonTimestamp равен

вторые 32 бита являются порядковым номером приращения для операций в течение данной секунды

Что я не очень хорошо понял.

Может кто-нибудь, пожалуйста, помочь мне понять, объяснив более подробно, что это значит?

Комментарии:

1. Второй параметр предназначен для указания дробной составляющей от миллисекунд до наносекунд.

2. О, хорошо, теперь я понимаю. Спасибо @Veeram

3. @Veeram откуда ты взял идею, что приращение составляет миллиметры или нанометры? И что будет определять, должно ли оно считываться как миллиметры или нанометры? кроме того, 2 ^ 31 равно > 2×10 ^ 9, поэтому целое число может превышать количество наносекунд за одну секунду

Ответ №1:

из «вторые 32 бита являются порядковым номером, увеличивающимся для операций в течение данной секунды» я понимаю, что это порядковый номер, используемый для различения событий, происходящих в течение одной секунды. Необязательно представлять какую-либо единицу времени o time.

Редактировать: я проверил исходный код Java-версии класса ObjectId, и inc — это простой счетчик в диапазоне 0x0 — 0x00ffffff. Поскольку это внутреннее представление, не следует рассуждать о нем.

Комментарии:

1. Интересно! Итак, я вижу, что приращение является параметром API драйвера, в этом смысле я не понимаю, как пользователь мог бы определить приращение, что бы это значило? Разве приращение не должно быть просто концепцией внутреннего ядра, которую сервер mongodb выполняет автоматически?

2. Извините, я перепутал два класса BsonTimestamp и ObjectId, которые оба используют одну и ту же концепцию метки времени и приращения. Тем не менее, верно, что приращение — это просто число, предоставляемое для различения событий в одну и ту же секунду «getInc(): @возвращает порядковый номер с увеличением для операций в течение данной секунды». Итак, я полагаю, что вы могли бы просто ставить 0 все случаи, когда у вас происходят события в разные секунды, или использовать счетчик, чтобы отличать, когда вы генерируете больше событий за секунду.