-
Notifications
You must be signed in to change notification settings - Fork 445
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
Client: Java ID generator helper #1347
Commits on Dec 11, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 14097f5 - Browse repository at this point
Copy the full SHA 14097f5View commit details
Commits on Dec 12, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f0c14bf - Browse repository at this point
Copy the full SHA f0c14bfView commit details -
java: fix ULID test + add thread test
The ULID spec notes that IDs within the same millisecond dont need to be ordered: https://github.com/ulid/spec?tab=readme-ov-file#sorting
Configuration menu - View commit details
-
Copy full SHA for 61483e6 - Browse repository at this point
Copy the full SHA 61483e6View commit details
Commits on Dec 13, 2023
-
java: ULID random overflow from absolute increment
Overflow should happen relative to the 80-bit random generated at the timestamp rather than relative to a separate counter at the timestamp which is applied to the random. This provides sort order guarantee using the recommended approach from the spec: https://github.com/ulid/spec?tab=readme-ov-file#monotonicity
Configuration menu - View commit details
-
Copy full SHA for 744cf77 - Browse repository at this point
Copy the full SHA 744cf77View commit details
Commits on Dec 14, 2023
-
java: explicitly use
zig.exe
when on windowsFor setups which download both `zig/zig` and `zig/zig.exe` for convenience (i.e. windows WSL), this ensures the Java CI uses the correct one instead of relying on shell to append `.exe` (which doesn't happen since non `.exe` version exists).
Configuration menu - View commit details
-
Copy full SHA for a7361b7 - Browse repository at this point
Copy the full SHA a7361b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1ac5e48 - Browse repository at this point
Copy the full SHA 1ac5e48View commit details
Commits on Jan 19, 2024
-
java: switch from ULID to unique little-endian IDs
ULID spec requires storing the values as big endian which means, when interpreted by a replica on the Zig side, the `u128` ID is no longer monotonically incrementing. This resorts in unique but effectively randomly-ordered IDs which doesn't take advantage of data/lookup optimizations in the storage engine. Instead, the Java client now exposes a generic `ID()` helper (instead of specifically `ULID`) which allows us to return u128 bytes in little-endian format while still using the core ideas around uniqueness & monotonicity from ULID underneath.
Configuration menu - View commit details
-
Copy full SHA for fd75ed2 - Browse repository at this point
Copy the full SHA fd75ed2View commit details -
java: Use contiguous 48bit timestamp & update docs
Switches to using the 48 LSB of timestamp instead of 16 LSB and 32 MSB. Also updates the data-modeling documentation to give note about storing ULID fields in little endian.
Configuration menu - View commit details
-
Copy full SHA for f3c3ebc - Browse repository at this point
Copy the full SHA f3c3ebcView commit details
Commits on Jan 20, 2024
-
java: cleanup ID() comments & literals
Standardize upper-case hex literals and refer to ULID spec as `ID()`'s inspiration.
Configuration menu - View commit details
-
Copy full SHA for 44ad375 - Browse repository at this point
Copy the full SHA 44ad375View commit details
Commits on Jan 22, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 74cb305 - Browse repository at this point
Copy the full SHA 74cb305View commit details