[
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]