UUID version 6 proposal, initial feedback

Brad Peabody <bradgareth@gmail.com> Wed, 04 July 2018 00:40 UTC

Return-Path: <bradgareth@gmail.com>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 380BD130E77 for <ietf@ietfa.amsl.com>; Tue, 3 Jul 2018 17:40:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CMWOnl_LG_Pd for <ietf@ietfa.amsl.com>; Tue, 3 Jul 2018 17:40:31 -0700 (PDT)
Received: from mail-pl0-x234.google.com (mail-pl0-x234.google.com [IPv6:2607:f8b0:400e:c01::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EB7A4130E1B for <ietf@ietf.org>; Tue, 3 Jul 2018 17:40:30 -0700 (PDT)
Received: by mail-pl0-x234.google.com with SMTP id s24-v6so1794871plq.6 for <ietf@ietf.org>; Tue, 03 Jul 2018 17:40:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:message-id:date:to; bh=Z7lwaQdKVbp2JP6NxeDaTAFY4AjHg/+BybsrXXl9EBA=; b=OMdicJEChAwWifO7NClcnEGQvfw0t7OejuW29OtSbAj9Ia1MXOcFYtNfhECzfWpPyV TpH7Q+0mcI1TjjB9JbSbdIPcOLDPUkfqcM/CEshNPkIL4Kag4pexK3kuqfiQsR2b2NrL 9uSoI96Lw79lqGbOFt1iA34oSJW3RFDZVqL4aOymF6p1I/BxzB2P+rgptGq45JGI0KYY W2hQxZbJF4st3y8oVC/DIt36VUXCcfCt8LGhju1dIoY23rp4kKq7Op2IcEkC0waEXpYl DJclvPk9Uiui5liMxOtiKD+lDkKYoW2hYQv8dZa0dVDWQniyBYg3adVsgfnTv7bk+m7w ChIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:to; bh=Z7lwaQdKVbp2JP6NxeDaTAFY4AjHg/+BybsrXXl9EBA=; b=TxOj6KTz4qc0kAF8EbL1IIgMT6VLuGtpaRGjeEfrDs/zI1pDlGQxytjdqyaNwZMgET rPzEU3I9Wlu0uCplFYllzMnbteg6C6jffYALAgxgW4tTeVVbkdudzhhSjwNjZhFJwHRx 5VAOfgXldlHQgedDsntAPW2O7IQ0kalBJP9ZLkc5LMqyHdkRkyHJnvD7LX8H1ma/KRFl kYXC0VftACDo1moQ9XdOvKdtpDf4vrfmi7bPWueO5lDCVgbcLY2pv9B73pavHdnFOVeI 0HHgA3Sg+68aI8YjrJg0lKJ6y4STkIXGGYZ0c05CUfcHkfF8SOmtrrbZ81LBD3k1Kaey KsbQ==
X-Gm-Message-State: APt69E3JMAF4V7sMwUQ/kNBPNH8+kOMf8yAG1GqKa+vczz4v313OalX3 DKyzPb4+zbTTI1J0b8V6gdT+/BO5
X-Google-Smtp-Source: ADUXVKLUarCrW/qx5ubGPrO74jna/gMkFkbHHa6ytTCpHEp9iYRM08oA1mKn6G1+E8d7K+jjFgISng==
X-Received: by 2002:a17:902:bb8a:: with SMTP id m10-v6mr32000052pls.236.1530664830445; Tue, 03 Jul 2018 17:40:30 -0700 (PDT)
Received: from [172.20.10.2] ([107.77.244.117]) by smtp.gmail.com with ESMTPSA id y184-v6sm4136563pfy.6.2018.07.03.17.40.29 for <ietf@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 03 Jul 2018 17:40:29 -0700 (PDT)
From: Brad Peabody <bradgareth@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_3793DDA7-7016-4152-AB6A-2A8FB9005737"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: UUID version 6 proposal, initial feedback
Message-Id: <D0894516-3F20-4545-BD7D-BE4FA96FAF75@gmail.com>
Date: Tue, 03 Jul 2018 17:40:27 -0700
To: ietf@ietf.org
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/8h5cs3CHzYpbKIOc4FxO730OD4o>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Jul 2018 00:41:28 -0000

I would like to get some initial feedback, and suggested next steps, on the idea of making an RFC that covers a version 6 for UUIDs.  It would have an embedded timestamp and sorting by its raw bytes results in a sequence equivalent to sorting by time.  This is not addressed by existing UUID types.  (The closest one is version 1, but due to the byte encoding it does not sort correctly.)

There is also seems to be some ambiguity in the existing RFC on when to increment the counter field which I think can be clarified.

I did a prototype implementation and basic write-up on the details here: https://bradleypeabody.github.io/uuidv6/ <https://bradleypeabody.github.io/uuidv6/>

I’m also thinking of covering the base64 encoding form which retains the sorting properties but makes it human readable and is significantly shorter than the long hex encoded form.

Having these things is very useful when considering UUIDs as database primary keys, which is becoming more and more common in distributed systems; and indeed this is the main motivation.

Any help or advice on moving forward with this would be appreciated.

- Brad