LINUX.ORG.RU

Twitter открыл исходные тексты своих модификаций СУБД MySQL

 ,


0

0

Twitter открыл исходные тексты модифицированной версии MySQL, которую используют в компании для хранения текстов твитов, timeline и данных пользователей.

Исходники включают большое количество изменений, в том числе:

  • дополнительные статусные переменные для мониторинга состояния InnoDB;
  • оптимизацию распределения памяти для больших NUMA-систем;
  • возможность отмены долго выполняющихся запросов по таймауту с миллисекундным разрешением;
  • выгрузку и восстановление буферов InnoDB, позволяющую производить быструю перезагрузку СУБД;
  • оптимизации для SSD.

Исходные тексты доступны на github.

>>> Подробности

★★★★★

Последнее исправление: post-factum (всего исправлений: 3)
Ответ на: комментарий от anonymous

Уж больно долго на ней все пишется.

Да ладно, на самом деле выразительность языка не так сильно влияет на разработку. Да, код на, скажем, питоне, местами, может быть короче Джава-кода, но учитывая мощные современные IDE - это никак не скажется на времени разработке. И не надо преувеличиывать время «печати» в полном цикле разрработки ПО.

theos ★★★
()
Ответ на: комментарий от anonymous

Clojure, Scala если при таком раскладе джава их обойдет?

Да почему сразу обойдет. Писать меньше - эстетически приятнее. Мне доставляет удовольстве писать [e.name for e in students] вместо 5 строчек на Java, пусть и сгенерированных за меня. Но, тем не менее, моя производительность не принципиально зависит от всех этих ништяков в языке. Доскональное знаение платформы, мощный инструментарий и готовые компоненты, удобство сред разработки значат гораздо больше.

theos ★★★
()
Ответ на: комментарий от anonymous

С большими приложениями беда в том, что пишется намного меньше кода, чем читается. А для адекватного баг-фикса бывает нужно пролистать несколько функций чтобы понять откуда пришла проблема. И проблема в вашей системе или в соседней.

Так что для «огромных масштабных» проектов как раз java лучше всего - она выигрывает наглядностью.

Скала хороша когда пишет 2-3 человека с высоким уровнем программирования. Для «огромных масштабных» проектов 2-3 человека просто ни о чем.

Скала будет рвать джаву именно на малых проектах (возможно и высоко нагруженных), но на «огромных масштабных» джава пока лучше.

ЗЫ та же кассандра написана на джава, а не скале ;)

VoDA ★★
()
Ответ на: комментарий от VoDA

та же кассандра написана на джава, а не скале ;)

Так подобные языки хороши на _прикладных_ задачах, а не «системных». В не прикладных задачах (как разработка баз данных) преимуществ от синтаксического сахара вобще околонулевая. А вот то, что на Scala эффективный код писать сложнее ( в том смысле что не понятно точно, во что код компилируется. Функциональный стиль на скале работает _очень_ медленно), существенный поинт против скалы без привязки к уровню разработчиков.

theos ★★★
()
Ответ на: комментарий от anonymous

Или же использовать Clojure || Scala и писать более краткий и читабельный код.

Код либо короткий либо читаемый. Тот же perl - короткий, но не читаемый. Со скалой та же беда.

А не использовать часть функционала языка на большом проекте - нельзя. За тебя ею воспользуется 5-й программист из 3-команды. А багу надо будет закрывать тому, кто на нее наткнулся.

ЗЫ работал в проекта где только программистских команд было около 5-ти. Каждая из которых еще билась на под-группы по 2-3 человека, которые решали различные задачи и создавали отдельные подсистемы.

VoDA ★★
()
Ответ на: комментарий от theos

Так подобные языки хороши на _прикладных_ задачах, а не «системных».

Линейно масштабируемая на сотни нод система хранения данных это системная задача или прикладная? ;)

Любая задача может быть решена и на С/С++, только для больших проектов это займет заметно больше времени и денег. Потому имеет смысл так поступать только для задач типа ядра ОС или совсем уж низкоуровневых подсистем типа ФС.

VoDA ★★
()
Ответ на: комментарий от VoDA

Заранее пардон за оффтоп. Я видел вас еще на sql.ru, можете что-нибудь посоветовать начинающему джависту? Что пользуется постоянным спросом, что требуется от стажеров, джунов?

anonymous
()
Ответ на: комментарий от VoDA

это системная задача или прикладная? ;)

Системная. Прикладная - это когда уже прикладывают к конечной предметной области: медецине, природоведению и т.д.

Любая задача может быть решена и на С/С++

эээ. причем здесь это?

theos ★★★
()
Ответ на: комментарий от red_eyed_peguin

Redis — это просто медленный мемкеш, который умеет чуть больше, чем простое отображение key на value.

Redis работает быстрее мемкеш и умеет *гораздо* больше, чем простое отображение key на value.

anonymous
()
Ответ на: комментарий от red_eyed_peguin

разрабы

Когда я вижу это сокращение (?) слова «разработчик», мне хочется нахамить употребившему его. Я один такой?

Нет. Но это ты ещё не слышал слова «программишки», с помощью которого некоторые бывшие «разрабы» стараются откреститься от бывших коллег.

hobbit ★★★★★
()
Ответ на: комментарий от theos

это системная задача или прикладная? ;)

Системная. Прикладная - это когда уже прикладывают к конечной предметной области: медецине, природоведению и т.д.

А не странно что системная задача хранения данных решается на не системном (по мнению ЛОР аналитиков) языке?

VoDA ★★
()
Ответ на: комментарий от anonymous

Заранее пардон за оффтоп. Я видел вас еще на sql.ru, можете что-нибудь посоветовать начинающему джависту? Что пользуется постоянным спросом, что требуется от стажеров, джунов?

Я становлюсь знаменит ;)))

Буду банален - знания и профессионализм. Знать что и как работает и уметь ее использовать.

Нужно уметь программировать... что же до рекомендаций. Я бы порекомендовал изучить Java SE без углубления в GUI. Гуй на джаве отдельное удовольствие для избранных. А после базы SE стоит изучить servlets+JPS для понимания как джава работает в вебе. Затем Spring. Он намного проще JavaEE, но позволяет реализовать сравнимый функционал. JavaEE стоит как набор фреймворков и систем для РАЗНОГО функционала, потому за раз его не сгрызть. Хотя различные подсистемы типа JPA или JMS можно использовать и без полного JavaEE.

итого JavaSE (без GUI) -> servlets & JSP -> Spring. На этой базе можно изучать и JSF и GWT и другие фреймворки для разработки. Android также легко ложится после этого всего - у нас pure java программисты переходили на Андроида довольно споро.

JavaSE -> servlets&JSP -> Spring -> любые фреймворки, системы или библиотеки легко даются поскольку база понимания какие подходы применяются уже есть.

VoDA ★★
()
Ответ на: комментарий от VoDA

Годная рекомендация. Java SE я осилил. Правда остались некоторые пробелы в многопоточности, но это решается путем чтения Java Concurrency in Practice. Спасибо.

anonymous
()
Ответ на: комментарий от VoDA

А не странно что системная задача хранения данных решается на не системном

Ну Java - не слишком прикладной язык, системный != низкоуровневый.

theos ★★★
()
Ответ на: комментарий от theos

Кстати - Java - низкоуровневый язык на самом деле как раз. Потому что есть Java-машина и ее ассемблер и Java мапится в него практически один-в-один. Если бы не чуток синтаксического сахара (for-each + анонимные классы) можно было бы вообще сказать что это диалект Java-ассемблера. Как раз именно по-этому я ее выбираю для системных задач - я хорошо знаю «Java машину» и только с Java знаю, что на самом деле происходит при исполнении.

theos ★★★
()
Ответ на: комментарий от VoDA

А что по поводу СУБД? На какую лучше обратить внимание? Я пока ковырялся с MySQL и немного с Oracle XE.

anonymous
()
Ответ на: комментарий от anonymous

Только вернулся с отпуска =)))

Из СУБД стоит или специализироваться на одной из «Энтерпрайзов» (MS SQL server или Oracle DB) и идти как техническому консультанту по данной СУБД. Либо, что более интересно, знать основные моменты современных РСУБД. Второй путь более выгоден для джависта, т.к. угадать какая будет следующая СУБД у следующего заказчика не реально.

Я сталкивался на разных проектах с PostgreSQL, Oracle, MS SQL и MySQL. Плюс были лисапеды поверх плоских файлов, CSV и XML. =)))

Для себя предпочитаю PostgreSQL ибо много умеет и полностью бесплатная даже для коммерции. MySQL - GPL, что может создать side effects.

Успехов! ;)

VoDA ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.