Sschiau Particle Save

64 bit ID Generator

Project README

Build Status Latest Stable Version License

Particle

Language: PHP

64bits int Time Based ID Generator

Uncoordinated

For high availability within and across data centers, machines generating ids should not have to coordinate with each other.

Solution

  • PHP (tested on v7.1.8)
  • Particle Id (64 bits) is composed of:
    • time - 42 bits (millisecond precision w/ a custom epoch)
    • configured machine id - 10 bits - up to 1024 machines
    • sequence number - 12 bits - up to 4096 random numbers

System Clock Dependency

You should use NTP to keep your system clock accurate.

How to use it

Generate Particle ID

Change const EPOCH in particle class to today epoch time w/ millisecond (13 digits)

	$machineID = 0; // Machine ID (aka Server ID no.)
	Particle::generateParticle($machineID);

Time from Particle ID (w/ millisecond precision)

	$particleID = '4611692470816737853';
	Particle::timeFromParticle($particleID);
Open Source Agenda is not affiliated with "Sschiau Particle" Project. README Source: sschiau/Particle
Stars
133
Open Issues
0
Last Commit
2 years ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating