E mālama ʻia kahi ʻaha kūkā ma Iulai 11-12 ma St Hydra, hoʻolaʻa i ka hoʻomohala ʻana i nā ʻōnaehana like a puʻunaue. ʻO ka hana hoʻopunipuni a Hydra ʻo ia ka hoʻohui ʻana i nā ʻepekema maikaʻi (hiki ke ʻike ʻia ma nā ʻaha kūkā ʻepekema ʻē aʻe) a me nā ʻenekini hoʻomaʻamaʻa kaulana i hoʻokahi papahana nui ma ke kuʻina o ka ʻepekema a me ka hana.
ʻO Hydra kekahi o kā mākou hui nui i nā makahiki i hala. Ma mua o ka hoʻomākaukau koʻikoʻi, ke koho ʻana i nā mea haʻiʻōlelo a me nā hōʻike. ʻO ka pule i hala e pili ana i kēia puka mai ka ninaninau habro me ka luna o JUG.ru Group, Alexey Fedorov (23derevo).
Mākou haʻi mua ʻia e pili ana i ʻekolu mau mea nui, nā mea nāna i hoʻokumu i ke kumumanaʻo o nā ʻōnaehana puʻupuʻu - Leslie Lamport, Maurice Herlihy a me Michael Scott. ʻO ka manawa kēia e kamaʻilio nui ai e pili ana i ka papahana holoʻokoʻa!
Hoʻokumu
Inā ʻoe e pili ana i ka hoʻolālā ʻana, a laila e pili ana ʻoe i ka multithreading a me ka computing puʻunaue. Hana pololei nā poʻe loea i nā kahua kūpono, akā implicitly, ke nānā nei ka hoʻolaha iā mākou mai nā wahi a pau: i loko o kekahi kamepiula multi-core a i ʻole lawelawe hāʻawi ʻia aia kekahi mea e hana ana i nā helu like.
Nui nā ʻaha kūkā e uhi ana i nā ʻano like ʻole o ka hoʻolālā noi. Ma kēlā ʻaoʻao o ka spectrum, loaʻa iā mākou nā kula ʻepekema kūikawā e hōʻike ana i ka nui o ka manaʻo paʻakikī i ke ʻano haʻiʻōlelo. Eia kekahi laʻana, e like me Hydra ma St. Petersburg aia kula SPTDC. Ma ka ʻaha kūkā ʻo Hydra, ua hoʻāʻo mākou e hui pū i nā hana koʻikoʻi, ʻepekema, a me nā mea āpau ma ko lākou hui.
E noʻonoʻo e pili ana i kēia: ke ola nei mākou i kahi manawa kupaianaha e hiki ai iā ʻoe ke hālāwai kino me nā mea nāna i hoʻokumu i ka ʻepekema a me ka ʻenekinia a mākou e aʻo ai. ʻAʻole e hui nā physicists iā Newton a me Einstein - ua haʻalele ke kaʻaahi. Akā ma hope o mākou e noho mau ana ka poʻe nāna i hoʻokumu i ke kumu o ke kumumanaʻo o nā ʻōnaehana puʻupuʻu, i haku i nā ʻōlelo papahana kaulana, a no ka manawa mua i hoʻokomo i kēia mau mea āpau i ka hana prototypes. ʻAʻole i haʻalele kēia poʻe i kā lākou hana i ka hapalua, ke hana nei lākou i kēia manawa i nā pilikia koʻikoʻi i nā kulanui a me nā ʻoihana kaulana o ka honua, a ʻo lākou nā kumu nui o ka ʻike a me ka ʻike i kēia mau lā.
Ma ka ʻaoʻao ʻē aʻe, ʻo ka manawa e hālāwai ai me lākou maʻamau e noho mau ana: he kakaikahi o mākou e hiki ke nānā mau i nā hanana lehulehu ma kekahi Kulanui o Rochester, a laila holo wikiwiki i USA a hoʻi i kahi haʻiʻōlelo me Michael Scott. ʻO ke kipa ʻana i nā lālā Hydra a pau e uku ʻia kahi waiwai liʻiliʻi, ʻaʻole helu i ka hohonu o ka manawa hoʻopau ʻia (ʻoiai ke kani nei he ʻimi hoihoi).
Ma ka ʻaoʻao ʻē aʻe, loaʻa iā mākou nā mea ʻenehana kiʻekiʻe e hana nei i nā pilikia pilikia i nā ʻōnaehana hoʻolaha i kēia manawa, a he nui kā lākou e haʻi. Akā eia ka pilikia - ʻo lākou работают, a he waiwai ko lakou manawa. ʻAe, inā he limahana ʻoe o Microsoft, Google a i ʻole JetBrains, hiki i ka hiki ke hālāwai me kekahi o nā mea kamaʻilio kaulana i kahi hanana kūloko e piʻi nui ana, akā ma ka laulā, ʻaʻole, ʻaʻole hiki kēia i kēlā me kēia lā.
Ma kēia ala, hoʻokō ʻo Hydra Conference i kahi hana koʻikoʻi ʻaʻole hiki i ka hapa nui o mākou ke hana iā mākou iho - ma kahi hoʻokahi a i ka manawa hoʻokahi, e hui pū ai i nā poʻe nona nā manaʻo a i ʻole nā pilina me lākou e hiki ke hoʻololi i kou ola. Ke ʻae nei au ʻaʻole pono nā kānaka a pau i nā ʻōnaehana puʻupuʻu a i ʻole kekahi mau mea paʻakikī. Hiki iā ʻoe ke hoʻolālā i nā CRUD ma PHP no ke koena o kou ola a noho hauʻoli loa. Akā ʻo ka mea e pono ai, ʻo kou manawa kēia.
Ua hala ka manawa lōʻihi mai ka hoʻolaha mua ʻana o ka ʻaha kūkā Hydra ma Habré. I kēia manawa, nui nā hana i hana ʻia - a i kēia manawa ua loaʻa iā mākou kahi papa inoa o nā hōʻike āpau. ʻAʻohe algorithms lohi hoʻokahi-threaded, hardcore puʻupuʻu maʻemaʻe wale nō! E hoʻopau kākou me nā huaʻōlelo maʻamau a ʻike i nā mea i loaʻa iā mākou i kēia manawa.
Nā huaʻōlelo koʻikoʻi
Hoʻomaka a hoʻopau i nā lā o ka ʻaha kūkā. ʻO ka mea maʻamau ka manaʻo o kahi kī wehe e hoʻonohonoho i ka ʻuhane nui a me ke alakaʻi o ka ʻaha kūkā. ʻO ke kī hope e huki i kahi laina a wehewehe pehea e hiki ai iā mākou ke ola me ka ʻike a me nā mākau i loaʻa i ka wā o ka ʻaha kūkā. ʻO ka hoʻomaka a me ka hopena:ʻo ka mea i hoʻomanaʻo maikaʻiʻia, a ma keʻano nui, ua hoʻonui i ka manaʻo.
He moʻolelo ʻo Cliff ma ka honua Java. I ka hopena o nā makahiki 90, no kāna ʻatikala PhD, ua kākau ʻo ia i kahi pepa i kapa ʻia "Hoʻohui i nā Analyses, Hoʻohui i nā Optimizations", i kekahi manawa ma hope i lilo i kumu no HotSpot JVM Server Compiler. ʻElua mau makahiki ma hope mai, ua hana ʻo ia ma Sun Microsystems ma ka JVM a hōʻike i ka honua holoʻokoʻa he kuleana ko JIT e noho ai. ʻO kēia moʻolelo holoʻokoʻa e pili ana i ke ʻano o Java kekahi o nā manawa holo wikiwiki o kēia manawa me ka naʻauao a me ka wikiwiki loa i hele mai mai Cliff Click. I ka hoʻomaka ʻana, ua manaʻo ʻia inā hiki ke loaʻa kekahi mea i kahi mea hoʻopili static, ʻaʻole pono ʻoe e hoʻāʻo e jit. Mahalo i ka hana a Cliff a me ka hui, ua hoʻomaka ʻia nā ʻōlelo hou a pau me ka manaʻo o ka JIT compilation ma ka maʻamau. ʻOiaʻiʻo, ʻaʻole kēia he hana kanaka hoʻokahi, akā he hana koʻikoʻi loa ʻo Cliff ma ia hana.
Ma ka ʻōlelo hoʻomaka, e kamaʻilio ʻo Cliff e pili ana i kāna hana ʻē aʻe - H20, he kahua hoʻomanaʻo no ke aʻo ʻana i ka mīkini hoʻolaha a hiki ke hoʻonui ʻia no nā noi ʻoihana. A i ʻole, e pili ana i ka waiho ʻana o nā hui waiwai kī i loko. He waihona wikiwiki loa kēia me nā waiwai hoihoi (ʻo ka papa inoa pololei i loko wehewehe), ka mea e ʻae ai i ka hoʻohana ʻana i nā hoʻonā like i ka makemakika o ka streaming data nui.
ʻO kekahi hōʻike a Cliff e hāʻawi ai - Ka Azul Hardware Transactional Memory. ʻO kekahi hapa o kāna moʻolelo - he ʻumi makahiki hana ma Azul, kahi āna i hōʻano hou ai a hoʻomaikaʻi i nā mea he nui i loko o ka waihona ʻenehana Azul a me ka ʻenehana: JIT compilers, runtime, thread model, error handling, stack handling, hardware interrupts, class loading, a pēlā aku - maikaʻi, loaʻa iā ʻoe ka manaʻo.
Ua hoʻomaka ka mea hoihoi loa i ka wā i hana ai lākou i nā lako no kahi ʻoihana nui - kahi supercomputer e holo Java. He mea hou loa ia, i hoʻonohonoho pono ʻia no Java, nona nā koi kūikawā - heluhelu i nā pale hoʻomanaʻo no ka hōʻiliʻili ʻōpala haʻahaʻa, nā papa me ka nānā ʻana i nā palena, nā kelepona kelepona ... Hiki i ka L1 holoʻokoʻa o kekahi o nā cores 864 ke komo i ka palapala transactional, he mea nui loa ia no ka hana ʻana me nā laka ma Java (hiki i nā poloka synchronized ke hana like i ka wā ʻaʻohe hakakā hoʻomanaʻo maoli). Akā, ua ʻeha ka manaʻo nani i ka ʻoiaʻiʻo paʻakikī - a ma kēia kamaʻilio ʻana e haʻi ʻo Cliff iā ʻoe i ke kumu kūpono ʻole ʻo HTM a me STM no nā pono hana o ka helu helu lehulehu.
Michael Scott - Polofesa o Computer Science ma ke Kulanui o Rochester, me ka hopena i pili ia ia ua 34 makahiki, a ma kona home University of Wisconsin–Madison, he dean no ʻelima mau makahiki. ʻImi ʻo ia a aʻo i nā haumāna e pili ana i ka papahana like a puʻunaue a me ka hoʻolālā ʻōlelo.
No ka honua Java, he hihia kūikawā kēia: me Doug Lea, ua hoʻomohala ʻo ia i nā algorithms non-blocking a me nā queues synchronous kahi e hana ai nā hale waihona puke Java. ʻO kēia ka mea e pili ana i ka "Dual data structures" keynote - ka hoʻokomo ʻana o kēia mau hale i Java SE 6 ua hoʻomaikaʻi i ka hana ma 10 mau manawa. java.util.concurrent.ThreadPoolExecutor. Inā ʻoe e noʻonoʻo mua i ke ʻano o kēia mau "Dual data structures", a laila aia ka ʻike e pili ana hana pili.
Maurice Herlihy - lanakila ʻelua makana Dijkstra. ʻO ka mea mua no ka hana "Ka hoʻonohonoho ʻana me ke kali ʻole" (Brown University), a me ka lua, hou aku - "Ka Hoʻomanaʻo Kūʻai: Kākoʻo Hoʻolālā no nā Hoʻonohonoho ʻIke Laka ʻole" (Virginia Tech University). Hoʻomaopopo ka makana Dijkstra i ka hana i ʻike ʻia kona koʻikoʻi a me ka hopena no ka liʻiliʻi he ʻumi makahiki, a ʻo Maurice ʻo ia kekahi o nā loea kaulana loa ma ke kula. Ke hana nei ʻo ia ma ke ʻano he polopeka ma ke Kulanui ʻo Brown a loaʻa iā ia kahi papa inoa lōʻihi o nā hana.
Ma kēia kī kī hope, e kamaʻilio ʻo Maurice e pili ana i ke kumumanaʻo a me ka hoʻomaʻamaʻa ʻana o nā ʻōnaehana puʻupuʻu blockchain mai ka manaʻo o ka poʻe kahiko o ka puʻupuʻu puʻupuʻu a pehea e hoʻomaʻamaʻa ai i nā pilikia pili. He hōʻike wale nō kēia e pili ana i ke kumuhana o ka ʻaha kūkā - ʻaʻole loa e pili ana i ka mining hype, akā e pili ana i ke ʻano o kā mākou ʻike e hiki ke hoʻohana maikaʻi ʻia a kūpono hoʻi e pili ana i nā ʻano hana like ʻole.
I Iulai 2017, ua hele mai ʻo Maurice i Rūsia e hele i ke kula SPTDC, ua komo i ka hui JUG.ru, a hiki ke nānā ʻia ka hoʻopaʻa ʻana ma YouTube:
Papahana nui
A laila e ʻike ʻia kahi pōkole pōkole o nā hōʻike i hoʻokomo ʻia i loko o ka papahana. Ua wehewehe ʻia kekahi o nā hōʻike ma ʻaneʻi, a ʻo nā mea ʻē aʻe he pōkole. ʻO nā wehewehe lōʻihi i hele nui i nā hōʻike ʻōlelo Pelekania e koi ana i nā loulou i nā pepa ʻepekema, nā huaʻōlelo ma Wikipedia, a pēlā aku. Loaʻa ka papa inoa piha ʻike ma ka pūnaewele hālāwai kūkā. E hoʻonui hou ʻia ka papa inoa ma ka pūnaewele.
ʻO kēia ka ʻāpana ʻokoʻa loa o ka papahana ma ke ʻano o ke ʻano, no ka mea, ʻaʻole ia he hōʻike, akā he nīnau nīnau a pane. Ke kamaʻāina mua kekahi hapa nui o ka poʻe anaina (a i ʻole hiki ke kamaʻāina) i nā ʻano hana like ʻole e pili ana i ka "Lamport's theory", kāna mau ʻatikala a me nā hōʻike ponoʻī, ʻoi aku ka nui o ka hoʻolilo ʻana i nā manawa āpau ma ke kamaʻilio pololei.
ʻO ka mua o kēia mau wikiō ʻelua i loaʻa iā mākou lilo i ʻatikala habro. Inā ʻaʻohe hola o ka manawa e nānā ai i ke wikiō, hiki iā ʻoe ke heluhelu koke iā ia ma ke ʻano kikokikona.
'Ōlelo Aʻo: Nui aʻe nā wikiō Leslie Lamport ma YouTube. Eia kekahi laʻana, aia kahi nui Papa TLA+. Loaʻa kahi mana pahemo o kēia papa holoʻokoʻa ma ʻaoʻao home o ka mea kākau, a ua hoʻouka ʻo ia iā YouTube no ka maʻalahi o ka nānā ʻana ma nā polokalamu kelepona.
He kanaka noiʻi ʻo Martin Kleppmann ma ke Kulanui o Cambridge e hana ana ma CRDT a me ka hōʻoia ʻokoʻa o nā algorithms. Ka puke a Martin "Ke hoʻolālā ʻana i nā noi noiʻi ʻikepili", i paʻi ʻia i ka makahiki 2017, ua hōʻoia i ka holomua loa a ua hoʻokomo ʻia i nā papa inoa kūʻai maikaʻi loa ma ke kahua o ka mālama ʻana a me ka hana ʻana. ʻO Kevin Scott, CTO ma Microsoft, wahi a kekahi: “Pono kēia puke i mea pono e loaʻa i nā mea ʻenekinia lako polokalamu. He kumu waiwai ʻole kēia e hoʻohui i ke kumumanaʻo a me ka hoʻomaʻamaʻa e kōkua i nā mea hoʻomohala ma ka hoʻolālā ʻana a me ka hoʻokō ʻana i nā ʻōnaehana a me nā ʻōnaehana data. ʻO ka mea nāna i hana iā Kafka a me CTO o Confluent, ʻo Jay Kreps, i ʻōlelo i kekahi mea like.
Ma mua o ka neʻe ʻana i ka noiʻi hoʻonaʻauao, ua hana ʻo Martin i ka ʻoihana a hoʻokumu pū i ʻelua mau hoʻomaka kūleʻa:
Rapportive, hoʻolaʻa i ka hōʻike ʻana i ka ʻaoʻao kaiapili o nā pilina mai kāu leka uila, i kūʻai ʻia e LinkedIn ma 2012;
E ho'āʻo iā ia, kahi lawelawe no ka hoʻāʻo ʻana i nā pūnaewele ma nā ʻano polokalamu kele pūnaewele, i kūʻai ʻia e RedGate ma 2009.
Ma keʻano laulā, ua hiki iā Martin ke hāʻawi i kekahi kōkua i ka hoʻomohala ʻana i ka computing māhele a me ka ʻoihana.
Ma kēia kamaʻilio ʻana, e kamaʻilio ʻo Martin e pili ana i kahi kumuhana kokoke i kāna noiʻi kula. Ma Google Docs a me nā sofa hoʻoponopono like me nā palapala, "hoʻoponopono hui" pili i kahi hana hoʻopiʻi: aia kēlā me kēia mea hoʻohana i kā lākou kope ponoʻī o ka palapala i kaʻana like, a laila hoʻololi lākou, a hoʻouna ʻia nā hoʻololi a pau ma ka pūnaewele i ke koena o ka nā mea komo. ʻO ka hoʻololi ʻana i nā palapala pahemo ke alakaʻi i ka like ʻole no ka manawa o ka palapala e pili ana i nā mea komo ʻē aʻe, a ʻo ka hoʻonohonoho hou ʻana e pono ai ka hoʻoponopono hakakā. ʻO ia ke kumu o ko lākou ola ʻana Nā ʻano ʻikepili i hoʻopili ʻole ʻia me ka paio ʻole (CRDT), ʻoiaʻiʻo, he mea hou loa, ʻo ke ʻano o ka mea i hoʻokumu ʻia i ka makahiki 2011 wale nō. Kūkākūkā kēia kamaʻilio ʻana i nā mea i hana ʻia mai ia manawa ma ka honua o CRDT, he aha nā holomua hou loa, ke ʻano o ka hana ʻana i nā noi kūloko-mua ma ka laulā a me ka hoʻohana ʻana i kahi waihona puna Automerge i ke 'ano wae.
ʻO ka pule aʻe e hoʻolaha mākou i kahi ninaninau lōʻihi me Martin ma Habré, he mea hoihoi ia.
Ke hana nei ʻo Pedro ma Cisco a ua hoʻomohala ʻo ia i nā algorithm parallel no nā makahiki he ʻumi i hala a i ʻole, e komo pū ana me nā mīkini hoʻonohonoho, laka ʻole a kali ʻole i ka ʻikepili a me nā mea āpau āu e noʻonoʻo ai i kēia kumuhana. ʻO kāna mau noiʻi a me ka ʻenekinia i kēia manawa ke nānā aku nei i nā Universal Constructions, Software Transactional Memory, Persistent Memory a me nā ʻenehana like e hiki ai i nā noi kūpono, scalable a me ka hoʻomanawanui hewa. ʻO ia hoʻi ka mea kākau o kahi blog i ʻike nui ʻia ma nā pōʻai haiki Concurrency Freaks.
ʻO ka hapa nui o nā noi multithreaded i kēia manawa ke holo nei ma nā hale ʻikepili like, mai ka hoʻohana ʻana i nā queues memo ma waena o nā mea hana a hiki i nā hale ʻikepili i kuhikuhi ʻia i nā hale kūʻai waiwai kī. Ua hana maikaʻi lākou i ka Java JDK no nā makahiki he nui, a ke hoʻohui lohi nei lākou i C++.
ʻO ke ala maʻalahi loa e hoʻokō ai i kahi hoʻolālā data parallel kahi hoʻokō sequential (hoʻokahi-threaded) kahi e pale ʻia ai nā ala e nā mutexes. Hiki ke loaʻa kēia i kēlā me kēia Iune, akā loaʻa nā pilikia me ka scaling a me ka hana. I ka manawa like, ʻaʻole ʻoi aku ka maikaʻi o ka hoʻopaʻa ʻana o nā ʻikepili i ka laka ʻole a me ka kali ʻole, akā, ʻoi aku ka maikaʻi o ka hana - akā naʻe, pono ko lākou ulu ʻana i ka ʻike hohonu a me ka hoʻololi ʻana i kahi noi kikoʻī. Hoʻokahi laina hewa o ke code ua lawa ia e wāwahi i nā mea a pau.
Pehea e hiki ai iā mākou ke hana i hiki i kahi mea ʻike ʻole ke hoʻolālā a hoʻokō i ia mau ʻano ʻikepili? Ua ʻike ʻia e hiki ke hoʻopaʻa ʻia kekahi algorithm sequential me ka hoʻohana ʻana i kekahi hoʻolālā honua, a i ʻole ka hoʻomanaʻo hoʻomanaʻo. Hoʻokahi mea, hiki iā lākou ke hoʻohaʻahaʻa i ka pale i ke komo ʻana i ka hoʻoponopono ʻana i kēia pilikia. Eia naʻe, alakaʻi maʻamau nā hoʻonā ʻelua i ka hoʻokō pono ʻole. E kamaʻilio ʻo Pedro e pili ana i kā lākou hana ʻana i kēia mau hoʻolālā i ʻoi aku ka maikaʻi a pehea ʻoe e hoʻohana ai iā lākou no kāu algorithms.
ʻO Heidi Howard, e like me Martin, he mea noiʻi ʻōnaehana hoʻolaha ma ke Kulanui o Cambridge. ʻO kāna mau mea kūikawā he kūlike, ka hoʻomanawanui hewa, ka hana a me ka ʻae like ʻana. ʻIke ʻia ʻo ia no kāna hoʻolaha ʻana i ka algorithm Paxos i kapa ʻia Paxos hikiwawe.
ke hoole i ka mea Paxos he ʻohana o nā protocols no ka hoʻoponopono ʻana i ka pilikia o ka ʻae ʻana i loko o kahi pūnaewele o nā kamepiula hilinaʻi ʻole, e pili ana i ka hana a Leslie Lamport. No laila, ke hana nei kekahi o kā mākou mea haʻi'ōlelo i nā pilikia i hoʻopuka mua ʻia e kā mākou mau mea haʻi'ōlelo - a he mea kupanaha kēia.
ʻO ka hiki ke loaʻa ka ʻae ʻana ma waena o nā pūʻali lehulehu-no ka kamaʻilio ʻana, ke koho alakaʻi, ka hoʻopaʻa ʻana, a i ʻole ka hoʻonohonoho ʻana-he pilikia koʻikoʻi i nā ʻōnaehana hoʻolaha hou. ʻO Paxos ke ala nui e hoʻoponopono ai i nā pilikia consensus, a he nui nā noiʻi e holo nei a puni ia e hoʻonui a hoʻonui i ka algorithm no nā pono hana like ʻole.
Ma kēia kamaʻilio ʻana, e nānā hou mākou i ke kumu kumu o Paxos, hoʻomaha i nā koi kumu a hoʻonui i ka algorithm. E ʻike mākou he hoʻokahi wale nō koho ʻo Paxos ma waena o ka nui o nā ala ʻae like ʻole, a ʻo nā mea ʻē aʻe o ka spectrum he mea pono loa no ke kūkulu ʻana i nā ʻōnaehana puʻupuʻu maikaʻi.
He loea ʻo Alex i ka ʻikepili a me nā ʻōnaehana mālama, a ʻoi aku ka mea nui iā mākou, he committer i loko Cassandra. Ke hana nei ʻo ia ma kahi puke, Database Internals, me O'Reilly.
No nā ʻōnaehana me hoʻopaʻapaʻa hope (ma ka hua'ōlelo Lūkini - "kūpono hope"), ma hope o ka hāʻule ʻana o kahi node a i ʻole ka wehe ʻana i ka pūnaewele, pono ʻoe e hoʻoponopono i kēia pilikia: a i ʻole e hoʻomau i ka hoʻokō ʻana i nā noi, e kaumaha ana i ke kūpaʻa, a i ʻole e hōʻole i ka hoʻokō ʻana iā lākou a hāʻawi i ka loaʻa. I loko o ia ʻōnaehana, nā kōruma, nā ʻāpana ʻāpana o nā node a me ka hōʻoia ʻana i ka liʻiliʻi o hoʻokahi node i ka waiwai hou loa, hiki ke lilo i mea hoʻonā maikaʻi. Hiki iā ʻoe ke ola i nā hemahema a me ka nalowale o ka pili ʻana i kekahi mau nodes ʻoiai e hoʻomau ana i ka pane ʻana me nā waiwai hou loa.
Eia naʻe, aia nā mea a pau i kona kumukūʻai. ʻO ke ʻano o ka hoʻopiʻi ʻana o ke kōrum, ʻo ia ka hoʻonui ʻia ʻana o nā kumukūʻai: pono e mālama ʻia nā ʻikepili ʻokoʻa ma nā node he nui i ka manawa hoʻokahi e hōʻoia i ka nui o nā kope i loaʻa ke loaʻa kahi pilikia. ʻIke ʻia ʻaʻole pono ʻoe e mālama i nā ʻikepili āpau ma nā replicas a pau. Hiki iā ʻoe ke hoʻemi i ka ukana ma ka waiho ʻana inā mālama ʻoe i ka ʻikepili ma kahi hapa o nā nodes, a hoʻohana i nā nodes kūikawā (Transient Replica) no ka mālama ʻana i nā hiʻohiʻona.
He mea hoʻomohala ʻo Dmitry ma Google e hana ana i ka hoʻāʻo ikaika no C/C++ a me Go - Address/Memory/ThreadSanitizer, a me nā mea hana like no ka kernel Linux. Hāʻawi ʻia iā Go kahi mea hoʻonohonoho goroutine hiki ke hoʻonui ʻia, kahi poller pūnaewele, a me kahi ʻohi ʻōpala like. He loea ʻo ia i ka multithreading, ka mea kākau o nā kakini hou non-blocking algorithms a ʻo ia ka mea nona Kāʻei ʻeleʻele Intel.
I kēia manawa e pili ana i ka hōʻike ponoʻī. Loaʻa i ka ʻōlelo Go ke kākoʻo maoli no ka multithreading ma ke ʻano o nā goroutine (nā lola māmā) a me nā ala (FiFO queues). He mea maʻalahi a leʻaleʻa kēia mau hana i nā mea hoʻohana e kākau i nā noi multi-threaded hou, a ua like ia me ke kilokilo. E like me kā mākou hoʻomaopopo ʻana, ʻaʻohe kupua ma ʻaneʻi. Ma kēia kamaʻilio ʻana, e komo ʻo Dmitry i nā mea paʻakikī o ka Go scheduler a hōʻike i nā mea huna o ka hoʻokō ʻana i kēia "magic". ʻO ka mea mua, e hāʻawi ʻo ia i kahi ʻike o nā mea nui o ka mea hoʻonohonoho a haʻi iā ʻoe pehea e hana ai. Ma hope aʻe, e nānā pono mākou i nā ʻano like ʻole e like me ka hoʻolālā kaʻa / unparking a me ka mālama ʻana i nā kelepona ʻōnaehana pale. ʻO ka hope, e kamaʻilio liʻiliʻi ʻo Dmitry e pili ana i ka hoʻomaikaʻi ʻana i ka mea hoʻonohonoho.
Ua hana ʻo Dmitry i ka outsourcing no ka aneane 9 mau makahiki me ka nalowale ʻole o ka pilina me ke kulanui a me ke kaiāulu ʻepekema. ʻO kaʻikepiliʻikepili nui ma Odnoklassniki i lilo iā ia i manawa kūʻokoʻa e hoʻohui i ka hoʻomaʻamaʻa theoretical a me ke kahua ʻepekema me ka hoʻomohala ʻana i nā huahana maoli.
He hana paʻakikī ka hoʻokaʻawale ʻana i ka pakuhi: i ka wā e pono ai ka loaʻa ʻana o ka ʻike e pili ana i nā pilina o kahi vertex e pili ana, pono e hoʻoili pinepine ʻia ka ʻikepili ma waena o nā mīkini, kahi e hoʻonui ai i ka manawa hoʻokō a me ka hoʻouka ʻana i ka ʻoihana pūnaewele. Ma kēia kamaʻilio ʻana, e ʻike mākou pehea e hiki ai iā ʻoe ke loaʻa ka wikiwiki o ka hoʻoili ʻana ma o ka hoʻohana ʻana i nā hoʻolālā ʻikepili probabilistic a i ʻole nā ʻoiaʻiʻo e like me ka symmetry o ka pakuhi hoaloha ma kahi ʻoihana pūnaewele. Hōʻike ʻia kēia mau mea āpau me nā hiʻohiʻona code ma Apache Spark.
Denis - mea hoʻomohala ʻO Kosmos DB, he loea i ka nānā ʻana i nā hiʻohiʻona kūlike, nā algorithm consensus, a me nā kālepa puʻupuʻu. Ke hana nei ʻo ia ma Microsoft, a ma mua o ia hana ʻo ia i nā ʻōnaehana puʻupuʻu ma Amazon a me Yandex.
Ma kēia kamaʻilio ʻana, e nānā mākou i nā kaʻina hana i hoʻokaʻawale ʻia i hana ʻia i nā makahiki i hala iho nei, hiki ke hoʻokō ʻia ma ka ʻaoʻao o ka mea kūʻai aku ma luna o kekahi hale kūʻai ʻikepili e kākoʻo ana i ka hoʻoponopono kūlana (hoʻohālikelike a hoʻonohonoho). ʻO ka laina lalo, ʻaʻole i pau ke ola me kahi hana ʻelua-phase, hiki ke hoʻohui ʻia nā hana ma luna o nā waihona - ma ka pae noi, akā ʻo nā protocols ʻokoʻa (2PC, Percolator, RAMP) he mau kālepa ʻokoʻa a ʻaʻole hāʻawi ʻia iā mākou. no ka manuahi.
Alexei (zaleslaw) he ʻōlelo lōʻihi a he lālā o nā komite papahana ma nā ʻaha kūkā ʻē aʻe. Hoʻomaʻamaʻa i ka mea hoʻomaʻamaʻa ma EPAM Systems, a ua hoa aloha ʻo ia me Hadoop/Spark a me nā ʻikepili nui ʻē aʻe mai 2012.
Ma kēia kamaʻilio ʻana, e kamaʻilio ʻo Alexey e pili ana i nā pilikia o ka hoʻololi ʻana i nā algorithm aʻo mīkini maʻamau no ka hoʻokō ʻana ma ke ʻano puʻupuʻu e pili ana i kāna ʻike hana me Apache Spark ML, Apache Mahout, Apache Flink ML a me ka ʻike o ka hana ʻana i ka Apache Ignite ML. E kamaʻilio pū ʻo Alexey e pili ana i ka hoʻokō ʻana i nā algorithms ML i hāʻawi ʻia i kēia mau ʻano.
A ʻo ka hope, ʻelua mau hōʻike mai Yandex e pili ana i ka Yandex Database.
He mea hoʻomohala ʻo Vladislav ma Yandex i ka pūʻulu platform i hoʻolaha ʻia. ʻO Yandex Database kahi DBMS hiki ke hoʻopaʻa ʻia, hoʻokaʻawale ʻia, hoʻomanawanui hewa i hiki ke kū i ka hemahema o nā disks, servers, racks and data centers me ka ʻole o ka nalowale ʻana. No ka hōʻoia ʻana i ka hoʻomanawanui hewa, hoʻohana ʻia kahi algorithm proprietary no ka hoʻokō ʻana i ka manaʻo like ʻole, a me kekahi mau ʻenehana loea, i kūkākūkā ʻia i loko o ka hōʻike. He mea hoihoi paha ka hōʻike i nā mea hoʻomohala DBMS a me nā mea hoʻomohala o nā hoʻonā noi ma muli o DBMS.
He mea hoʻomohala ʻo Semyon i ka pūʻulu platform i hāʻawi ʻia ma Yandex, e hana ana i ka hiki ke hoʻohana ʻia nā mea hoʻolimalima he nui o ka hoʻonohonoho YDB.
Hoʻolālā ʻia ʻo Yandex Database no nā nīnau OLTP a hoʻokō i nā koi ACID no kahi ʻōnaehana transactional. Ma kēia hōʻike, e noʻonoʻo mākou i ka algorithm scheduling transaction i lalo o ka ʻōnaehana kālepa YDB. E nānā i nā hui e komo i nā kālepa, nāna e hāʻawi i ka hoʻonohonoho honua i nā kālepa, pehea e hoʻokō ʻia ai ka atomicity kālepa, hilinaʻi, a me kahi pae koʻikoʻi o ke kaʻawale. Ke hoʻohana nei i kahi pilikia maʻamau ma ke ʻano he laʻana, e nānā i nā hoʻokō kālepa me ka hoʻohana ʻana i nā hana ʻelua-phase a me nā hana hoʻoholo. E kūkākūkā kākou i ko lākou ʻokoʻa.
He aha ka mea e hiki mai ana?
Ke hoʻomau nei ka hoʻopiha ʻana o ka papahana ʻaha kūkā me nā hōʻike hou. ʻO ka mea nui, manaʻo mākou i kahi hōʻike mai Nikita Koval (ndkoval) mai JetBrains a Oleg Anastasyev (m0nstermind) mai ka hui Odnoklassniki. Hana ʻo Nikita ma nā algorithms no nā coroutines i ka hui Kotlin, a hoʻomohala ʻo Oleg i ka hoʻolālā a me nā hoʻonā no nā ʻōnaehana kiʻekiʻe i ka paepae Odnoklassniki. Eia kekahi, aia he 1 wahi hakahaka hou aku, ke hana nei ke komite papahana me na moho i keia manawa.
E mālamaʻia kaʻaha kūkā Hydra ma Iulai 11-12 ma St. Loaʻa nā tiketi kūʻai ma ka pūnaewele official. E ʻoluʻolu e nānā i ka loaʻa ʻana o nā tiketi Online - inā no kekahi kumu ʻaʻole hiki iā ʻoe ke hele i St. Petersburg i kēia mau lā.