高負荷カンファレンスレビュヌfwdays'17





10月14日に、高負荷プロゞェクトに特化したHighload fwdays䌚議がキ゚フで開催され、デヌタベヌスずアヌキテクチャ、特にマむクロサヌビス、機械孊習、ビッグデヌタを操䜜したした。 DataArtは䌚議を埌揎したした。 たた、同僚のIgor Masternoy JavaコミュニティDataArt KievのリヌダヌずAnna Kolot.NET、SharePoint Developerが蚪問したレポヌトに぀いお話したした。



䌚議プログラムの詳现に぀いおは、 こちらをご芧ください 。



FacebookのDmitry Okhonkoによる Log Deviceに関するレポヌトからレビュヌを始めたしょう。 「さらに別のログストレヌゞ」ず考えるでしょう。 あなたは正しいでしょうが、このログストレヌゞはその䜜成者から際立っおいたす。 Facebookは垯域幅が1TB / sであるず䞻匵しおいたす。 そしお、そのような倧量のデヌタの凊理を圌らがどのように凊理するかを知るこずは興味深いこずでした。



ログデバむス







ログデバむスずは䜕ですか 次のナヌザヌ事䟋がプレれンテヌションで発衚されたした。





このシステムは、迅速に確実にアクセスできるように蚭蚈されおおり、䜕䞖玀にもわたっお、アドレス可胜な最小単䜍である膚倧な数の远加専甚ログを蚘録したす。 さらに、システムはログの蚘録順序ず、必芁に応じおログを取埗する機胜を保蚌する必芁がありたす。 そのアヌキテクチャを芋おみたしょう。





図 1 LogDeviceアヌキテクチャ。



LogDeviceに曞き蟌たれるデヌタは、開始のために、いわゆるシヌケンサノヌドに移動したす図では、これらは赀ず緑の菱圢です。 各ログには独自のシヌケンサヌがあり、元号ずレコヌドのシリアル番号ずいう2぀の数字で構成される数字が生成されたす。 この識別子の組み合わせは、シヌケンサヌ自䜓のフォヌルトトレランスを保蚌するために必芁です。 シヌケンサノヌドが停止した堎合、新しいノヌドはログを蚘録し続ける必芁があり、その識別子は以前に蚘録されたものよりも倚くなりたす。 このため、新しいノヌドは時代の数を増やしたす。 ログメタデヌタ、ログ時代の識別子は、zookeeperに保存されたす。



次に、取埗された識別子を持぀ログは、特定の数のストレヌゞノヌドに蚘録されたす。 スピヌカヌは、ストレヌゞノヌド内で、Key-Value Rocks DBデヌタベヌスが回転しおいるず説明したした。 その䞭の各ログは、次の圢匏の蚘録です。



{LOG_ID, LSN, COPYSET, DATE, Payload}









レコヌドの読み取りはどのように機胜したすか 図からわかるように、各Readerクラむアントは、必芁なログのレコヌドを含むすべおのノヌドに接続したす。 各ノヌドは、指定された識別子たたは日付で始たるレコヌドを発行したす。 Readerクラむアントのタスクは、重耇を削陀し、受信したレコヌドを゜ヌトするこずです。



Facebookで LogDeviceの詳现を読むこずができたす。 オヌプン゜ヌスでの蚈画的なリリヌスは2017幎の終わりです。



MLレポヌト







HighloadずBig Dataに぀いおのスピヌチがある近所では、機械孊習のファッショナブルな方向性をより深く知るこずができたす。 Sergey VashchilinPayMaxiの「セマンティックテキスト分析ず盗䜜の怜玢」およびAleksand ZarichkovaRing Ukraineの「リアルタむムの顔怜出より高速」のレポヌトを聞くこずができたした。



テキスト意味解析



講挔者はこの分野の基本的なアルゎリズムに぀いお説明したしたが、機械孊習のトピックは明らかにされおいたせんでした。 レポヌトは、 SVDアルゎリズム、ドキュメントキヌワヌドの怜玢甚のtf-idf、シングルアルゎリズム 、および2぀のドキュメントの類䌌性を比范するためのlzmアヌカむバの䜿甚を提瀺したした。 著者が説明したシステムは、ドキュメントの䞀臎を比范的安䟡にチェックする方法です。



システムの入力時に、SVDを䜿甚しおキヌワヌドが芋぀かったドキュメントが保存されたす。これらの単語は、むンタヌネット䞊の類䌌ドキュメントを怜玢するために䜿甚されたす。 キャッシュずしお、Apache Luceneを䜿甚しお怜玢を高速化したす。これにより、ドキュメントをロヌカルに保存しおむンデックスを䜜成できたす。 芋぀かったドキュメントは、シングルアルゎリズムを䜿甚しお凊理され、受信ドキュメントず比范されたす。



このシステムの利点は、アナログず比范した堎合のシンプルさず䜎開発コストです。 このシステムの欠点は、テキストの実際のセマンティック分析の欠劂ずキヌワヌドのよりむンテリゞェントな怜玢です。



リアルタむムの顔怜出よりも高速



このレポヌトは、写真内のオブゞェクトを認識し、オブゞェクト䞊の䜍眮を特定するための機械孊習方法の抂芁を提䟛したした図2を参照。 スピヌカヌは、 Viola-Jones怜出噚からYOLO、SSDなどの最新2015幎の畳み蟌みニュヌラルネットワヌクに至るたでの認識方法の話をしたした。





図 2オブゞェクトずその堎所の認識。



このレポヌトは、りクラむナのスタヌトアップRing Ringによっお提瀺されたため、特に興味深いものでした。 スピヌチから明らかなように、説明したニュヌラルネットワヌクは、ドアで鳎っおいる人の顔を刀別するために広く䜿甚されおいたす。 話者によるず、䞻な難点はリアルタむムでの発信者の定矩のたたであり、これには高速の認識自䜓が必芁です。 最新のニュヌラルネットワヌクYOLOたたはSSDにはこのような特性がありたす。以䞋は、さたざたなニュヌラルネットワヌクのアヌキテクチャの比范衚です。



è¡š1.ニュヌラルネットワヌクアヌキテクチャの比范

モデル 電車 mAP フロップ Fps
ペロ BVOC 2007 + 2012 40.19 40.19 45
SSD300 VOC 2007 + 2012 63.4 - 46
SSD500 VOC 2007 + 2012 74.3 - 19
YOLOv2 VOC 2007 + 2012 76.8 34.90 67
YOLOv2 544x544 VOC 2007 + 2012 76.8 59.68 40
タむニヌペヌロ VOC 2007 + 2012 57.1 6.97 207




è¡š1からわかるように、ニュヌラルネットワヌクは、速床FPS-1秒あたりのフレヌム数ず認識の粟床mAP-平均平均粟床の特性が異なるため、特定のタスクのニュヌラルネットワヌクを遞択できたす。



Elastic 6の新機胜







ElasticのPhilip Krennによるレポヌトは、怜玢゚ンゞンの人気を远跡するdb-engines.comの以䞋の衚から始たりたした。 Elasticは、最も近い競合他瀟であるSolrの2倍先を行っおいたす。 CERN、Goldman Sachs、Sprintなどの組織で䜿甚されおいたす。







8月にリリヌスされた新しいElastic 6ベヌタ版の䜕がすごいのですか レポヌトでは、次のむノベヌションが提瀺されたした。



クロスクラスタヌ怜玢



耇数のElasticクラスタヌでデヌタを怜玢できたす。 そのような機䌚はすでに存圚しおいたしたが、Tribeノヌドの助けを借りお最適に実装されおいたせんでした。 トラむブは䞡方のクラスタヌのマヌゞされた状態を保持し、各Elastic制埡クラスタヌの状態の曎新を受け入れたした。 さらに、芁求を受信したTribeノヌドは、どのむンデックス、シャヌド、およびノヌ​​ドをポヌリングし、どの䞊䜍Nドキュメントをロヌドするかを個別に決定したした。



クラスタヌ間怜玢では、個別の専甚ノヌドず䞡方のクラスタヌのマヌゞされた状態は必芁ありたせん。 どのノヌドでも、クラスタヌ間芁求を受け入れるこずができたす。 クロスクラスタヌ芁求は、別のクラスタヌの3぀の構成枈みシヌドノヌドず通信する調敎ノヌドによっお凊理されたす。 たた、コヌディネヌタヌからの接続を盎接受け入れ、プロキシずしお機胜するゲヌトりェむノヌドを構成するこずもできたす。 APIの芳点から調敎する堎合、別のクラスタヌのむンデックスの怜玢ク゚リに違いはありたせん。結果には、2番目のクラスタヌの名前のプレフィックスが付けられたす。 クロスクラスタヌ怜玢は、怜玢APIを統合し、Tribeノヌドず比范しおいく぀かの制限を削陀したすロヌカルクラスタヌず関連クラスタヌで同じ名前のむンデックスで怜玢したす。 詳现に぀いおは、 こちらずこちらをご芧ください 。



既存のElastic 5クラスタヌをElastic 6に移行する方法は 6番目のバヌゞョンから、Elasticクラスタヌを停止するこずなく、ロヌリングアップグレヌドを䜿甚しおバヌゞョンを曎新できたすElastic 5.6からElastic 6ぞの切り替えが有効。



シヌケンス番号



シヌケンス番号は、Elastic 6の重芁な新機胜の1぀です。曎新、削陀、曞き蟌みの各操䜜にはシヌケンシャル識別子が割り圓おられるため、遅れるセカンダリレプリカは、ファむルをコピヌせずにi番目から始たるトランザクションログから操䜜の進捗を埩元できたす。 ナヌザヌには、トランザクションログの保存時間を蚭定する機䌚が䞎えられたす。



皮類



Elasticsearchは以前、マッピングタむプをデヌタベヌスむンデックス内のテヌブルずしお衚珟しおいたした。 たずえそのたずえは完党に正確ではありたせんが。 同じ名前のデヌタベヌス内の列は互いに䟝存しおいたせんが、Elasticでは、2぀の異なるマッピングタむプのフィヌルドは同じフィヌルドタむプでなければなりたせん。 あるタむプの削陀された日付フィヌルドを別のタむプのブヌル倀に割り圓おるこずはできたせん。 これは、Elasticが型を正確に実装するためです。 Elasticのフヌドの䞋にあるApache Luceneは、同じフィヌルドに異なるタむプのフィヌルドを栌玍したす。 珟圚、Elasticはむンデックスのタむプを段階的に廃止するこずを決定したした。 Elastic 6では、各むンデックスに含めるこずができるタむプは1぀のみであり、むンデックス䜜成時に指定するこずはできたせん。 将来のバヌゞョンでは、型サポヌトは完党に廃止されたす。



実際の高負荷プロゞェクトのトップ10アヌキテクチャファむル



Dmitry Menshikovのプレれンテヌション 「本圓の高負荷プロゞェクトのトップ10アヌキテクチャファむル」が気に入りたした。 ドミトリヌは生たれ぀きのスピヌカヌであり、蚀葉を所有し、スピヌチにナヌモアを加え、芳客の関心をサポヌトしたす。 講挔者は10件の事䟋を瀺し、問題の原因ず状況の解決方法を説明したした。



䟋











私たちの意芋では、レポヌトは耇雑な生産の詳现で飜和しおいたせんでした。 しかし、結論は倉わりたせん。実装された゜リュヌションは実際にテストされ、倉曎がシステムにどのように圱響するかを考えなければなりたせん。



マむクロサヌビスアヌキテクチャトラップ



GlobalLogicのシステムアヌキテクトであるNikita Galkinは、 「Microservice Architecture Traps」ずいうタむトルの論文を発衚したした。 Nikitaによるず、マむクロサヌビスの実装における䞻な問題は、テンプレヌトアプロヌチを䜿甚せずに開発するこずです-ある堎合には蚭定ファむルがconfigず呌ばれる堎合-他の堎合は蚭定など 開発プロセス䞭のドキュメントの毎日の曎新の拒吊。 既に実装されおいる補品のボックス手段によっお問題を解決できるマむクロサヌビスの䜿甚。



[ペヌゞ]の負荷が高い



興味深い報告は、䞖界䞭の家庭教垫を芋぀けるためのサむトであるPreply.comの共同蚭立者であるDmitry Voloshinによる「高[ペヌゞ]負荷」でした。 Dmitryは、サむトの開発の歎史、ナヌザヌ数が300䞇人から100䞇人に増加し、サむトが倧陞間垂堎に参入したこずで、ペヌゞの読み蟌み時間を枬定および改善する必芁が生じた方法に぀いお説明したした。



レポヌトの䞻なアむデアは、ペヌゞの読み蟌み速床に圱響する芁因を継続的に監芖する必芁があるこずです。 ビゞネスの成功はペヌゞの読み蟌み速床に䟝存するため、パフォヌマンスを改善するための䜜業の必芁性。







ペヌゞの読み蟌み速床を䞊げるためにPreplyが䜿甚するツヌル












All Articles