Code Monkey home page Code Monkey logo

Comments (6)

janisz avatar janisz commented on August 15, 2024 1
  1. I concur. For first step metric per shard should be enough but we will expose them in aggregated form.

  2. So we need to add stats struct to cache shard and update values with sync.Atomic

  3. How about formalized structure instead of map? e,g.: For the first step, I'll stick with Hits and Misses only.

    type Stats struct {
        Hits uint64
        Misses uint64        
    }

from bigcache.

cristaloleg avatar cristaloleg commented on August 15, 2024 1

3/3 👍 soon I'll push the changes.

from bigcache.

janisz avatar janisz commented on August 15, 2024 1

Fixed by #57

from bigcache.

janisz avatar janisz commented on August 15, 2024

I'd love to merge it!

We need to answer following questions:

  • Are we going to collect global hit and miss or per each key?
  • Where do we store the data?
  • How do we want to expose this metric?

I'd prefer to not use any external libs in this project. Hits&Miss could be implemented as a simple counter.

from bigcache.

cristaloleg avatar cristaloleg commented on August 15, 2024

Nononono, no external libs :)

  1. I think per-key will be too heavy, at least for 1st implementation.
  2. Per shard in map, I'm not sure about sync.Map 'cause collecting stats is more write oriented, but sync.Map is more for read oriented.
  3. WDYT about cache.Stats() map[string]int64 ? and keys of this map are hits, misses, avgShardSize(just an example)

from bigcache.

cristaloleg avatar cristaloleg commented on August 15, 2024
  1. I forgot about sync.Atomic, all our counters are int64 which is quite obvious. So no locks or smth for stats, and we'll create a map only on cache.Stats() which is great.

from bigcache.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.