[ 
https://issues.apache.org/jira/browse/CASSANDRA-17048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17432913#comment-17432913
 ] 

Benedict Elliott Smith commented on CASSANDRA-17048:
----------------------------------------------------

bq. Though, I don't understand the first point - the compatibility upgrades 
from 3.0 - what do you mean?

It looks like you have deleted the code that upgrades system keyspace tables 
from 3.0 to 4.0 - perhaps this was unintentional?

bq. For the patch complexity
I'm not too worried about the LOC, more the implications of these changes to 
correctness for live upgrade and downgrade. Though whatever you can do to ease 
review burden would certainly be appreciated.

bq. I think I like the option (1) the most

I had been leaning towards a combination of (1) and (2), but it occurs to me 
there's an option (4): carry on writing to both system tables, even if we only 
read from one of them. This can be maintained for all SSTables that support the 
old generation. We can have a flag to disable the old system table so that 
downgrades become irrevocable, but I doubt this will be a significant burden. 
Or option (5): write the simple int generations to the old system table, and 
all new variants to the new system table, keeping both around indefinitely. 

With either of these options old versions can be started without any 
consideration to the new table - though this potentially introduces some 
complexity when we upgrade a _second_ time as we cannot decide if we populate 
based solely on the absence of the new system table. I think it makes sense to 
introduce a new system record: last booted version. This can be written at 
startup before touching other schema tables, so that the migration process to 
the new system table can be performed afresh each time, even if there was a 
temporary downgrade.

I think these approaches are probably much easier to implement, too. WDYT?

> Replace sequential sstable generation identifier with ULID
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-17048
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17048
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Local/SSTable
>            Reporter: Jacek Lewandowski
>            Assignee: Jacek Lewandowski
>            Priority: Normal
>             Fix For: 4.1
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Replace the current sequential sstable generation identifier with ULID based.
> ULID is better because we do not need to scan the existing files to pick the 
> starting number as well as we can generate globally unique identifiers. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to