Hacker News

Fia HN: Deadlog – kloe drop-in mutex na debugging Go deadlocks

\u003ch2\u003eFia HN: Deadlog – kloe si woate ŋu atsɔ mutex aƒu gbe hena vodadawo ɖɔɖɔɖo Go deadlocks\u003c/h2\u003e \u003cp\u003eHacker News "Fia HN" nyatakaka sia tsɔ dɔ yeye alo dɔwɔnu si dɔwɔlawo wɔ na nutoa me tɔwo la ɖe go. Nusi woɖo ɖa la tsi tre ɖi na mɔ̃ɖaŋununya ƒe nu yeyewo dodo ɖe ŋgɔ kple kuxiwo gbɔ kpɔkpɔ le dɔwɔwɔ me...

6 min read Via github.com

Mewayz Team

Editorial Team

Hacker News
\u003ch2\u003eFia HN: Deadlog – kloe si woate ŋu atsɔ mutex aƒu gbe hena vodadawo ɖɔɖɔɖo Go deadlocks\u003c/h2\u003e \u003cp\u003eHacker News "Fia HN" nyatakaka sia tsɔ dɔ yeye alo dɔwɔnu si dɔwɔlawo wɔ na nutoa me tɔwo la ɖe go. Nusi woɖo ɖa la tsi tre ɖi na mɔ̃ɖaŋununya ƒe nu yeyewo dodo ɖe ŋgɔ kple kuxiwo gbɔ kpɔkpɔ le dɔwɔwɔ me.\u003c/p\u003e \u003ch3\u003eDɔa ƒe Nya Veviwo\u003c/h3\u003e \u003cp\u003eNu vevi siwo na dɔ sia ɖe dzesi:\u003c/p\u003e \u003cul\u003e \u003cli\u003eOpen-source mɔnu si doa nuwɔwɔ aduadu ɖe ŋgɔ\u003c/li\u003e \u003cli\u003eXexeme ŋutɔŋutɔ ƒe kuxiwo gbɔkpɔnu ŋutɔŋutɔ\u003c/li\u003e \u003cli\u003eMɔ̃ɖaŋununya ƒe nu yeyewo dodo ɖe ŋgɔ le kɔmpiuta dɔwɔɖoɖowo wɔwɔ me\u003c/li\u003e \u003cli\u003eNutoa me tɔwo ƒe gomekpɔkpɔ le eme kple ŋgɔyiyi si wotu ɖe nyaŋuɖoɖo dzi\u003c/li\u003e \u003c/ul\u003e \u003ch3\u003eMɔ̃ɖaŋununya ƒe Vevienyenye\u003c/h3\u003e \u003cp\u003eDɔ sia ƒomevi ɖea ŋusẽ si le ŋgɔyiyi si nutoa me tɔwo ʋãna kple mɔ̃ɖaŋununya ƒe egbɔkpɔnuwo ƒe tɔtrɔ si yia edzi to agbagbadzedze ɖekae me fiana.\u003c/p\u003e

Nyabiase Siwo Wobiana Enuenu

Nukae nye Deadlog eye aleke wòkpena ɖe ame ŋu be woaɖe Go ƒe kuxiwo ɖa?

| Ewɔa dɔ to logging lock acquisition order kple dzesidede circular dependencies siwo nana goroutines nɔa xɔxlɔ̃m ɣeyiɣi mavɔ. Le esi teƒe be nàlé ŋku ɖe dɔwɔwɔ siwo wotu ɖe tsikpe me ŋu la, èkpɔa nyatakaka siwo me kɔ siwo ɖea gaxɔ siwo tututu le ho ʋlim fiana — tsɔa gaƒoƒo geɖe ƒe asiɖeɖe le vodadawo ɖɔɖɔɖo ŋu le Go codebases sesẽ siwo le ɣeyiɣi ɖeka me dzi.

Aleke mawɔ atsɔ Deadlog awɔ ɖeka kple Go dɔ si li xoxo?

Ðekawɔwɔ le tẽ elabena wowɔ Deadlog abe nusi woatsɔ aɖo eteƒe si woate ŋu aɖiɖi kloe ene. Èɖɔlia sync.Mutex kple Deadlog ƒe mutex ƒomevi le wò kɔda me, zi geɖe la, ebia be woatrɔ mɔ si wotsɔ tso duta vɛ kple tɔtrɔ suetɔ kekeake ko. Na wòawɔ dɔ le ewɔwɔ kple dodokpɔ me, emegbe nàwɔe nuwɔametɔe le ewɔwɔ me be nàƒo asa na gazazã ɖe edzi. Le ƒuƒoƒo siwo le Go microservices geɖewo dzi kpɔm gome la, mɔ̃wo abe Mewayz ene naa modules 207 le $19/mo si ateŋu ana dɔwɔwɔ ƒe ɖoɖowo nanyo ɖe edzi kpe ɖe debugging tools abe Deadlog.

ŋu

Ðe woateŋu azã Deadlog dedie le nuwɔwɔ ƒe nɔnɔmewo mea?

Deadlog nye ŋgɔyiyi kple fefewɔƒe ƒe nɔnɔmewo koŋ. Dɔwɔnuawo tsɔa dɔwɔwɔ ƒe gazazã ɖe edzi to lock tracking kple logging me, si wɔe be mesɔ na latency-sensitive production workloads o. Mɔnu si wokafu enye be woana Deadlog nate ŋu awɔe le dodokpɔɣi eye CI pɔmpiwo nalé mɔxexeɖenu hafi woaɖo ewɔwɔ gbɔ. Ne ènya de dzesi nyaʋiʋli ƒe kuxiwo eye nèkpɔ wo gbɔ vɔ la, trɔ yi sync.Mutex ƒe ɖoɖowɔɖi si sɔ gbɔ hena dɔwɔwɔ nyuie wu.

Nukae nye nusiwo gbɔ kuxiwo tsona zi geɖe le Go me, eye aleke mawɔ axe mɔ ɖe wo nu?

Zi geɖe la, Deadlocks le Go me dona tso lock ƒe ɖoɖo si mewɔ ɖeka o, nested locks siwo woxɔ le ɖoɖo vovovowo nu, alo goroutines siwo le lalam le channel siwo mexɔa asixɔxɔwo gbeɖe o gbɔ. Mɔxexeɖedɔléle nu ƒe mɔnuwo dometɔ aɖewoe nye be woaxɔ gaƒoɖokuiwo ɣesiaɣi le xexeame katã ƒe ɖoɖo si mewɔa tɔtrɔ o nu, ɣeyiɣi ƒe nuwuwu zazã kple context.Context, kple dɔwɔnuwo abe Deadlog ene zazã hena wo kpɔkpɔ kaba. Mewayz ƒe ŋgɔyiyi modules 207, siwo ƒe home nye $19/mo, tsɔ nunɔamesiwo le Go ƒe ɣeyiɣi ɖeka me ƒe nuwɔna nyuitɔwo ŋu be woakpe ɖe ƒuƒoƒowo ŋu woatu dɔwɔwɔ sesẽ siwo me kuxi aɖeke mele o.