Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Почему не популярен Cache?..


Автор: Kurt 28.10.2003, 02:50
Итак.
Как мне посоветовали знающие люди, я создал отдельный топик, являющийся своеобразным продолжением обсуждения темы "какую базу выбрать".
Я усиленно ( smile.gif ) предлагал использовать DB Cache, но, как оказалось никто ни разу в глаза ее не видел, а только слышал от других.
Получается, один я такой "левый" с этой БД.
Мне бы хотелось провести небольшое исследование, почему народ не хочет ее использовать (зачем мне это надо? - ну.. банальный пример - я напишу прогу для работы с Cache, а она нафиг ни кому не нужна будет).
Все используют MS SQL Server, Oracle, редкая птица использует "оффисные базы" (Access, Excel).
Практически все.
Мне ответили, что все используют только проверенное временем - ну тогда дальше MS-DOS с его чудесным интерфейсом ни ногой...
В общем, господа, прошу потратить пару минут и высказаться по этому поводу.

Автор: stron 28.10.2003, 13:44
Свои мысли по вопросу я разобью на несколько категорий
1. Что я использую, почему и как я к этому пришел.
2. Что я думаю о будущем СУБД.


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


1. Что я использую, почему и как я к этому пришел.
Начиналось всё с банального Парадокса.
Сейчас я использую MsSQL 7.0 .
Почему не 2000??
Работа такая, но работаю я на n-ую долю ставки и дома,а также на начало работы я ни одну СУБД не знал (только теорию), так, что седьмая версия послужила хорошей основой.
Впоследствии я стал изучать MsSQL 2000 (сначала сам, а потом ещё и в универе)
Oracle я не знаю, но некоторая информация имеется.


2. Что я думаю о будущем СУБД.
За новостями я обычно не слежу и сказать о том, вышел ли MsSQL 2003, не могу, но когда он до меня дойдет, тогда я ещё 10 раз подумаю, что изучать. А пока думаю получать сертификат Ms или учить Oracle, скорее всего первое.



З.Ы. К чему я всё это? Да к тому, что, как мне кажется, что это типичная история многих разработчиков.
Люди начинают изучать то, на что есть больший спрос. Про Cache такого я сказать не могу, по крайней мере у нас в Питере я объявлений о работе не видел!!! (Но может не там смотрел).

Автор: aleko_s 28.10.2003, 13:49
Про Кэш я вообще ничего не слышал.
Начинал писать на Клиппере+асм+ДиБэйз, потом по долгу службы переполз на Дельфи+Интербэйз, щас есть задача Киликс+МайСикуэл
Что такое Кэш и с чем его едят. Курт, может у тебя есть краткое его описалово ?

Автор: stron 28.10.2003, 13:54
Всё выше перечисленное совсем не означает, что я против Cache, а то, что как начинающий специалист я не могу себе позволить такую роскошь, как изучение Cache. Ну не знаю я где его применить!!! (Пока не знаю)
Времена меняются, и м.б. через год я буду кричать:"Используйте Cache!!!!!!".

Автор: stron 28.10.2003, 14:04
2 aleko_s
Посмотри http://www.intersys.ru

Ещё инфа, кот. написал не я и на другом форуме
Цитата

Cache’ представляет собой современную объектно-реляционную серверную СУБД, которая унаследовала технологию хранения и работы с данными а также надежность, производительность и неприхотливость к «железу» своих предшественников – M-систем.
M-системы развивались с 1978 года и изначально были ориентированы на многопользовательскую обработку данных. Наибольшее распространение M-системы получили в области медицины: госпиталях, больницах, лабораториях, и пр. где и поныне занимают большую часть рынка медицинских информационных систем.
Cache’ обладает следующим набором свойств:
• Переносимость между различными программно-аппаратными платформами (см.таблицу ниже)
• Эффективное хранение данных. Данные хранятся не в таблицах, а в «деревьях», таким образом можно говорить о Cache’ как о иерархической СУБД. Как следствие такого подхода, является то, что такие структуры позволяют хранить данные в виде неоднородных «записей», по сравнению с реляционными СУБД. В частности, поля такой «записи» могут быть неатомарными, что позволяет более стройно и адекватно моделировать предметную область. Кроме того в таких неоднородных записях не хранятся данные, которые не определены для той или иной «записи», поэтому древовидные структуры данных более компактны по сравнению с табличными аналогами, и, как следствие, очень эффективны для хранения разреженных неоднородных данных.
• Объектный и реляционный доступ к одним и тем же данным. В Cache полностью реализована объектная модель стандарта ODMG (Open Database Management Group), которая разрабатывать приложения в объектной среде. Естественным образом поддерживаются наследование (в том числе множественное), полиморфизм, коллекции. SQL-доступ к данным Cache' обеспечивает способность к взаимодействию с обычными реляционными приложениями, включая инструменты построения отчетов и аналитической обработки данных. Благодаря тому, что хранение данных в Cache' фактически осуществляется в эффективных многомерных структурах, приложения, использующие SQL в качестве языка запросов, работают намного быстрее.
В настоящее время реализованы конверторы для импорта схем из наиболее распространенных реляционных СУБД:
-Oracle
-MS SQL Server
-Informix
-Interbase
-Sybase
• Неприхотливость в системных требованиях. Для полноценной многопользовательской работы Cache’- приложения в режиме текстового терминала требуется минимальная аппаратная конфигурация клиентских рабочих мест – PC-286/386 или даже можно использовать такие реликты как ДВК, терминал СМ-7238, УКНЦ, и аппаратные терминалы. Если при этом использовать мультиплексорные карты – то не требуется даже сетевых карт и сетевых ОС на клиентах. Наибольшее распространение получила конфигурация, на основе TCP/IP+TELNET, когда в качестве ПО на клиенте стоят либо аппаратные терминалы, либо эмуляторы терминалов. Мощность этой схемы не зависит от системной конфигурации клиентов, а только лишь от мощности сервера. В большинстве случаев нарастить мощность одного сервера более выгодно, чем всего клиентского парка. Для функционирования сервера Cache’ для небольшого количества пользователей, достаточно такой конфигурации компьютера, на которой комфортно «чувствует» себя операционная система, например сервер PII-300/128 Mb + Windows 2000 Pro позволит обслуживать до 30-40 терминальных пользователей, работающих в диалоговом режиме, с хорошим временем отклика.
• Надежность. В Cache’ реализованы все средства для безостановочной работы системы. А именно:
-Обработка транзакций. Используя ее можно поддерживать прикладные данные в состоянии логической целостности даже после сбоя аппаратуры.
-Межмашинное журналирование (теневые сервера).Все изменения в базе данных могут как в зеркале отражаться в базе другого компьютера, используемого в качестве "горячего" резерва на случай серьезной аварии. Время, необходимое для переключения на машину "горячего" резерва, существенно сокращается.
-Резервирование данных одновременно с работой пользователей и непрекращающейся корректировкой базы данных.
-Параллельная обработка данных в многопроцессорных системах
-Средства проектирования данных. Для проектирования сложных задач, Cache’ может использоваться в связке с таким CASE-средством как Rational Rose.Классы, описанные в Rose полностью импортируются (экспортируются) в (из) Cache’.
-Поддержка Web-доступа к данным (Cache Server Pages). В Cache’ реализована технология идеологически похожая на Microsoft ASP, но реализованная более эффективно. Кроме этого в ближайшей версии появится поддержка Web-сервисов через стандарт SOAP
-Языки программирования для разработки приложений. В настоящее время «родными» (native) языками Cache’ являются: Cache Object Script (COS), Cache’ Basic. И тот и другой снабжены конструкциями для объектного доступа к БД. Cache’ Basic является практически полным аналогом MS Visual Basic 6.0 поэтому программисты, знакомые с VB могут без каких либо затруднений начать разрабатывать Cache’-приложения. Языковое ядро Cache’ спроектировано таким образом, что позволяет добавлять новые языки программирования, как native-языки. В ближайшее время будет добавлен еще Cache’ Java, и, если потребует рынок, другие популярные языки программирования.
-Поддержка XML. Cache является XML-ориентированной СУБД, т.е. она позволяет выгружать данные-объекты в XML-документы и загружать данные из документов, а также оперировать ими. Принимая во внимание, что и XML-документы и ядро Cache’ имеют одну и ту же объектную природу, получаем совершенно естественную проекцию прикладных данных в XML-документ и наоборот.

Технологии Cache’:
1. Caché Server Pages – дает возможность разрабатывать приложения для Web. Технология работает со многими веб-серверам и ОС (см.таблицу)
2. Caché ODBC – дает другим реляционным приложениям и инструментариям возможность доступа к данным на сервере Cache’. ODBC-драйвер реализован для многих Unix-платформ и для всей линейки Windows-платформ.
3. Caché JDBC – высокопроизводительный драйвер для доступа к серверу Cache’ приложений написанных на Java.
4. Caché XML & Web Services – предоставляет возможность серверу Cache’ взаимодействовать с внешними приложениями через XML и SOAP.
5. Caché Object Server для Java и EJB – объектный сервер для Java, представляющий Cache’-классы как «родные» для Java классы.
6. Caché Object Server для ActiveX – объектный ActiveX-сервер, представляющий Cache’-классы для приложений, использующих технологию ActiveX (VB, .NET)
7. Caché Object Server для C++ – объектный сервер для приложений на C++, представляющий Cache’-классы как C++ - классы.
8. Caché SQL Gateway - дает Cache’-приложениям объектный доступ к реляционным СУБД, например Oracle, MS SQL Server
9. Caché ActiveX Gateway - дает Cache’-приложениям прямой доступ к ActiveX/COM/.NET компонентам

Поддерживаемые платформы:
Alpha OpenVMS 7.2, 7.2-2, 7.3
Alpha Tru64 UNIX 5.1
AViiON (Intel) DG/UX 4.2
HP HP/UX 11, 11i
IBM P Series AIX 4.3.3, 5.1
Red Hat Linux (Intel) 7.1
Sun Solaris (Intel) 2.8
Sun Solaris (SPARC) 2.8
SuSE Linux (Intel) 7.1
Windows 95, 98, ME, NT 4 (SP4, SP5, SP6), 2000, XP*

Поддерживаемы Web-серверы:
-Microsoft IIS / PWS
-Apache 1.3.12
-Netscape / Sun iPlanet 4.0
-Compaq Secure Web Server 1.0



З.Ы. Кстати, сам услышал о Cache только два месяца назад

Автор: AntonSaburov 28.10.2003, 14:49
SQL-серверов на самом деле не так уж и мало.
- Oracle
- MS SQL
- Informix
- DB2
- Sybase
- SQLBase

Для небольших задач хорошо подходят
- PosgreSQL
- Interbase
- MySQL

Под все такие сервера написано много и, что самое главное, ИМХО, много специалистов готовы подхватить проект, даже если кто-то из программистов уходит. Потому как (для примера) видел вакансию на PowerBuilder - так там даже по питерским меркам деньги просто очень большие. Потому как нет специалистов.
А рынок серверов на самом деле раскручивают именно специалисты. Ведь не директор же будет ставить SQL.

Автор: AntonSaburov 28.10.2003, 14:57
Кроме того я вижу из описания, что стандарт SQL Cache не поддерживает. Значит огромное количество ныне существующего кода на него не перенести.
И кто рискнет на такую платформу ставить пусть даже несколько тысяч долларов ?
А большие системы должны работать годами и даже десятками лет. И стоить такие проекты будут не одну сотню тысяч. Если не миллионы долларов

Я бы не рискнул.

Автор: Kurt 28.10.2003, 15:55
Цитата(AntonSaburov @ 28.10.2003, 14:57)
Кроме того я вижу из описания, что стандарт SQL Cache не поддерживает.

Т.е. как так не поддерживает?
Вроде все поддерживается!
А какой именно стандарт ты имеешь ввиду??

Автор: AntonSaburov 28.10.2003, 16:05
Цитата
Т.е. как так не поддерживает?
Вроде все поддерживается!
А какой именно стандарт ты имеешь ввиду??


Извини, не очень внимательно прочитал. Здесь был не прав. Но основное осталось - спецов по нему очень мало. Надо раскручивать. Но тогда денежков надо много.

Автор: Kurt 28.10.2003, 16:19
Ну, тут ты прав..
Хотя, если спецов мало, то они и ценятся выше!! smile.gif
Но по-моему, во всяком случае, НАЧАТЬ работать с этой системой не так уж трудно.

Автор: stron 28.10.2003, 16:32
А долго ты с ней разбирался?
И на каком уровне знаешь?

Автор: Vit 28.10.2003, 18:22
Цитата(stron @ 28.10.2003, 07:32)
А долго ты с ней разбирался?
И на каком уровне знаешь?

Модератор: А к чему этот вопрос?

Автор: stron 28.10.2003, 23:18
Цитата
А долго ты с ней разбирался?

А интересно сколько по времени надо изучать Cache, чтобы под неё начать писать что-то стоящее

Цитата
И на каком уровне знаешь?

Просто интересно

Можно ещё добавить вопрос: "Как давно с ней работаешь?"

А всё это для общего знания, представления тенденций.
Хочется понять, какими темпами идет внедрение Cache.
Может стоит и поучить...

Автор: Vit 29.10.2003, 00:31
Модератор: ну дык и задавайте вопросы таким образом. При такой постановке обсуждение будет действительно конструктивным. Мне и самому интересны ответы. А вот в начальной формулировке это выглядело ... гм... не совсем корректным smile.gif

Автор: Kurt 29.10.2003, 01:11
Цитата
на каком уровне знаешь?

Хм.. Вопрос, конечно, правильный.
У меня есть знакомый дядя, преподающий базы данных в Москве, имеющий контакты с США (преподающий там) - на вопрос, знает ли ОН базы (в т.ч. Oracle & Cache) был такой ответ - "покажите мне человека, к-й может с полной уверенностью ответить - ДА. Чем больше специалист учит базы, тем больше он не знает".
Замысловатая фраза, если подумать, - типа как в это все глубоко полезешь - все не так просто.
Однако. Если интересует в основном "программистская" часть (хочется научиться создавать проги, к-е используют Cache), НЕ администрирование базы, то времени требуется совсем не много.
Опять же, все зависит от того как хочешь связываться с базой и на чем.
Можно с помощью ODBC/JDBC(for Java smile.gif ) - тут без коментарий, все просто и легко. Я ни разу в жизни не связывался с JDBC, 10 минут почитал встроенные доки в Cache - и вот вам класс для работы с Cache (многие скажут, что это не достижение, но для начинающего это было впечатляюще).
Т.е. используя BDE/ADO etc, все делается 2-мя кликами.
(Для тех, кому интересно, хочу сказать, что это далеко не оптимальный путь..)
Больше всего мне нравится связываться через объекты - вместо 30 мин (BDE) или, скажем, 20 мин.(ADO), тот же самый запрос выполняется за 12-16 сек!! (может, есть еще чего быстрее, но это и так более чем хорошо).
Интересует внутренний язык Cache (COS)?
Хм.. Эт чуток по-сложнее, хотя и очень эффективно.
Напоминает чуть-чуть VBScript - надо привыкнуть.
Если интересует администрирование - честно говоря в это сильно не лез, но во всяком случае хорошая документация везде поможет smile.gif (как я упоминал, у Cache она вроде ничего).
Цитата
А долго ты с ней разбирался?

Не очень. Хотя как сказать, я студент университета, в котором читаются лекции по БД Cache.
Лекции прослушаны.. smile.gif
Но, как всем известно, можно ходить на пары и ничего не знать (достаточно взглянуть на моих одногрупников), а можно целенаправленно взяться и самому все освоить.
На данный момент я ежедневно на кафедре - ваяю крупный проект на Cache (вот от "безделия" и решил выяснить, кто чего думает об этом всем).
Вобщем, мое личное мнение - с этой базой вполне можно работать - она нечто такое, что быстрее Oracle, но пока не позиционируется как его конкурент - как бы занимает средний уровень.
В топике "какую базу выбрать" человек хотел переходить с Excel на Oracle - по причине скорости.
Мое ЛИЧНОЕ мнение - тут Cache был бы в самый раз. Зачем так напрягать комп Oracle'ом? Сколько ресурсов ест!
Я ставил такой эксперимент - устанавливал Cache на комп с PI, 48 MB оперативной памяти (на SIMM!) - в общем, зверь, а не машина.
Так вот, Cache там нормально пахал (ну согласен, немного долговато выполнялись запросы на 100 тыс записей - это мелочи). Вобщем, даже там все будет работать. А покажите мне самоубийцу, к-й решит туда поставить Oracle?
Если начать изучать, я бы взялся за две вещи (тем более, если есть опыт работы с другими базами) - связь внешних приложений с Cache (особенно интересен CacheObject), а так же технология CSP (честно говоря, я получал чисто эстетическое удовольствие, когда читал про нее).
А остальное все по пути.

З.Ы.Если кому интересно, могу скинуть пару тутореалов "для самых начинающих" или так чего рассказать. Попробуйте провести пару тестов на скорость...
З.Ы.З.Ы. По поводу темпов внедрения шел такой слух, что весь Дальний Восток (какая-то система управления чем-то глобальным, сейчас не помню - уточню по возможности) перешел на Cache.
В общем, узнаю - поведаю. smile.gif

Автор: AntonSaburov 29.10.2003, 11:59
А какие-нибудь цифры по поводу количества подлючений, размера баз и таблиц есть ?
Такие цифры тоже цсегда интересны.
Потому как на том же http://www.tpc.org можно хорошо видеть категории для серверов - для небольших баз, для средних, для больших, дорогие и не очень.
Как я понимаю Cache предназначен для не очень больших задач. Хотя это только предположение.

Автор: Kurt 29.10.2003, 14:15
Приду домой - чего-нибудь скину.
А пока можно почитать оды в адрес Cache на www.intersystems.ru (раздел "технология Cache" - там про всякие тесты, сравнения с Oracle, просто о технологиях Cache etc.)

Автор: Vit 30.10.2003, 15:39
2 Kurt - я надеюсь что Вы непротив поучаствовать в проекте, кроме Вас рассказать о базе данных Cache некому, поэтому весьма надеюсь на сотрудничество.

Автор: Kurt 30.10.2003, 18:00
NP.
Все будет, как только освобожусь от проблем с работой...

Автор: Deos 12.7.2004, 00:57
Cache - интересный продукт, у нас в городе два порта, и все учитывается и считается на Cache.
БД имеет: сервер приложений , встроенная поддержка терминального режима, все остальное как у других БД.

На сколько оправдано развертывание этой системы в организациях, большой вопрос.

Автор: Alex101 28.10.2004, 15:54
Цитата(Kurt @ 28.10.2003, 13:19)

Хотя, если спецов мало, то они и ценятся выше!!

Именно по этой причине во множестве проектов откажутся от Cache.
Экономически и административно невыгодно зависеть от небольшого количества разработчиков, замену которым трудно найти.

Автор: EKoshelev 26.11.2004, 12:34
Kurt
А у меня так чешутся руки перевести базу с Cache на SQL Server. Просто дело в том, что та база хранится не как нормальная база (в сущностях и пр.), а в глобалах, которыми оперирует Cache object script (кстати, не понял, к чему в этом названии слово "Object").

Я, короче, щас проектик реализую по перегонке проги, написанной на древнем языке MSM (аналогом которого является COS) под винду (раньше она в досе работала). Ну и естественно мы используем Cache только по тому, что там интерпретируется MSM. Других причин, как мне кажется, нет. База малюсенькая (порядка 10 - 100 кг) и с ней самая дохлая СУБД будет справляться (как мне кажется) за преемлимое время. Единственная проблема перехода на другую СУБД - перенос программ. Это долго и далеко не факт, что перевод будет без ошибок, которые там нафиг никому не нужны. А сдругой стороны сетевая версия Cache стоит три тонны баков.

Короче, у меня такое мнение сложилось, что эту прогу только для реанимации программ на MSM можно использовать. Хотя тут прозвучало мнение, что все другие объектные базы хуже этой. И вообще, может мне кто-нибудь даст наколочку на доку, в которой будет изложено нафиг нужны объектные базы, а то я никак не вникну.

Автор: max_lapshin 10.9.2006, 16:14
Цитата(EKoshelev @ 26.11.2004,  12:34)
И вообще, может мне кто-нибудь даст наколочку на доку, в которой будет изложено нафиг нужны объектные базы, а то я никак не вникну.

Попробую объяснить. Дело в том, что есть ряд задач, для которых SQL база неприменима. Самая простая и известная — индексация текста. Хранить в SQL базе инвертированные списки очень и очень накладно. На больших объемах (речи идет о гигабайтах и терабайтах текста) SQL базы вообще практически неприемлемы. 

Для этого нужны другие базы. Получается, что объектная надстройка над b-деревьями достаточно удобны. Пример тому Lexxus Nessus, которые еженедельно по гигабайту текстов в свою базу заливают.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)