Microsoft Graph Engine open source menggunakan Neo4j

Terkadang hubungan antara data yang Anda kumpulkan lebih penting daripada data itu sendiri. (Lihat: Facebook memonetisasi daftar teman Anda.) Saat itulah sistem pemrosesan grafik menjadi berguna. Ini adalah metode yang penting tetapi sering kali kurang dipahami untuk menjelajahi bagaimana item dalam kumpulan data saling terkait.

Microsoft telah menjelajahi area ini setidaknya sejak 2013, ketika menerbitkan makalah yang menjelaskan proyek Trinity, mesin grafik dalam memori berbasis cloud. Buah dari usaha ini, yang dikenal sebagai Microsoft Graph Engine, sekarang tersedia sebagai proyek open source berlisensi MIT sebagai alternatif dari Neo4j atau JanusGraph dari Yayasan Linux yang baru-baru ini diumumkan.

Semuanya terhubung

Microsoft menyebut Graph Engine (GE) sebagai "penyimpanan RAM dan mesin komputasi". Data dapat disisipkan ke GE dan diambil dengan kecepatan tinggi karena disimpan dalam memori dan hanya ditulis kembali ke disk sesuai kebutuhan. Ini dapat berfungsi sebagai penyimpanan nilai kunci sederhana seperti Memcached, tetapi Redis mungkin merupakan perbandingan yang lebih baik, karena GE menyimpan data dalam skema yang sangat diketik (string, integer, dan sebagainya).

Bagian "mesin komputasi" dari persamaan tersebut berarti GE mengimplementasikan algoritme terdistribusi di seluruh node, yang ditulis dalam C #. Ini tidak dioptimalkan di luar kotak untuk jenis algoritma grafik tertentu, jadi kemungkinan besar akan menarik bagi mereka yang ingin menulis algoritma eksplorasi grafik mereka sendiri dari bawah ke atas - atau cukup menulis algoritma terdistribusi mereka sendiri.

"Daripada mencoba menyediakan satu set lengkap modul komputasi built-in," kata dokumentasi Microsoft, "GE mencoba menyediakan blok penyusun generik untuk memungkinkan kita membangun modul semacam itu dengan mudah." Blok tersebut mencakup sistem untuk penyampaian pesan sinkron dan asinkron, serta bahasa kueri grafik LIKQ yang sudah digunakan oleh API Pencarian Grafik Akademik di Microsoft Cognitive Services.

Cara berbeda melalui labirin

Bagaimana semua ini terbentuk dibandingkan dengan database grafik open source terkemuka, Neo4j? Pertama, Neo4j telah berada di pasar lebih lama dan memiliki basis pengguna yang sudah ada. Ini juga tersedia dalam edisi komunitas sumber terbuka dan produk komersial, sedangkan GE hanya proyek sumber terbuka saat ini.

Meskipun demikian, hanya Neo4j edisi komersial dan berorientasi perusahaan yang mendukung sharding dan replikasi. GE, sebaliknya, dikelompokkan dalam inkarnasi open source defaultnya, meskipun pengelompokan pada Neo4j dan GE memerlukan pengaturan manual. Dalam kasus GE, peran untuk setiap node dalam cluster (server dan, secara opsional, proxy penggabungan kueri) perlu dikonfigurasi secara manual tergantung pada kasus penggunaan.

Database grafik terdistribusi lain yang layak dibandingkan dengan GE adalah JanusGraph, sebuah proyek baru di bawah sponsor Linux Foundation dengan kontribusi dari Google, Hortonworks, dan IBM. Itu dibangun untuk bekerja sama dengan dan memanfaatkan ekosistem Hadoop. Elasticsearch dan Lucene dapat digunakan sebagai mesin pengindeksan, dan Cassandra dan HBase dapat digunakan sebagai penyimpanan data. Dengan GE, data harus diimpor dulu ke dalamnya.

Apa yang tampaknya menjadi tujuan Microsoft dengan GE bukanlah persaingan langsung dengan proyek-proyek tersebut. Sebaliknya, GE adalah bagian dari infrastruktur penyimpanan data terdistribusi yang menerima data baru dan menyediakan komputasi grafik sebagai salah satu dari beberapa manfaatnya. Lisensi liberalnya juga membuatnya mudah diubah menjadi produk lain atau siap digunakan kembali untuk hosting dalam skala besar. Tidak jelas apakah Microsoft telah menggunakan GE sebagai bagian dari sistemnya sendiri (meskipun telah menggunakan LIKQ, seperti disebutkan di atas).

Jika mereka yang membangun di platform non-Microsoft tertarik untuk mencoba Mesin Grafik, dukungan lintas platform untuk Linux / BSD akan segera hadir, menurut salah satu pengembang.