Meta tags:
description= Oxia: Scalable Metadata and Index storage;
Headings (most frequently used words):
sequence, keys, go, java, python, node, js, cli, use, cases, how, work, using, multiple, deltas, subscribing, to, updates,
Text of the page (most frequently used words):
key (36), #sequence (32), events (23), the (18), client (16), oxia (15), keys (15), for (10), partitionkey (8), data (8), put (8), server (8), updates (7), with (7), cli (6), new (6), node (6), python (6), java (6), event (6), record (6), architecture (6), log (5), prefix (5), sequencekeysdeltas (5), deltas (5), assigned (5), and (4), partition (4), inserted (4), write (4), protocol (4), use (3), versioning (3), secondary (3), indexes (3), const (3), getsequenceupdates (3), background (3), context (3), err (3), given (3), this (3), insertedkey (3), multiple (3), final (3), like (3), using (3), operations (3), how (3), features (3), documentation (3), 2026 (2), policies (2), console (2), await (2), print (2), partition_key (2), info (2), set (2), println (2), fmt (2), can (2), are (2), that (2), entries (2), subscribing (2), value (2), byte (2), 00000000001 (2), counters (2), suffix (2), will (2), something (2), version (2), res (2), atomically (2), one (2), more (2), work (2), incrementing (2), cases (2), page (2), light (2), storage (2), replication (2), coordinator (2), consensus (2), maelstrom (2), tla (2), safety (2), correctness (2), physical (2), logical (2), design (2), goals (2), metrics (2), grpc (2), api (2), configuration (2), schema (2), reference (2), admin (2), security (2), bare (2), metal (2), resources (2), helm (2), kubernetes (2), deployment (2), sdks (2), sorting (2), notifications (2), namespaces (2), ephemerals (2), consistency (2), model (2), migrating (2), from (2), etcd (2), getting (2), started (2), what (2), blog (2), ctrl (2), copyright, 2023, series, projects, llc, website, terms, trademark, policy, other, project, please, see, https, lfprojects, org, last, updated, july, close, finally, try, get_sequence_updates, range, clients, subscribe, receive, whenever, generated, useful, consumers, need, react, multi, level, 00000000005, you, pass, increment, several, single, operation, each, delta, corresponds, additional, segment, appended, 00000000000000000001, sequence_keys_deltas, getbytes, putresult, require, option, ensure, all, routed, same, shard, increments, counter, assigns, appending, resulting, returned, response, define, should, incremented, passed, when, writing, provides, produce, numbers, consumption, queue, patterns, generate, unique, monotonically, increasing, identifiers, records, auto, ids, append, guaranteed, ordering, conflicts, ordered, logs, supports, side, atomic, generation, instead, choosing, full, appends, suffixes, provided, scroll, top, edit, github, question, give, feedback, metadata, store, coordination, system, skip, content,
Text of the page (random words):
sequence keys oxia skip to content oxia metadata store and coordination system documentation blog ctrl k ctrl k documentation what is oxia getting started migrating from zk etcd features consistency model ephemerals namespaces notifications key sorting partition keys secondary indexes sequence keys versioning client sdks go java node js python deployment kubernetes helm resources bare metal security admin operations reference cli configuration schema grpc api metrics architecture design goals logical architecture physical architecture correctness protocol safety tla maelstrom consensus coordinator oxia replication protocol storage blog light what is oxia getting started migrating from zk etcd features consistency model ephemerals namespaces notifications key sorting partition keys secondary indexes sequence keys versioning client sdks go java node js python deployment kubernetes helm resources bare metal security admin operations reference cli configuration schema grpc api metrics architecture design goals logical architecture physical architecture correctness protocol safety tla maelstrom consensus coordinator oxia replication protocol storage light on this page use cases how sequence keys work using sequence keys multiple deltas subscribing to sequence updates question give us feedback edit this page on github scroll to top documentation features sequence keys sequence keys oxia supports server side atomic key generation using sequence keys instead of the client choosing the full record key the server appends one or more atomically incrementing sequence suffixes to a prefix key provided by the client use cases ordered event logs append events to a log with guaranteed ordering and no key conflicts auto incrementing ids generate unique monotonically increasing identifiers for records queue like patterns produce entries with server assigned sequence numbers for consumption how sequence keys work when writing a record with sequencekeysdeltas the client provides a prefix key the key passed to put one or more deltas that define how the sequence counters should be incremented the server atomically increments the sequence counter for the given prefix and assigns the final key by appending the sequence value as a suffix the resulting key is returned in the put response sequence keys require a partitionkey option to ensure all sequence operations for a given prefix are routed to the same shard using sequence keys go java python node js cli go write a record with a server assigned sequence key the final key will be something like events 00000000001 insertedkey version err client put context background events byte event data oxia sequencekeysdeltas 1 oxia partitionkey events fmt println inserted at insertedkey java write a record with a server assigned sequence key putresult res client put events event data getbytes set of sequencekeysdeltas 1 partitionkey events log info inserted at res key python write a record with a server assigned sequence key key version client put events b event data sequence_keys_deltas 1 partition_key events print inserted at key node js write a record with a server assigned sequence key the final key will be something like events 00000000000000000001 const key await client put events event data sequencekeysdeltas 1 partitionkey events console log inserted at key cli oxia client put events c partition key events sequence keys deltas 1 event data multiple deltas you can pass multiple deltas to increment several sequence counters in a single operation each delta corresponds to an additional suffix segment appended to the key multi level sequence e g data 00000000005 00000000001 insertedkey _ err client put context background data byte value oxia sequencekeysdeltas 1 1 oxia partitionkey data subscribing to sequence updates clients can subscribe to receive updates whenever new sequence keys are generated for a given prefix this is useful for consumers that need to react to new entries go java python node js cli go ch err client getsequenceupdates context background events oxia partitionkey events for key range ch fmt println new sequence key key java client getsequenceupdates events set of partitionkey events key log info new sequence key key python for key in client get_sequence_updates events partition_key events print new sequence key key node js const updates client getsequenceupdates events partitionkey events try for await const key of updates console log new sequence key key finally updates close cli oxia client sequence updates events partition key events last updated on july 8 2026 secondary indexes versioning copyright 2023 2026 oxia a series of lf projects llc for website terms of use trademark policy and other project policies please see https lfprojects org policies
|