{"id":417523,"date":"2024-06-30T01:37:09","date_gmt":"2024-06-30T01:37:09","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=417523"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-30T01:37:09","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=417523","title":{"rendered":"<span>\u041d\u0438\u0447\u0442\u043e. \u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0438\u0447\u0435\u0433\u043e, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0439 \u0432\u0432\u043e\u0434 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e \u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 Facebook<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0410\u0432\u0442\u043e\u0440 \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u044c \u043b\u044e\u0434\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u0438 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u0442\u044c\u0438:<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habr.com\/post\/593167\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/na\/qc\/vu\/naqcvuxzlpy1xprxuennekhll3c.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/na\/qc\/vu\/naqcvuxzlpy1xprxuennekhll3c.jpeg\" data-blurred=\"true\"\/><\/a><\/p>\n<p>  <\/p>\n<p>\u0418 \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u041c\u0430\u0445\u0435\u0448\u0443 \u0411\u0430\u043b\u0430\u043a\u0440\u0438\u0448\u043d\u0430\u043d\u0443, \u043a \u0447\u0438\u0441\u043b\u0443 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0441\u044f:<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habr.com\/post\/593167\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/3r\/xy\/rd\/3rxyrdxn1l-lrhxpzfd4quvg2ju.png\" data-src=\"https:\/\/habrastorage.org\/webt\/3r\/xy\/rd\/3rxyrdxn1l-lrhxpzfd4quvg2ju.png\"\/><\/a><\/p>\n<p>  <\/p>\n<h1>\u041d\u0438\u0447\u0442\u043e \u043a\u0430\u043a \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434<\/h1>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p>\u041a\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0448\u0438\u0442\u044c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438<\/a> \u0432 \u043e\u0431\u0449\u0435\u043c \u0432\u0438\u0434\u0435? \u0427\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\u0430\u043f \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0443\u0431\u0438\u0439\u0446\u044b \u0433\u0443\u0433\u043b\u0430 \u0441 \u0431\u044e\u0434\u0436\u0435\u0442\u043e\u043c $100k? \u0427\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u0434\u0435\u0448\u0435\u0432\u043b\u0435, \u0447\u0435\u043c \u043c\u043e\u043d\u043e\u043b\u0438\u0442? \u041a\u0430\u043a\u0430\u044f \u0411\u0414 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_CAP\" rel=\"nofollow noopener noreferrer\">\u0442\u0435\u043e\u0440\u0435\u043c\u044b CAP<\/a>? \u0427\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u0432\u0437\u0430\u0438\u043c\u043d\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0430\u0449\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430? \u0417\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c: \u041d\u0438\u0447\u0442\u043e \u2014 \u0441\u0430\u043c\u044b\u0439 \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 IT, \u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043a\u043e\u0440\u043e\u043d\u043e\u0432\u0438\u0440\u0443\u0441\u0430 \u0432\u043e\u0437\u043d\u0438\u043a \u043e\u0441\u0442\u0440\u044b\u0439 \u0434\u0435\u0444\u0438\u0446\u0438\u0442 \u043a\u0430\u0434\u0440\u043e\u0432, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e.<\/p>\n<p>  <\/p>\n<p>\u0412\u044b \u043d\u0435 \u0443\u043c\u0435\u0435\u0442\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c? \u0422\u043e\u0433\u0434\u0430 \u0432\u044b \u0432 \u043f\u0440\u043e\u043b\u0451\u0442\u0435, \u0440\u044b\u043d\u043a\u0443 \u043d\u0443\u0436\u043d\u044b \u043b\u044e\u0434\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043c\u0435\u044e\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e. \u0420\u044b\u043d\u043e\u043a \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043b\u044e\u0434\u044f\u0445 \u0441 \u0431\u043e\u0433\u0430\u0442\u044b\u043c \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u0438 \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0440\u0435\u043f\u0443\u0442\u0430\u0446\u0438\u0435\u0439, \u0441\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043d\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u0438\u0449\u0443\u0449\u0438\u043c \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043c\u0435\u043d\u044f\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0440\u044b\u043d\u043a\u0430. \u042d\u0442\u043e\u0442 \u0441\u043f\u0440\u043e\u0441 \u043d\u0435 \u0431\u0435\u0437\u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043d: \u043d\u0438\u0447\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u043e\u0435 \u043f\u0440\u043e\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0434 \u043c\u043d\u043e\u0433\u0438\u043c\u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438, \u0432\u0435\u0434\u044c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043d\u0438\u0447\u0442\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0441\u043c\u044b\u0441\u043b\u0435 \u0432\u0435\u0440\u043e\u0443\u0447\u0435\u043d\u0438\u0435 Agile \u0438\u0434\u0435\u0442 \u0440\u0443\u043a\u0430 \u043e\u0431 \u0440\u0443\u043a\u0443 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0435\u043b\u0438\u0433\u0438\u044f\u043c\u0438 \u0438 \u0441 \u043d\u0438\u0447\u0435\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u043e\u0435\u0439 \u0446\u0435\u043b\u044c\u044e \u043d\u0435 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0442\u0430\u043c \u043c\u0430\u043b\u043e\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0448\u0442\u0443\u043a\u0438, \u0430 \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 (\u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044f). \u041a\u0430\u043a \u0442\u0430\u043c \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0437\u0430\u043f\u043e\u0432\u0435\u0434\u0438 Agile: &#171;Customer satisfaction by early and continuous delivery of valuable software&#187;. \u041f\u043e\u0437\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439 \u2014 \u044d\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0444\u0438\u0447\u0430 \u043c\u043e\u0435\u0433\u043e \u043d\u0438\u0447\u0435\u0433\u043e, \u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0441\u0432\u043e\u0439 \u0441\u043e\u0444\u0442, \u0438 \u0442\u0430 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0435\u0433\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u043d\u043e\u0448\u0443, \u0437\u043d\u0430\u0447\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0441\u0430\u043c \u0441\u043e\u0444\u0442. \u0423 \u0447\u0435\u0433\u043e-\u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438, \u043d\u043e \u0443 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043e \u043c\u043d\u0435 \u0441\u0430\u043c\u043e\u043c \u2014 \u0432\u043e\u0442 \u043e\u043d\u0430, \u0441\u0432\u043e\u0431\u043e\u0434\u0430 \u0442\u0432\u043e\u0440\u0446\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043c\u0438\u0440.<\/p>\n<p>  <\/p>\n<h1>\u041c\u0438\u043d\u0443\u0442\u043a\u0430 \u043f\u0440\u043e\u043f\u043e\u0432\u0435\u0434\u0438<\/h1>\n<p>  <\/p>\n<p>&#171;\u041a\u0443\u0434\u0430 \u0438\u0434\u0435\u043c \u043c\u044b \u0441 \u043f\u044f\u0442\u0430\u0447\u043a\u043e\u043c? \u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0435\u043a\u0440\u0435\u0442. \u0410 \u0441\u043c\u044b\u0441\u043b \u0436\u0438\u0437\u043d\u0438 \u043d\u0430\u0448\u0435\u0439 \u0432 \u0447\u0435\u043c? \u0410 \u0441\u043c\u044b\u0441\u043b\u0430 \u0432 \u0436\u0438\u0437\u043d\u0438 \u043d\u0435\u0442&#187;. \u041a\u0443\u043b\u044c\u0442\u0443\u0440\u0430 \u0418\u043d\u0434\u0438\u0438, \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0442\u0430\u0440\u0435\u0439\u0448\u0438\u0445 \u0446\u0438\u0432\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0417\u0435\u043c\u043b\u0438, \u0442\u0435\u0441\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u043b\u0435\u0442\u0435\u043d\u0430 \u0441 \u0440\u0435\u043b\u0438\u0433\u0438\u0435\u0439 \u0438 \u0434\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e \u043f\u0440\u0438\u0448\u043b\u0430 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e &#171;\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f&#187; \u0438 &#171;\u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f&#187;: \u043d\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u043d\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u043d\u0435\u0442 \u0446\u0435\u043b\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0438 \u043d\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u043e\u0441\u0442\u0438 (\u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0430\u043c\u0451\u0431\u044b \u043a\u043b\u0435\u0442\u043a\u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u0435\u0435); \u043d\u0435\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e \u2014 \u044d\u0442\u043e \u0441\u043c\u0435\u0440\u0442\u044c, \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0435 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0436\u0435, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0437 \u043d\u0438\u0447\u0435\u0433\u043e \u0432\u044b\u0434\u0443\u043c\u0430\u0442\u044c \u0446\u0435\u043b\u0438, \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f, \u0447\u0442\u043e \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0444\u043e\u043b\u044c\u043a\u043b\u043e\u0440\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &#171;\u043d\u0435 \u0431\u044b\u043b\u043e \u0443 \u0431\u0430\u0431\u044b \u0445\u043b\u043e\u043f\u043e\u0442, \u0442\u0430\u043a \u043a\u0443\u043f\u0438\u043b\u0430 \u0431\u0430\u0431\u0430 \u043f\u043e\u0440\u043e\u0441\u044f&#187;. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430? \u0418\u0434\u0443\u0449\u0430\u044f \u0432\u0440\u0430\u0437\u043d\u043e\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u044b\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0442\u0445\u043e\u0434\u043e\u0432 \u0438 \u043f\u0440\u0435\u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u0441\u0447\u0430\u0441\u0442\u044c\u044f \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0438 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c \u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u0445\u043e\u0434\u043e\u0432 \u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u0438\u0442\u044c\u0441\u044f. \u041d\u043e \u0432\u044b \u0436\u0435 \u043d\u0435 \u0441\u043a\u0430\u0436\u0435\u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0435\u0442\u0435 \u0430\u0439\u0444\u043e\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0443\u0441\u043e\u0440\u0430 \u043d\u0430 \u0437\u0435\u043c\u043b\u0435? \u041d\u0435\u0442, \u0432\u044b \u0441\u043a\u0430\u0436\u0435\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 &#171;\u044f \u0445\u043e\u0447\u0443 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c&#187;, \u0438\u043b\u0438 \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0434\u0440\u0443\u0433\u0443\u044e \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0438\u0446\u0443, \u0432\u0440\u043e\u0434\u0435 &#171;\u044d\u0442\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f&#187;. \u041e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0432\u043e\u043b\u043d\u0443\u0435\u0442, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0430\u043a\u0430\u044f \u0436\u0438\u0437\u043d\u044c \u0431\u044b\u043b\u0430 \u0431\u044b \u0441\u043a\u0443\u0447\u043d\u0430, \u0434\u0430 \u0438, \u043a \u0442\u043e\u043c\u0443 \u0436\u0435, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u043b\u0443\u0447\u0448\u0435 \u0442\u043e, \u0447\u0442\u043e \u044f \u0441\u0447\u0438\u0442\u0430\u044e \u043b\u0443\u0447\u0448\u0438\u043c.<\/p>\n<p>  <\/p>\n<p>\u0418\u043d\u0434\u0443\u0441\u044b \u043e\u0434\u043d\u0438\u043c\u0438 \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u0441\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0438, \u043a\u0430\u043a \u043a\u043e\u043c\u043c\u0435\u0440\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u043e\u0435 \u0438 \u043d\u0435\u043e\u0449\u0443\u0449\u0430\u0435\u043c\u043e\u0435, \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u044f\u043c\u0438, \u0437\u0430\u0434\u043e\u043b\u0433\u043e \u0434\u043e \u0438\u0443\u0434\u0435\u0435\u0432 \u0438 \u0445\u0440\u0438\u0441\u0442\u0438\u0430\u043d. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0432\u0435\u0449\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u0442\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0446\u0435\u043d\u043d\u044b\u043c\u0438, \u0447\u0435\u043c \u043e\u0449\u0443\u0449\u0430\u0435\u043c\u044b\u0435 \u0432\u0435\u0449\u0438, \u0430 \u044d\u0444\u0435\u043c\u0435\u0440\u043d\u043e\u0435 \u0447\u0443\u0434\u043e \u0442\u044b\u0441\u044f\u0447\u0430\u043c\u0438 \u043b\u0435\u0442 \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438\u043c \u0442\u0430\u0438\u043d\u0441\u0442\u0432\u043e\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u0443\u0441\u0442\u0430\u0432\u0448\u0435\u0433\u043e \u043e\u0442 \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0431\u044b\u0442\u0438\u044f.<\/p>\n<p>  <\/p>\n<h1>\u041d\u043e \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u041f\u041e<\/h1>\n<p>  <\/p>\n<p>\u0412 <a href=\"https:\/\/habr.com\/en\/post\/587750\/\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u044f \u043d\u0430\u043f\u043b\u0435\u0432\u0430\u043b \u043d\u0430 \u043e\u043f\u044b\u0442 \u0442\u044b\u0441\u044f\u0447\u0435\u043b\u0435\u0442\u0438\u0439 \u0438 \u043d\u0430\u0438\u0432\u043d\u043e \u0432\u044b\u0441\u043a\u0430\u0437\u0430\u043b \u0433\u043b\u0443\u043f\u043e\u0441\u0442\u044c, \u0441\u043c\u044b\u0441\u043b \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0447\u0435\u043d\u044c \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u043e\u0439: \u043d\u0438\u0447\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u0443\u0447\u0448\u0435 ZooKeeper. \u0414\u0430, \u043f\u0440\u0438\u0437\u043d\u0430\u044e: \u043d\u0438\u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u0443\u0447\u0448\u0435 ZooKeeper. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0432 \u043d\u0438\u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435, \u0430 \u043e\u0441\u0442\u0430\u0432\u0430\u044f\u0441\u044c \u0441 ZooKeeper \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u044c \u0441\u0442\u0430\u0440\u0443\u044e \u0443\u043d\u044b\u043b\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0411\u0438\u0437\u043d\u0435\u0441 \u0445\u043e\u0447\u0435\u0442 \u0432\u044b\u0448\u0435, \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0441\u0438\u043b\u044c\u043d\u0435\u0435, \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u0430\u043c\u0438, \u0438 \u0432\u0430\u0448\u0430 \u043e\u0431\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u044c, \u043a\u0430\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u2014 \u044d\u0442\u0443 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442 \u0434\u0443\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u043c\u0443 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0432\u0435\u0442\u0430\u043d\u0438\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e? \u0412\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0443\u0431\u0435\u0434\u0438\u0442\u044c, \u0447\u0442\u043e \u0431\u0435\u0437 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u043d \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0436\u0438\u0442\u044c \u0438 \u0434\u043d\u044f. \u0418 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c \u0441\u0435\u0431\u044f \u0432 \u0442\u043e\u043c, \u0442\u043e \u0432\u0430\u0448\u0435 \u043d\u0438\u0447\u0442\u043e \u043a\u043e\u043c\u0443-\u0442\u043e \u043d\u0443\u0436\u043d\u043e. \u041a\u043e\u0433\u0434\u0430 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0443 \u0431\u0438\u0437\u043d\u0435\u0441\u0430\/\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0442\u043e \u0432\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0443\u0431\u0435\u0434\u0438\u0442\u044c \u0435\u0433\u043e, \u0447\u0442\u043e \u043d\u0438\u0447\u0442\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0441\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043d\u0430 Kafka, Hadoop, \u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445. \u041e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u044b \u0432\u0441\u0435, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0434\u043e\u0433\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043d\u0434\u0443\u0441 \u0441\u0442\u0430\u043b \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c Microsoft \u2014 \u043c\u0443\u0434\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0439, \u0432\u044a\u0435\u0432\u0448\u0443\u044e\u0441\u044f \u0432 \u0433\u0435\u043d\u044b, \u043d\u0435 \u043f\u0440\u043e\u043f\u044c\u0435\u0448\u044c, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0413\u0435\u0439\u0442\u0441 \u0438\u043b\u0438 \u0411\u0430\u043b\u043c\u0435\u0440 \u043d\u0435 \u0433\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u043e\u0434\u043c\u0451\u0442\u043a\u0438 \u0421\u0430\u0442\u044c\u0435.<\/p>\n<p>  <\/p>\n<h1>\u041a\u0430\u043a Facebook \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0438\u0447\u0442\u043e<\/h1>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0432\u0430\u0441 \u0437\u043d\u0430\u044e\u0442, \u043d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e Facebook \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0440\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0435\u043c\u0443 \u0433\u0443\u0440\u0443, \u043e\u043f\u044b\u0442\u043d\u043e\u043c\u0443 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u041c\u0430\u0445\u0435\u0448\u0443 \u0411\u0430\u043b\u0430\u043a\u0440\u0438\u0448\u043d\u0430\u043d, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0432\u043e\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441 ZooKeeper \u043d\u0430 \u043d\u043e\u0432\u043e\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0435:<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/engineering.fb.com\/2019\/06\/06\/data-center-engineering\/delos\/\" rel=\"nofollow noopener noreferrer\">Rethinking monolithic system design<\/a><\/p>\n<blockquote><p>&#8230;we needed durability, strong consistency, and high availability. We also needed a rich and flexible API:\u2026 a relational model with support for transactions, secondary indices, and range queries,\u2026 other APIs, such as hierarchical namespaces and queues. In addition, each use case demanded different performance and reliability guarantees. Finally, we needed to incrementally develop and deploy the system over a staggered timeline: We needed to deploy the system within a few months\u2026 we also needed to support the high transaction rates and low latency&#8230;<\/p><\/blockquote>\n<p>  <\/p>\n<p>\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c, \u0441\u0442\u0440\u043e\u0433\u0430\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438, \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0430\u044f \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0444\u043e\u0440\u043c\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 API \u2014 \u0438 \u0432\u0441\u0451 \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u043a\u0430\u0447\u0435\u043d\u043e \u0432 \u043f\u0440\u043e\u0434 \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432. \u042d\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041d\u0438\u0447\u0435\u0433\u043e: <a href=\"https:\/\/research.fb.com\/wp-content\/uploads\/2020\/11\/Virtual-Consensus-in-Delos.pdf\" rel=\"nofollow noopener noreferrer\">Virtual Consensus in Delos<\/a>. \u0414\u0435\u0442\u0430\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u2014 \u044f \u0441\u0434\u0435\u043b\u0430\u044e \u043b\u0438\u0448\u044c \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bd\/fu\/qo\/bdfuqojzhrog6qqwotiph93cqhc.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bd\/fu\/qo\/bdfuqojzhrog6qqwotiph93cqhc.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u043e\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (Database \u0432 \u0441\u0442\u0430\u0442\u044c\u0435) \u2014 \u0444\u0438\u0433\u043e\u0432\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430 \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u043e \u0435\u0441\u0442\u044c, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u0432\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041f\u0435\u0440\u0432\u0430\u044f \u043a\u0440\u0443\u043f\u043d\u0430\u044f \u0411\u0414 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, Google Chubby, \u0432\u0441\u0435\u043c \u0441\u0432\u043e\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043f\u0440\u0435\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438\u0437 \u043c\u0435\u043b\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u043e \u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u0442\u043e \u0435\u0441\u0442\u044c, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u0434 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440, \u0430 \u043d\u0435 \u0441\u0430\u043c\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0427\u0442\u043e \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 Delos \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430? \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u2014 \u043d\u0438\u0447\u0435\u0433\u043e, \u0442\u043e \u0435\u0441\u0442\u044c, \u0441\u0432\u043e\u0431\u043e\u0434\u0443 \u0432\u044b\u0431\u043e\u0440\u0430 \u0438 \u043f\u043e\u0437\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u0435:<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/engineering.fb.com\/2019\/06\/06\/data-center-engineering\/delos\/\" rel=\"nofollow noopener noreferrer\">Delos: Simple, flexible storage for the Facebook control plane<\/a><\/p>\n<blockquote><p>Flexible replicated systems: New materializations above the VirtualLog can provide different abstractions for storage such as a relational model, a key-value store, or a file system API.<br \/>  DelosTable offers a rich API, with support for transactions, secondary indexes, and range queries<\/p><\/blockquote>\n<p>  <\/p>\n<p>\u041f\u0435\u0441\u0441\u0438\u043c\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0434\u0443\u0448\u043d\u0438\u043b\u044b \u0441\u043a\u0430\u0436\u0443\u0442 &#171;\u0434\u0430 \u0447\u0442\u043e \u0436\u0435 \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u044d\u0442\u043e \u0444\u0438\u0447\u0435\u0439?&#187; \u2014 \u043d\u043e \u043c\u044b \u0438\u0445 \u043d\u0435 \u0441\u043b\u0443\u0448\u0430\u0435\u043c, \u043e\u043d\u0438 \u0441\u0430\u043c\u0438 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u044f\u0440\u043c\u043e \u043d\u0430 \u0448\u0435\u044e. \u0414\u0443\u0448\u043d\u0438\u043b\u0430 \u0431\u044b \u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c O(N^2) \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043d\u0430\u0434 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0430\u043c\u0438 \u0438 \u043d\u0430 ZooKeeper, \u043d\u043e \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u0430 \u0442\u0430\u043a\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u0443\u044e \u0411\u0414 \u0432\u0441\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b Facebook? \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u2014 \u0434\u043b\u044f \u043d\u0438\u0447\u0435\u0433\u043e, \u0430 \u044d\u0442\u043e \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0448\u0435\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c.<\/p>\n<p>  <\/p>\n<p>VirtualLog \u0441 MetaStore \u2014 \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u0440\u043e\u0443\u0442\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u043b\u043e\u0433\u043b\u0435\u0442\u043e\u0432 (\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043b\u043e\u0433\u043e\u0432) \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c, \u0430 \u0432 \u043a\u0430\u043a\u0438\u0445 \u043b\u043e\u0433\u043b\u0435\u0442\u0430\u0445 \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043b\u0438\u0448\u044c \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435. VirtualLog \u0440\u043e\u0443\u0442\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b append\/readNext (\u0437\u0430\u043f\u0438\u0441\u044c\/\u0447\u0442\u0435\u043d\u0438\u0435) \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043b\u043e\u0433\u0438 \u0438\u0437 \u043b\u043e\u0433\u043b\u0435\u0442\u043e\u0432 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438, \u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043b\u043e\u0433\u043b\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0445\u0432\u043e\u0441\u0442\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430. MetaStore \u2014 \u044d\u0442\u043e \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u044b\u0439 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u043d ID \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u043b\u0435\u0442\u0430 (commit ID, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0432\u0430\u0436\u043d\u043e), \u0442\u043e \u0435\u0441\u0442\u044c, MetaStore \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0446\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 VirtualStore-\u0440\u043e\u0443\u0442\u0435\u0440\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e\u0442 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u0445, \u0442\u043e \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c Paxos.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/engineering.fb.com\/2019\/06\/06\/data-center-engineering\/delos\/\" rel=\"nofollow noopener noreferrer\">Delos: Simple, flexible storage for the Facebook control plane<\/a><\/p>\n<blockquote><p>The VirtualLog can dynamically switch between different SimpleLogs to obtain different performance and fault-tolerance properties.<\/p><\/blockquote>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0443\u043f\u0440\u0435\u0436\u0434\u0430\u044f \u0432\u043e\u043f\u0440\u043e\u0441 &#171;\u0430 \u0447\u0442\u043e \u0436\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0430\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043e\u0442 VirtualLog \u043a \u043f\u0440\u044f\u043c\u043e\u043c\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e \u0441 ZooKeeper \u0438\u043b\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0411\u0414?&#187;. \u0412\u044b \u0443\u0436\u0435 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u2014 \u043d\u0438\u0447\u0442\u043e, \u043e\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0432 \u0442\u0440\u0443\u0434\u043d\u0443\u044e \u043c\u0438\u043d\u0443\u0442\u0443.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e NativeLoglet, \u0440\u0430\u0437\u0434\u0435\u043b 4.2.1.<\/p>\n<blockquote><p>Each Delos server \u2013 in addition to running the materialization logic and the VirtualLog code \u2013 runs a NativeLoglet client and a NativeLoglet server (or LogServer). One of the Delos servers also runs a sequencer component\u2026<br \/>  Each LogServer locally commits a particular log position n only after the previous position n \u2014 1 has either (1) been locally committed on the same server, or (2) has been globally committed on a majority of servers (i.e., knownTail > n \u2014 1)\u2026<br \/>  The sequencer,\u2026 considers the append globally committed (and acknowledges to the client) once it receives successful responses from a majority of unsealed LogServers<\/p><\/blockquote>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f ZAB\/Raft \u0432 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0441 \u043d\u0438\u0447\u0435\u043c \u0432 \u0440\u043e\u043b\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0432 \u0438 \u0432\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u2014 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 seal, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043b\u043e\u0433\u043b\u0435\u0442, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f \u0435\u0433\u043e \u0432 \u0440\u0435\u0436\u0438\u043c &#171;\u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u0435\u043d\u0438\u0435&#187;. \u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0430\u0437\u043e\u0432 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0432\u043d\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u0440\u0438 \u043e\u0442\u043a\u0430\u0437\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043b\u043e\u0433\u043b\u0435\u0442 \u0437\u0430\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043b\u043e\u0433\u043b\u0435\u0442 (\u0437\u0430\u0431\u0435\u0433\u0430\u044f \u0432\u043f\u0435\u0440\u0435\u0434 \u2014 ZooKeeper).<\/p>\n<p>  <\/p>\n<p>3.2. VirtualLog design<\/p>\n<blockquote><p>individual Loglets that do not implement their own leader election or reconfiguration are responsible for detecting failures and requesting a reconfigExtend on the VirtualLog, as we describe later<\/p><\/blockquote>\n<p>4.2.1 Loglets sans consensus: NativeLoglet:<\/p>\n<blockquote><p>When the sequencer or one of the LogServers fails, the NativeLoglet is responsible for detecting this failure and invoking reconfiguration on the VirtualLog (which in turn seals it and switches to a new NativeLoglet)<\/p><\/blockquote>\n<p>\u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430:<\/p>\n<blockquote><p>In our implementation, we use a combination of in-band detection (e.g., the sequencer detecting that it has rebooted, or that other servers are persistently down) and out-of-band signals (via a gossip-based failure detector, as well as information from the container manager) to trigger reconfiguration<\/p><\/blockquote>\n<p>6. Discussion:<\/p>\n<blockquote><p>If two converged replicas crash out of five, another failure can cause unavailability and data loss for the log. In this situation (which was not uncommon), we found it valuable to reconfigure the system to a disaggregated log, temporarily decoupling the fate of the database and the log. Once the database was restored to five replicas, we reconfigured back. This style of temporary decoupling also proved valuable when we discovered latent bugs in the NativeLoglet; we reconfigured to ZKLoglet, rolled out hotfixes, and then reconfigured back.<\/p><\/blockquote>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u2014 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0447\u0442\u043e, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u043f\u043e \u043d\u0435\u044f\u0441\u043d\u044b\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0446\u0438\u0442\u0430\u0442\u0430 \u043f\u043e \u0441\u0443\u0442\u0438 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0447\u0435\u0433\u043e VirtualLog \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u043e\u0432 \u043d\u0430 ZooKeeper, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 NativeLoglet, \u043a\u0430\u043a \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e \u0432\u044b\u0448\u0435, \u043d\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0431\u043e\u0435\u0432.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0448 \u043b\u044e\u0431\u0438\u043c\u044b\u0439 \u042f\u043d\u0434\u0435\u043a\u0441 \u0434\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0442\u043e\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0447\u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u043d\u0430 \u043e\u0442\u043a\u0430\u0437\u044b, \u043d\u043e \u043d\u0430 \u043f\u043e\u043b\u043f\u0443\u0442\u0438 \u0441\u0434\u0440\u0435\u0439\u0444\u0438\u043b \u0438 \u043d\u0430\u0447\u0430\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ZooKeeper \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0437\u0430\u0434\u0430\u0447 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u043e \u0438\u0437 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Delos \u2014 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u0411\u0414. \u041c\u043e\u0439 \u0433\u0443\u0440\u0443 \u0431\u0435\u0437\u0443\u043f\u0440\u0435\u0447\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u044d\u0442\u043e \u043d\u0438\u0447\u0442\u043e, \u0437\u0430 \u0448\u0438\u0440\u043c\u043e\u0439 \u043e\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a: \u0431\u0435\u0440\u0435\u0442\u0441\u044f, ZooKeeper, \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0433\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0441\u043b\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 (ZKLoglet), \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ZKLoglet \u043f\u0440\u043e\u0442\u0438\u0432 NativeLoglet \u2014 NativeLoglet \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0432 10 \u0440\u0430\u0437 \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u042d\u0442\u0443 \u0431\u0435\u0437\u0443\u043f\u0440\u0435\u0447\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u043f\u043e\u0440\u0442\u044f\u0442 \u043c\u0435\u0440\u0437\u043a\u0438\u0435 \u0434\u0443\u0448\u043d\u0438\u043b\u044b-\u0441\u043e\u0430\u0432\u0442\u043e\u0440\u044b \u0441\u0442\u0430\u0442\u044c\u0438, \u0440\u0430\u0437\u0434\u0435\u043b 5.1 The Benefit of Virtualization:<\/p>\n<blockquote><p>The latency improvement is largely due to the unoptimized nature of our ZKLoglet implementation, which simply writes a new sequential ZooKeeper key on each append.<\/p><\/blockquote>\n<p>\u0418 \u0440\u0430\u0437\u0434\u0435\u043b 5.2 The Cost of Virtualization:<\/p>\n<blockquote><p>Figure 11 (Right) shows that ZooKeeper can provide over 30K puts\/sec before p99 latency degrades beyond 15ms. In contrast, Delos+NativeLoglet manages around 26K puts\/sec. The primary reason for the performance difference is that ZooKeeper stores its materialized state in memory while Delos uses RocksDB. We also ran a version of Delos where the materialized state lives in memory; this prototype hit 40K puts\/sec.<\/p><\/blockquote>\n<p>  <\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u043e\u043d\u0438 \u0445\u043e\u0442\u044f\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u0432\u0435\u0442\u0430 \u0443 Delos \u0442\u0430\u043a\u043e\u0435 \u0436\u0435, \u043a\u0430\u043a \u0443 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a ZooKeeper. \u041d\u0443 \u043a\u0430\u043a \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c?<\/p>\n<p>  <\/p>\n<p>\u0416\u0438\u0440\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u0441\u0442\u0430\u0432\u0438\u0442 \u0430\u0431\u0437\u0430\u0446 &#171;ZooKeeper over Delos\u2026 over ZooKeeper&#187; \u0440\u0430\u0437\u0434\u0435\u043b\u0430 6 Discussion, \u0433\u0434\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/g0\/fj\/xt\/g0fjxt82juvpf9nevtqh_uvqok8.png\" data-src=\"https:\/\/habrastorage.org\/webt\/g0\/fj\/xt\/g0fjxt82juvpf9nevtqh_uvqok8.png\"\/><\/p>\n<p>  <\/p>\n<h1><a href=\"https:\/\/cs.brown.edu\/people\/irina\/papers\/asplos2017-final.pdf\" rel=\"nofollow noopener noreferrer\">Black-box Concurrent Data Structures for NUMA Architectures<\/a><\/h1>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043b \u041c\u0430\u0445\u0435\u0448\u0430 \u0441\u0432\u043e\u0438\u043c \u0433\u0443\u0440\u0443 \u043d\u0435 \u0437\u0430 \u043e\u0434\u0438\u043d \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442. \u0423 \u041c\u0430\u0445\u0435\u0448\u0430 \u0435\u0441\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 \u0442\u0443 \u0442\u0435\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0438\u0437\u043a\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0446\u0435\u043b\u044c \u044f \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b \u0432 <a href=\"https:\/\/github.com\/byko3y\/python-shared-objects\" rel=\"nofollow noopener noreferrer\">Python Shared Objects<\/a> \u2014 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432. \u042d\u0442\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 Best Paper Award, \u0441\u0442\u0430\u0432 \u043a\u0443\u043b\u044c\u043c\u0438\u043d\u0430\u0446\u0438\u0435\u0439 \u043c\u043d\u043e\u0433\u0438\u0445 \u043b\u0435\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0432\u044b\u043a\u0430 \u0441\u043e\u0437\u0438\u0434\u0430\u043d\u0438\u044f \u043d\u0438\u0447\u0435\u0433\u043e.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0441\u0443\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<p>\u0421\u0443\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430\u0434 \u043e\u0431\u0449\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u043f\u043e\u0434 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 RW \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 NUMA-\u0443\u0437\u043b\u0443 \u0438\u043c\u0435\u0442\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0443\u044e (\u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e) \u043a\u043e\u043f\u0438\u044e &#171;\u043e\u0431\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445&#187;, \u0430 \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 NUMA-\u0443\u0437\u043b\u0430\u043c\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 \u043b\u043e\u0433 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 NUMA-\u0443\u0437\u0435\u043b \u0443\u0436\u0435 \u043d\u0430 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b \u044d\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 \u043b\u043e\u0433\u0430. \u0422\u043e \u0435\u0441\u0442\u044c, \u043e\u0431\u0449\u0430\u0435\u043c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 NUMA-\u0443\u0437\u043b\u0430\u043c\u0438 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0430 \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0449\u0438\u0439 \u043b\u043e\u0433 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0438\u0448\u0443\u0449\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u043b\u043e\u0433 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e: \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u044f\u0447\u0435\u0435\u043a \u0432 \u043a\u043e\u043d\u0446\u0435 \u043b\u043e\u0433\u0430 \u0447\u0435\u0440\u0435\u0437 \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u044b\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a, \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432 \u044f\u0447\u0435\u0439\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0438 \u0442\u0430\u043a\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043b\u043e\u0433\u043e\u043c \u0431\u044b\u043b \u0431\u044b \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d \u043d\u0430 NUMA-\u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u043f\u043e\u0442\u043e\u043c\u0443 \u0433\u0443\u0440\u0443 \u0441\u0434\u0435\u043b\u0430\u043b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u2014 \u0441\u0431\u043e\u0440 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 NUMA-\u0443\u0437\u043b\u0430 \u0432 \u043e\u0434\u043d\u0443 \u043f\u0430\u0447\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 NUMA-\u0443\u0437\u043b\u0430\u043c\u0438. \u0413\u0443\u0440\u0443 \u0430\u0434\u0432\u043e\u043a\u0430\u0442\u0438\u0440\u0443\u0435\u0442 flat combining \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0445\u043e\u0442\u044f \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0433 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043b\u044e\u0431\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e NUMA-\u0443\u0437\u043b\u0430.<\/p>\n<p>  <\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f (\u0440\u0430\u0437\u0434\u0435\u043b 5.4) \u2014 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0437 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 NUMA-\u0443\u0437\u043b\u0430\u043c\u0438, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u043b\u0438\u0448\u044c \u043f\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u043c\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u0449\u0435\u0433\u043e \u043b\u043e\u0433\u0430, \u0432\u0438\u0434\u0438\u043c\u043e\u0433\u043e \u043f\u0440\u0438 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f, \u0442\u043e \u0435\u0441\u0442\u044c, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043d\u0430\u0434 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432\u0441\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 \u043b\u043e\u0433\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u0436\u0434\u0443 read committed \u0438 snapshot isolation, \u0441 \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e \u0441\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f NUMA-aware \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u043c RW-\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438: \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b. \u0417\u0430\u0431\u0430\u0432\u043d\u043e, \u0447\u0442\u043e \u0441\u043e\u0430\u0432\u0442\u043e\u0440 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, Irina Calciu, \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u043b\u0430\u0441\u044c \u0441\u043e\u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u043e\u0435\u0433\u043e \u043b\u044e\u0431\u0438\u043c\u043e\u0433\u043e \u041d\u0438\u0440 \u0428\u0430\u0432\u0438\u0442\u0430: <a href=\"http:\/\/groups.csail.mit.edu\/mag\/p157-calciu.pdf\" rel=\"nofollow noopener noreferrer\">NUMA-Aware Reader-Writer Locks<\/a>. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u044e \u0418\u0440\u043e\u0447\u043a\u0435 \u043f\u043b\u0430\u043c\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0446\u0435\u043b\u0443\u0439, \u0430 \u041d\u0438\u0440 \u0428\u0430\u0432\u0438\u0442 \u043f\u0443\u0441\u0442\u044c \u043b\u0443\u0447\u0448\u0435 \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u2014 \u0430\u0432\u043e\u0441\u044c \u0442\u043e\u0433\u0434\u0430 \u0438 \u0435\u0433\u043e \u043a\u0442\u043e-\u0442\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442, \u043a\u0440\u043e\u043c\u0435 \u043c\u0435\u043d\u044f.<\/p>\n<p>  <\/p>\n<p>\u0414\u0430, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435 \u043c\u043e\u0438\u043c \u0433\u0443\u0440\u0443 \u043d\u0438\u0447\u0442\u043e \u043d\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u0445 \u0441 lock-free \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438 (\u0438 \u0441 STM, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435) \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0438\u043a\u0430\u043a\u0443\u044e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c. \u041d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u2014 \u044d\u0442\u043e \u043f\u043e\u0437\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439 \u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u041f\u043e\u0442\u043e\u043c\u0443 \u043d\u0438\u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0441 \u043d\u0438\u0447\u0435\u043c, \u0442\u043e \u0435\u0441\u0442\u044c, c \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438 \u0431\u0435\u0437 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 NUMA.<\/p>\n<p>  <\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0432\u044b\u0434\u0430\u044e\u0449\u0435\u0435\u0441\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0435\u0433\u043e \u0433\u0443\u0440\u0443 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u2014 \u044d\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0437\u0430\u044f\u0432\u043a\u0430 \u043d\u0430 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 Redis \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0433\u043e-\u043b\u0438\u0448\u044c 20 \u0441\u0442\u0440\u043e\u0447\u0435\u043a \u043a\u043e\u0434\u0430 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 Redis \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043d\u043e\u0432\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u0414\u0430, \u044d\u0442\u0438 20 \u0441\u0442\u0440\u043e\u0447\u0435\u043a \u043a\u043e\u0434\u0430 \u0432\u0432\u043e\u0434\u044f\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u043b\u0438\u0448\u044c \u0432 \u0434\u0432\u0435 \u0438\u0437 \u0441\u043e\u0442\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432 Redis \u043a\u043e\u043c\u0430\u043d\u0434, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430\u0445 \u0433\u0443\u0440\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b \u043d\u0438\u0447\u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043d\u0430\u0447\u0435 \u0441\u0435\u0442\u044c \u0431\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u0430\u043d\u0434). \u041d\u043e \u0437\u0430\u044f\u0432\u043a\u0430 \u043a\u0440\u0430\u0441\u0438\u0432\u0435\u0439\u0448\u0430\u044f \u0432\u0435\u0434\u044c, \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u0441\u044c, Best Paper Award \u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u0437\u0430\u0441\u043b\u0443\u0436\u0435\u043d\u043e \u0437\u0430 \u043f\u043e\u0434\u0430\u0447\u0443 RW-\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u0434 \u0432\u0438\u0434\u043e\u043c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 lock-free \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0430 \u0432\u044b \u0443\u0436\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u0438 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0430\u0442\u0447\u0438 \u043d\u0430 Redis \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u044d\u0442\u043e\u0439 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0438 \u0434\u0430\u0436\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0441\u043e\u0444\u0442\u0438\u043d\u044b. \u041f\u043e\u043c\u043d\u0438\u043c: \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0445\u043e\u0442\u0435\u043b\u043e\u043a \u043a\u043b\u0438\u0435\u043d\u0442 \u2014 \u0432\u044b\u0441\u0448\u0438\u0439 \u0441\u043c\u044b\u0441\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0444\u0442\u0430.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u044d\u0442\u043e \u0432\u0441\u0451 \u043c\u0435\u043b\u043e\u0447\u0438. \u0421\u0430\u043c\u044b\u0435 \u0446\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0432\u0435\u0442\u044b \u044f \u043f\u0440\u0438\u0431\u0435\u0440\u0435\u0433 \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a&#8230;<\/p>\n<p>  <\/p>\n<h1><a href=\"https:\/\/maheshba.bitbucket.io\/blog\/2021\/10\/19\/42Things.html\" rel=\"nofollow noopener noreferrer\">42 things I learned from building a production database<\/a><\/h1>\n<p>  <\/p>\n<p>\u0414\u0430, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0443\u0448\u043d\u0438\u0442\u044c \u043f\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043c\u043e\u043b &#171;\u0441\u043e\u0432\u0435\u0442\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043e\u0431\u0449\u0438\u0435&#187; \u0438\u043b\u0438 &#171;\u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0438 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443&#187;, \u043d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0433\u0443\u0440\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0438\u0447\u0435\u0433\u043e, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u043a\u043b\u044e\u0447\u0435 \u0435\u0433\u043e \u0441\u043e\u0432\u0435\u0442\u044b \u0431\u0435\u0441\u0446\u0435\u043d\u043d\u044b.<\/p>\n<p>  <\/p>\n<blockquote><p>[1] Keep your customers happy; else the rest of this document doesn\u2019t matter.<br \/>  [3] Interface directly with customer ICs. A lot of intra-team conflict can be resolved by saying \u201cI talked to the customer just now and they said\u2026\u201d. In infra we often don\u2019t need to speculate about what customers want.<br \/>  [4] But realize that customers may not express what they really need; don\u2019t take requirements at face-value, instead spend the time to understand their use case in detail. Read their code.<br \/>  [31] Ask yourself on some cadence: why does the team\/project exist? If it didn\u2019t exist, what would happen (which other team \/ system would fill the gap)? How is the team adding value to the company and how can it continue doing so in the future?<\/p><\/blockquote>\n<p>\u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043d\u0438\u043c\u0430\u0439\u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u0445\u043e\u0442\u0435\u043b\u043a\u0438 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430, \u0430 \u043d\u0435 \u0432\u044b\u0434\u0430\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041f\u043e\u0442\u043e\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u0435 \u0434\u0443\u0448\u043d\u0438\u043b-\u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u0439 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0432\u043e\u043b\u043d\u0443\u0435\u0442, \u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430 \u043f\u043e\u0434\u043b\u0430\u0436\u0430\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<blockquote><p>[5] Have a simple, crisp mission statement that expresses your raison d\u2019etre. For Delos it was: we will be a reliable foundation for FB infra<br \/>  [8] A road-map is a means, not an end<br \/>  [9] If you get good and\/or aligned managers, be as understanding, supportive, and accommodating as you can. If you don\u2019t get such managers\u2026 well, I haven\u2019t figured this one out, let me know if you do.<br \/>  [10] Make your project robust to re-orgs. A company management hierarchy is inherently fragile; socialize the project continuously with managers who might take over in the future&#8230;.<\/p><\/blockquote>\n<p>\u041d\u0438\u0447\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0437\u0438\u0442\u0438\u0432\u0430 \u0432 \u0441\u0432\u043e\u0435\u043c \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0435. \u041c\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c, \u043d\u043e \u043c\u044b \u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a\u0443\u044e \u0440\u0435\u0430\u043a\u0446\u0438\u044e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u2014 \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0437\u0438\u0442\u0438\u0432\u043d\u043e\u0439. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p>  <\/p>\n<blockquote><p>[10] &#8230;Do whatever it takes to make sure that manager churn does not result in unfair career outcomes for ICs<br \/>  [19] Late-bind to designs: encourage the team to think about the entire design space without committing to a particular point solution. Running brainstorming meetings with a bunch of high-IQ, opinionated ICs is an art worth mastering.<br \/>  [24] Create a culture where ICs are constantly thinking about radically different designs; do not shut down conversations about hypothetical alternative designs. Encourage curiosity.<br \/>  [32] Keep track of every other major project in your space within the company: you should be able to explain their technical design better than their own ICs. Grab any opportunities to debate scope with the leads of other similar projects: you should be able to articulate how your project fits into the larger ecosystem of options. Inter-team competition is healthy and necessary. Make friends with ICs in these projects.<\/p><\/blockquote>\n<p>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u0432\u0430\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0435\u0434\u0438\u043d\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u043e\u0432 \u0441\u0440\u0435\u0434\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0434\u0430\u0436\u0435 \u0432 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p>\n<p>  <\/p>\n<blockquote><p>[7] Task allocation to ICs is critical; ask to be in the critical path of any decision, because you typically have a much better understanding of the problem, the codebase, and the IC\u2019s strengths than the manager.<br \/>  [16] Design as a team; implement as individuals. This will make design the bottleneck, but it\u2019s worth it: push back on impulses to parallelize design.<\/p><\/blockquote>\n<p>\u0418 \u0431\u043e\u0436\u0435 \u0443\u043f\u0430\u0441\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c \u0432 \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u0438 \u0443\u0434\u0430\u0440\u0438\u043b\u0441\u044f \u0432 \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0440\u0430\u0433\u043c\u0430\u0442\u0438\u043a\u0443, \u0437\u0430 \u044d\u0442\u0438\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c.<\/p>\n<p>  <\/p>\n<blockquote><p>[33] Do not compete on raw performance or efficiency with other teams; this will escalate into an arms race where both teams waste time optimizing their systems for point workloads, generating apples-to-oranges comparisons, etc. Compete on fundamental design characteristics.<br \/>  [35] Measurement is a means, not an end.<\/p><\/blockquote>\n<p>\u041f\u043e\u043c\u043d\u0438\u0442\u0435: \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0423\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u043e\u0439 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<blockquote><p>[34] If someone objectively has a better system for your use case and wants to take it on, go find something else to do.<\/p><\/blockquote>\n<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434: \u043b\u0443\u0447\u0448\u0435 \u043c\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u044f.<\/p>\n<p>  <\/p>\n<blockquote><p>[36] You should be able to detect problems in your service before your customer does.<\/p><\/blockquote>\n<p>\u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0448\u0435\u0433\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0432\u0441\u043f\u043b\u044b\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u0440\u043e\u0434\u0435 \u2014 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c, \u043a\u0442\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0443\u0437\u043d\u0430\u0435\u0442.<\/p>\n<p>  <\/p>\n<blockquote><p>[41] Try new things. Bias towards novelty within the space of feasible solutions. Fight the impulse to copy designs verbatim. Every major system was just a half-baked idea in someone\u2019s head at some point.<\/p><\/blockquote>\n<p>\u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0442\u044b \u0441\u0430\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 6 \u043b\u0435\u0442 \u0432 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u0437\u0430\u0432\u0438\u0434\u043d\u044b\u043c \u0443\u043f\u0440\u044f\u043c\u0441\u0442\u0432\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0448\u044c \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0433\u043e\u0432\u043e\u0440\u0438, \u0447\u0442\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438\u0449\u0435\u0448\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u0438 \u043a\u0430\u043a\u0438\u0435 \u044d\u043c\u043e\u0446\u0438\u0438 \u0432 \u043b\u044e\u0434\u044f\u0445 \u044d\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442, \u0430 \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0449\u044c.<\/p>\n<p>  <\/p>\n<blockquote><p>[42] Write papers. Writing for an audience that has zero context on what you are doing will force you to examine and clarify your assumptions. Papers make it easier to hire good people and to on-board them.<\/p><\/blockquote>\n<p>\u0418 \u043f\u043e\u043c\u043d\u0438\u0442\u0435: \u043b\u044e\u0434\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u2014 \u044d\u0442\u043e \u0432\u0430\u0448\u0438 \u0446\u0435\u043d\u043d\u0435\u0439\u0448\u0438\u0435 \u0441\u043e\u044e\u0437\u043d\u0438\u043a\u0438.<\/p>\n<p>  <\/p>\n<h1>\u041c\u0438\u043d\u0443\u0442\u043a\u0430 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0442\u0435\u0445\u0437\u0430\u043d\u0443\u0434\u0441\u0442\u0432\u0430<\/h1>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435\u043a\u0443\u044e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0411\u0414 \u0438\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0446\u0438\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0439, \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438, \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0430\u043c\u0430 \u0447\u0442\u043e-\u0442\u043e \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0430, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u043f\u0440\u043e\u043a\u043b\u0430\u0434\u043a\u0443 \u0438\u0437 \u043d\u0438\u0447\u0435\u0433\u043e? \u0414\u0430, \u043d\u043e \u044d\u0442\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0441\u043c\u0435\u043d\u0443 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u044b, \u043a\u0430\u043a \u0442\u043e \u043e\u0442\u0445\u043e\u0434 \u043e\u0442 \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430\u0434 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438: \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u044e\u0442 \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u043b\u043e\u0445\u043e \u043d\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c; \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0438 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u044e\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u0433\u043e\u0439 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0447\u0442\u043e, \u043e\u043f\u044f\u0442\u044c \u0436\u0435, \u043f\u043b\u043e\u0445\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0442\u0441\u044f \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0440\u043e\u0441\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 key-value \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 NoSQL \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u044d\u0442\u043e \u0441\u0442\u0440\u0435\u043c\u043b\u0435\u043d\u0438\u0435 \u043a \u0441\u043c\u0435\u043d\u0435 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0442\u043e \u0435\u0441\u0442\u044c, \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u043f\u043e\u0442\u0435\u0440\u0435\u0439 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u2014 \u044d\u0442\u043e \u0436\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u0443\u0435\u043c\u044b\u043c\/\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c key-value \u0411\u0414, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043b\u0438\u0431\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435, \u043b\u0438\u0431\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u042f \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u0432 Facebook \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442, \u0447\u0442\u043e, \u0432 \u043d\u044b\u043d\u0435\u0448\u043d\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0438\u0447\u0442\u043e \u2014 \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0430\u043c \u044d\u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0442\u043e\u0436\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u0438\u0437\u043d\u0435\u0441\u0435.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/593167\/\"> https:\/\/habr.com\/ru\/articles\/593167\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0410\u0432\u0442\u043e\u0440 \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u044c \u043b\u044e\u0434\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u0438 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u0442\u044c\u0438:<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habr.com\/post\/593167\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/na\/qc\/vu\/naqcvuxzlpy1xprxuennekhll3c.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/na\/qc\/vu\/naqcvuxzlpy1xprxuennekhll3c.jpeg\" data-blurred=\"true\"\/><\/a><\/p>\n<p>  <\/p>\n<p>\u0418 \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u041c\u0430\u0445\u0435\u0448\u0443 \u0411\u0430\u043b\u0430\u043a\u0440\u0438\u0448\u043d\u0430\u043d\u0443, \u043a \u0447\u0438\u0441\u043b\u0443 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0441\u044f:<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habr.com\/post\/593167\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/3r\/xy\/rd\/3rxyrdxn1l-lrhxpzfd4quvg2ju.png\" data-src=\"https:\/\/habrastorage.org\/webt\/3r\/xy\/rd\/3rxyrdxn1l-lrhxpzfd4quvg2ju.png\"\/><\/a><\/p>\n<p>  <\/p>\n<h1>\u041d\u0438\u0447\u0442\u043e \u043a\u0430\u043a \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434<\/h1>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-417523","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/417523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=417523"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/417523\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=417523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=417523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=417523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}