curiodb | Distributed NoSQL Database

 by   stephenmcd Scala Version: Current License: BSD-2-Clause

kandi X-RAY | curiodb Summary

kandi X-RAY | curiodb Summary

curiodb is a Scala library. curiodb has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

Why build a Redis clone? Well, I'd been learning Scala and Akka and wanted a nice project I could take them further with. I've used Redis heavily in the past, and Akka gave me some really cool ideas for implementing a clone, based on each key/value pair (or KV pair) in the system being implemented as an actor:. Since each KV pair in the system is an actor, CurioDB will happily use all your CPU cores, so you can run 1 server using 32 cores instead of 32 servers each using 1 core (or use all 1,024 cores of your 32 server cluster, why not). Each actor operates on its own value atomically, so the atomic nature of Redis commands is still present, it just occurs at the individual KV level instead of in the context of an entire running instance of Redis. Since each KV pair in the system is an actor, the interaction between multiple KV pairs works the same way when they're located across the network as it does when they're located on different processes on a single machine. This negates the need for features of Redis like "hash tagging", and allows commands that deal with multiple keys (SUNION, SINTER, MGET, MSET, etc) to operate seamlessly across a cluster. Since each KV pair in the system is an actor, the unit of disk storage is the individual KV pair, not a single instance's entire data set. This makes Redis' abandoned virtual memory feature a lot more feasible. With CurioDB, an actor can simply persist its value to disk after some criteria occurs, and shut itself down until requested again. Scala is concise, you get a lot done with very little code, but that's just the start - CurioDB leverages Akka very heavily, taking care of clustering, concurrency, persistence, and a whole lot more. This means the bulk of CurioDB's code mostly deals with implementing all of the Redis commands, so far weighing in at only a paltry 1,000 lines of Scala! Currently, the majority of commands have been fully implemented, as well as the Redis wire protocol itself, so existing client libraries can be used. Some commands have been purposely omitted where they don't make sense, such as cluster management, and things specific to Redis' storage format. Since Akka Persistence is used for storage, many strange scenarios become available. Want to use PostgreSQL or Cassandra for storage, with CurioDB as the front-end interface for Redis commands? This should be possible! By default, CurioDB uses Akka's built-in LevelDB storage.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              curiodb has a low active ecosystem.
              It has 509 star(s) with 47 fork(s). There are 32 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 4 open issues and 7 have been closed. On average issues are closed in 0 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of curiodb is current.

            kandi-Quality Quality

              curiodb has no bugs reported.

            kandi-Security Security

              curiodb has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              curiodb is licensed under the BSD-2-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              curiodb releases are not available. You will need to build from source code and install.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of curiodb
            Get all kandi verified functions for this library.

            curiodb Key Features

            No Key Features are available at this moment for curiodb.

            curiodb Examples and Code Snippets

            No Code Snippets are available at this moment for curiodb.

            Community Discussions

            No Community Discussions are available at this moment for curiodb.Refer to stack overflow page for discussions.

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install curiodb

            I've been using sbt to build the project, which you can install on OS X, Linux or Windows. With that done, you just need to clone this repository and run it:.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/stephenmcd/curiodb.git

          • CLI

            gh repo clone stephenmcd/curiodb

          • sshUrl

            git@github.com:stephenmcd/curiodb.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link