Це Oracle чи MySQL чи щось вони створили самі?
Це Oracle чи MySQL чи щось вони створили самі?
Відповіді:
Розподілена система зберігання структурованих даних
Bigtable - це розподілена система зберігання даних (побудована Google) для управління структурованими даними, яка призначена для масштабування до дуже великого розміру: петабайт даних на тисячах товарних серверів.
Багато проектів у Google зберігають дані у Bigtable, включаючи веб-індексацію, Google Earth та Google Finance. Ці програми пред'являють дуже різні вимоги до Bigtable, як щодо розміру даних (від URL-адрес до веб-сторінок до супутникових знімків), так і вимог до затримки (від об'ємної обробки масивів до подачі даних у режимі реального часу).
Незважаючи на ці різноманітні вимоги, Bigtable успішно запропонував гнучкі, високоефективні рішення для всіх цих продуктів Google.
Деякі особливості
Архітектура
BigTable не є реляційною базою даних. Він не підтримує приєднання, а також не підтримує багаті SQL-запити. Кожна таблиця - це багатовимірна розріджена карта. Таблиці складаються з рядків і стовпців, і кожна клітина має часову позначку. Може бути кілька версій комірки з різними позначками часу. Позначення часу дозволяє проводити такі операції, як "вибрати 'n' версії цієї веб-сторінки" або "видалити комірки, старші за певну дату / час".
Для управління величезними таблицями Bigtable розбиває таблиці за межами рядків і зберігає їх у вигляді планшетів. Планшет становить близько 200 Мб, і кожна машина зберігає близько 100 планшетів. Ця настройка дозволяє розповсюджувати планшети з однієї таблиці між багатьма серверами. Це також дозволяє тонкозернисту балансування навантаження. Якщо одна таблиця отримує багато запитів, вона може пролити інші планшети або перемістити зайняту таблицю на іншу машину, яка не так зайнята. Крім того, якщо машина не працює, планшет може бути розповсюджений на багатьох інших серверах, так що ефективність роботи на будь-якій машині буде мінімальною.
Таблиці зберігаються як незмінні SSTables та хвіст журналів (один журнал на машині). Коли в машині не вистачає системної пам'яті, вона стискає деякі планшети, використовуючи власні методи компресії Google (BMDiff та Zippy). Незначні ущільнення включають лише кілька планшетів, тоді як основні ущільнення включають всю систему таблиці та відновлюють місце на жорсткому диску.
Розташування планшетів Bigtable зберігаються в клітинках. Пошук будь-якого конкретного планшета обробляється трирівневою системою. Клієнти отримують бал до таблиці META0, з яких є лише одна. Таблиця META0 відстежує багато таблеток META1, які містять розташування планшетів, які шукають. І META0, і META1 активно використовують попереднє завантаження та кешування, щоб мінімізувати вузькі місця в системі.
Впровадження
BigTable створений на основі файлової системи Google (GFS), яка використовується як резервна копія файлів журналів та даних. GFS забезпечує надійне зберігання для SSTables - формату файлів Google, що використовується для збереження даних таблиці.
Ще одна послуга, якою BigTable широко користується, це Chubby , високодоступний, надійний розподілений замок. Chubby дозволяє клієнтам зняти замок, можливо, асоціюючи його з деякими метаданими, які він може відновити, надсилаючи постійні повідомлення назад Chubby. Замки зберігаються у ієрархічній структурі імен, подібних до файлової системи.
У системі Bigtable є три основних типи серверів :
Приклад з дослідницької роботи Google:
Фрагмент прикладної таблиці, в якій зберігаються веб-сторінки. Назва рядка - це зворотна URL-адреса . Сімейство стовпців вмісту містить вміст сторінки , а сім'я стовпців якоря містить текст будь-яких якорів, які посилаються на сторінку. На домашню сторінку CNN посилаються як домашні сторінки Sports Illustrated, так і MY-look, тому рядок містить стовпці з назвою
anchor:cnnsi.com
таanchor:my.look.ca
. Кожна анкерна комірка має одну версію ; стовпець зміст має три версії , на тимчасові міткиt3
,t5
іt6
.
API
Типовими операціями для BigTable є створення та видалення таблиць та сімей колонок, запис даних та видалення стовпців з рядка. BigTable надає ці функції розробникам програм в API. Операції підтримуються на рівні рядків, але не через кілька клавіш рядків.
Ось посилання на PDF дослідницької роботи .
І тут ви можете знайти відео, на якому демонструється Джеф Дін Google на лекції у Вашингтонському університеті , де обговорюється система зберігання вмісту Bigtable, що використовується у програмі Google.
Це щось, що вони побудували самі - це називається Bigtable.
http://en.wikipedia.org/wiki/BigTable
У базі даних є документ від Google:
Spanner - це глобально розповсюджена система управління реляційними базами даних Google (RDBMS), спадкоємниця BigTable . Google стверджує, що це не чиста реляційна система, оскільки кожна таблиця повинна мати первинний ключ.
Ось посилання статті.
Spanner - це масштабована, багатоверсійна версія Google, база даних, що розподіляється у всьому світі та синхронно-реплікується. Це перша система, яка розповсюджує дані в глобальному масштабі та підтримує розподілені трансакції зовні. У цьому документі описано структуру Spanner, його набір функцій, обґрунтування, що лежать в основі різних дизайнерських рішень, та новий API часу, який виявляє тактову невизначеність. Цей API та його реалізація мають вирішальне значення для підтримки зовнішньої узгодженості та різноманітних потужних функцій: незаблокування читання в минулому, транзакції без читання лише блокування та зміни атомної схеми на всьому протязі Spanner.
Інша база даних, винайдена Google, - Megastore . Ось реферат:
Megastore - це система зберігання даних, розроблена для задоволення потреб сучасних інтерактивних онлайн-сервісів. Megastore по-новому поєднує масштабованість сховища даних NoSQL із зручністю традиційних RDBMS та забезпечує як міцні гарантії послідовності, так і високу доступність. Ми забезпечуємо повністю серіалізаційну семантику ACID в тонкозернистих розділах даних. Цей розділ дозволяє синхронно копіювати кожне записування в широкій мережі з розумною затримкою та підтримувати безперебійне відмовлення між центрами обробки даних. У цій роботі описаний алгоритм семантики та реплікації Мегастора. Він також описує наш досвід підтримки широкого спектру виробничих послуг Google, побудованих за допомогою Megastore.
Як уже згадували інші, Google використовує домашнє рішення під назвою BigTable, і вони випустили кілька паперів, що описують це в реальному світі.
Люди Apache реалізують ідеї, представлені в цих роботах під назвою HBase . HBase є частиною більшого проекту Hadoop, який, згідно з їхнім сайтом, "є програмною платформою, яка дозволяє легко писати та запускати програми, які обробляють величезну кількість даних". Деякі з орієнтирів досить вражаючі. Їх сайт знаходиться на веб-сайті http://hadoop.apache.org .
Хоча Google використовує BigTable для всіх своїх основних додатків, вони також використовують MySQL для інших (можливо, другорядних) додатків.
І, можливо, також зручно знати, що BigTable - це не реляційна база даних (як MySQL), а величезна (розподілена) хеш-таблиця, яка має дуже різні характеристики. Ви можете самі пограти з (обмеженою версією) BigTable на платформі Google AppEngine .
Поруч із згаданим вище Hadoop є багато інших реалізацій, які намагаються вирішити ті самі проблеми, що і BigTable (масштабованість, доступність). Вчора я побачив хороший пост у блозі, в якому перераховано більшість із них тут .
Google в основному використовує Bigtable.
Bigtable - це система розподіленого зберігання для управління структурованими даними, яка призначена для масштабування до дуже великих розмірів.
Для отримання додаткової інформації завантажте документ звідси .
Google також використовує бази даних Oracle і MySQL для деяких своїх програм.
Будь-яка додаткова інформація, яку ви можете додати, дуже цінується.
Google also use Oracle
- необхідна довідка.
Служби Google мають архітектуру стійкості поліглотів. BigTable використовує більшість своїх сервісів, таких як YouTube, Пошук Google, Google Analytics тощо. Служба пошуку спочатку використовувала MapReduce для індексування інфраструктури, але пізніше переходила на BigTable під час випуску кафени
У Google Cloud Datastore є понад 100 додатків, що випускаються в Google як для внутрішніх, так і для зовнішніх користувачів. Такі програми, як Gmail, Picasa, Календар Google, Android Market та AppEngine, використовують Cloud Datastore & Megastore.
Google Trends використовують MillWheel для обробки потоку. Google Ads спочатку використовував MySQL пізніше мігрував до F1 DB - спеціально написаної розподіленої реляційної бази даних. Youtube використовує MySQL з Vitess. Google зберігає надмірні дані на товарних серверах за допомогою файлової системи Google.
Джерело: Бази даних Google: Як сервіси Google зберігають дані шкали Petabyte-Exabyte?
База даних YouTube - як зберігається стільки відео, не втрачаючи місця для зберігання?