kika: (Default)
[personal profile] kika
Вроде бы простая задача а у Грубера не описана - я хочу для каждой строки в базе данных сохранять версии. Решение в лоб - вместо UPDATE - INSERT с обновленным таймстампом. Но тогда любая выборка превращается в адъ. Наверняка это популярная проблема а я просто лох, но все что я ни придумаю получается криво.

Date: 2010-09-21 04:21 am (UTC)
From: [identity profile] dobryj-fei.livejournal.com
лучше версионировать цифрами инкрементальными а не таймстемпом - оказалось, что Java может на windows например генерить два идентичных TS в рамках 13 миллисекунд, ну и просто алгоритмически некоторые деятели писали дважды.

Ну и если очень заботит производительность на вставке и выборке и хочется приключений - можно иметь теневую таблицу в которую daemon будет в off-peak time выносить версионные записи. При этом быть готовым, что есть шанс что редкие версионные записи есть в основной таблице.

Date: 2010-09-21 05:18 am (UTC)
From: [identity profile] msh.livejournal.com
Так на виндовз стандартный тик - 64 Hz, это надо HPET включать чтобы больше разрешение было (multimedia timers, кажется, у них это называется)

Date: 2010-09-21 10:45 am (UTC)
From: [identity profile] kika.livejournal.com
Да это понятно всё, это ж примитивный пример, иллюстрирующий вопрос, а не объясняющий архитектуру того что я хочу построить. Про то что часики на компутере бегают заметно медленнее чем сам компутер щелкает я какбе в курсе. Любовно отполированная лбом ручка _этих_ грабель уже успела потускнеть.

Profile

kika: (Default)
kika

January 2017

S M T W T F S
1234567
89 1011121314
151617181920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2026 01:06 pm
Powered by Dreamwidth Studios