You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Dmitriy Setrakyan (JIRA)" <ji...@apache.org> on 2015/04/13 04:00:19 UTC

[jira] [Updated] (IGNITE-730) Need to implement ACCESS-TIME-TTL as eviction policy

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

Dmitriy Setrakyan updated IGNITE-730:
-------------------------------------
    Summary: Need to implement ACCESS-TIME-TTL as eviction policy  (was: Need to implement TTL-ACCESS-TIME as eviction policy)

> Need to implement ACCESS-TIME-TTL as eviction policy
> ----------------------------------------------------
>
>                 Key: IGNITE-730
>                 URL: https://issues.apache.org/jira/browse/IGNITE-730
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: cache, streaming
>            Reporter: Dmitriy Setrakyan
>            Assignee: Yakov Zhdanov
>            Priority: Blocker
>             Fix For: sprint-4
>
>
> # We should reuse our LRU policy for this.
> # Just like with CREATE-TIME-TTL policy, we should keep a collection of fix-sized buckets.
> # Each bucket can be a List of entries.
> # Each bucket should keep a timestamp of when that bucket was crated.
> # However, each entry in LRU queue should keep a reference to its bucket and index specifying it's location within that bucket (and vice-versa).
> *Access*
> Whenever an entry is accessed within some bucket, it should be removed from that bucket and added to the first bucket.
> *Eviction*
> Whenever (currentTime - bucketCreateTime) > TTL, all the entries in the bucket get evicted. 
> We should also add a flag in {{EvictableEntry}} specifying whether the access was read or update, e.g. {{EvictableEntry.isUpdate()}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)