{"id":13515941,"url":"https://github.com/Tokutek/mongo","last_synced_at":"2025-03-31T05:31:15.379Z","repository":{"id":7399569,"uuid":"8729689","full_name":"Tokutek/mongo","owner":"Tokutek","description":"TokuMX is a high-performance, concurrent, compressing, drop-in replacement engine for MongoDB | Issue tracker: https://tokutek.atlassian.net/browse/MX/ |","archived":false,"fork":false,"pushed_at":"2017-10-11T03:59:05.000Z","size":105079,"stargazers_count":703,"open_issues_count":164,"forks_count":97,"subscribers_count":91,"default_branch":"master","last_synced_at":"2024-11-01T20:36:03.705Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.tokutek.com/products/tokumx-for-mongodb/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tokutek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-12T14:28:56.000Z","updated_at":"2024-10-24T17:21:07.000Z","dependencies_parsed_at":"2022-08-01T11:47:25.826Z","dependency_job_id":null,"html_url":"https://github.com/Tokutek/mongo","commit_stats":null,"previous_names":[],"tags_count":127,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokutek%2Fmongo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokutek%2Fmongo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokutek%2Fmongo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokutek%2Fmongo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tokutek","download_url":"https://codeload.github.com/Tokutek/mongo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246423527,"owners_count":20774795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T05:01:17.653Z","updated_at":"2025-03-31T05:31:10.370Z","avatar_url":"https://github.com/Tokutek.png","language":"C++","funding_links":[],"categories":["C / CPP","C++","数据库"],"sub_categories":[],"readme":"TokuMX\n======\n\nTokuMX is a high-performance distribution of MongoDB, a document-oriented\ndatabase with built-in sharding and replication, built on Tokutek's\n[Fractal Tree indexes][ft-index].\n\nTokuMX has the same binaries, supports the same drivers, data model, and\nfeatures of MongoDB, because it shares much of its code with MongoDB.  The\nbenefits of using TokuMX include:\n\n * [Faster writes][iibench] and less I/O on large data sets.\n * [Concurrent read/write access][sysbench] to collections with\n   document-level locking.\n * [Compression][compression] of all data by default.\n * [MVCC][transactions] transactional semantics.\n * Zero fragmentation of data or indexes, removing the\n   need for maintenance like `compact` or `repairDatabase`.\n\nTokuMX is fully compatible with MongoDB 2.4, except that TokuMX does not\nsupport:\n\n * Text indexes and search\n * Geospatial indexing and queries\n\n[ft-index]: https://github.com/Tokutek/ft-index\n[iibench]: http://www.tokutek.com/resources/benchmark-results/tokumx-benchmark-hdd/#iiBench\n[sysbench]: http://www.tokutek.com/resources/benchmark-results/tokumx-benchmark-hdd/#sysbench\n[compression]: http://www.tokutek.com/2013/02/mongodb-fractal-tree-indexes-high-compression/\n[transactions]: http://www.tokutek.com/2013/10/introducing-tokumx-transactions-for-mongodb-applications/\n\n\nDocumentation\n-------------\n\nFor the most part, the [MongoDB documentation][mongo-docs] applies to\nTokuMX as well.  For exceptions, additional features, and TokuMX specific\nstrategies and behaviors, the [TokuMX Users Guide][users-guide] takes\nprecedence.\n\n[mongo-docs]: http://docs.mongodb.org/\n[users-guide]: http://www.tokutek.com/resources/product-docs/\n\n\nPackaging\n---------\n\nTokuMX is available for 64-bit Linux systems.  Tokutek builds and provides\npackages for Centos 5 and 6, Debian 7, Fedora 20, and Ubuntu 12.04, 12.10,\n13.04, 13.10, and 14.04.  For other distributions of Linux, Tokutek\nprovides a binary tarball that can be installed standalone.\n\nCommunity downloads can be found [here][community].\n\nEnterprise downloads, including the hot backup utility, can be found\n[here][enterprise] and come with 30 days of free support for evaluation.\n\nInstallation instructions for Linux distributions and OSX can be found\n[here][install-docs].\n\n[community]: http://www.tokutek.com/products/downloads/tokumx-ce-downloads/\n[enterprise]: http://www.tokutek.com/products/downloads/tokumx-ee-downloads/\n[install-docs]: https://github.com/Tokutek/mongo/wiki/Installing-TokuMX\n\n\nMigrating from MongoDB\n----------------------\n\nTokuMX stores data on disk completely differently from MongoDB.  Therefore\nit is necessary to export any existing data from MongoDB and import it\ninto TokuMX.  Depending on your existing MongoDB database and your\napplication's availability requirements, you can choose from a number of\nstrategies for converting your data set to TokuMX.\n\n * Single server\n * Replica set\n   - Offline (with downtime)\n   - Online (with no downtime)\n * Sharded cluster\n   - Offline, individual shards\n   - Offline, all data at once\n   - Online\n\nFor details of how to perform these types of data migrations, see the\n[documentation][migrating-docs].\n\n[migrating-docs]: https://github.com/Tokutek/mongo/wiki/Migrating-from-MongoDB\n\n\nBuilding TokuMX\n---------------\n\nSee\n[docs/building.md](https://github.com/Tokutek/mongo/blob/master/docs/building.md).\n\n\nDrivers\n-------\n\nAll [MongoDB drivers][drivers] work seamlessly with TokuMX.\n\n[drivers]: http://docs.mongodb.org/ecosystem/drivers/\n\n\nReplication\n-----------\n\nReplication in TokuMX is managed similarly to MongoDB and uses much of the\nsame terminology, administrative commands, and election mechanisms, and\n[write concern][write-concern] works the same.  There are some significant\nimprovements to replication performance in TokuMX, including significantly\nreduced I/O load due to writes on secondaries.\n\nThe details of the replication oplog are different in TokuMX.\nApplications that read the oplog and rely on the format its contents will\nneed to change.  Therefore, \"mixed\" replica sets containing MongoDB and\nTokuMX nodes do not work.\n\n[write-concern]: http://docs.mongodb.org/manual/core/write-concern/\n\n\nSharding\n--------\n\nSharding in TokuMX is managed similarly to MongoDB and uses much of the\nsame terminology and administrative commands.  There are some significant\nimprovements to sharding, including significantly less intrusive chunk\nmigrations, and clustering shard keys that make range queries much faster.\n\nThe internal mechanisms used to migrate chunks between shards are\ndifferent in TokuMX from MongoDB, and therefore \"mixed\" clusters\ncontaining MongoDB and TokuMX shards do not work.\n\nMulti-statement transactions (`beginTransaction`, `rollbackTransaction`,\nand `commitTransaction` commands) do not work through `mongos`.\n\n\nMonitoring\n----------\n\n[MongoDB Management Service][mms] monitoring partially works with TokuMX.\nSome monitored statistics work normally (e.g. opcounters), and some report\nthings that are MongoDB-specific, and therefore report nothing for TokuMX\n(e.g. btree misses).  MMS can be used but is an incomplete solution.\n\nOther on-site and hosted solutions can be used.  `db.serverStatus()`\nreports TokuMX equivalent metrics for many commonly-tracked MongoDB\nmetrics, and `db.engineStatus()` has an exhaustive list of many metrics\nthat can be tracked.\n\n[mms]: https://www.mongodb.com/products/mongodb-management-service\n\n\nSupport\n-------\n\nEnterprise support subscriptions are available from [Tokutek][support].\nThis includes an enterprise hot backup tool.\n\n[support]: http://www.tokutek.com/subscriptions/\n\n\nCommunity\n---------\n\nMailing lists:\n\n * [tokumx-user@googlegroups.com][tokumx-user] for news and help running a\n   TokuMX database and developing applications using TokuMX.\n * [tokumx-dev@googlegroups.com][tokumx-dev] for discussion about\n   developing TokuMX itself.\n\nIRC:\n\n * [irc.freenode.net/tokutek][irc] for discussion about TokuMX and TokuDB.\n\nIssue tracker:\n\n * [TokuMX JIRA][jira-mx] for problems with TokuMX.\n * [TokuFT JIRA][jira-ft] for problems with [TokuFT][ft-index].\n\n[tokumx-user]: https://groups.google.com/forum/#!forum/tokumx-user\n[tokumx-dev]: https://groups.google.com/forum/#!forum/tokumx-dev\n[irc]: http://webchat.freenode.net/?channels=tokutek\n[jira-mx]: https://tokutek.atlassian.net/browse/MX/\n[jira-ft]: https://tokutek.atlassian.net/browse/FT/\n\n\nLicense\n-------\n\nMost TokuMX source files are made available under the terms of the GNU\nAffero General Public License (AGPL).  See individual files for details.\n\nAs an exception, the files in the client/, debian/, rpm/,\nutils/mongoutils, and all subdirectories thereof are made available under\nthe terms of the Apache License, version 2.0.\n\nThe TokuKV Fractal Tree Indexing library is made available under the terms\nof the GNU General Public License (GPL) version 2, with an additional\ngrant of a patent license.  See [README-TOKUKV][README-TOKUDB] for details.\n\n[README-TOKUDB]: https://github.com/Tokutek/ft-index/blob/master/README-TOKUDB\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTokutek%2Fmongo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTokutek%2Fmongo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTokutek%2Fmongo/lists"}