Facebook'un NoSQL Veritabanlarını Kullanımı

Yayınlanan: 2022-11-22

Facebook, devasa sosyal grafiğini ölçeklendirmesine yardımcı olmak için bir dizi NoSQL veri tabanını hayata geçirdi. Bu veritabanları arasında Apache HBase, Apache Cassandra ve Apache Thrift bulunur. Facebook, bu NoSQL veritabanlarını kullanarak, büyük miktarda veriyi muhafaza etmeye devam ederken kullanıcılarına hızlı ve duyarlı bir deneyim sunabiliyor.

İki milyardan fazla insanın profilleri Facebook'un veritabanında saklanıyor. Bugün, çok kiracılı SaaS gibi iş açısından kritik birçok kurumsal uygulama, Facebook'un internet ölçeğinde, küresel olarak dağıtılmış mimarisine güveniyor ve Facebook veritabanının gelişimini anlamaktan öğrenilecek dersler var. Popüler bir açık kaynak veritabanı olan Mystria, FB'nin NoSQL Grafik API'si TAO'nun temelidir. Sonuç olarak TAO, FB'nin mevcut 1000 adet manuel olarak güçlendirilmiş MySQL ana kölesini parçalanmış kölelere dönüştürdü. Sonuç olarak, uygulama artık veritabanını parçalar arası işlemleri ve ortak işlemleri gerçekleştirmek için kullanmaz. Buna ek olarak, başarısız bir taşma gerçekleştirilirse, yakın zamanda kaydedilen veriler kaybolacaktır. Nesneler ve ilişkilendirmeler, parçada herhangi bir değişiklik yapılmadan aynı sunucu kümesinde depolanır.

Veri kollokasyonu derecesinin, düşük gecikmeli veri erişimini kolaylaştırmak için önemli bir optimizasyon tekniği olduğu belirlendi. FB, bir sorgu API'si olarak SQL'i terk etmeye ve TAO'nun özel NoSQL API'sini benimsemeye karar verdiğinde, geliştiricileri SQL'i tamamen terk etti. Google, Facebook'un aksine, küresel olarak tutarlı olan Spanner adlı tamamen yeni bir veritabanı oluşturuyordu. Spanner'ın veri modeli, bir sosyal grafik yerine geleneksel, rastgele erişimli OLTP'ye dayanıyordu. Büyük ölçeklenebilirlik ve küresel veri dağıtımı, ikinci nesil dağıtılmış veritabanlarının veritabanı katmanına yerleştirilmiştir. Spanner, arıza durumunda her bir parçanın (yalnızca bir örneğin değil) yüksek düzeyde kullanılabilir olmasını sağlamak için parça başına dağıtılmış mutabakat kullanır. Bu yapılandırma değişikliği, uygulamanın bağlamında yapılır ve normal şekilde çalışmaya devam eder.

Tablo düzeyinde ve satır düzeyinde coğrafi bölümleme gibi jeo-uzaysal özellikler etkinleştirilirse, yerel bölgeyle ilgili veriler yine de aynı bölgede bulunabilir. Çok parçalı işlemlerde iki aşamalı bir Taahhüt kullanılır ve dağıtılmış bir işlem yöneticisi, düğümler boyunca saat sapmalarını izler. Parçalı MySQL'deki mevcut yatırımımızı sürdürmek için FB'de TAO'yu kurduk. Google, yatay olarak ölçeklenebilen, coğrafi kopyayı çoğaltabilen ve altyapı hatalarını sanki oluyormuş gibi ele alabilen tamamen yeni bir veritabanı olan Spanner'ı oluşturarak geleneği kırmaya karar verdi.

Facebook'ta çeşitli nedenlerle MySQL kullanıyoruz. MySQL ile küçük bir ekip, mümkün olan en düşük maliyetle yüksek kaliteli hizmet sunarken binlerce sunucuyu yönetebilir.

FB tarafından 2009'un başlarında oluşturulan bir NoSQL grafik API'si olan TAO'nun MySQL tabanlı Apache Cassandra üzerinde çalışması amaçlanmıştı. Bu bölümün birincil amacı, bir önceki bölümde vurgulanan sorunları ortadan kaldırmaktı. Dernekler ve Nesneler'in kısaltması olan TAO, ilişkilendirmeler ve nesneler anlamına gelir.

Facebook'un ilk veri depolaması, büyük ölçüde ilişkisel bir MySQL veritabanına dayanıyordu. Facebook mühendisleri, Google'ın Google BigTable NoSQL veritabanları hakkındaki makalesinden ilham almış olsalar da, Facebook'un NoSQL veritabanına dayalı bir sütun ailesi deposu olan Cassandra'yı yarattılar.

Facebook, birincil verilerini tutmak için bir ilişkisel veritabanı sistemine sahiptir. MySql 5.6 çatalını kullanan bir milyardan fazla kullanıcının sosyal grafiğini ve Facebook mesajlaşma verilerini (bir milyardan fazla kullanıcı) tutar.

Facebook Nosql Kullanıyor mu?

Fotoğrafı çeken: redmondpie.com

NoSQL veritabanlarının kullanımı her bir uygulamanın özel ihtiyaçlarına bağlı olarak değiştiğinden, bu sorunun herkese uyan tek bir yanıtı yoktur. Bununla birlikte, Facebook'un büyük hacimli verilerini depolamak ve yönetmek için hem SQL hem de NoSQL veritabanlarının bir karışımını kullandığı genel olarak kabul edilmektedir.

Hem Cloud Datastore hem de Cloud Firestore, gerçek zamanlı veri analitiği için kullanılabilecek belge odaklı bir veritabanı arayan işletmeler için mükemmel seçeneklerdir. Cloud Firestore, optimize edilmiş mimarisi ve mobil cihazlarda kullanım kolaylığı sayesinde küçük belgeler için mükemmel bir seçimdir. Cloud Datastore, son derece yüksek iş yüklerini işlemek ve otomatik olarak ölçeklendirmek için tasarlanmıştır. Bunun için de çok fazla kullanım var.

Facebook Verileri Veritabanında Nasıl Depolar?

Facebook, verileri tablolar halinde düzenlenmiş ilişkisel bir veritabanında saklar . Veriler daha sonra tabloların içindeki sütunlarda ve satırlarda saklanır. Veriler metin, sayılar ve tarihler biçiminde saklanır.

Facebook'un Prineville, Oregon'daki veri depolama tesisi. Katıldığınız etkinliklerden durumunuza (veya aşk, haha, vay, üzgün veya kızgın surat), zaman çizelgenize kadar her şeyi takip edin. Tahminlere göre, Facebook'un Oregon tesisi 300 petabayta kadar depolama kapasitesine sahip olabilir. Bu miktardaki veriyle, ortalama boyutta yaklaşık 100 milyar fotoğraf depolayabiliriz. Facebook'un tüm gönderilerinizi, fotoğraflarınızı, videolarınızı, durum güncellemelerinizi vb. güvende tutmanın bir yolu olmasaydı. Bunu yapmamayı seçerseniz, Facebook kim olduğunuzu hatırlayamaz. Kendinizi gerçekten arzu ettiğiniz şekilde ifade etmeniz için ayrılmış az miktarda (veya birkaç milyon) alan vardır.

Reklamları kişiselleştirmek ve Facebook ile etkileşim sıklığınızı artırmak için kullanılır. Facebook'un sizin hakkınızda bildiği belirli web siteleri, gördüğünüz reklamlar ve beğendiğiniz gönderiler vardır.
Facebook ayrıca bu verileri üçüncü taraf işletmelere satar. Donald Trump'ın başkanlık kampanyasında çalışan bir veri firması olan Cambridge Analytica, 87 milyon Facebook kullanıcısının kişisel bilgilerini ele geçirdi.
Güvende olmak için, Facebook'un verilerinizi nasıl topladığını ve kullandığını bilmeli ve gizliliğinizi korumak için adımlar atmalısınız. Bir Facebook gizlilik aracı kullanarak Facebook hesabınızı silebilir veya diğer şeylerin yanı sıra Facebook Pikselini ve Facebook Beğen düğmesini devre dışı bırakabilirsiniz.
Son veri skandalının bir sonucu olarak Facebook ve üçüncü taraf şirketlerle ilgili endişeler gündeme geldi.
Cambridge Analytica skandalı sırasında Facebook şeffaf olmadığı ve yeterince hızlı hareket etmediği için eleştirildi. Facebook'un CEO'su Mark Zuckerberg, Salı günü skandalla başa çıkmak için izin alacağını duyurdu.
Facebook ve WhatsApp'ta büyük çaplı veri ihlallerinin ortaya çıkmasından bu yana, Mark Zuckerberg, hesap verme sorumluluğunun olmaması ve mahremiyet endişelerini giderememesi nedeniyle incelemeye alındı.
Suçlamalara göre Facebook, kullanıcı verilerini kullanarak siyasi görüşleri manipüle ediyor.
Ortaya çıkan gizlilik sorunlarının bir sonucu olarak, Facebook şeffaf olmadığı ve bunları ele almadığı için eleştiri yağmuruna tutuldu.
Facebook'un kullanıcı verilerini toplayarak kullanıcılarının siyasi görüşlerini manipüle ettiği iddia edildi.
Kullanıcılara bir dizi adım atma seçeneği sunulur.


Facebook Cassandra'yı Nasıl Kullanır?

Fotoğrafı çeken: eurekastreet.com.au

Cassandra, ölçeklendirme ve kullanılabilirlik için iyi bilinen tekniklerin bir kombinasyonunu kullanır. Cassandra'nın amacı, Gelen Kutusu Arama sorununun depolama gereksinimlerini karşılamaktı. Kutuda Arama, Facebook kullanıcılarının mesajlarını gelen kutularından aramalarına olanak tanıyan yeni bir özelliktir.

Facebook, 25TB ve 100 milyondan fazla posta kutusuyla e-posta arama motoru olarak Cassandra'yı kullanıyor. Facebook, Cassandra'yı 1 Temmuz 2017'de Apache'nin lisansı altında açık kaynak olarak yayınladı. Bu videoda Cassandra'nın mimarisine ve tasarımına derinlemesine bir bakış atacağız. Cassandra başlangıçta bir gelen kutusunda e-posta adreslerini bulma sorununu çözmeyi amaçlıyordu. Bir memtable'a yazarken, her zaman kümedeki her düğüm için sıralı olan bir kayıt günlüğüne (sıralı) yazacaksınız. Kurulum sırasında, tabloyu diskten temizlemek için aşağıdaki adımları okuyun: * Alan yetersiz * Fazla boşluk bırakılmış tuşlar (varsayılan 128) * Zaman süresi (istemci saatsiz sağlanır). Staged Event-Driven Architecture (SEDA) ve bir dedikodu protokolü aracılığıyla hata algılama ile uyumludur. 100 milyon kullanıcısı, 4 milyar iş parçacığı ve 25 TB verisi vardır ve Hadoop'u saatte 1,5 TB hızında çalıştırabilir.

Parlaklık Kapalı: Facebook Mysql İçin Cassandra'yı Hendekledi

Facebook, mesajlaşma sistemini oluşturmak için Cassandra yerine Hbase'i seçti. Dağıtılmış mimarisi nedeniyle Netflix'in Cassandra'yı kullanması doğal bir seçimdi ve 2013 yılına kadar verilerinin çoğu burada barındırılıyordu ve bugün de kullanmaya devam ediyor. Facebook, veri depolama söz konusu olduğunda Cassandra yerine MySQL kullanır. Facebook tarafından tüm sosyal medya verilerini depolamak için kullanılan birincil veritabanı MySQL'dir. İlk veritabanı motoru MyRocksDB'yi ve ardından MySQL veritabanı motoru InnoDB'yi yarattılar. MySQL ve Memcache bir önbellek oluşturmak için birleştirildi.

Facebook Tarafından Kullanılan Nosql Veritabanı

Fotoğrafı çeken: medium.com

Facebook, tüm sosyal medya verilerini dayandığı birincil veritabanı olan MySQL'de saklar.

Bir veritabanından veri toplama işlemi, veri toplama olarak bilinir. Verileri depolamak ve analiz etmek için çeşitli şekillerde kullanılabilir. DBMS, belirli bir veritabanında çalışan veritabanı yönetim sistemidir. Facebook, dünyanın her yerindeki insanların birbirleriyle paylaştığı çeşitli bilgi türlerini takip etmek için bir dizi veri tabanı kullanır. Cassandra depolama sistemi , büyük miktarda veri yapısını yönetmeyi amaçlamaktadır. Bu uygulama, depolama alanı eksikliğinden kaynaklanan en iyi Gelen Kutusu arama sonuçlarını bulma sorununu çözmek için oluşturuldu. Bu önbelleğe alma yöntemi yalnızca bellek içi çözümleri kullanır. Bu durumda uygun fiyata depolama paylaşımlı havuz erişimi sağlanmaktadır.

Cassandra Vs. Bulut Bigtable Vs. Amazon Dynamodb

Cassandra, yalnızca Google ve Amazon'u takip eden Facebook için en popüler arka uç depolama seçeneklerinden biridir. Cloud Bigtable ile analitik ve operasyonel iş yüklerini yüksek performanslı bir NoSQL veritabanı hizmetinde çalıştırabilirsiniz. Amazon DynamoDB, her ölçekte devreye alınabilen ve yüksek performanslı uygulamalar için ideal olan sunucusuz, anahtar-değerli bir NoSQL veritabanıdır.

Facebook Tarafından Kullanılan Veritabanı

Facebook, verileri depolamak ve düzenlemek için bir ilişkisel veritabanı yönetim sistemi (RDBMS) kullanır. Bir RDBMS, verileri tablolarda depolayan bir veritabanı türüdür ve her tablo diğer tablolara ilişkilerle bağlıdır. Facebook, Facebook kullanıcılarının oluşturduğu büyük miktarda veriyi işlemek için tasarlanmış, özel olarak oluşturulmuş bir RDBMS kullanır.

Facebook kullanan bir milyardan fazla insan var. Kullanıcılar, duvar yazılarını kullanarak kendilerini ifade ediyor ve akranları ve arkadaşlarıyla etkileşim kuruyor. Yüz milyonlarca kullanıcıyı idare etmesine rağmen, Facebook mühendisleri sitenin sorunsuz çalışmasını sağlamak zorunda kaldı. Bu makale, okuyuculara hedeflerine ulaşmak için kullandıkları bazı araç ve yöntemleri tanıtmaktadır. Facebook, 500 milyondan fazla kullanıcısı olan web sitesini olabildiğince dinamik tutmak için çeşitli sistemler kullanır. Performansınızı yüksek seviyede tutarken ölçeklenebilirlik ve yüksek kullanılabilirliğe ihtiyacınız varsa, Apache Cassandra mükemmel bir seçimdir. Scribe kayıt sistemi, Facebook'un çeşitli nedenlerle dahili olarak giriş yapmasına izin verir. Vernik, ışık hızında yük dengeleme ve önbellek içeriği sunmak için bir HTTP hızlandırıcı olarak kullanılabilir.

Facebook nedir?
Facebook'un veri merkezi altyapısının bu ifşası, birkaç nedenden dolayı önemli sonuçlara sahiptir. İlk olarak, Facebook'un sürekli hizmet kalitesi taahhüdünü gösterir. Ayrıca, veri merkezi, Facebook'un operasyonlarına benzeri görülmemiş bir erişim düzeyine sahiptir. Son olarak, Facebook'un trafiği yönetmek ve performansı optimize etmek için kullandığı Otomatik Ölçeklendirmenin önemini vurguluyor.

Facebook Neden Mysql Kullanıyor?

Facebook büyüdükçe ve SQL ve MySQL her yerde bulunur hale geldikçe, MySQL'i kalıcı veritabanı olarak ve memcache'i "yan görünüm" önbelleği olarak kullanan bir PHP uygulamasına dönüştü. Facebook, evrensel (çok kiracılı) veritabanı olarak adlandırılan verilerini barındırmak için bugün 1000'den fazla MySql sunucusu kullanıyor. Bir veritabanı yoğun bir şekilde bölümlenir ve çoğaltılır. Verileri bulmak için gereken parça sayısını azaltmak için ilgili tüm veriler bir parçada tutulur. Netflix tarafından kullanılan bir veritabanı nedir? Oracle, Netflix'in veri merkezindeki en yaygın veri kalıcılık sistemidir. Bazı alanlarda film tavsiyesi altyapısında MySQL kullanılmaktadır. Her ikisinde de veritabanları ilişkisel veritabanlarıdır .

Facebook Veritabanı

Bir Facebook veri tabanı , sosyal ağ sitesi Facebook tarafından organize edilen ve saklanan bir veri koleksiyonudur. Bu veriler, kullanıcılar, arkadaşları ve sitedeki etkinlikleri hakkında bilgiler içerebilir. Facebook veritabanı, sitenin özelliklerini ve işlevlerini güçlendirmek için kullanılır.

Cassandra Nasıl Facebook İçin Veri Deposu Oldu?

SQL'in veri modelleme esnekliği ve FB ilk başlatıldığında MySQL'in yaygın kullanımı nedeniyle, MySQL başlangıçta kalıcı veritabanı olarak kullanıldı ve memcache, sosyal grafik için bir "yan görünüm" önbelleği olarak kullanıldı.
Bir petabayt veri Facebook'ta her gün yaklaşık bir milyon gigabayt ağırlığındadır. Bir petabayt, yaklaşık 300 petabayt veriye eşittir ve tümü bir Hive tesisinde bulunur.
Facebook'un Cassandra'yı tamamen terk etmesine rağmen, birkaç isim vermek gerekirse Twitter, Netflix ve Apple gibi büyük şirketler tarafından hala kullanılıyor. Öte yandan DataStax, aracın çeşitli diğer işletmeler için kullanılabilen bir sürümüne sahiptir.
Sonuç olarak, Facebook artık kendi verilerini Cassandra'da saklamazken, diğer işletmeler saklıyor.

Yeni Nosql Veritabanı

SQL tabanlı olmayan bir NoSQL veritabanı, verileri ilişkisel bir veritabanından farklı bir şekilde toplayan veritabanı olarak tanımlanır. Tablo veritabanları , tablolarda sabit küme sütunlarına ihtiyaç duymaz, yatay ölçeklendirme ile uyumludur ve ilişkisel veritabanları gibi JOIN gerektirmez. NoSQL veritabanlarının türleri, kullanılan veri modeline göre farklılık gösterir.

Endüstride çeşitli amaçlar için en yaygın kullanılan veri tabanı türlerinden biridir. Geleneksel veritabanlarına göre bulut bilgi işlem kullanmanın kullanım kolaylığı, artırılmış bulut depolama kapasitesi ve iyileştirilmiş veri güvenliği gibi çeşitli avantajları vardır. NoSQL veritabanları, sağlık kayıtları, finans kayıtları ve diğer veritabanları dahil olmak üzere çok çeşitli amaçlar için kullanılır. RavenDB NoSQL belge veritabanı, ACID işlemlerini (Atomisite, Tutarlılık, İzolasyon ve Dayanıklılık) destekler ve sağlam belge tipi yeteneklere sahip sağlam bir NoSQL veritabanıdır. Couchbase ile bir mobil ve Nesnelerin İnterneti (IoT) uygulaması oluşturabilirsiniz. Grafikleri, belgeleri ve diğer verileri aramak ve görüntülemek için ArangoDB'yi de kullanabilirsiniz. OrientDB, grafikler ve belgeler için çoklu model desteği içeren ilk NoSQL veritabanlarından biridir.

Verilerinizle ilgili fikir edinmek için veritabanınızda daha fazla bağlama ihtiyacınız varsa, Neo4j'yi uygun bir seçenek olarak bulabilirsiniz. MongoDB, mobil uygulamaları hızlı bir şekilde oluşturmanıza, test etmenize ve yayınlamanıza olanak tanıyan Realm adlı farklı bir platform sağlar. MarkLogic Veritabanı, çok modelli veritabanlarının yanı sıra NoSQL yetenekleri gerektiren iş yüklerini işlemek için oluşturulmuştur. MarkLogic Veritabanı, ilişki verilerini depolamak ve analitik çalışmaları yürütmek için iyi bir NoSQL veritabanı platformudur . Ödün vermek istemiyorsanız tam olarak yönetilen bir çözüm en iyi seçenektir.

Fb Veritabanı Mimarisi

fb veritabanı mimarisi , verilerinizi düzenlemenize ve yönetmenize yardımcı olabilecek güçlü bir araçtır. İhtiyaçlarınıza uyacak şekilde özelleştirilebilen esnek bir sistemdir. fb ile çeşitli kaynaklardan kolayca veri depolayabilir ve alabilirsiniz.

Facebook, MySQL alt ucunun üzerindeki her şey için önbelleğe alınmış grafiklere sahip bir yığın mimarisi kullanır. Başka bir deyişle, ilişkisel bir veritabanının bir grafik veritabanından daha iyi performans göstermediği anlamına gelir. Arkadaşların arkadaşlarına ek olarak, karmaşık sorgular yapmak, "Belirli bir koordinat etrafındaki tüm konumlar" gibi basit sorgular yapmaktan daha zordur. Bu durumda bir grafik en iyi çözümdür. 1 milyondan biraz fazla kullanıcı için 1,8 saniye harcanırken, 100 binden biraz fazla kullanıcı için 18 saniye harcanacak. Aynı sorguyu çalıştıran birden fazla kullanıcınız varsa, denediğiniz tek sorgunun bu olmadığını unutmayın. Facebook arkadaş ilişkisini nasıl tasarladı sorusunun cevabı çok iyi tasarlanmış olmasıdır. Uygulamanızda size yardımcı olamayacağım için içtenlikle özür dilerim.