Code Monkey home page Code Monkey logo

Comments (2)

oronnavon avatar oronnavon commented on July 28, 2024

Thought a bit about this, seems to me that keeping the default implementation is important for ease of use. A fully generic version would be nice as well, but not very useful IMO (I could be wrong about that, keeping this discussion open).

My reasoning:

  1. Objects that need CardinalityEstimation-based counting tend to have IDs with convenient types - string, long etc. That means developers can use the default implementation with code which is almost as pretty as counting the objects themselves, which allowing CardinalityEstimator to keep things simple.
  2. In order to count objects of type T, there needs to be a consistent way to produce a (preferably 64-bit) hash code for them. The hash function must be consistent across different instances of the CardinalityEstimator for them to share state (merging), so that burden is on the developer anyway. I'd prefer the code to make that immediately obvious to the developer.
  3. For developers who want a fully generic version, it's not hard to wrap CardinalityEstimator with a wrapper. Most developers would have the current, simpler code to work with.

If it turns out I'm a minority opinion on this, I'll reconsider. Feel free to comment.
-Oron

from cardinalityestimation.

oronnavon avatar oronnavon commented on July 28, 2024

No one seems to have requested this, closing. Feel free to contact me if you wish to reopen.

from cardinalityestimation.

Related Issues (14)

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.