You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ivan Bessonov (Jira)" <ji...@apache.org> on 2023/03/14 14:59:00 UTC

[jira] [Created] (IGNITE-19028) Implement safe-time propagation for meta-storage raft-group

Ivan Bessonov created IGNITE-19028:
--------------------------------------

             Summary: Implement safe-time propagation for meta-storage raft-group
                 Key: IGNITE-19028
                 URL: https://issues.apache.org/jira/browse/IGNITE-19028
             Project: Ignite
          Issue Type: Improvement
            Reporter: Ivan Bessonov


For the future implementation of schema-synchronization, we need to have a hybrid-timestamp, associated with the meta-storage.

Database schema changes are always associated with time, and proper place to store them would be a meta-storage.

We don't have an "action request processor" that would have been a single source of truth when it comes to new "write" commands. In case of meta-storage, all nodes may create write commands. Assigning a time from the _hlc_ wouldn't work - there's a chance of having out-of order events, which is really, really bad.

In other words, timestamps should come in order. Does this mean that meta-storage should also have its own action request processor? That's one possibility.

Another possibility is to make leader into a timestamp-generator. This would lead to changes in JRaft code, but still, this may be the right way to go. It simply requires less changes to the code. We should just remember to adjust the clock on leader's re-election, so that time would be monotonic.

By the way, if we go with the second option, it would also fit safe time propagation in partitions.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)