Skip to content

Database

To report bugs, please use our SERVER JIRA project.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback

6 results found

  1. More complex balancer windows for sharded clusters

    Currently we can define a single balancer window which is applied for every day of the week. It would useful to extend this with, for example:

    • multiple windows per day (e.g. 2-4am and 9-11pm)
    • custom windows for days of the week (e.g. Sat 5pm-midnight, Sunday 0-24)
    13 votes
    0 comments  ·  Sharding  ·  Admin →
    How important is this to you?
  2. Unique index in sharded cluster

    For enforcing uniqueness in a sharded cluster, the officially recommended approach provided here https://docs.mongodb.com/manual/tutorial/unique-constraints-on-arbitrary-fields/#std-label-shard-key-arbitrary-uniqueness is simplistic and in production environment it brings non-trivial amount of work. Some considerations:

    1. Ephemeral issues might cause inconsistencies between the two collections (for example, unique index collection update succeeded but not the main collection) and make some unique keys not useable.
    2. There are many changes needed (we're using ORM Mongoose, there are many hooks for it to change) for enforce this universally.

    What we ended up doing is to use distributed ephemeral locks (a TTLed MongoDB collection) to lock on the unique keys before adding…

    6 votes
    0 comments  ·  Sharding  ·  Admin →
    How important is this to you?
  3. deleteMany() execution automatically disable the balancer on sharded clusters

    deleteMany() execution automatically disable the balancer on sharded clusters

    1 vote
    0 comments  ·  Sharding  ·  Admin →
    How important is this to you?
  4. Combine reshardCollection+mongosynd idea to support a remote collection on a separate new cluster

    Great for prod productivity and 99.999 SLA if mongo could support this,
    for example,

    Given "mydb.mycoll" in current cluster being sharded with {zip:1} shard key

    1/ New cluster: sh.shardCollection( "mydb.mycoll", {name:1, phone:1} )
    2/ "Mongocopy" till mydb.mycoll in new and current cluster are synced.
    Very much like how reshardCollection works now, but to a remote
    mydb.mycoll on the new cluster, instead of the local coll
    system.resharding.554c8995-2ec9-4bda-9401-a3ad475b9c8c

    This is a combination of mongosync and reshardCollection in one.
    Prod cluster is often very big and busy and requires no downtime with the
    99.999 SLA (Service level agreement). Being able to reshardCollection
    to…

    1 vote
    0 comments  ·  Sharding  ·  Admin →
    How important is this to you?
  5. Support $documents on shards

    The new aggregation operator $documents cannot be used together with $merge in a sharded cluster, you get an error:

    db.aggregate([
       {
          $documents: [
             { _id: ObjectId("6616b08a610fab3e84d2d4ee"), a: 'foo', shardKey: 1 },
          ]
       },
       { $merge: { into: { db: 'myDB', coll: 'sharded_Collection' } } }
    ])
    
    

    raises

    $documents must run on mongoS, but cannot :: caused by :: $merge must run on a shard

    Having this new function available in every environment would we great.

    1 vote
    0 comments  ·  Sharding  ·  Admin →
    How important is this to you?
  6. Shard Drain/ Removal issue

    If we have more shards, and if want to remove few shards (more than 1), we use below command.

    db.adminCommand( { removeShard : "Shardname" } )

    Ex, if I have Shard 1, 2, 3, 4, 5. want to remove Shard 2 & 5.

    I want to remove one shard at a time to minimize impact to users , then want to remove, say Shard 2, then want to remove Shard 5.

    If we do this, some chunks from Shard#2 also get moved to "Shard#5", which is suppose to removed later. This causes Shard#5 chunk size increase. Then takes more time.

    1 vote
    0 comments  ·  Sharding  ·  Admin →
    How important is this to you?
  • Don't see your idea?

Database

Categories

Feedback and Knowledge Base