Номер версии или метка времени для оптимистичного параллелизма?

Я рассматриваю Венгерскую запись как способ обойти мощность нашей кратковременной памяти. По словам психологов, мы можем сохранить [приблизительно 115] 7 плюс-минус 2 блока из информации. Дополнительная информация, добавленная включением префикса, помогает нам путем предоставления больше подробной информации о значении идентификатора даже без другого контекста. Другими словами, мы можем предположить то, для чего переменная, не видя, как она используется или объявляется. Этого можно избежать путем применения oo методов такой как инкапсуляция и единственный принцип ответственности .

я не знаю, было ли это изучено опытным путем. Я выдвинул бы гипотезу, что усилие увеличивается существенно, когда мы пытаемся понять классы больше чем с девятью переменными экземпляра или методы больше чем с 9 локальными переменными.

12
задан Lieven Cardoen 6 November 2009 в 13:20
поделиться

5 ответов

Номер версии лучше, потому что независимо от того, какой формат времени вы используете, он все равно может быть сброшен, если часы сервера неправильные или становятся неправильными со временем.

Я должен признать, Я использовал метку времени во многих базах данных, потому что она может служить двойной цели: проверка параллелизма, а также удобочитаемость, когда данные были в последний раз изменены. Однако использование номера версии - лучший способ.

14
ответ дан 2 December 2019 в 06:26
поделиться

Я бы использовал номер версии, особенно если ресурс может быть обновлен больше, чем разрешение ваших временных меток (например, если вы сохраняете временные метки с разрешением в секунды, если у вас есть несколько обновлений в течение одной секунды, ваша версия будет нарушена).

4
ответ дан 2 December 2019 в 06:26
поделиться

Ливен,

Я знаю, что вы не указали SQL Server, но ЕСЛИ вы говорите о SQL Server, то тип данных TimeStamp будет лучшим метод использования. Несмотря на его описание, ему нечего делать с датой и временем. На самом деле это просто двоичное число, которое изменяется каждый раз при изменении строки. Таким образом, если в строку будут внесены какие-либо изменения, то вы знаете, что столбец отметки времени изменится. Это имеет преимущество перед номерами версий, потому что вам, программисту, не нужно «поддерживать» номер версии. Отметки фактического времени / даты необходимо использовать с большей осторожностью, чем другой плакат, упомянутый ранее - разница во времени и т. Д.

4
ответ дан 2 December 2019 в 06:26
поделиться

Номер версии. Или, если я использую временную метку, я буду уверен, что это UTC, чтобы не было путаницы с часовым поясом.

3
ответ дан 2 December 2019 в 06:26
поделиться

If you are on Windows, I recommend to use a globally unique identifier (GUID) as the version identifier.

A timestamp (even if UTC) can make problems if the clock is set by the user. An incrementing number (if hold in memory) can make problems if the server application is restarted, or if it overflows (if it's only a 16-bit or 32-bit integer).

0
ответ дан 2 December 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: