mongoz

An alternative implementation of MongoDB sharding server aimed at high availability

  • Owner: yandex/mongoz
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Mongoz is a replacement for MongoDB sharding server (mongos)
aimed at higher availability in less-than-absolutely-reliable
network environments at expense of somewhat relaxed
consistency guarantees.

Some distinguishing features of mongoz include:

  • Hard timeouts: each operation has to finish in predefined time.
    In case of network failures, clients get their errors early
    (i.e. they don't have to wait for i/o timeout from operating system)
    and thus are much less likely to face a DoS.

  • Early request retransmission: if there's more than one replica
    capable of handling a request, mongoz can be configured to retransmit
    a request to another replica before a timeout occurs and return whichever
    reply comes first. That way, even a network failure in the middle
    of a performing request does not neccessarily lead to any errors
    reported to clients.

  • Config caching: mongoz does not query its config servers
    upon a specific event (like incoming connection or authentication attempt).
    Instead, it keeps its local copy of the whole cluster config and
    synchronizes it periodically with config servers. As a result,
    unavailable config servers (even all of them) still
    don't render the whole cluster unusable.

Mongoz strictly obeys MongoDB wire protocol and thus can be used
as a drop-in replacement for mongos. Moreover, it can freely coexist
with mongos within a same MongoDB cluster if neccessary.

More detailed description of mongoz features can be found in its man page.

Main metrics

Overview
Name With Owneryandex/mongoz
Primary LanguageC++
Program languageMakefile (Language Count: 5)
Platform
License:MIT License
所有者活动
Created At2016-08-23 10:27:17
Pushed At2017-02-03 13:54:27
Last Commit At2017-02-03 16:47:26
Release Count0
用户参与
Stargazers Count32
Watchers Count7
Fork Count6
Commits Count18
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private