-
1. Data: 2011-07-25 13:27:47
Temat: Jaki generator ID 64bit dla bazy danych
Od: Szyk <s...@o...pl>
Witam
Mam problem gdyż chcę mieć jedną bazę na wielu maszynach i muszę mieć
unikalne ID Baz danych i rekordów by to replikować bez problemów.
Spodobało mi się rozwiązanie M$ polegające na generowaniu unikalnych
128bit ID dla Obiektów Ole/Com/ActiveX. Chciałbym mieć coś takiego w
postaci biblioteki generującej unikalne klucze 64bit.
Jaki dobry generator byście polecili do tego celu?
dzięki
Szyk
-
2. Data: 2011-07-25 15:56:50
Temat: Re: Jaki generator ID 64bit dla bazy danych
Od: Mariusz Marszałkowski <m...@g...com>
On Jul 25, 3:27 pm, Szyk <s...@o...pl> wrote:
> Witam
>
> Mam problem gdyż chcę mieć jedną bazę na wielu maszynach i muszę mieć
> unikalne ID Baz danych i rekordów by to replikować bez problemów.
Poczekaj, piszesz najpierw ze chcesz miec jedna baze a potem ze chcesz
miec unikalne id baz danych - w liczbie mnogiej. Potem piszesz zeby
to replikowac bez problemow - to czyli co? Ta jedna baze, czy te wiele
baz i bez jakich problemow? Nic nie rozumiem.
Jesli masz jedna baze np. w rozporoszonym sorodowisku sieciowym i
lacza sie z nia programy przez TCP/IP to w ogole nie ma zadnego
problemu, kazda wielodostepna baza sama oferuje jakis poprawny
mechanizm zapewniajacy unikalnosc, np. postgresql ma sekwencje.
Pozdrawiam
-
3. Data: 2011-07-25 17:55:59
Temat: Re: Jaki generator ID 64bit dla bazy danych
Od: "Robert Winkler" <n...@n...org>
> Mam problem gdyż chcę mieć jedną bazę na wielu maszynach i muszę mieć
> unikalne ID Baz danych i rekordów by to replikować bez problemów.
>
> Spodobało mi się rozwiązanie M$ polegające na generowaniu unikalnych
> 128bit ID dla Obiektów Ole/Com/ActiveX. Chciałbym mieć coś takiego w
> postaci biblioteki generującej unikalne klucze 64bit.
Nie jest to wymysł Microsoftu ale zasowanie identyfikatorów UUID
Napewno znadziesz na sieci odpowiednią specyfikacje RFC
opisującą ten typ danych.
Przy okazji, wersja 5 UUID bazuje na SHA-1
ze 160 bitów tworzonych przez funkcje skrótu wybierane są 128 i zapisywane
jako UUID.
Skoro wystarczą ci 64 bity wiec też użyj funkcji skrótu i obetni pozostałe
bity.
Tak z innej beczki, nie wygodniej byłoby jako 8 najstarszych bitów używać
numery danej bazy
a pozostałe 56 bitów wypełniać sekwencją od 1 w góre,
na pewno będzie to działało szybciej od SHA-1.
Dodatkowo, łatwo byłoby określić z której bazy pochodzi dany wpis.
--
__________
Pozdrawiam
Robert Winkler