问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

日本newhalf是什么

发布网友 发布时间:2022-05-06 08:37

我来回答

5个回答

懂视网 时间:2022-05-06 12:59

Lots of MongoDB users enjoy the flexibility of custom shard keys in organizing a sharded collection’s documents. For certain common workloads though, like key/value lookup, using the natural choice of _id as a shard key isn’t optimal bec

Lots of MongoDB users enjoy the flexibility of custom shard keys in organizing a sharded collection’s documents. For certain common workloads though, like key/value lookup, using the natural choice of _id as a shard key isn’t optimal because default ObjectId’s are ascending, resulting in poor write distribution. ?Creating randomized _ids or choosing another well-distributed field is always possible, but this adds complexity to an app and is another place where something could go wrong.

To help keep these simple workloads simple, in 2.4 MongoDB added the new Hash-based shard key feature. ?The idea behind Hash-based shard keys is that MongoDB will do the work to randomize data distribution for you, based on whatever kind of document identifier you like. ?So long as the identifier has a high cardinality, the documents in your collection will be spread evenly across the shards of your cluster. ?For heavy workloads with lots of individual document writes or reads (e.g. key/value), this is usually the best choice. ?For workloads where getting ranges of documents is more important (i.e. find recent documents from all users), other choices of shard key may be better suited.

Hash-based sharding in an existing collection

To start off with Hash-based sharding, you need the name of the collection you’d like to shard and the name of the hashed “identifier" field for the documents in the collection. ?For example, we might want to create a sharded “mydb.webcrawler" collection, where each document is usually found by a “url" field. ?We can populate the collection with sample data using:

shell$ wget http://en.wikipedia.org/wiki/Web_crawler -O web_crawler.html
shell$ mongo 
connecting to: /test
> use mydb
switched to db mydb
> cat("web_crawler.html").split("
").forEach( function(line){
... var regex = /a href="http://blog.mongodb.org/post/""([^"]*)"/; if (regex.test(line)) { db.webcrawler.insert({ "url" : regex.exec(line)[1] }); }})
> db.webcrawler.find()
...
{ "_id" : ObjectId("5162fba3ad5a8e56b7b36020"), "url" : "/wiki/OWASP" }
{ "_id" : ObjectId("5162fba3ad5a8e56b7b3603d"), "url" : "/wiki/Image_retrieval" }
{ "_id" : ObjectId("5162fba3ad5a8e56b7b3603e"), "url" : "/wiki/Video_search_engine" }
{ "_id" : ObjectId("5162fba3ad5a8e56b7b3603f"), "url" : "/wiki/Enterprise_search" }
{ "_id" : ObjectId("5162fba3ad5a8e56b7b36040"), "url" : "/wiki/Semantic_search" }
...

Just for this example, we multiply this data ~x2000 (otherwise we won’t get any pre-splitting in the collection because it’s too small):

> for (var i = 0; i < 12; i++) { db.webcrawler.find().toArray().forEach( function(doc) { db.webcrawler.insert({ url : doc.url }) }) }

Next, we create a hashed index on this field:

> db.webcrawler.ensureIndex({ url : "hashed" })

As usual, the creation of the hashed index doesn’t prevent other types of indices from being created as well.

Then we shard the “mydb.webcrawler" collection using the same field as a Hash-based shard key:

> db.printShardingStatus(true)
--- Sharding Status ---
sharding version: {
 "_id" : 1,
 "version" : 3,
 "minCompatibleVersion" : 3,
 "currentVersion" : 4,
 "clusterId" : ObjectId("5163032a622c051263c7b8ce")
}
shards:
 { "_id" : "test-rs0", "host" : "test-rs0/nuwen:31100,nuwen:31101" }
 { "_id" : "test-rs1", "host" : "test-rs1/nuwen:31200,nuwen:31201" }
 { "_id" : "test-rs2", "host" : "test-rs2/nuwen:31300,nuwen:31301" }
 { "_id" : "test-rs3", "host" : "test-rs3/nuwen:31400,nuwen:31401" }
databases:
 { "_id" : "admin", "partitioned" : false, "primary" : "config" }
 { "_id" : "mydb", "partitioned" : true, "primary" : "test-rs0" }
 mydb.webcrawler
  shard key: { "url" : "hashed" }
  chunks:
  test-rs0 4
  { "url" : { "$minKey" : 1 } } -->> { "url" : NumberLong("-4837773290201122847") } on : test-rs0 { "t" : 1, "i" : 3 }
  { "url" : NumberLong("-4837773290201122847") } -->> { "url" : NumberLong("-2329535691089872938") } on : test-rs0 { "t" : 1, "i" : 4 }
  { "url" : NumberLong("-2329535691089872938") } -->> { "url" : NumberLong("3244151849123193853") } on : test-rs0 { "t" : 1, "i" : 1 }
  { "url" : NumberLong("3244151849123193853") } -->> { "url" : { "$maxKey" : 1 } } on : test-rs0 { "t" : 1, "i" : 2 }

you can see that the chunk boundaries are 64-bit integers (generated by hashing the “url" field). ?When inserts or queries target particular urls, the query can get routed using the url hash to the correct chunk.

Sharding a new collection

Above we’ve sharded an existing collection, which will result in all the chunks of a collection initially living on the same shard. ?The balancer takes care of moving the chunks around, as usual, until we get an even distribution of data.

Much of the time though, it’s better to shard the collection before we add our data - this way MongoDB doesn’t have to worry about moving around existing data. ?Users of sharded collections are familiar with pre-splitting - where empty chunks can be quickly balanced around a cluster before data is added. ?When sharding a new collection using Hash-based shard keys, MongoDB will take care of the presplitting for you. Similarly sized ranges of the Hash-based key are distributed to each existing shard, which means that no initial balancing is needed (unless of course new shards are added).

Let’s see what happens when we shard a new collection webcrawler_empty the same way:

> sh.stopBalancer()
Waiting for active hosts...
Waiting for the balancer lock...
Waiting again for active hosts after balancer is off...
> db.webcrawler_empty.ensureIndex({ url : "hashed" })
> sh.shardCollection("mydb.webcrawler_empty", { url : "hashed" })
{ "collectionsharded" : "mydb.webcrawler_empty", "ok" : 1 }
> db.printShardingStatus(true)
--- Sharding Status ---
...
 mydb.webcrawler_empty
  shard key: { "url" : "hashed" }
  chunks:
  test-rs0 2
  test-rs1 2
  test-rs2 2
  test-rs3 2
  { "url" : { "$minKey" : 1 } } -->> { "url" : NumberLong("-6917529027641081850") } on : test-rs0 { "t" : 4, "i" : 2 }
  { "url" : NumberLong("-6917529027641081850") } -->> { "url" : NumberLong("-4611686018427387900") } on : test-rs0 { "t" : 4, "i" : 3 }
  { "url" : NumberLong("-4611686018427387900") } -->> { "url" : NumberLong("-2305843009213693950") } on : test-rs1 { "t" : 4, "i" : 4 }
  { "url" : NumberLong("-2305843009213693950") } -->> { "url" : NumberLong(0) } on : test-rs1 { "t" : 4, "i" : 5 }
  { "url" : NumberLong(0) } -->> { "url" : NumberLong("2305843009213693950") } on : test-rs2 { "t" : 4, "i" : 6 }
  { "url" : NumberLong("2305843009213693950") } -->> { "url" : NumberLong("4611686018427387900") } on : test-rs2 { "t" : 4, "i" : 7 }
  { "url" : NumberLong("4611686018427387900") } -->> { "url" : NumberLong("6917529027641081850") } on : test-rs3 { "t" : 4, "i" : 8 }
  { "url" : NumberLong("6917529027641081850") } -->> { "url" : { "$maxKey" : 1 } } on : test-rs3 { "t" : 4, "i" : 9 }

As you can see, the new empty collection is already well-distributed and ready to use. ?Be aware though - any balancing currently in progress can interfere with moving the empty initial chunks off the initial shard, balancing will take priority (hence the initial stopBalancer step). Like before, eventually the balancer will distribute all empty chunks anyway, but if you are preparing for a immediate data load it’s probably best to stop the balancer beforehand.

That’s it - you now have a pre-split collection on four shards using Hash-based shard keys. ?Queries and updates on exact urls go to randomized shards and are balanced across the cluster:

> db.webcrawler_empty.find({ url: "/wiki/OWASP" }).explain()
{
 "clusteredType" : "ParallelSort",
 "shards" : {
 "test-rs2/nuwen:31300,nuwen:31301" : [ ... ]
...

However, the trade-off with Hash-based shard keys is that ranged queries and multi-updates must hit all shards:

> db.webcrawler_empty.find({ url: /^/wiki/OWASP/ }).explain()
{
 "clusteredType" : "ParallelSort",
 "shards" : {
 "test-rs0/nuwen:31100,nuwen:31101" : [ ... ],
 "test-rs1/nuwen:31200,nuwen:31201" : [ ... ],
 "test-rs2/nuwen:31300,nuwen:31301" : [ ... ],
 "test-rs3/nuwen:31400,nuwen:31401" : [ ... ]
...

Manual chunk assignment and other caveats

The core benefits of the new Hash-based shard keys are:

  • Easy setup of randomized shard key

  • Automated pre-splitting of empty collections

  • Better distribution of chunks on shards for isolated document writes and reads

  • The standard split and moveChunk functions do work with Hash-based shard keys, so it’s still possible to balance your collection’s chunks in any way you like. ?However, the usual “find” mechanism used to select chunks can behave a bit unexpectedly since the specifier is a document which is hashed to get the containing chunk. ?To keep things simple, just use the new “bounds” parameter when manually manipulating chunks of hashed collections (or all collections, if you prefer):

    > use admin
    > db.runCommand({ split : "mydb.webcrawler_empty", bounds : [{ "url" : NumberLong("2305843009213693950") }, { "url" : NumberLong("4611686018427387900") }] })
    > db.runCommand({ moveChunk : "mydb.webcrawler_empty", bounds : [{ "url" : NumberLong("2305843009213693950") }, { "url" : NumberLong("4611686018427387900") }], to : "test-rs3" })
    

    There are a few other caveats as well - in particular with tag-aware sharding. ?Tag-aware sharding is a feature we released in MongoDB 2.2, which allows you to attach labels to a subset of shards in a cluster. This is valuable for “pinning" collection data to particular shards (which might be hosted on more powerful hardware, for example). ?You can also tag ranges of a collection differently, such that a collection sharded by { “countryCode" : 1 } would have chunks only on servers in that country.

    Hash-based shard keys are compatible with tag-aware sharding. ?As in any sharded collection, you may assign chunks to specific shards, but since the chunk ranges are based on the value of the randomized hash of the shard key instead of the shard key itself, this is usually only useful for tagging the whole range to a specific set of shards:

    > sh.addShardTag("test-rs2", "DC1")
    sh.addShardTag("test-rs3", "DC1")

    The above commands assign a hypothetical data center tag “DC1” to shards -rs2 and -rs3, which could indicate that -rs2 and -rs3 are in a particular location. ?Then, by running:

    > sh.addTagRange("mydb.webcrawler_empty", { url : MinKey }, { url : MaxKey }, "DC1" )

    we indicate to the cluster that the mydb.webcrawler_empty collection should only be stored on “DC1” shards. ?After letting the balancer work:

    > db.printShardingStatus(true)
    --- Sharding Status ---
    ...
     mydb.webcrawler_empty
      shard key: { "url" : "hashed" }
      chunks:
      test-rs2 4
      test-rs3 4
      { "url" : { "$minKey" : 1 } } -->> { "url" : NumberLong("-6917529027641081850") } on : test-rs2 { "t" : 5, "i" : 0 }
      { "url" : NumberLong("-6917529027641081850") } -->> { "url" : NumberLong("-4611686018427387900") } on : test-rs3 { "t" : 6, "i" : 0 }
      { "url" : NumberLong("-4611686018427387900") } -->> { "url" : NumberLong("-2305843009213693950") } on : test-rs2 { "t" : 7, "i" : 0 }
      { "url" : NumberLong("-2305843009213693950") } -->> { "url" : NumberLong(0) } on : test-rs3 { "t" : 8, "i" : 0 }
      { "url" : NumberLong(0) } -->> { "url" : NumberLong("2305843009213693950") } on : test-rs2 { "t" : 4, "i" : 6 }
      { "url" : NumberLong("2305843009213693950") } -->> { "url" : NumberLong("4611686018427387900") } on : test-rs2 { "t" : 4, "i" : 7 }
      { "url" : NumberLong("4611686018427387900") } -->> { "url" : NumberLong("6917529027641081850") } on : test-rs3 { "t" : 4, "i" : 8 }
      { "url" : NumberLong("6917529027641081850") } -->> { "url" : { "$maxKey" : 1 } } on : test-rs3 { "t" : 4, "i" : 9 }
      tag: DC1 { "url" : { "$minKey" : 1 } } -->> { "url" : { "$maxKey" : 1 } }
    

    Again, it doesn’t usually make a lot of sense to tag anything other than the full hashed shard key collection to particular shards - by design, there’s no real way to know or control what data is in what range.

    Finally, remember that Hash-based shard keys can (right now) only distribute documents based on the value of a single field. ?So, continuing the example above, it isn’t directly possible to use “url" + “timestamp" as a Hash-based shard key without storing the combination in a single field in your application, for example:

    url_and_ts : { url : , timestamp :  }

    The sub-document will be hashed as a unit.

    If you’re interested in learning more about Hash-based sharding, register for the Hash-based sharding feature demo on May 2.

    热心网友 时间:2022-05-06 10:07

    在日本的new half们,都是男人,只不过是喜欢女性化得打扮,他们的声音还与男生的声音没有很大差别,只不过他们说话时会故意把自己的声音变的女性化,只不过泰国的newhalf全部都是做过了变性手术的人妖。

    热心网友 时间:2022-05-06 11:25

    伪娘,ACG界名词,通常指的是有女性美貌的正常男性角色,常常带有很强的萌属性,有的可能更胜过一般女性角色。“男の娘(おとこのむすめ)”则是“伪娘”的COSPLAY。注意伪娘和人妖的区别在于心理的鉴别,人妖在心理上承认自己是女人,而伪娘非也,伪娘的萌态是浑然天成,毫无做作的。

    热心网友 时间:2022-05-06 12:59

    就是人妖啦 作为男性出生 后来人为的变成女性的人追问那他们是做了变性手术吗?还是维持着原本的男性生理状态,只不过打扮成女人的样子?

    热心网友 时间:2022-05-06 14:51

    http://my.tv.sohu.com/u/vw/17639729?XUID=u262905978
    看看这个视频吧,介绍new half的
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    ...经常感到孤独、万事无聊,请问怎样治疗孤独?谢谢! 移动号码不用了一段时间现在拨号显示空号要怎么激活 圣女小番茄简介 《一曲终人两散》最新txt全集下载 石膏几何体写生内容简介 石膏几何体内容简介 句子: We mustn't climb the trees.怎么填空? 市妇婴医院生产点样建档? 长治怀孕建档要准备什么材料呢? 工厂隔音房 关于制作手机通讯的ppt,有哪些高端大气上档次的主题 “岂不属毛,岂不离里”什么意思呀 岂不猗欤什么意思 岂不枉送的意思? “岂不遂止”的意思是什么? 空城计中岂不被司马懿捉住中岂不是什么意思 岂不美哉什么意思? 岂不懿欤的意思 岂不美哉是啥意思? 岂不能白白送死 岂是什么意思 “岂不是”是什么意思? 岂不被司马懿捉住中,岂不的意思是什么? 岂不什么意思? oppoa93什么处理器 OPPO a93软件更新是什么意思 oppoa93运行内存8+5是什么意思 oppoA93S ISO什么意思 日本安川伺服控制器servopack 报警a93是什么意思 oppoa93运行内存8+3是什么意思 oppoa93内存拓展什么意思 Canon的 T3和T3i 有什么区别?相当于国内什么型号? 佳能t3i单反镜头是什么型号 佳能T3I跟T3有区别么?? 佳能t3i单反镜头是什么型号? 佳能canon rebel t3i好还是佳能canon 70d好? 佳能在欧美所用T3,T3i,T4i,T5,T5i,SL1,SX50HS,SX510HS分别代表国内什么型号? 佳能eos T3i相机在国内什么价?性, 神十航天员太空授课观后感,600字,好的话加悬赏,急用 你好,我弟弟从国外带来了佳能t3i,说明书上是显示600d。就没有打开过机子。为什么 见证奇迹的时刻到了 是谁说的 用佳能T3i(600D) 能拍出高大上的照片吗 请问美国市场上的佳能EOS T3i和T2i对应的国内型号 佳能t3i如何跟NIKON的D90相比那个好啊??? 请高手指教 佳能T3i的价格 单反相机t3i怎么调曝光时间? 我想拍月亮和房子,可是相机无法拍摄,为什么?相机是佳能t3i 有关佳能单反的问题。Canon Rebel T3i 18MP DSLR Camera这个型号 佳能数码单反相机e0s,rebel,t3i是什么型号 见证奇迹的时候到了,一切皆有可能对吗? 以“我的中国梦”写一篇征文。题目自拟