Git Product home page Git Product logo

hanoidb's People

Contributors

esstrifork avatar jlouis avatar krestenkrab avatar licenser avatar norton avatar vinoski avatar yamt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hanoidb's Issues

trigger merges in lower levels before nursery fills

Right now the merge of the first level after the nursery is triggered when the nursery fills up. This is generally okay, but when you have a very fast IO system (SSDs for instance) you can stall operations on the nursery as you do that work to begin merging.

A better approach (design idea, but feel free to innovate in other ways) would be to trigger merges in the first level after the nursery when you reach some percentage full in the nursery (this could even be adaptive). This opens up space to later merge the nursery into the first level once it fills up. Ideally you never have the situation where you're waiting for the first post-nursery level to merge with the next level when the nursery fills up.

update function

What would be really sweet was a 'atomic' update function that combined get and put into one call without the risk of having something happen in between.

Explore byte sizes, not KV counts, for progress control

Right now, HanoiDB uses almost exclusively KV counts as measure of progress and for controlling "enough progress". If the bottleneck of HanoiDB is IO (as it should be) then it should make things more smooth to base progress control on byte counts.

Up until now, performance measurements have been based on basho_bench runs that have equal key and value sizes. If KV sizes vary greatly, then KV count is not a good measure for how much progress the incremental merge needs to do in order to keep up with an "even" response time.

Perhaps if we have numbers for average KV sizes, we can impose on the caller that an insert of a large KV requires a larger incremental step, than insert of a smaller KV.

how does it compare to eleveldb

Hi,

I'm looking possibly for a pure erlang solution for an application I want to build and I wonder how hanoidb actually compares to eleveldb. Is it usable in production? What is missing?

Hanoidb backed Riak rings

Hello,

I'm somewhat cross posting this issue from krestenkrab/hanoidb (issue krestenkrab#20 there).

I'd like to read some feedback about use cases of Hanoidb backed Riak clusters.
Is it still experimental ? Or has it been stable enough for month to call it production ready ?
How does it do with Riak features ? KV, MR, 2i, ops friendly...
How much does it achieve about performance ? cluster size, node specs, concurrency patterns, iops, latency, flowers ?

To sum up : Are there some success stories to be shared ? Which use cases, which numbers ?

BTW thanks for the backend alternativeness.

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.