Coder Social home page Coder Social logo

Create FASTER store about neo-modules HOT 10 OPEN

erikzhang avatar erikzhang commented on June 3, 2024 2
Create FASTER store

from neo-modules.

Comments (10)

canesin avatar canesin commented on June 3, 2024 2

@erikzhang you are probably aware but there is a new variant "FasterLog" that seems a even better fit for the project: https://github.com/microsoft/FASTER/blob/master/docs/cs/FasterLog.md

from neo-modules.

shargon avatar shargon commented on June 3, 2024 1

I think that it's a very good idea.

from neo-modules.

shargon avatar shargon commented on June 3, 2024 1

The problem with mongo it's that the we need to deserialize the binary to the json, because it has no sense if we don't use json format in Mongo. For debug it could be useful, but not for release, it will be slower

from neo-modules.

shargon avatar shargon commented on June 3, 2024

@erikzhang I can assign this task to me if you like

from neo-modules.

vncoelho avatar vncoelho commented on June 3, 2024

Considering what you already did on RocksDB this sounds a good idea, @shargon, good initiative!

@shargon do you believe MongoDB is also becoming a feasible option? Many people will like it because it is easy ported to other ones such as DynamoDB.

from neo-modules.

vncoelho avatar vncoelho commented on June 3, 2024

@shargon, I believe you are right.

Perhaps it would be good as a Publisher only, as @hal0x2328 did here: https://github.com/CityOfZion/neo-plugins-coz/tree/master/DynamoDBPublisher

from neo-modules.

erikzhang avatar erikzhang commented on June 3, 2024

I will take a look.

from neo-modules.

cschuchardt88 avatar cschuchardt88 commented on June 3, 2024

I did create this storage, but its very slow cause of the overhead for seek forward and seek backward. Also it a memory cache, like Redis, but you can take snapshots.

FasterDBStore.zip

edit: i can look into it again if needed.

from neo-modules.

cschuchardt88 avatar cschuchardt88 commented on June 3, 2024

I looked back into it and its slow at syncing offline. 2-3 per second. I think i know why it's the seek function. Maybe you can write a better one? Keep in mind that sessions are not thread safe.

FasterDBStore Source Code

from neo-modules.

cschuchardt88 avatar cschuchardt88 commented on June 3, 2024

After getting from help from the faster team, I was able to get get about 5-10 per second compared to leveldb which is hitting 50-100 per sec. Leveldb is about 10 times faster. But there is an upside to this. This is the store size of just 2,000 blocks on testnet T5.

image

Now Faster has so much potential but we would need to rip out the current caching system and storage system we have in neo. neo is very limited on performance, currently. But once synced you don't notice it because a new block comes every 15 seconds.

Some features that Faster has is

  • Devices Types
    • Azure storage
    • Custom Storage Devices (like you can make AWS, or anything you want)
    • Clustered Remote Server Devices
    • Shared Storage Devices
    • In Memory Devices
  • Everything is customizable from
    • Serialization
    • Key Value Types
    • and more
  • Downsides
    • No Range Index (seeking)

from neo-modules.

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.