СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)

4,188 views
3,967 views

Published on

Небольшая презентация Дмитрия Еманова, ведущего разработчика Firebird, посвящена обзору СУБД Firebird, в том числе текущему состоянию и планам развития.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,188
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)

  1. 1. Slide СУБД Firebird: краткий обзор Дмитрий Еманов mailto:dimitr@firebirdsql.org The Firebird Project http://www.firebirdsql.org
  2. 2. Slide История <ul><ul><li>1981: MVCC от Bernstein и Goodman
  3. 3. 1984: Rdb/ELN vs Rdb/VMS в DEC
  4. 4. 1984: основание Groton Database Systems
  5. 5. 1986: продажа в Ashton-Tate
  6. 6. 1991: продажа в Borland
  7. 7. 2000: выпуск InterBase в Open Source </li></ul></ul><ul><ul><li>2000: создание проекта Firebird </li></ul></ul><ul><ul><li>2001: возврат InterBase в коммерческое русло
  8. 8. 2002: FB 1.0, создание Firebird Foundation
  9. 9. 2004-н.в.: дальнейшее развитие проекта </li></ul></ul>
  10. 10. Slide Концепция СУБД <ul><ul><li>Простота установки и настройки one-click setup, авто-установка, файловое копирование
  11. 11. Минимальное сопровождение отказ от выделенного администратора, автоматизация процедур
  12. 12. Встраивание в приложения распространяемость в составе приложения
  13. 13. Бесконфликтность в конкурентной среде Multi-Generational Architecture, полная поддержка транзакций
  14. 14. Отказоусточивость мгновенное восстановление после сбоя
  15. 15. Кроссплатформенность Windows, Linux, Unix-like OS
  16. 16. Интернациональность порядка 50 кодировок (включая UTF8) </li></ul></ul>
  17. 17. Slide Архитектура сервера <ul><ul><li>Classic Server </li><ul><li>выделенный процесс на соединение
  18. 18. приватный кеш
  19. 19. синхронизация через общий менеджер блокировок
  20. 20. способность работы в кластерной среде </li></ul><li>Super Server </li><ul><li>многопоточный сервер
  21. 21. общий кеш для всех соединений
  22. 22. однако: неэффективная синхронизация </li></ul><li>Embedded Server </li><ul><li>клиент + сервер в одной .dll/.so
  23. 23. нет зависимостей от реестра и прочих глобалей </li></ul></ul></ul>
  24. 24. Slide Особенности ядра <ul><ul><li>MGA </li><ul><li>писатели не блокируют читателей
  25. 25. бэк-версии хранятся в файле базе данных </li></ul></ul></ul><ul><ul><ul><li>кооперативная и фоновая сборка мусора </li></ul></ul></ul><ul><ul><li>Careful Writes </li><ul><li>построение графа зависимости страниц
  26. 26. сброс кэша на диск в строгом порядке
  27. 27. отсутствие необходимости в redo-логе </li></ul><li>Эффективный индексный доступ </li><ul><li>префиксная компрессия ключей
  28. 28. битовые карты и оптимизация дискового I/O
  29. 29. jump nodes, обработка NULL и т.д. </li></ul></ul></ul>
  30. 30. Slide Поддерживаемые платформы <ul><ul><li>32-bit </li><ul><li>Windows (x86)
  31. 31. Linux (x86, Sparc, PowerPC, MIPS/MIPSEL)
  32. 32. Solaris (x86, Sparc) </li></ul></ul></ul><ul><ul><ul><li>FreeBSD (x86)
  33. 33. MacOS Darwin (x86, PowerPC)
  34. 34. HP-UX (PA-RISC)
  35. 35. AIX (PowerPC)
  36. 36. Sinix-Z (Siemens) </li></ul></ul></ul><ul><ul><li>64-bit </li><ul><li>Windows (x86_64)
  37. 37. Linux (x86_64)
  38. 38. Solaris (Sparc)
  39. 39. MacOS Darwin (x86_64)
  40. 40. HP-UX (PA-RISC) </li></ul></ul></ul>
  41. 41. Slide Средства доступа к СУБД (connectivity) <ul><ul><li>“ Родные” проекты </li><ul><li>C/C++ API
  42. 42. Jaybird: Class 4 JCA/JDBC Driver </li></ul></ul></ul><ul><ul><ul><li>ODBC Driver
  43. 43. ADO.NET Provider </li></ul></ul></ul><ul><ul><li>Сторонние проекты </li></ul></ul><ul><ul><ul><li>IBPP C++ Wrapper </li></ul></ul></ul><ul><ul><ul><li>OLE-DB Provider
  44. 44. IBX, FIBPLus, IBObjects для Delphi </li></ul></ul></ul><ul><ul><ul><li>dbExpress Firebird Driver для Delphi
  45. 45. Gemini ODBC, EasySoft ODBC </li></ul></ul></ul><ul><ul><ul><li>модуль для PHP, плюс экспериментальный PDO_FIREBIRD
  46. 46. kinterbasdb для Python
  47. 47. FireRuby </li></ul></ul></ul>
  48. 48. Slide Преимущества <ul><ul><li>Самой СУБД </li><ul><li>принцип “one size fits all”
  49. 49. высокая производительность ядра, включая PSQL
  50. 50. полнота функциональности SQL (стандарты 1999 и 2003) </li></ul></ul></ul><ul><ul><ul><li>невысокие системные требования
  51. 51. минимум администрирования
  52. 52. простота в освоении, использовании и распространении </li></ul></ul></ul><ul><ul><li>Инфраструктуры </li><ul><li>очень либеральная лицензия
  53. 53. вся функциональность в едином базовом комплекте
  54. 54. ориентация на бинарные дистрибутивы
  55. 55. высокий уровень бесплатной техподдержки от community </li></ul></ul></ul>
  56. 56. Slide Недостатки <ul><ul><li>Самой СУБД </li><ul><li>масштабируемость vs ресурсоемкость
  57. 57. недостаточный интеллект оптимизатора </li></ul></ul></ul><ul><ul><ul><li>отсутствие PITR (Point-In-Time Recovery)
  58. 58. недостаточно средств мониторинга и контроля
  59. 59. простая модель безопасности
  60. 60. наследие “тяжелого детства” :-) </li></ul></ul></ul><ul><ul><li>Инфраструктуры </li><ul><li>отсутствие полноценной документации
  61. 61. нет интегрированного дистрибутива (“все-в-одном”) </li></ul></ul></ul><ul><ul><ul><li>нет штатных GUI инструментов
  62. 62. слабый маркетинг </li></ul></ul></ul>
  63. 63. Slide Примеры использования <ul><ul><li>AVARDA, Россия </li><ul><li>ПО AVARDA.RetailNetwork </li></ul></ul></ul><ul><ul><ul><li>более 1000 соединений, размер БД 120ГБ
  64. 64. Firebird Classic Server 2.0 на Linux </li></ul></ul></ul><ul><ul><li>SAS, США </li><ul><li>аналитические решения </li></ul></ul></ul><ul><ul><ul><li>до 200 соединений, БД размером до 7ТБ
  65. 65. Firebird Embedded 2.0, кроссплатформенный сервер приложений </li></ul><li>Прочие </li><ul><li>Distributel (биллинг, Канада), Bas-X (ERP, Австралия)
  66. 66. Английские железные дороги, ВМФ США
  67. 67. ММВБ, Аэрофлот, Пражская муниципальная библиотека </li></ul></ul></ul>
  68. 68. Slide Планы развития <ul><ul><li>Стратегия </li><ul><li>унификация архитектуры (2.5, 3.0) </li></ul></ul></ul><ul><ul><ul><li>повышение масштабируемости SuperServer (2.5, 3.0)
  69. 69. оптимизация версионного ядра (пост-3.0)
  70. 70. Point-In-Time Recovery (пост-3.0) </li></ul></ul></ul><ul><ul><li>Функциональность </li><ul><li>внешние процедуры (2.5, 3.0) </li></ul></ul></ul><ul><ul><ul><li>гетерогенные запросы (2.5, 3.0)
  71. 71. массовая загрузка данных (3.0)
  72. 72. методы доступа к данным и оптимизация (3.0 и далее)
  73. 73. расширение политики безопасности (3.0 и далее) </li></ul></ul></ul>
  74. 74. Slide Roadmap 2008 <ul><ul><li>Сопровождение </li><ul><li>исправление ошибок: версии 1.5.6, 2.0.4, 2.0.5 </li></ul><li>Выпуск версии 2.1 </li><ul><li>мониторинг активности и асинхронная отмена запросов </li></ul></ul></ul><ul><ul><ul><li>сетевой протокол оптимизирован для медленных сетей
  75. 75. множество SQL-улучшений, более 50 новых функций
  76. 76. сейчас на стадии релиз-кандидата </li></ul></ul></ul><ul><ul><li>Разработка версии 2.5 </li><ul><li>улучшения масштабируемости
  77. 77. расширения средств мониторинга </li></ul></ul></ul><ul><ul><ul><li>запросы к внешним БД
  78. 78. регулярные выражения в SQL
  79. 79. альфа-версия в первом квартале </li></ul></ul></ul>
  80. 80. Slide Вопросы?

×