Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora

Ka tuhi korero a taatau kaiwhakamahi ki a raatau ano me te kore e mohio ki te ngenge.
Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora
He tino nui tera. Mena ka haere koe ki te panui i nga karere katoa a nga kaiwhakamahi katoa, ka neke ake i te 150 mano tau. Mena he kaipanui tino matatau koe, kaua e neke ake i te hekona mo ia karere.

Na te nui o nga raraunga, he mea nui kia pai te hanga o te arorau mo te penapena me te uru atu. Ki te kore, i roto i tetahi wa tino whakamiharo, ka marama pea ka hee nga mea katoa.

Mo matou, i tae mai tenei wa kotahi tau me te hawhe ki muri. Me pehea i tae mai ai matou ki tenei me nga mea i tupu i te mutunga - ka korero maatau ki a koe.

Papamuri

I te whakatinanatanga tuatahi, i mahi nga karere a VKontakte i runga i te huinga o te PHP backend me MySQL. He otinga tino noa tenei mo te paetukutuku a nga akonga iti. Heoi ano, i tipu koretake tenei pae, ka timata ki te tono kia arotautia nga hanganga raraunga mo ia ano.

I te mutunga o te tau 2009, i tuhia te putunga tuatahi o te miihini-tuhi, a, i te tau 2010 ka whakawhitia nga karere ki a ia.

I roto i te miihini-tuhi, i rongoa nga karere ki nga rarangi - he momo "pouaka reta". Ko ia rarangi ka whakatauhia e tetahi uid - te kaiwhakamahi nana enei karere katoa. He huinga huanga kei roto i te karere: te kaitautuhi korero, te tuhinga, te taapiri, me etahi atu. Ko te kaitautuhi karere kei roto i te "pouaka" he local_id, e kore e huri, ka tohatohahia mo nga karere hou. Ko nga "pouaka" he motuhake, kaore i te tukutahi ki a ratau i roto i te miihini; ka puta te whakawhitiwhiti korero i waenga i a raatau i te taumata PHP. Ka taea e koe te titiro ki te hanganga raraunga me nga kaha o te miihini-tuhi mai i roto konei.
Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora
I tino nui tenei mo nga reta korero i waenga i nga kaiwhakamahi e rua. Whakaarohia he aha i muri mai?

I te marama o Haratua 2011, i whakauru a VKontakte i nga korerorero me te maha o nga kaiuru - te korerorero-maha. Hei mahi tahi me ratou, e rua nga roopu hou i whakaarahia - nga korerorero-mema me nga mema-korero. Ko te tuatahi ka penapena raraunga mo nga korerorero a nga kaiwhakamahi, ko te tuarua ka penapena raraunga mo nga kaiwhakamahi ma nga korerorero. I tua atu i nga rarangi ake, kei roto i tenei, hei tauira, te kaiwhakamahi tono me te wa i taapirihia ki te korerorero.

"PHP, me tuku he karere ki te korerorero," ta te kaiwhakamahi.
“Haere mai, {username},” e kii ana a PHP.
Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora
He ngoikoretanga o tenei kaupapa. Ko te tukutahi tonu te kawenga a PHP. Ko nga korerorero nui me nga kaiwhakamahi e tuku karere ana ki a ratau he korero kino. I te mea ka whakawhirinaki te tauira miihini-tuhi ki te uid, ka taea e nga kaiuru korerorero te whiwhi karere kotahi i nga wa rereke. Ka taea e tetahi te noho me tenei mena ka tu tonu te ahunga whakamua. Engari e kore e puta.

I te mutunga o te tau 2015, i whakarewahia e matou nga karere hapori, a i te timatanga o te tau 2016, i whakarewahia e matou he API mo ratou. Na te taenga mai o nga chatbots nui i roto i nga hapori, ka taea te wareware ki te tohatoha kawenga.

Ko te karetao pai he maha nga miriona karere i ia ra - ahakoa ko nga kaiwhakamahi tino korero kaore e taea te whakamanamana mo tenei. Ko te tikanga ko etahi o nga ahuatanga o te miihini-tuhituhi, i noho ai aua bots, i timata te mamae rawa atu.

Ko nga miihini korero i te tau 2016 he 100 nga wa o nga mema-korero me nga korerorero-mema, me te 8000 nga miihini-tuhi. I whakahaerehia ratou i runga i te mano o nga kaitoro, me te 64 GB o te mahara. Hei mehua ohorere tuatahi, i whakanuia e matou te mahara ma tetahi atu 32 GB. I whakatau tata matou i nga matapae. Ki te kore he huringa nui, ka nui tenei mo tetahi atu tau. Me mau koe ki te pupuri taputapu, ki te arotau ranei i nga papaunga raraunga.

Na te ahua o te hoahoanga, he mea tika ki te whakanui ake i nga taputapu ki te maha. Arā, he ruarua noa iho te maha o nga motuka - ma te mohio, he huarahi utu nui tenei. Ka arotau tatou.

Te ariā hou

Ko te tino kaupapa o te huarahi hou ko te korerorero. Kei roto i te korerorero he rarangi karere e pa ana ki a ia. Kei te kaiwhakamahi te rarangi o nga korerorero.

Ko te iti rawa e hiahiatia ana ko nga papaa raraunga hou e rua:

  • miihini korero. He putunga tenei o nga vectors korerorero. Kei ia korerorero he vector o nga karere e pa ana ki a ia. Kei ia karere he tuhinga me tetahi tohu korero motuhake kei roto i te korerorero - chat_local_id.
  • miihini-kaiwhakamahi. He rokiroki tenei o nga vectors kaiwhakamahi - hononga ki nga kaiwhakamahi. Kei ia kaiwhakamahi he vector o te peer_id (nga kaikorero - etahi atu kaiwhakamahi, korero-maha, hapori ranei) me tetahi vector o nga karere. Kei ia peer_id he vector o nga karere e pa ana ki a ia. Kei ia karere he chat_local_id me tetahi ID karere ahurei mo taua kaiwhakamahi - user_local_id.

Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora
Ko nga huinga hou e korero ana ki a raatau ano ma te whakamahi i te TCP - ka whakarite kia kore e rereke te raupapa o nga tono. Ko nga tono me nga whakapumautanga mo ratou ka rekotia ki runga i te puku pakeke - kia taea ai e tatou te whakahoki i te ahua o te rarangi i nga wa katoa i muri i te korenga, te whakaara ano ranei o te miihini. I te mea ko te miihini-kaiwhakamahi me te miihini-korero he 4 mano nga maramara ia, ka tohatohahia te rarangi tono i waenga i nga tautau (engari ko te mea pono kaore rawa - a ka tere te mahi).

Ko te mahi tahi me te kopae i roto i o maatau papaa raraunga i te nuinga o te waa ka ahu mai i te huinga o te raarangi huringa-rua o nga huringa (binlog), nga whakaahua pateko me tetahi waahanga whakaahua kei roto i te mahara. Ko nga huringa o te ra ka tuhia ki te binlog, ka hangaia he whakaahua o te ahuatanga o naianei. Ko te whakaahua he kohinga o nga hanganga raraunga kua arotauhia mo o maatau kaupapa. Kei roto he pane (metaindex o te ahua) me tetahi huinga metafiles. Ko te pane kei te rongoa tuturu ki te RAM me te tohu ki hea hei rapu raraunga mai i te whakaahua. Kei roto i ia kōnae meta nga raraunga ka hiahiatia i nga wa tata—hei tauira, e pa ana ki te kaiwhakamahi kotahi. Ina patapatai koe i te patengi raraunga ma te whakamahi i te pane hopu whakaahua, ka panuihia te konae meta e hiahiatia ana, katahi ka whakaarohia nga huringa i te binlog i puta i muri i te waihangatanga o te whakaahua. Ka taea e koe te panui atu mo nga painga o tenei huarahi konei.

I te wa ano, ko nga raraunga i runga i te puku pakeke ka huri kotahi noa i te ra - i te po i Moscow, i te mea he iti te kawenga. He mihi ki tenei (ma te mohio kei te noho tonu te hanganga i runga i te kōpae puta noa i te ra), ka taea e taatau te whakakapi i nga vectors me nga raupapa o te rahi o te rahi - a na tenei, ka nui te mahara.

Ko te tuku karere i roto i te kaupapa hou he penei te ahua:

  1. Ka whakapā atu te tuara PHP ki te miihini-kaiwhakamahi me te tono ki te tuku karere.
  2. Ka tukuna e te miihini-kaiwhakamahi te tono ki te tauira miihini-korero e hiahiatia ana, ka hoki ki te miihini-kaiwhakamahi chat_local_id - he tohu motuhake o tetahi karere hou i roto i tenei korerorero. Ka tukuna e te chat_engine te karere ki nga kaiwhiwhi katoa i roto i te korerorero.
  3. Ka whiwhi te miihini-kaiwhakamahi i te chat_local_id mai i te miihini-korero ka whakahoki i te user_local_id ki te PHP - he tautohu karere ahurei mo tenei kaiwhakamahi. Ka whakamahia tenei tohu tohu, hei tauira, ki te mahi me nga karere ma te API.

Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora
Engari hei taapiri mo te tuku karere, me whakatinana etahi mea nui ake:

  • Ko nga rarangi iti, hei tauira, nga karere hou ka kitea e koe i te whakatuwheratanga o te rarangi korero. Nga karere kaore ano kia panuitia, nga karere me nga tohu ("He mea nui", "Spam", me etahi atu).
  • Kōpeke karere i roto i te pūkaha kōrerorero
  • Keteroki karere i roto i te miihini-kaiwhakamahi
  • Rapu (ma roto i nga korero katoa me roto i tetahi korero motuhake).
  • Whakahoutanga wa-tūturu (Longpolling).
  • Tiaki hitori ki te whakatinana i te keteroki ki nga kiritaki pūkoro.

Ko nga rarangi iti katoa kei te huri tere i nga hanganga. Hei mahi ki a raatau ka whakamahia e matou Nga rakau pupuhi. Ka whakamaramatia tenei whiringa na te mea kei te tihi o te rakau ka penapenahia e matou he waahanga katoa o nga karere mai i te whakaahua - hei tauira, i muri i te whakaraatanga o te po, kotahi te tihi o te rakau, kei roto nga karere katoa o te raarangi. Ko te rakau Splay he mea ngawari ki te whakauru ki waenganui o taua poki me te kore e whakaaro ki te whakataurite. I tua atu, kaore a Splay e penapena i nga raraunga kore, e whakaora ana i te mahara.

Kei roto i nga karere te nui o nga korero, ko te nuinga o nga korero, he mea pai kia taea ai te kopiri. He mea nui kia taea e tatou te whakakore tika i tetahi karere takitahi. Ka whakamahia ki te kōpeke karere Huffman algorithm me o tatou ake heuristics - hei tauira, e mohio ana tatou kei roto i nga karere ka rereke nga kupu ki te "kore-kupu" - nga waahi, nga tohu tohu - a ka mahara ano tatou ki etahi o nga ahuatanga o te whakamahi tohu mo te reo Ruhia.

I te mea he iti ake nga kaiwhakamahi i nga korerorero, hei tiaki i nga tono kōpae urunga matapōkere i roto i te miihini-korero, ka huna e matou nga karere ki te miihini-kaiwhakamahi.

Ka whakatinanahia te rapu karere hei uiui hauroki mai i te miihini-kaiwhakamahi ki nga tauira miihini-korero katoa kei roto nga korerorero a tenei kaiwhakamahi. Ko nga hua ka honohia ki te miihini-kaiwhakamahi ake.

Ana, kua whai whakaarotia nga korero katoa, ko nga mea katoa e toe ana ko te huri ki tetahi kaupapa hou - me te kore e mohio nga kaiwhakamahi.

Te hekenga raraunga

Na, kei a matou he miihini-tuhituhi e pupuri ana i nga karere a te kaiwhakamahi, me nga roopu e rua nga roopu korerorero-mema me nga mema-korero e penapena raraunga mo nga ruma korerorero maha me nga kaiwhakamahi kei roto. Me pehea te neke mai i tenei ki te miihini-kaiwhakamahi hou me te miihini-korero?

Ko nga korerorero-mema i roto i te kaupapa tawhito i whakamahia tuatahi mo te arotautanga. Ka tere te whakawhiti i nga raraunga e tika ana mai i a ia ki nga mema korerorero, katahi ka kore e uru atu ki te mahi heke.

Tutira mo nga mema korerorero. Kei roto i te 100 nga waahanga, ko te miihini korerorero he 4 mano. Hei whakawhiti i nga raraunga, me kawe e koe kia rite - mo tenei, ka wehea nga mema korerorero ki te 4 mano kape ano, katahi ka taea te panui o te binlog korerorero-mema i roto i te miihini korerorero.
Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora
Inaianei kei te mohio te miihini-korero mo nga korerorero-maha mai i nga mema-korero, engari kaore ano kia mohio ki nga korero me nga kaikorero tokorua. Ko nga korero penei kei roto i te miihini-tuhi me te tohutoro ki nga kaiwhakamahi. I konei ka mauhia e matou nga raraunga "upoko-i runga": ka patai nga miihini-korero mo nga tauira miihini-tuhi katoa mena kei a raatau nga korero e hiahiatia ana.

He rawe - e mohio ana te miihini-korero he aha nga whakawhitinga korero maha me te mohio he aha nga korerorero kei reira.
Me whakakotahi koe i nga karere i roto i nga korerorero maha-korerorero kia mutu ai koe ki te rarangi karere i ia korerorero. Tuatahi, ka tangohia e te miihini-korero mai i te miihini-kupu nga karere a nga kaiwhakamahi katoa mai i tenei korerorero. I etahi wa he maha tonu o ratou (tae atu ki nga rau miriona), engari me nga onge onge ka uru te korerorero ki roto i te RAM. Kei a matou nga karere kaore i ota, he maha nga kape o ia - inaa, ka toia katoa mai i nga tauira miihini-tuhi e pa ana ki nga kaiwhakamahi. Ko te whainga ko te whakariterite i nga karere me te whakakore i nga kape e tango ana i nga waahi kore.

Kei ia karere he tohu waahi kei roto te wa i tukuna me te tuhinga. Ka whakamahi matou i te taima mo te tohatoha - ka tuu tohutohu ki nga karere tawhito rawa atu o nga kaiuru korero maha me te whakataurite i nga tohu mai i te tuhinga o nga kape e hiahiatia ana, ka neke ki te whakanui ake i te tohu waahi. He mea arorau he rite tonu te ahua o nga kape me te tohu waahi, engari i roto i nga mahi kaore tenei i nga wa katoa. I a koe e mahara ana, ko te tukutahitanga i roto i te kaupapa tawhito i mahia e te PHP - a, i etahi wa onge, he rereke te wa o te tuku i taua karere i waenga i nga kaiwhakamahi rereke. I enei ahuatanga, i whakaae matou ki te whakatika i te tohu wa - ko te tikanga i roto i te hekona. Ko te raruraru tuarua ko te raupapa rereke o nga karere mo nga kaiwhiwhi rereke. I roto i enei ahuatanga, i whakaaetia e matou he kape taapiri kia hangaia, me nga whiringa raupapa rereke mo nga kaiwhakamahi rereke.

I muri i tenei, ka tukuna nga raraunga mo nga karere i roto i nga korero maha ki te miihini-kaiwhakamahi. Na ka tae mai he ahuatanga kino o nga karere kawemai. I roto i nga mahi noa, ko nga karere ka tae mai ki te miihini ka whakahaua kia piki ake na user_local_id. Ko nga karere i kawemai mai i te miihini tawhito ki roto i te miihini-kaiwhakamahi i ngaro tenei taonga whai hua. I te wa ano, mo te pai o te whakamatautau, me tere koe ki te uru atu ki a raatau, rapua tetahi mea i roto i a raatau me te taapiri i nga mea hou.

Ka whakamahia e matou he hanganga raraunga motuhake hei rokiroki i nga karere kawemai.

E tohu ana i te vector o te rahi Tuhia ano te paataka karere VKontakte mai i te wahanga ka orakei hea te katoa Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora - he rereke, he raupapa heke iho, me te raupapa motuhake o nga huānga. I ia wahanga me nga tohu Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora kua kōmakaia ngā huānga. Ko te rapu i tetahi huānga o taua hanganga he wa roa Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora i roto i Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora rapunga rua. Ko te taapiri o tetahi huānga ka whakahekehia Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora.

Na, i whakaaro matou me pehea te whakawhiti raraunga mai i nga miihini tawhito ki nga mea hou. Engari he maha nga ra ka roa tenei mahi - a kare pea i enei ra ka whakarerea e a maatau kaiwhakamahi te tikanga tuhi ki a raatau ano. Kia kore ai e ngaro nga karere i tenei wa, ka huri matou ki tetahi kaupapa mahi e whakamahi ana i nga tautau tawhito me nga huinga hou.

Ka tuhia nga raraunga ki nga mema korerorero me te miihini-kaiwhakamahi (kaore ano ki te miihini-tuhi, penei i te mahi noa e ai ki te kaupapa tawhito). Ka tukuna e te miihini-kaiwhakamahi te tono ki te miihini-korero - kei konei te whanonga e whakawhirinaki ana ki te mea kua hanumi kē tenei korerorero, kaore ranei. Mena kaore ano kia hanumihia te korerorero, kaore te miihini-korero e tuhi i te karere ki a ia ano, ka puta ana mahi i roto i te miihini-kuputuhi anake. Mēnā kua hanumi kē te kōrerorero ki te pūkaha kōrerorero, ka whakahokia mai te chat_local_id ki te pūkaha-kaiwhakamahi ka tukuna te karere ki ngā kaiwhiwhi katoa. Ka tukuna e te miihini-kaiwhakamahi nga raraunga katoa ki te miihini-tuhi - na mena ka pa mai tetahi mea, ka taea e taatau te huri whakamuri i nga wa katoa, kei roto katoa nga raraunga o naianei i roto i te miihini tawhito. ka hoki mai te miihini-tuhi-kaiwhakamahi-local_id, ka penapenahia e te miihini-kaiwhakamahi ka hoki ki te tuara.
Tuhia ano te paataka karere VKontakte mai i te wahanga ka ora
Ko te mutunga, he penei te ahua o te tukanga whakawhiti: ka honoa e matou nga tautau-miihini-kaiwhakamahi me nga tautau-miihini-korero. Ka panuihia e te miihini-korero te binlog katoa o nga mema korerorero, katahi ka timata te takawaenga i runga i te kaupapa kua whakaahuatia i runga ake nei. Ka whakawhitihia e matou nga raraunga tawhito ka whiwhi i nga tautau tukutahi e rua (tawhito me te hou). Ko nga mea e toe ana ko te huri i te panui mai i te miihini-kuputuhi ki te miihini-kaiwhakamahi me te whakakore i te takawaenga.

Результаты

He mihi ki te huarahi hou, kua pai ake nga inenga mahi katoa o nga miihini, kua whakatauhia nga raru mo te rite o nga raraunga. Inaianei ka tere taatau ki te whakatinana i nga ahuatanga hou i roto i nga karere (a kua timata kee ki te mahi i tenei - kua whakanuia e matou te nuinga o nga kaiuru korerorero, i whakatinanahia he rapunga mo nga karere tuku whakamua, i whakarewahia nga panui kua tohua me te whakanui i te tepe mo te tapeke o nga karere mo ia kaiwhakamahi) .

He tino nui nga huringa o te arorau. A e hiahia ana ahau ki te mohio ehara tenei i nga tau katoa o te whakawhanaketanga e te roopu nui me te tini o nga rarangi waehere. Miihini-korero me te miihini-kaiwhakamahi me nga korero taapiri katoa penei i a Huffman mo te kopiri karere, Ko nga rakau Splay me te hanganga mo nga karere kawemai he iti iho i te 20 mano rarangi waehere. Na e 3 nga kaiwhakawhanake i tuhi i roto i te 10 marama noa (engari, he mea tika kia maumahara katoa e toru kaiwhakawhanake - toa o te ao i roto i nga kaupapa hakinakina).

I tua atu, kaore i te ruarua te maha o nga kaitoro, i whakaitihia e matou te maha o te haurua - inaianei ko te miihini-kaiwhakamahi me te miihini-korero e noho ana i runga i nga miihini tinana 500, i te mea he nui te upoko o te kaupapa hou mo te utaina. He nui nga moni i penapenahia e matou mo nga taputapu - tata ki te $5 miriona + $750 mano ia tau mo nga whakapaunga whakahaere.

Ka whakapau kaha matou ki te rapu i nga otinga pai mo nga raru tino uaua me te rahi. He maha a matou - na reira e rapu ana matou mo nga kaiwhakawhanake pukenga i roto i te tari papaa raraunga. Mena he pai ki a koe me te mohio ki te whakaoti rapanga penei, he mohio pai ki nga algorithms me nga hanganga raraunga, ka tono matou kia uru mai koe ki te roopu. Whakapa atu ki a maatau HRmo nga taipitopito.

Ahakoa ehara tenei korero mo koe, me mahara mai kei te whakanui matou i nga taunakitanga. Korero ki tetahi hoa tūranga kaiwhakawhanake, a, ki te pai tana whakaoti i te wa whakamatautau, ka whiwhi koe i te bonus 100 mano rubles.

Source: will.com

Tāpiri i te kōrero