bdeggleston commented on code in PR #3914: URL: https://github.com/apache/cassandra/pull/3914#discussion_r1964040135
########## src/java/org/apache/cassandra/service/tracking/MutationId.java: ########## @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.service.tracking; + +public class MutationId +{ + /** + * TCM host id + host log id packed into a long + * Host log ID is unique within the host, allocated + * anew on host restart - one per token range replicated by the host, + * persisted on allocation, unique within the host. + */ + public final long logId; + + /** Sequence id (inrcemented within the log id) */ + public final int sequenceId; Review Comment: Ah ok I didn’t realize. Yeah it should also be easier to encode ranges of them as well. So the benefits of using an hlc would be 1. Tombstone purging is straightforward. I’m not sure if it’s 100% necessary though - I think OPRT works with just `isRepaired` and no timestamp. 2. Repair barriers, I’m not sure how these would work with sequential ids. 3. Debuggability - If we ever have to debug an incident 1-2 months after it occurred, having a timestamp component will make our lives a lot easier. I think all of these can be addressed with the 4byte per-id timestamp component (in seconds) though, so long as we guarantee it doesn’t move backwards. If the logId was a timestamp (seconds), we could get just under 72/3 days of millisecond/microsecond information in the per-id timestamp if the log id is used as an epoch. Not sure if that would be worth the trouble though. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

