|
| ||||||||||||
| ||||||||||||
|
2007 г.
Конец архитектурной эпохи, или Наступило время полностью переписывать системы управления даннымиМайкл Стоунбрейкер, Сэмюэль Мэдден, Дэниэль Абади, Ставрос Харизопулос, Набил Хачем, Пат Хеллэнд Пересказ: Сергей Кузнецов Оригинал: Michael Stonebraker, Samuel Madden, Daniel J. Abadi, Stavros Harizopoulos, Nabil Hachem, Pat Helland. The End of an Architectural Era (It's Time for a Complete Rewrite). Proceedings of VLDB, 2007, Vienna, Austria 6. Некоторые комментарии по поводу мира, в котором один размер не является пригодным для всехЕсли признать результаты этой статьи убедительными, то мы движемся по направлению к миру с не менее чем пятью специализированными программными средствами, миру, в котором не остается места для унаследованных «безразмерных» систем. В этом разделе рассматриваются некоторые последствия таких архитектурных изменений. 6.1 Реляционная модель не обязательно является решениемПережив продолжительные дебаты 1974 года [Rus74] и дискуссии между защитниками Codasyl и реляционной модели данных, авторы не желают более «кормить эту священную корову». Однако они считают уместным обсудить модель данных (или модели данных), на которой они основывают свои системы. В 1970-е гг. в мире СУБД имелись только приложения обработки бизнес-данных, и идея Теда Кодда о нормализации данных в плоские таблицы хорошо послужила сообществу баз данных в течение 30 лет. Однако теперь имеются новые области приложений, которые необходимо принимать во внимание: хранилища данных, Web-ориентированный поиск, аналитика в реальном времени и полуструктурированные данные. Авторы предлагают следующие наблюдения.
Реляционная модель разрабатывалась для «безразмерного» мира. При переходе к специализированным системам для каждой из них можно подобрать модель данных, наилучшим образом соответствующую конкретным особенностям этой системы. 6.2 SQL также не является решениемSQL является «безразмерным» языком. В мире OLTP никого и никогда не интересуют служащие, зарабатывающие больше своих менеджеров. На самом деле, как отмечалось ранее, в этом мире вообще не задаются непредвиденные запросы. Следовательно, в этом случае достаточно было бы иметь некоторый язык, который был бы более ограниченным, чем SQL. По соображениям производительности вездесущими являются хранимые процедуры. В мире хранилищ данных требуется другое подмножество SQL, поскольку здесь распространены сложные непредвиденные запросы, но нет хранимых процедур. Поэтому для специализированных программных средств управления данными можно иметь специализированные языки, ориентированные на конкретный вертикальный рынок и не обладающие устрашающей сложностью, свойственной SQL. Переосмысление количества одновременно существующих языков и их сложности будет обладать колоссальным положительным побочным эффектом. В настоящее время SQL – это унаследованный язык со многими известными серьезными недостатками, ряд из которых отмечался Крисом Дейтом еще два десятка лет тому назад [Dat84]. Следующая попытка разработки языков может оказаться более удачной. При переосмыслении языков доступа к данным авторам вспоминается яростная дискуссия 1970-х гг. С одной стороны, имелись сторонники подъязыков данных, для которых могли бы иметься интерфейсы с любыми языками программирования. Это привело к появлению интерфейсов с высокими накладными расходами, таких как JDBC и ODBC. Кроме того, эти интерфейсы очень трудно использовать из традиционного языка программирования. С другой стороны, некоторые члены сообщества баз данных предлагали намного более привлекательные возможности доступа к базам данных, встраиваемые в языки программирования. Типичными представителями этих языковых средств в 1970-е гг. являлись Pascal R [Sch80] и Rigel [RS79]. В обоих этих средствах обеспечивалась полная интеграция со средствами языков программирования, такими как организация логики управления, локальные переменные и т.д. С теми же целями Крис Дейт предлагал расширение языка PL/1 [Dat76]. Как видно, ни один из этих языков не вошел в широкую практику, и победу одержало направление поъязыков данных. Сообщество баз данных средства разработало невероятно безобразные средства сопряжения языков программирования с подъязыком баз данных, и результатом являются низко производительные системы, происходящие из прошедшей эпохи. Поэтому авторы статьи выступают за полный отказ от подъязыков данных в пользу встраивания в языки программирования средств доступа к данным. В сообществе языков программирования наблюдается бурное развитие «малых языков», таких как Python, Perl, Ruby и PHP. Идея состоит в том, чтобы для решения любой конкретной задачи можно было использовать язык, наиболее подходящий именно в этом случае. Малые языки привлекательны еще и тем, что их легче изучать, чем языки общего назначения. При взгляде со стороны это явление кажется симптомом конца эпохи «безразмерности» в мире языков программирования. У малых языков имеются два очень приятные свойства. Во-первых, в большинстве случаев они относятся к категории open source и поэтому могут изменяться сообществом. Во-вторых, их не так страшно модифицировать, как современные языки общего назначения. В связи с этим, авторы выступают за модификацию малых языков с целью включения в них встроенных средств доступа к данным. В настоящее время любимым примером этого подхода у авторов является Ruby-on-Rails. Эта система основана на малом языке Ruby, расширенном интегрированной поддержкой доступа к данным и манипулирования ими на основе паттерна программирования «model-view-controller». Ruby-on-Rails компилируется в стандартный JDBC, но вся сложность этого интерфейса скрывается. Поэтому авторы планируют отказаться от применения языка C++ для программирования хранимых процедур в среде H-Store и перейти к использованию Ruby-on-Rails. Конечно, подсистема поддержки времени исполнения Ruby-on-Rails должна быть скомпонована в одном адресном пространстве совместно с СУБД, и ее необходимо изменить, чтобы вызовы служб СУБД производились с использованием высокопроизводительных локальных вызовов процедур, а не JDBC. 7. Резюме и планы на будущееВ последней четверти прошлого века произошел ряд серьезных изменений:
Результатом этих изменений является следующее:
Прототип H-Store демонстрирует выигрыш в производительности, который удалось получить за счет отказа от традиционного образа мышления. Конечно, несмотря на получение ободряющих начальных результатов, описанных в данной статье, имеется ряд областей, в которых необходимо проведение дополнительных исследований и разработок. В частности:
Коротко говоря, текущая ситуация, сложившаяся в сообществе баз данных, напоминает авторам статьи период 1970-1985 гг., когда производился поиск наилучшего способа построения серверов баз данных, и происходили существенные изменения как в коммерческих продуктах, так и в составе их поставщиков. Это было время интенсивных обсуждений, множества новых идей и существенных потрясений. Авторы предсказывают, что следующие пятнадцать лет будут не менее бурными. Ссылки[ABW06] A. Arasu, S. Babu, and J. Widom. “The CQL Continuous Query Language: Semantic Foundations and Query Execution.” The VLDB Journal, 15(2), June 2006. [ACL87] Agrawal, R., Carey, M. J., and Livny, M. “Concurrency control performance modeling: alternatives and implications.” ACM Trans. Database Syst. 12(4), Nov. 1987. [AMM+07] D. Abadi, A. Marcus, S. Madden, and K. Hollenbach. “Scalable Semantic Web Data Management Using Vertical Partitioning.” In Proc. VLDB, 2007. [Ants07] ANTs Software. ANTs Data Server - Technical White Paper, 2007. [BSR80] Bernstein, P.A., Shipman, D., and Rothnie, J. B. “Concurrency Control in a System for Distributed Databases (SDD-1).” ACM Trans. Database Syst. 5(1), March 1980. [Bon02] P. A. Boncz. “Monet: A Next-Generation DBMS Kernel For Query-Intensive Applications.” Ph.D. Thesis, Universiteit van Amsterdam, Amsterdam, The Netherlands, May 2002. [Dat76] C. J. Date. “An Architecture for High-Level Language Database Extensions.” In Proc. SIGMOD, 1976. [Dat84] Date, C. J. “A critique of the SQL database language.” In SIGMOD Record 14(3):8-54, Nov. 1984. [DGS+90] Dewitt, D. J., Ghandeharizadeh, S., Schneider, D. A., Bricker, A., Hsiao, H., and Rasmussen, R. “The Gamma Database Machine Project.” IEEE Transactions on Knowledge and Data Engineering 2(1):44-62, March 1990. [Hel07] P. Helland. “Life beyond Distributed Transactions: an Apostate's Opinion.” In Proc. CIDR, 2007. [HM93] Herlihy, M. and Moss, J. E. “Transactional memory: architectural support for lock-free data structures.” In Proc. ISCA, 1993. [KL81] Kung, H. T. and Robinson, J. T. “On optimistic methods for concurrency control.” ACM Trans. Database Syst. 6(2):213-226, June 1981. [LM06] E. Lau and S. Madden. “An Integrated Approach to Recovery and High Availability in an Updatable, Distributed Data Warehouse.” In Proc. VLDB, 2006. [MHL+92] Mohan, C., Haderle, D., Lindsay, B., Pirahesh, H., and Schwarz, P. “ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging.” ACM Trans. Database Syst. 17(1):94-162, March 1992. [Mil89] Mills, D. L. “On the Accuracy and Stability of Clocks Synchronized by the Network Time Protocol in the Internet System.” SIGCOMM Comput. Commun. Rev. 20(1):65-75, Dec. 1989. [MM04] Manola, F. and Miller, E. (eds). RDF Primer. W3C Specification, February 10, 2004. [RR99] Rao, J. and Ross, K. A. “Cache Conscious Indexing for Decision-Support in Main Memory.” In Proc. VLDB, 1999. [RR00] Rao, J. and Ross, K. A. “Making B+- trees cache conscious in main memory.” In SIGMOD Record, 29(2):475-486, June 2000. [RS79] L. A. Rowe and K. A. Shoens. “Data Abstractions, Views and Updates in RIGEL.” In Proc. SIGMOD, 1979. [Rus74] Randall Rustin (Ed.): Proceedings of 1974 ACM SIGMOD Workshop on Data Description, Access and Control, Ann Arbor, Michigan, May 1-3, 1974, 2 Volumes. [SAB+05] M. Stonebraker, D. Abadi, A. Batkin, X. Chen, M. Cherniack, M. Ferreira, E. Lau, A. Lin, S. Madden, E. O’Neil, P. O’Neil, A. Rasin, N. Tran, and S. Zdonik. “C-Store: A Column-oriented DBMS.” In Proc. VLDB, 2005. [SBC+07] M. Stonebraker, C. Bear, U. Cetintemel, M. Cherniack, T. Ge, N. Hachem, S. Harizopoulos, J. Lifter, J. Rogers, and S. Zdonik. “One Size Fits All? - Part 2: Benchmarking Results.” In Proc. CIDR, 2007.
[SC05] M. Stonebraker and U. Cetintemel. “One Size Fits All: An Idea whose Time has Come and Gone.” In Proc. ICDE, 2005.
[Sch80] Schmidt, J.W. et al. “Pascal/R Report.” U Hamburg, Fachbereich Informatik, Report 66, Jan 1980. [TPCC] The Transaction Processing Council. TPC-C Benchmark (Revision 5.8.0), 2006. |
|
CITForum © 1997–2025