Hi dev@trafficserver.apache.org,

For visibility reasons, we want to be able to uniquely identify connection
IDs across our organization. Currently ATS simply starts connection IDs
from 0 on every process restart, so there are many reuses. In theory, a
composite field could be created with puuid, but UUIDs are very large and
that results in an expensive amount of storage.

Kyle Duren asked me to look into Snowflake ID. By contrast to UUIDs, which
are 128 bits and seek to be universally unique across all UUIDs everywhere,
Snowflake ID has a more humble goal of being unique only across the IDs in
an organization. This smaller scope allows it to be only 64 bits instead of
128, and they are cheaper to produce.

I've created a draft PR that demonstrates using Snowflake ID for connection
IDs, allowing them to be generally unique values across a CDN, assuming the
12 bit machine id doesn't have hash collisions with other machines in the
organization. Even with collisions, they will be far more unique than they
were before which is valuable enough for our needs and probably most
organizations' needs.

Here is a draft PR demonstrating an implementation of this:
https://github.com/apache/trafficserver/pull/12265

Feedback welcome.

Thank you,
Brian Neradt
-- 
"Come to Me, all who are weary and heavy-laden, and I will
give you rest. Take My yoke upon you and learn from Me, for
I am gentle and humble in heart, and you will find rest for
your souls. For My yoke is easy and My burden is light."

    ~ Matthew 11:28-30

Reply via email to