[ 
https://issues.apache.org/jira/browse/IGNITE-26281?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksandr Polovtsev reassigned IGNITE-26281:
--------------------------------------------

    Assignee: Aleksandr Polovtsev

> Implement in-memory metadata storage for log index files
> --------------------------------------------------------
>
>                 Key: IGNITE-26281
>                 URL: https://issues.apache.org/jira/browse/IGNITE-26281
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Ivan Bessonov
>            Assignee: Aleksandr Polovtsev
>            Priority: Major
>              Labels: ignite-3
>
> What is it: it's an in-memory representation of already persisted metadata 
> for index files described here: 
> https://issues.apache.org/jira/browse/IGNITE-26279.
> Schematically it should look like this:
> {code:java}
> InMemoryMetadata = Map<
>   ReplicationGroupId,
>   GroupMetadata
> >
> GroupMetadata {
>   Queue<BlockOfIndexMetas>
> }
> BlockOfIndexMetas = {
>   startRaftIndex
>   endRaftIndex
>   startIndexId
>   IndexMeta[]
> }
> IndexMeta = {
>   startRaftIndex
>   generation
>   offsetInIndexFile
> } {code}
> {{InMemoryMetadata}} will also be spread across individual log storages of 
> individual raft groups for fast access.
> {{GroupMetadata}} represents a queue of index files, so to speak, from newest 
> to oldest. It reflects the lookup order in the queue when we're executing the 
> {{getEntry}} operation.
> {{IndexMeta[]}} groups together all index files for which the {{End}} of a 
> previous meta matches {{Start}} of next meta. This means that a particularly 
> large {{truncateSuffix}} might lead to adding a new {{BlockOfIndexMetas}} 
> instance to the queue.
> In this Jira we should maintain this structure from the checkpoint thread. We 
> should try to make it block-free, so that other threads can read from it 
> while we're writing.
>  



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

Reply via email to