feat: reduce default node ID length to 3 and auto-grow when exhausted

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-02 01:21:00 +02:00
parent 2a48ea046b
commit 5969a2591c

View File

@@ -265,8 +265,8 @@ func (s *txStore) NodeExists(id string) (bool, error) { return nodeExists(s.db,
// --- ID generation --- // --- ID generation ---
func genID() string { func genID(length int) string {
b := make([]byte, 5) b := make([]byte, length)
for i := range b { for i := range b {
b[i] = "abcdefghijklmnopqrstuvwxyz"[rand.Intn(26)] b[i] = "abcdefghijklmnopqrstuvwxyz"[rand.Intn(26)]
} }
@@ -274,8 +274,14 @@ func genID() string {
} }
func generateID(q querier) (string, error) { func generateID(q querier) (string, error) {
for { for length := 3; ; length++ {
id := genID() // Try up to 10*capacity attempts at this length before growing.
capacity := 1
for i := 0; i < length; i++ {
capacity *= 26
}
for attempt := 0; attempt < 10*capacity; attempt++ {
id := genID(length)
exists, err := nodeExists(q, id) exists, err := nodeExists(q, id)
if err != nil { if err != nil {
return "", err return "", err
@@ -285,6 +291,7 @@ func generateID(q querier) (string, error) {
} }
} }
} }
}
func (s *GraphStoreSqlite) GenerateID() (string, error) { return generateID(s.db) } func (s *GraphStoreSqlite) GenerateID() (string, error) { return generateID(s.db) }
func (s *txStore) GenerateID() (string, error) { return generateID(s.db) } func (s *txStore) GenerateID() (string, error) { return generateID(s.db) }