Buileachadh fosgailte Facebook de chlàran hash F14

Facebook companaidh ainmeachadh air buileachadh clàr hash stòr fosgailte F14leasaichte airson caitheamh cuimhne èifeachdach. Tha F14 air a chleachdadh ann am bun-structar Facebook an àite a’ mhòr-chuid de chlàran hash agus leigidh e leat caitheamh cuimhne a lughdachadh gun a bhith ag ìobairt coileanadh. Tha F14 gu follaiseach a’ coileanadh nas fheàrr na google :: sparse_hash_map clàran hash, a thathas gu ruige seo air a mheas mar an cuimhne as èifeachdaiche. Tha còd a’ phròiseict sgrìobhte ann an C ++ agus air a ghabhail a-steach san leabharlann Amaideachd.

Tha F14 a’ toirt iomradh air algorithms le siostam fuasglaidh bualadh stèidhichte air hashing dùbailte le 14 sreathan sampall (tha aon chealla den bhòrd hash a’ stòradh sèine de 14 sliotan, agus tha an eadar-ama eadar ceallan air a thomhas a’ cleachdadh gnìomh hash cuideachail). Gus gnìomhachd sìoltachaidh cealla a luathachadh, bidh am buileachadh a’ cleachdadh stiùireadh vector SSE2 airson siostaman x86_64 agus NEON airson siostaman Aarch64, a leigeas leat obrachadh co-shìnte a thaobh taghadh shliotan le prìomh shlabhraidhean agus iuchraichean sgrìonaidh taobh a-staigh na slabhraidh. Bidh blocaichean de 14 sliotan air an giullachd aig an aon àm, agus is e sin an cothromachadh as fheàrr eadar èifeachdas cleachdadh tasgadan pròiseasar agus an àireamh de thubaistean.

Is e feart de F14 an comas diofar ro-innleachdan stòraidh dàta a thaghadh:

  • F14NodeMap - ag ithe an ìre as lugha de chuimhne airson iuchraichean mòra is meadhanach. A’ toirt seachad stòradh neo-dhìreach de eileamaidean le gairm gach uair a thèid gnìomh malloc a chuir a-steach;
  • F14ValueMap - A’ toirt seachad glè bheag de chaitheamh cuimhne airson iuchraichean beaga. Bidh eileamaidean air an stòradh anns na ceallan fhèin (in-loidhne). Airson iuchraichean meadhanach agus mòr, tha an dòigh-obrach seo a 'leantainn gu cuimhne follaiseach os cionn;
  • Tha F14VectorMap nas luaithe airson bùird mòra agus iuchraichean iom-fhillte, ach nas slaodaiche airson iuchraichean sìmplidh agus clàran beaga. Tha na h-eileamaidean air am pacadh a-steach do raon faisg air làimh agus a’ dèiligeadh riutha le comharra clàr-amais 32-bit;
  • Tha F14FastMap na ro-innleachd aonaichte. Ma tha an iuchair nas lugha na 24 bytes, thèid F14ValueMap a thaghadh, agus ma tha barrachd, tha F14VectorMap air a thaghadh.

Buileachadh fosgailte Facebook de chlàran hash F14

Source: fosgailtenet.ru

Cuir beachd ann