Comments (3)
There may be other ways to achieve this. AFAIK you can load .Net assemblies into SQL server. I'm not sure about the lifetime of these loaded objects (do they only exist within the scope of the function or are they loaded once, globally and kept around) or other challenges you may run into but it may be worth looking into.
On resetting the Sequence you were referring to: theoretically you wouldn't have to. It might not be the exact same behaviour as IdGen implements, but you could just let it count up and either have it overflow and 'wrap around' or reset it at another given interval entirely (with careful consideration ofcourse).
from idgen.
I think the biggest challenge would be to keep some sort of state between invocations for the sequence-part of the ID. You could -ofcourse- store that in a table or something but I'm not sure if that would be efficient and although I have some experience with SQL Server, I couldn't tell you of the top of my head if it would be possible to store a global 'counter variable' in memory (without concurrency issues). Other than that I don't see why it wouldn't work as a SQL server function; you could even leave all the 'variable width' of the fields and just use some fixed values which should make things a little easier.
So, the theory works, a server should be able to generate an ID without collisions as long as it has a reserved GeneratorId; I'm just not so sure about the Sequence part.
from idgen.
Indeed, that's the part I was wondering about too. One might be able to do it using/resetting SQL Server's Sequence feature but it would be quite a hack. Snowflake IDs are very powerful, but we've been reviewing the trade-offs vs. traditional Identity or GUIDs and one concern is giving up SQL generated IDs. Can't have it all, I suppose. 😅
Thanks for your thoughts!
from idgen.
Related Issues (20)
- Drop support for netstandard 1.1 HOT 5
- Non-generic IIdGenerator HOT 5
- Avoid spending a sign bit by using ulongs HOT 10
- Tag 3.0.3 is missing HOT 1
- Documentation about generatorId collisions when id structure changes HOT 9
- IdGen is generating 17bit Id instead of 16bit? What should we change in the method so that it generate 16 bit Id instead of 17 bit now and in the future it continuous to generate 16 bit Id? HOT 11
- Is there a way to shorten the number of digits generated for an id? HOT 5
- Handling uniqueness ID across multiple instance of same service HOT 6
- IdGenerator does not contain a definition for 'Take' HOT 1
- Consider adding IdGenerator#CreateFromDateTime HOT 5
- Public Method Comments HOT 1
- SpinWait drastically slows continous ID generation rate for small tick length HOT 10
- Could we log how often we overflow sequence IDs and have to spinwait? HOT 1
- Concurrency issues with instances scale up HOT 2
- Use dependabot to keep references up to date HOT 1
- Sequence input for CreateId() HOT 3
- IIdGenerator is registered as a singleton, but duplicate IDs are still generated HOT 4
- Debugging InvalidSystemClockExceptions HOT 15
- Is there a way to generate id from the past HOT 1
- How to use this in distributed computing ? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from idgen.