Car-tech

YouTube, MySQL'i Go koduyla

Как установить MySQL в Windows 10

Как установить MySQL в Windows 10
Anonim

YouTube mühendisleri, açık kaynaklı MySQL veritabanlarının çok büyük ölçekli üretim ortamlarında daha verimli çalışmasına yardımcı olacak bir dizi yazılım geliştiriyor. Kodu yazmak için Google'ın programlama dilini kullanıyorlar Go.

YouTube, 800 milyonun üzerinde aylık kullanıcılara hizmet sunmaya yardımcı olmak için Vtocc adlı bir Vitess bileşenini zaten kullanıyor. Google, YouTube'u 2006'da satın aldı.

Vtocc, YouTube mühendislerinden Mike Solomon ile birlikte Vitess'i tartışan YouTube mimarı Sugu Sougoumarane’ın “çok istikrarlı olduğunu ve üretim ortamında kullanmanız için gerekli tüm araçlara sahip olduğunu” söyledi. Bu hafta San Diego'da düzenlenen Usenix LISA (Büyük Kurulum Sistemi Yönetimi) konferansında.

Bu Vitess Go'da yazılmıştır, bu nispeten yeni programlama dilinin büyük ölçekli üretim ortamlarında kullanılabileceği fikrini doğrulamaya yardımcı olabilir. Google, Mart ayında Go sürüm 1'i kullanıma sundu.

YouTube, her ay 4 milyardan fazla videoya hizmet veriyor. Her dakika yaklaşık 72 saat video yüklenir. YouTube, tüm videolarını doğrudan bir dosya sisteminde depolarken, her video için, kullanıcı tercihleri, reklam bilgileri, ülke özelleştirmeleri ve diğer gerekli bilgi parçaları gibi gerekli tüm meta verileri saklamak için MySQL kullanır.

YouTube, MySQL'i kullanmayı sever güvenilirliği için, aslen hizmetini yapan mühendislerden biri olan Solomon. Bu tuhaflık var, ama bu tuhaflıklar iyi bilinir ve oldukça kolay bir şekilde hafifletilebilir dedi. Bununla birlikte, MySQL'in ölçekleme ile ilgili sorunları da vardır - en azından YouTube'unki kadar büyük bir hizmeti karşılamak için ölçeklendirme.

"MySQL ile ilgili en önemli sorun, belirli bir noktaya [kullanım] geldiğinde çok fazla harcama yapmanızdır. Solomon, donanımı yönetmek için zaman ve kaç örneğiniz olduğunu söyledi. “Biz bu parçayı otomatikleştirmek istiyoruz. Karmaşık ve yanıltıcı olan her türlü eylemi gerçekleştirmek ve kendini iyileştirmek istiyoruz.”

Ayrıca büyük bir dağıtımda kullanıldığında MySQL de çok verimli değil. Genellikle, her bağlantı MySQL sunucusunda kendi iş parçacığı gerektirir. Bununla birlikte, bu yaklaşım YouTube'un operasyonlarının ölçeğinde mümkün değildir. Solomon, "Onbinlerce bağlantının yürütülmesi gerçekten mümkün değil," dedi.

Şirketin mühendisleri, çekirdek MySQL kodunun kendisini değiştirmeye çalışmak konusunda isteksizlerdi. Anlama kodu genellikle beklenmedik etkilere neden olabilir. "Bu basit değil. Ne yaptığını bildiğin zaman, başını belaya soktuğun zaman," dedi Solomon.

Böylece Vitess, ek yönetim yetenekleri sunmak için MySQL ile birlikte çalışacak şekilde yaratıldı. Örneğin, Vtocc bileşeni gelen binlerce SQL sorgusunu daha az sayıda parti halinde birleştirir, dolayısıyla MySQL bu istekleri karşılayan daha az kaynak alabilir. Vtocc sorguları da daha verimli bir şekilde yürütmek için ayrıştırır ve diğer benzer istekleri karşılamak için sonuçları bir sorgudan tekrar ederek yinelenen sorguların neden olduğu işi azaltır.

Go kullanımı, YouTube geliştiricilerin, kendilerinden daha üretken olmalarını sağladı. Daha geleneksel bir dil kullanıyor, Sougoumarane dedi.

Go kod hızla derler, dedi. Vitess'deki 30.000 satırlık kod, yaklaşık 30 saniye içinde ikili dosyalara derlenebilir. Ve zengin kütüphaneler seti sayesinde, birçok görev o kadar fazla programlama gerektirmez. Örneğin Sougoumarane, günlük dosyalarını, C veya C ++ kullanarak birkaç satırda yazılmayan işlevselliği periyodik olarak düzelten 105 satırlık bir rutini yazdı.

"Bu ne kadar etkileyici Go," diyor Sougoumarane. "Dil özellikleri iyi düşünülmüş. Geleneksel dillerden çok daha zarif bir şekilde şeyler oluşturmanıza yardımcı oluyorlar." Sougoumarane, Go'nun çokluortam işlemcilerde kullanım için hayati önemi olan, eşzamanlılık desteğini de övdü. "Konuların yönetimi hakkında endişelenmenize gerek yok. Git onları sizin için yönetir" dedi.

Sougoumarane de dilin de bazı olumsuzlukları olduğunu kabul etti. Örneğin, hata işleme geliştirilebilir. Zamanlama ve çöp toplama bazı işleri de kullanabilir.

Süleyman, zamanla Vitess'in veritabanı replikasyonu ve otomatik bileme gibi ek görevler üstleneceğini, böylece bir veritabanının yöneticilerden hiçbir müdahalede bulunmadan birden fazla sunucuda büyüyebileceğini söyledi.

Joab Jackson, IDG News Service için kurumsal yazılım ve genel haber kırma haberlerini kapsamaktadır. @Joab_Jackson'da Twitter'dan Joab'ı takip edin. Joab'ın e-posta adresi [email protected]