LDAP auto_increment

Uncategorized — Антон Марчуков @ 19.08.05 10:47

А в LDAPе то auto_increment нету. Я, конечно, понимаю, что он не реляционная база и для таких вещей не предназначен, но для моей задачи его механизм репликации очень удобен. Посему, придумал такую реализацию для генерации уникального id, мало ли кому пригодится:

Берём значение unix timestamp, поскольку оно считается с 1970 года, а на дворе 2005, то вычитаем из него 1103760000 (это количество секунд, которое прошло с 1970 по 2005 год). Можно отнять и больше, так как уже август кончается. Теперь осталось только дописать к этому числу справа 2 случайные цифры, так как timestamp меняется каждую секунду, а добавив 2 случайные цифры, мы получаем теоритический уже 100 уникальных id за секунду, при условии, что генератор псевдослучайных чисел генерирует равномерное распределение. В реальности, конечно, это не так, но этим можно принебречь или увеличить количество случайных чисел в id.

Ну и в реляционные базы такой id запихивается в INT или BIGINT, смотря до какого года эта штука должна проработать.


No comments yet.

Leave a comment


This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2017 Anton Martchukov's Weblog | powered by WordPress with Barecity