-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(idpool): idpool feature for generating id's #400
base: main
Are you sure you want to change the base?
Conversation
pkg/LinuxGeneralModule/lgm.go
Outdated
@@ -465,8 +467,12 @@ func setUpVrf(vrf *infradb.Vrf) (string, bool) { | |||
vrf.Metadata.RoutingTable = make([]*uint32, 1) | |||
vrf.Metadata.RoutingTable[0] = new(uint32) | |||
var routingTable uint32 | |||
Name := vrf.Name |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please align with Go style guide:
https://google.github.io/styleguide/go/decisions.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you overshot it :)
why _unusedids
? It is almost unreadable. Use lower case for not exported members. Use camelCase naming. Do not use _
in names.
pkg/utils/Idpool.go
Outdated
_unusedIDs []uint32 // Yet unused IDs in pool Available ids | ||
_idsInUse map[interface{}]uint32 // Mapping key: id for currently assigned ids | ||
_idsForReuse map[interface{}]uint32 // Mapping key: id for previously assigned ids | ||
_refs map[uint32][]interface{} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
refs sounds like a counter tracking how many times we requested the same id, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
correct, its reference to the same id
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
then why do we need a slice of slices then? Can we have a slice of counters? map[uint32]uint32
?
eb45583
to
45ace4d
Compare
pkg/utils/idpool.go
Outdated
// Copyright (c) 2022-2023 Intel Corporation, or its subsidiaries. | ||
// Copyright (C) 2023 Nordix Foundation. | ||
|
||
// Package linuxgeneralmodule is the main package of the application |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
?
pkg/utils/Idpool.go
Outdated
if len(ip._unusedIDs) != 0 { | ||
// Pick an unused id | ||
id = ip._unusedIDs[0] | ||
ip._unusedIDs = append(ip._unusedIDs[:0], ip._unusedIDs[1:]...) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you are still picking the first element from the slice, which is suboptimal? If you reverse your unused id in init and will pick last element (which is more effective)?
322f68f
to
9bfa71a
Compare
Signed-off-by: Venkatesh, Vemula <venkatesh.vemula@intel.com> Signed-off-by: Atul Patel <Atul.Patel@intel.com>
9bfa71a
to
d04f716
Compare
Signed-off-by: Vemula Venkatesh <venkatesh.vemula@intel.com>
ed77db5
to
f0058be
Compare
Signed-off-by: Vemula Venkatesh <venkatesh.vemula@intel.com>
idpool feature for generating id's for mod pointer, routing table id , trie pointer.