Facebook mepere mmejuputa tebụl hash F14

Ụlọ ọrụ Facebook mara ọkwa gbasara mmejuputa isi mmalite nke tebụl hash F14, kachasị maka oriri ebe nchekwa dị mma. A na-eji F14 na akụrụngwa Facebook dị ka nnọchi maka ọtụtụ ụdị tebụl hash ma nwee ike belata oriri ebe nchekwa na-enweghị ịchụ àjà. F14 pụtara ìhè karịa google :: sparse_hash_map hash table, nke a na-ahụta na ọ kacha arụ ọrụ nke ọma n'ihe gbasara oriri ebe nchekwa. Edere koodu oru ngo na C++ ma tinye ya n'ọbá akwụkwọ Nzuzu.

F14 na-ezo aka na algọridim nwere sistemu mkpebi nkukota dabere na hashing ugboro abụọ yana 14 usoro nke samples (A na-echekwa agbụ nke oghere 14 n'otu cell table hash, a na-agbakọ oge dị n'etiti mkpụrụ ndụ site na iji ọrụ hash inyeaka). Iji mee ka ọrụ nzacha cell dị ngwa, mmejuputa a na-eji ntuziaka vector SSE2 maka sistemu x86_64 yana NEON maka Aarch64, nke na-enye ohere ịmekọrịta mmezu nke arụmọrụ maka ịhọrọ oghere na agbụ igodo yana wepụ igodo n'ime agbụ. A na-edozi ihe mgbochi nke oghere 14 n'otu oge, nke bụ nguzozi kachasị mma n'etiti arụmọrụ nke iji cache processor na ọnụ ọgụgụ nke esemokwu.

Akụkụ pụrụ iche nke F14 bụ ikike ịhọrọ usoro nchekwa data dị iche iche:

  • F14NodeMap - na-eri obere ebe nchekwa maka igodo buru ibu na nke ọkara. Gbaa mbọ hụ na echekwara ihe ndị na-edoghị anya site na ịkpọ malloc na ntinye ọ bụla;
  • F14ValueMap - na-enye obere ebe nchekwa oriri maka obere igodo. A na-echekwa ihe ndị dị na sel n'onwe ha (inline). Maka igodo ọkara na nnukwu, ụzọ a na-eduga na ebe nchekwa a na-ahụ anya;
  • F14VectorMap - na-arụ ọrụ ngwa ngwa maka nnukwu tebụl na igodo mgbagwoju anya, mana ọ na-eji nwayọọ nwayọọ maka igodo dị mfe na obere tebụl. A na-akwakọba ihe ndị ahụ n'usoro ndị mmadụ na-aga n'ihu ma jiri ntụnye ntụaka 32-bit kwuo ya;
  • F14FastMap bụ atụmatụ agwakọtara. Ọ bụrụ na igodo ahụ erughị 24 bytes, yabụ F14ValueMap ka ahọpụtara, ma ọ bụrụ karịa, ahọpụtara F14VectorMap.

Facebook mepere mmejuputa tebụl hash F14

isi: opennet.ru

Tinye a comment