GithubHelp home page GithubHelp logo

isabella232 / toku2mongo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from percona/toku2mongo

0.0 0.0 0.0 102.62 MB

TokuMX is a high-performance, concurrent, compressing, drop-in replacement engine for MongoDB | Issue tracker: https://tokutek.atlassian.net/browse/MX/ |

Home Page: http://www.tokutek.com/products/tokumx-for-mongodb/

Emacs Lisp 0.04% CMake 0.55% Python 2.97% Shell 0.25% Batchfile 0.02% Java 0.14% Makefile 0.55% JavaScript 21.97% HTML 0.01% C++ 73.29% C 0.21%

toku2mongo's Introduction

TokuMX

TokuMX is a high-performance distribution of MongoDB, a document-oriented database with built-in sharding and replication, built on Tokutek's Fractal Tree indexes.

TokuMX has the same binaries, supports the same drivers, data model, and features of MongoDB, because it shares much of its code with MongoDB. The benefits of using TokuMX include:

  • Faster writes and less I/O on large data sets.
  • Concurrent read/write access to collections with document-level locking.
  • Compression of all data by default.
  • MVCC transactional semantics.
  • Zero fragmentation of data or indexes, removing the need for maintenance like compact or repairDatabase.

TokuMX is fully compatible with MongoDB 2.4, except that TokuMX does not support:

  • Text indexes and search
  • Geospatial indexing and queries

Documentation

For the most part, the MongoDB documentation applies to TokuMX as well. For exceptions, additional features, and TokuMX specific strategies and behaviors, the TokuMX Users Guide takes precedence.

Packaging

TokuMX is available for 64-bit Linux systems. Tokutek builds and provides packages for Centos 5 and 6, Debian 7, Fedora 20, and Ubuntu 12.04, 12.10, 13.04, 13.10, and 14.04. For other distributions of Linux, Tokutek provides a binary tarball that can be installed standalone.

Community downloads can be found here.

Enterprise downloads, including the hot backup utility, can be found here and come with 30 days of free support for evaluation.

Installation instructions for Linux distributions and OSX can be found here.

Migrating from MongoDB

TokuMX stores data on disk completely differently from MongoDB. Therefore it is necessary to export any existing data from MongoDB and import it into TokuMX. Depending on your existing MongoDB database and your application's availability requirements, you can choose from a number of strategies for converting your data set to TokuMX.

  • Single server
  • Replica set
    • Offline (with downtime)
    • Online (with no downtime)
  • Sharded cluster
    • Offline, individual shards
    • Offline, all data at once
    • Online

For details of how to perform these types of data migrations, see the documentation.

Building TokuMX

See docs/building.md.

Drivers

All MongoDB drivers work seamlessly with TokuMX.

Replication

Replication in TokuMX is managed similarly to MongoDB and uses much of the same terminology, administrative commands, and election mechanisms, and write concern works the same. There are some significant improvements to replication performance in TokuMX, including significantly reduced I/O load due to writes on secondaries.

The details of the replication oplog are different in TokuMX. Applications that read the oplog and rely on the format its contents will need to change. Therefore, "mixed" replica sets containing MongoDB and TokuMX nodes do not work.

Sharding

Sharding in TokuMX is managed similarly to MongoDB and uses much of the same terminology and administrative commands. There are some significant improvements to sharding, including significantly less intrusive chunk migrations, and clustering shard keys that make range queries much faster.

The internal mechanisms used to migrate chunks between shards are different in TokuMX from MongoDB, and therefore "mixed" clusters containing MongoDB and TokuMX shards do not work.

Multi-statement transactions (beginTransaction, rollbackTransaction, and commitTransaction commands) do not work through mongos.

Monitoring

MongoDB Management Service monitoring partially works with TokuMX. Some monitored statistics work normally (e.g. opcounters), and some report things that are MongoDB-specific, and therefore report nothing for TokuMX (e.g. btree misses). MMS can be used but is an incomplete solution.

Other on-site and hosted solutions can be used. db.serverStatus() reports TokuMX equivalent metrics for many commonly-tracked MongoDB metrics, and db.engineStatus() has an exhaustive list of many metrics that can be tracked.

Support

Enterprise support subscriptions are available from Tokutek. This includes an enterprise hot backup tool.

Community

Mailing lists:

IRC:

Issue tracker:

License

Most TokuMX source files are made available under the terms of the GNU Affero General Public License (AGPL). See individual files for details.

As an exception, the files in the client/, debian/, rpm/, utils/mongoutils, and all subdirectories thereof are made available under the terms of the Apache License, version 2.0.

The TokuKV Fractal Tree Indexing library is made available under the terms of the GNU General Public License (GPL) version 2, with an additional grant of a patent license. See README-TOKUKV for details.

toku2mongo's People

Contributors

erh avatar dwight avatar astaple avatar leifwalsh avatar redbeard0531 avatar zkasheff avatar kchodorow avatar milkie avatar stbrody avatar esmet avatar agirbal avatar renctan avatar dannenberg avatar sverch avatar monkey101 avatar matulef avatar banker avatar singhsiddharth avatar scotthernandez avatar prohaska avatar zippy1981 avatar jrassi avatar geir avatar miketheman avatar christianrober avatar ehershey avatar ianwhalen avatar tadmarshall avatar alerner avatar metagoto avatar

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.