[Thomas John Sødring]
Som du nevnte på #nikita at det ikke skal være basert på tid så tar jeg også bort
@UuidGenerator(style = TIME)
Du misforstår. Jeg luftet mine fordommer og tvilsomme antagelser på #nikita, ikke noe krav om at det ikke skulle være som i dag. Jeg trodde at Nikita genererte UUID versjon 4 (aka basert på tilfeldige tall), mens da jeg leste koden så jeg at det virker som den var basert på tid i stedet. Begge deler er helt i orden Hvis den var basert på tilfeldige tall, så fikk vi et råd i dag om at vi burde vurdere UUID versjon 7 (fra RFC 9562), men den oppdaget jeg var utenfor rekkevidde med dagens N5TG-spesifikasjon (har bedt om at det endres i <URL: https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/32... >).
Aktuelle verdier her er: AUTO, RANDOM og TIME. Dersom en verdi ikke er satt så blir det satt til RANDOM, men jeg mistenker at det kan være lurt å tvinge RANDOM slik at det ikke skjer en endring senere der default endres.
Det kan godt hende at tidsbasert UUID (v1) er bedre for ytelsen ved skriving enn helt tilfeldig UUID (v4/v7), så jeg ville avventet å bytte til vi vet mer om effekten av et slikt bytte. Det vi diskuterte med kollegaer med PostgreSQL-peiling i dat var relativ skalerbarhert av UUID versjon 4 versus 7 og det sier intet om forholdet til UUID versjon 1.
En annen ting verdt å merke seg. Mine lokale test på å konvertere nikita til en nativ image med graalvm ga et stort utsalg på ytelse, så det kan være greit å ha i bakhodet at vi kan kanskje få ting til å gå enda raskere.
Ja, ytelsesforbedring er bakgrunnen for forslaget. Datamengden som må sjekkes blir betydelig mindre med UUID vs. varchar(36) i UTF-8-form. Det er antagelig enda mer å hente på utvalgte indekser, men vi kommer tilbake til dette når vi har testet mer. :)