Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob

Peb cov neeg siv sau cov lus rau ib leeg yam tsis paub txog kev qaug zog.
Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob
Qhov ntawd yog ntau heev. Yog tias koj teem caij nyeem tag nrho cov lus ntawm txhua tus neeg siv, nws yuav siv sijhawm ntau dua 150 txhiab xyoo. Muab hais tias koj yog tus nyeem ntawv siab heev thiab siv tsis pub ntau tshaj ib ob ntawm txhua cov lus.

Nrog xws li ntim ntawm cov ntaub ntawv, nws yog ib qho tseem ceeb uas lub logic rau khaws cia thiab nkag mus rau nws yog tsim optimally. Txwv tsis pub, nyob rau hauv ib lub sij hawm tsis-zoo-zoo, nws yuav pom tseeb tias txhua yam yuav sai sai no mus tsis ncaj ncees lawm.

Rau peb, lub sijhawm no tuaj txog ib xyoos thiab ib nrab dhau los. Yuav ua li cas peb tuaj rau qhov no thiab dab tsi tshwm sim thaum kawg - peb qhia koj nyob rau hauv kev txiav txim.

Tom qab

Hauv kev siv thawj zaug, VKontakte cov lus ua haujlwm ntawm kev sib txuas ntawm PHP backend thiab MySQL. Qhov no yog ib qho kev daws teeb meem tag nrho rau ib lub vev xaib me me. Txawm li cas los xij, qhov chaw no tau loj hlob uncontrollably thiab pib thov optimization ntawm cov ntaub ntawv qauv rau nws tus kheej.

Thaum kawg ntawm 2009, thawj cov ntawv sau lub cav tau sau, thiab hauv 2010 cov lus raug xa mus rau nws.

Hauv cov ntawv sau tshuab, cov lus tau khaws cia hauv cov npe - ib hom "mailboxes". Txhua daim ntawv teev npe no yog txiav txim los ntawm uid - tus neeg siv uas yog tus tswv ntawm tag nrho cov lus no. Cov lus muaj ib co cwj pwm: interlocutor identifier, ntawv nyeem, attachments, thiab hais txog. Cov ntawv txheeb xyuas nyob rau hauv "lub thawv" yog local_id, nws yeej tsis hloov thiab raug muab ua ntu zus rau cov lus tshiab. Cov "them" yog ywj siab thiab tsis synchronized nrog ib leeg hauv lub cav; kev sib txuas lus ntawm lawv tshwm sim ntawm PHP qib. Koj tuaj yeem saib cov qauv ntaub ntawv thiab lub peev xwm ntawm cov ntawv-lub cav los ntawm sab hauv no.
Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob
Qhov no yog qhov txaus rau kev sib tham ntawm ob tus neeg siv. Kwv yees dab tsi tshwm sim tom ntej?

Nyob rau lub Tsib Hlis 2011, VKontakte tau qhia txog kev sib tham nrog ntau tus neeg koom - kev sib tham ntau. Txhawm rau ua haujlwm nrog lawv, peb tau tsa ob pawg tshiab - cov tswvcuab sib tham thiab cov tswvcuab sib tham. Thawj qhov khaws cov ntaub ntawv hais txog kev sib tham los ntawm cov neeg siv, qhov thib ob khaws cov ntaub ntawv hais txog cov neeg siv los ntawm kev sib tham. Ntxiv rau cov npe lawv tus kheej, qhov no suav nrog, piv txwv li, tus neeg siv caw thiab lub sijhawm lawv tau ntxiv rau kev sib tham.

"PHP, cia peb xa lus rau kev sib tham," tus neeg siv hais.
"Los ntawm, {username}," hais tias PHP.
Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob
Muaj qhov tsis zoo rau lub tswv yim no. Synchronization tseem yog lub luag haujlwm ntawm PHP. Kev sib tham loj thiab cov neeg siv uas ib txhij xa lus rau lawv yog ib zaj dab neeg txaus ntshai. Txij li cov ntawv nyeem-engine piv txwv nyob ntawm uid, cov neeg koom nrog sib tham tuaj yeem tau txais cov lus tib lub sijhawm sib txawv. Ib tug tuaj yeem nyob nrog qhov no yog tias kev nce qib tseem nyob. Tab sis qhov ntawd yuav tsis tshwm sim.

Thaum kawg ntawm xyoo 2015, peb tau tshaj tawm cov lus hauv zej zog, thiab thaum pib ntawm 2016, peb tau tsim API rau lawv. Nrog rau qhov tshwm sim ntawm cov chatbots loj hauv cov zej zog, nws muaj peev xwm tsis nco qab txog txawm tias thauj khoom xa tawm.

Ib tug zoo bot tsim ntau lab cov lus hauv ib hnub - txawm tias cov neeg siv hais lus feem ntau tsis tuaj yeem khav ntawm qhov no. Qhov no txhais tau hais tias qee qhov xwm txheej ntawm cov ntawv sau tshuab, uas cov bots nyob, tau pib raug kev txom nyem mus rau tag nrho.

Cov lus cav hauv xyoo 2016 yog 100 zaus ntawm cov tswvcuab sib tham thiab cov tswvcuab-kev sib tham, thiab 8000 cov ntawv tshuab. Lawv tau tuav ntawm ib txhiab servers, txhua tus muaj 64 GB ntawm lub cim xeeb. Raws li thawj qhov kev ntsuas kub ceev, peb tau nce lub cim xeeb los ntawm lwm qhov 32 GB. Peb kwv yees qhov kev kwv yees. Yog tsis muaj kev hloov pauv loj, qhov no yuav txaus rau lwm xyoo. Koj yuav tsum tau tuav ntawm hardware lossis optimize cov databases lawv tus kheej.

Vim qhov xwm txheej ntawm architecture, nws tsuas yog ua rau kev txiav txim siab kom kho vajtse ntau ntxiv. Ntawd yog, tsawg kawg yog ob npaug ntawm cov tsheb - pom tseeb, qhov no yog txoj hauv kev kim kim. Peb yuav optimize.

Lub tswvyim tshiab

Lub hauv paus tseem ceeb ntawm txoj hauv kev tshiab yog kev sib tham. Kev sib tham muaj cov npe ntawm cov lus uas cuam tshuam rau nws. Tus neeg siv muaj cov npe sib tham.

Qhov tsawg kawg nkaus uas yuav tsum tau yog ob lub databases tshiab:

  • sib tham-engine. Nov yog qhov chaw khaws cia ntawm kev sib tham vectors. Txhua qhov kev sib tham muaj vector ntawm cov lus uas cuam tshuam rau nws. Txhua cov lus muaj cov ntawv nyeem thiab cov cim tshwj xeeb hauv kev sib tham - chat_local_id.
  • neeg siv cav. Qhov no yog kev cia ntawm cov neeg siv vectors - txuas rau cov neeg siv. Txhua tus neeg siv muaj vector ntawm peer_id (interlocutors - lwm tus neeg siv, sib tham lossis zej zog) thiab vector ntawm cov lus. Txhua peer_id muaj vector ntawm cov lus uas cuam tshuam rau nws. Txhua cov lus muaj chat_local_id thiab cov lus tshwj xeeb ID rau tus neeg siv - user_local_id.

Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob
Cov pawg tshiab sib txuas lus nrog ib leeg siv TCP - qhov no ua kom qhov kev txiav txim ntawm kev thov tsis hloov. Cov kev thov lawv tus kheej thiab kev pom zoo rau lawv raug kaw rau hauv lub hard drive - yog li peb tuaj yeem rov qab kho lub xeev ntawm cov kab ke txhua lub sijhawm tom qab tsis ua haujlwm lossis rov pib lub cav. Txij li thaum tus neeg siv-lub cav thiab kev sib tham-lub cav yog 4 txhiab shards txhua, qhov kev thov queue ntawm pawg yuav raug faib sib npaug (tab sis qhov tseeb tsis muaj dab tsi - thiab nws ua haujlwm sai heev).

Ua hauj lwm nrog disk nyob rau hauv peb cov ntaub ntawv nyob rau hauv feem ntau yog raws li ib tug ua ke ntawm ib tug binary cav ntawm kev hloov (binlog), zoo li qub snapshots thiab ib feem ntawm cov duab nyob rau hauv lub cim xeeb. Cov kev hloov pauv thaum nruab hnub raug sau rau hauv binlog, thiab cov duab thaij duab ntawm lub xeev tam sim no raug tsim ib ntus. Lub snapshot yog ib qho kev sau ntawm cov ntaub ntawv tsim kho kom zoo rau peb lub hom phiaj. Nws muaj ib tug header (metaindex ntawm daim duab) thiab ib txheej ntawm metafiles. Lub header tau khaws cia tas mus li hauv RAM thiab qhia qhov twg los nrhiav cov ntaub ntawv los ntawm snapshot. Txhua metafile suav nrog cov ntaub ntawv uas yuav xav tau nyob ze cov ntsiab lus hauv lub sijhawm - piv txwv li, cuam tshuam rau ib tus neeg siv. Thaum koj nug cov ntaub ntawv siv lub snapshot header, cov metafile yuav tsum tau nyeem, thiab tom qab ntawd hloov pauv hauv binlog uas tshwm sim tom qab lub snapshot tau tsim los rau hauv tus account. Koj tuaj yeem nyeem ntxiv txog cov txiaj ntsig ntawm txoj hauv kev no no.

Nyob rau tib lub sij hawm, cov ntaub ntawv ntawm lub hard drive nws tus kheej hloov ib zaug ib hnub twg - lig hmo ntuj nyob rau hauv Moscow, thaum lub load yog tsawg heev. Ua tsaug rau qhov no (paub paub tias cov qauv ntawm lub disk nyob tas li txhua hnub), peb tuaj yeem them taus los hloov vectors nrog arrays ntawm qhov loj me - thiab vim qhov no, nce hauv kev nco.

Xa cov lus hauv cov txheej txheem tshiab zoo li no:

  1. PHP backend hu rau tus neeg siv lub cav nrog kev thov kom xa lus.
  2. user-engine proxies qhov kev thov rau qhov xav tau sib tham-engine piv txwv, uas rov qab mus rau user-engine chat_local_id - tus cim tshwj xeeb ntawm cov lus tshiab hauv kev sib tham no. Lub chat_engine ces tshaj tawm cov lus rau txhua tus neeg tau txais kev sib tham.
  3. user-engine tau txais chat_local_id los ntawm chat-engine thiab xa rov qab user_local_id rau PHP - tus cim tshwj xeeb rau cov neeg siv no. Tus lej no yog siv tom qab ntawd, piv txwv li, ua haujlwm nrog cov lus ntawm API.

Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob
Tab sis ntxiv rau kev xa cov lus tiag tiag, koj yuav tsum siv ob peb yam tseem ceeb ntxiv:

  • Sublists yog, piv txwv li, cov lus tsis ntev los no uas koj pom thaum qhib cov npe sib tham. Cov lus tsis tau nyeem, cov lus nrog cov cim npe ("Ib qho tseem ceeb", "Spam", thiab lwm yam).
  • Compressing cov lus hauv chat-engine
  • Caching cov lus hauv cov neeg siv tshuab
  • Nrhiav (los ntawm txhua qhov kev sib tham thiab hauv ib qho tshwj xeeb).
  • Hloov tshiab ntawm lub sijhawm (Longpolling).
  • Txuag keeb kwm los siv caching ntawm cov neeg siv khoom txawb.

Tag nrho cov sublists tau hloov pauv sai heev. Ua haujlwm nrog lawv peb siv Splay ntoo. Qhov kev xaiv no tau piav qhia los ntawm qhov tseeb tias nyob rau sab saum toj ntawm tsob ntoo peb qee zaum khaws tag nrho ntu ntawm cov lus los ntawm snapshot - piv txwv li, tom qab hmo ntuj reindexing, tsob ntoo muaj ib sab saum toj, uas muaj tag nrho cov lus ntawm sublist. Cov ntoo Splay ua rau nws yooj yim los ntxig rau hauv nruab nrab ntawm qhov vertex yam tsis xav txog kev sib npaug. Tsis tas li ntawd, Splay tsis khaws cov ntaub ntawv tsis tsim nyog, uas txuag peb lub cim xeeb.

Cov lus muaj feem ntau ntawm cov ntaub ntawv, feem ntau cov ntawv nyeem, uas yog ib qho tseem ceeb kom muaj peev xwm compress. Nws yog ib qho tseem ceeb uas peb tuaj yeem ua kom raug unarchive txawm tias ib tus neeg cov lus. Siv los compress cov lus Huffman algorithm nrog peb tus kheej heuristics - piv txwv li, peb paub tias nyob rau hauv cov lus cov lus hloov nrog "tsis yog lo lus" - qhov chaw, cov cim cim - thiab peb kuj nco ntsoov qee qhov peculiarities ntawm kev siv cov cim rau cov lus Lavxias.

Txij li thaum muaj cov neeg siv tsawg dua li kev sib tham, kom txuag tau qhov kev thov nkag mus rau disk hauv kev sib tham, peb cache cov lus hauv cov neeg siv tshuab.

Kev tshawb nrhiav lus yog siv raws li kab pheeb ces kaum los ntawm tus neeg siv lub cav rau txhua qhov kev sib tham-lub cav uas muaj kev sib tham ntawm tus neeg siv no. Cov txiaj ntsig tau sib xyaw ua ke hauv cov neeg siv khoom siv nws tus kheej.

Zoo, tag nrho cov ntsiab lus tau raug coj mus rau hauv tus account, txhua yam uas tseem tshuav yog hloov mus rau lub tswv yim tshiab - thiab nyiam dua yam tsis muaj cov neeg siv pom nws.

Cov ntaub ntawv tsiv teb tsaws

Yog li, peb muaj cov ntawv sau-cav uas khaws cov lus los ntawm cov neeg siv, thiab ob pawg sib tham-cov tswv cuab thiab cov tswv cuab-chats uas khaws cov ntaub ntawv hais txog ntau chav sib tham thiab cov neeg siv hauv lawv. Yuav ua li cas txav los ntawm qhov no mus rau tus neeg siv tshiab-lub cav thiab kev sib tham- cav?

cov tswvcuab-kev sib tham hauv cov txheej txheem qub tau siv feem ntau rau kev ua kom zoo. Peb sai sai xa cov ntaub ntawv tsim nyog los ntawm nws mus rau cov tswv cuab sib tham, thiab tom qab ntawd nws tsis koom nrog txoj kev tsiv teb tsaws chaw lawm.

Queue rau cov tswv cuab sib tham. Nws suav nrog 100 zaus, thaum lub cav sib tham muaj 4 txhiab. Txhawm rau hloov cov ntaub ntawv, koj yuav tsum coj mus rau hauv kev ua raws - rau qhov no, kev sib tham-cov tswv cuab tau muab faib ua tib yam 4 txhiab daim ntawv luam, thiab tom qab ntawd nyeem cov lus sib tham-cov tswv cuab binlog tau qhib hauv kev sib tham- cav.
Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob
Tam sim no chat-engine paub txog kev sib tham ntau los ntawm cov tswv cuab sib tham, tab sis nws tseem tsis tau paub dab tsi txog kev sib tham nrog ob tus neeg sib tham. Cov kev sib tham zoo li no nyob hauv cov ntawv nyeem-lub cav nrog rau cov neeg siv. Ntawm no peb tau txais cov ntaub ntawv "head-on": txhua qhov kev sib tham-engine piv txwv nug tag nrho cov ntawv sau tshuab yog tias lawv muaj kev sib tham nws xav tau.

Zoo heev - kev sib tham-lub cav paub tias kev sib tham sib tham muaj dab tsi thiab paub tias kev sib tham muaj dab tsi.
Koj yuav tsum muab cov lus sib tham hauv ntau qhov kev sib tham kom koj xaus nrog cov npe ntawm cov lus hauv txhua qhov kev sib tham. Ua ntej, chat-engine retrieves los ntawm text-engine tag nrho cov neeg siv cov lus los ntawm kev sib tham no. Qee zaum muaj ntau heev ntawm lawv (txog pua pua lab), tab sis nrog qhov tsis tshua muaj qhov tshwj xeeb kev sib tham haum tag nrho rau hauv RAM. Peb muaj cov lus uas tsis tau xaj, txhua qhov hauv ntau daim ntawv theej - tom qab tag nrho, lawv txhua tus raug rub los ntawm cov ntawv sib txawv ntawm cov tshuab sib txuas rau cov neeg siv. Lub hom phiaj yog txheeb cov lus thiab tshem tawm cov ntawv luam uas siv qhov chaw tsis tsim nyog.

Txhua cov lus muaj ib lub sij hawm uas muaj lub sij hawm nws tau xa thiab ntawv. Peb siv sijhawm rau kev txheeb xyuas - peb muab cov lus taw qhia rau cov lus qub tshaj plaws ntawm cov neeg koom nrog sib tham thiab sib piv cov hashs los ntawm cov ntawv nyeem ntawm cov ntawv npaj, txav mus rau qhov nce lub sijhawm. Nws yog qhov laj thawj uas cov ntawv luam yuav muaj tib lub hash thiab timestamp, tab sis hauv kev xyaum, qhov no tsis yog ib txwm muaj. Raws li koj nco qab, synchronization nyob rau hauv cov txheej txheem qub tau ua los ntawm PHP - thiab nyob rau hauv tsawg zaus, lub sij hawm xa tib cov lus sib txawv ntawm cov neeg siv sib txawv. Nyob rau hauv cov ntaub ntawv no, peb tau tso cai rau peb tus kheej los hloov lub sij hawm - feem ntau nyob rau hauv ib tug thib ob. Qhov teeb meem thib ob yog qhov sib txawv ntawm cov lus rau cov neeg tau txais kev sib txawv. Hauv cov xwm txheej zoo li no, peb tau tso cai tsim cov ntawv luam ntxiv, nrog rau kev txiav txim sib txawv rau cov neeg siv sib txawv.

Tom qab qhov no, cov ntaub ntawv hais txog cov lus hauv multichat raug xa mus rau tus neeg siv lub cav. Thiab ntawm no los txog qhov tsis kaj siab ntawm cov lus xa tuaj. Hauv kev ua haujlwm ib txwm muaj, cov lus uas tuaj rau lub cav raug txiav txim kom nruj heev los ntawm user_local_id. Cov lus xa los ntawm lub cav qub rau hauv cov neeg siv lub cav poob no cov cuab yeej muaj txiaj ntsig. Nyob rau tib lub sijhawm, kom yooj yim rau kev sim, koj yuav tsum tau nkag mus sai sai, nrhiav qee yam hauv lawv thiab ntxiv cov tshiab.

Peb siv cov qauv ntaub ntawv tshwj xeeb los khaws cov lus xa tuaj.

Nws sawv cev ib vector ntawm qhov loj Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyobsawv daws nyob qhov twg Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob - yog sib txawv thiab txiav txim nyob rau hauv descending kev txiav txim, nrog ib tug tshwj xeeb kev txiav txim ntawm lub ntsiab. Hauv txhua ntu nrog qhov ntsuas Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob cov ntsiab lus raug txheeb xyuas. Kev tshawb nrhiav ib qho hauv cov qauv zoo li no yuav siv sijhawm Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob los ntawm Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob binary tshawb nrhiav. Qhov sib ntxiv ntawm cov khoom yog amortized tshaj Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob.

Yog li, peb xav txog yuav ua li cas hloov cov ntaub ntawv los ntawm cov cav qub mus rau cov tshiab. Tab sis cov txheej txheem no yuav siv sij hawm ob peb hnub - thiab nws tsis zoo li tias nyob rau hnub no peb cov neeg siv yuav tso tseg tus cwj pwm ntawm kev sau ntawv rau ib leeg. Txhawm rau kom tsis txhob poob cov lus nyob rau lub sijhawm no, peb hloov mus rau txoj haujlwm ua haujlwm uas siv ob pawg qub thiab tshiab.

Cov ntaub ntawv yog sau rau kev sib tham-cov tswv cuab thiab cov neeg siv-lub cav (thiab tsis yog rau cov ntawv sau, xws li kev ua haujlwm ib txwm ua raws li cov txheej txheem qub). user-engine proxies qhov kev thov rau kev sib tham-engine - thiab ntawm no tus cwj pwm nyob ntawm seb qhov kev sib tham no twb tau muab ua ke los yog tsis. Yog hais tias qhov kev sib tham tseem tsis tau muab sib sau ua ke, lub cav sib tham tsis sau cov lus rau nws tus kheej, thiab nws cov txheej txheem tsuas yog tshwm sim hauv cov ntawv nyeem nkaus xwb. Yog hais tias qhov kev sib tham twb tau muab tso rau hauv kev sib tham-lub cav, nws rov qab chat_local_id rau tus neeg siv lub cav thiab xa cov lus rau txhua tus neeg tau txais. user-engine proxies all data to text-engine - yog li yog tias muaj qee yam tshwm sim, peb tuaj yeem thim rov qab, muaj tag nrho cov ntaub ntawv tam sim no hauv lub cav qub. text-engine rov qab user_local_id, uas tus neeg siv lub cav khw muag khoom thiab rov qab mus rau qhov backend.
Rov sau VKontakte cov lus database los ntawm kos thiab muaj sia nyob
Raws li qhov tshwm sim, cov txheej txheem hloov pauv zoo li no: peb txuas cov neeg siv khoom siv cav thiab sib tham- cav pawg. chat-engine nyeem tag nrho cov tswv cuab sib tham binlog, tom qab ntawv tso cai pib raws li cov txheej txheem tau piav qhia saum toj no. Peb hloov cov ntaub ntawv qub thiab tau txais ob pawg synchronized (qub thiab tshiab). Txhua yam uas tseem tshuav yog hloov kev nyeem ntawv los ntawm cov ntawv-lub cav mus rau tus neeg siv lub cav thiab lov tes taw proxying.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

Ua tsaug rau txoj hauv kev tshiab, txhua qhov kev ntsuas kev ua tau zoo ntawm lub cav tau raug txhim kho thiab teeb meem nrog cov ntaub ntawv sib xws tau raug daws. Tam sim no peb tuaj yeem siv cov yam ntxwv tshiab hauv cov lus sai sai (thiab twb tau pib ua qhov no - peb tau nce tus naj npawb ntawm cov neeg koom nrog sib tham, siv kev tshawb nrhiav cov lus xa mus, pib cov lus pinned thiab tsa qhov txwv ntawm tag nrho cov lus ntawm ib tus neeg siv) .

Cov kev hloov hauv logic yog qhov loj heev. Thiab kuv xav kom nco ntsoov tias qhov no tsis yog ib txwm txhais tau hais tias tag nrho xyoo ntawm kev txhim kho los ntawm pab pawg loj thiab ntau txoj kab ntawm cov cai. chat-engine thiab user-engine nrog rau tag nrho cov dab neeg ntxiv xws li Huffman rau cov lus compression, Splay ntoo thiab cov qauv rau cov lus tuaj txawv teb chaws yog tsawg dua 20 txhiab kab code. Thiab lawv tau sau los ntawm 3 tus tsim tawm hauv tsuas yog 10 lub hlis (txawm li cas los xij, nws tsim nyog nco ntsoov tias tag nrho peb tsim tawm - ntiaj teb champions hauv kev ua kis las).

Ntxiv mus, es tsis txhob ua ob npaug ntawm cov servers, peb txo lawv tus lej los ntawm ib nrab - tam sim no cov neeg siv-lub cav thiab cov cav sib tham nyob hauv 500 lub tshuab lub cev, thaum lub tswv yim tshiab muaj lub taub hau loj rau kev thauj khoom. Peb txuag tau nyiaj ntau ntawm cov khoom siv - kwv yees li $ 5 lab + $ 750 txhiab toj ib xyoo hauv kev siv nyiaj.

Peb siv zog nrhiav cov kev daws teeb meem zoo tshaj plaws rau cov teeb meem nyuaj tshaj plaws thiab cov teeb meem loj. Peb muaj ntau ntawm lawv - thiab yog vim li cas peb tab tom nrhiav rau cov neeg tsim khoom muaj peev xwm hauv chav haujlwm database. Yog tias koj nyiam thiab paub daws cov teeb meem zoo li no, muaj kev paub zoo ntawm algorithms thiab cov qauv ntaub ntawv, peb caw koj los koom nrog pab pawg. Tiv tauj peb HRkom paub meej.

Txawm hais tias zaj dab neeg no tsis yog hais txog koj, thov nco ntsoov tias peb muaj txiaj ntsig cov lus pom zoo. Qhia rau ib tug phooj ywg txog developer vacancy, thiab yog tias nws ua tiav lub sijhawm sim ua tiav, koj yuav tau txais nyiaj ntxiv ntawm 100 txhiab rubles.

Tau qhov twg los: www.hab.com

Ntxiv ib saib