Конференция "Прочее" » Драйвер типа RAM диска
 
  • stas © (15.09.08 17:24) [0]
    Мне интересно реально ли реализовать такую идею:
    Написать драйвер типа RAM диска, ясно что не на Delphi, который бы список файлов отражал данные из БД, а содержимое читал бы из Blob полей?
  • Rouse_ © (15.09.08 17:27) [1]

    > реально ли реализовать такую идею

    Реально.
  • wl © (15.09.08 17:32) [2]
    зачем драйвер?
    проще плагин FS для Total Commander
  • stas © (15.09.08 17:37) [3]
    wl ©   (15.09.08 17:32) [2]
    Хотелось бы подключить как диск и чтобы приложения работали как с обычными файлами, допустим открыли автокад поредактировали чертеж сохранили, а он обновился в базе.
    А на сколько сложно написать такой драйвер, и стоит ли вобще за это браться?
  • Городской Шаман (15.09.08 17:55) [4]

    > stas ©   (15.09.08 17:37) [3]
    >
    > wl ©   (15.09.08 17:32) [2]
    > Хотелось бы подключить как диск и чтобы приложения работали
    > как с обычными файлами, допустим открыли автокад поредактировали
    > чертеж сохранили, а он обновился в базе.
    > А на сколько сложно написать такой драйвер, и стоит ли вобще
    > за это браться?


    Не очень. Нужно только разобраться в том как функционирует IFS(IFS Kit бесплатно есть в WDK2008).

    Основной геморрой с обменом данными с процессом в user level, так как из драйвера ты не сможешь напрямую подключится к базе.

    http://www.microsoft.com/whdc/DevTools/WDK/WDKpkg.mspx

    Я сейчас нечто подобное делаю.
  • tesseract © (15.09.08 17:56) [5]

    > А на сколько сложно написать такой драйвер, и стоит ли вобще
    > за это браться?


    Тебе наврено будет сложно, хотя сам драйвер лежит в DDK для Windows
  • Городской Шаман (15.09.08 17:59) [6]

    > tesseract ©   (15.09.08 17:56) [5]
    >
    >
    > > А на сколько сложно написать такой драйвер, и стоит ли
    > вобще
    > > за это браться?
    >
    >
    > Тебе наврено будет сложно, хотя сам драйвер лежит в DDK
    > для Windows


    В DDK его нет, его включили в WDK

    Ну и как альтернатива WDK эта ссылка
    http://www.acc.umu.se/~bosse/
  • Alex Konshin © (16.09.08 12:11) [7]
    > stas ©   (15.09.08 17:37) [3]
    > wl ©   (15.09.08 17:32) [2]Хотелось бы подключить как диск
    > и чтобы приложения работали как с обычными файлами, допустим
    > открыли автокад поредактировали чертеж сохранили, а он обновился
    > в базе.А на сколько сложно написать такой драйвер, и стоит
    > ли вобще за это браться?

    Ну, собственно это уже и так делается. Сохранение документов различных CAD в базах данных реализуют даже не один продукт. Собственно, я имею некоторое отношение к одному из них. Другое дело, сколько это стоит...
  • Alex Konshin © (16.09.08 12:23) [8]
    Вообще-то само по себе сохранение документов в базе имеет мало смысла. А имеет смысл оно только тогда, когда можно как-то задействовать поиск в базе. То есть, нужно уметь доставать метаданные и искать уже по ним.

    Кстати, в качестве алтернативного подхода могу порекомендовать посмотреть на ClearCase, особенно его фичу - dynamic views. Это, правда уже не база данных, а version control system, т.е. можно удобно хранить и работать с разными версиями документов. Это как бы из того, что в принципе доступно и похоже на то, что ты просишь. Но Clearcase вроде как мало знает о самих документах и их содержимом, но теоретически его можно научить.
  • Городской Шаман (16.09.08 15:28) [9]

    > Alex Konshin ©   (16.09.08 12:11) [7]
    >
    > Ну, собственно это уже и так делается. Сохранение документов
    > различных CAD в базах данных реализуют даже не один продукт.
    >  Собственно, я имею некоторое отношение к одному из них.
    >  Другое дело, сколько это стоит...


    А если не секрет, как именно идёт взаимодействие с базой из драйвера (там же нельзя вызывать user mode код)? Через калбек запросы сервиса к драйверу, обрабатывающего запросы к базе? Или другие способы взаимодействия?
  • Alex Konshin © (17.09.08 11:18) [10]
    Вопрос в том, зачем это нужно? Человек проговорился, что он туда хочет CAD документы писать. А для того, чтобы записывать CAD документы в базу этого просто не нужно. У всех CAD есть API с помощью которого можно организовать более-менее удобную работу с базой или другими внешними хранилищами. То есть, нет надобности бить из пушки по воробьям. Тем более, что CADы очень часто работают не только на Windows, потому замучаешься под каждую платформу драйвера файловой системы писать.

    И ещё я уже сказал, что само по себе записывание документов CAD в блобы базы данных бессмысленно и даже вредно. Например, в базу можно просто писать ссылки на файлы и это часто более удобно и надёжно, чем запись всего документа в базу. А вот что действительно нужно писать в базу, так это всякие метаданные и всякие данные для упрощения поиска этого документа, а это никак не связано с хранением документа в самой базе.

    Я это не сам придумал, я работаю в фирме, которая много собак съела на CAD и PLM. Собственно, я не делаю секрета из того, что это за фирма, это PTC (www.ptc.com). И я имею отношение к одному из продуктов PTC, который именно этим и занимается. Правда сам этот продукт я не писал, моей задачей там был инсталятор. Но, естественно, я в курсе, что делает этот продукт.

    Если убрать требование хранить файлы в базе (что на мой взгляд ненужно), то я понимаю, чем может быть интересен IFS драйвер. Я когда-то исследовал эту технологию. Да, красиво для некоторых применений получается, но уж очень сложно, а ошибки чреваты фатальными последствиями. То есть, писать и отлаживать самому может дороже выйти, а продать такой потенциально опасный продукт будет сложно.

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

    Второй вариант - ClearCase. Это продвинутая version control system, которая уже имеет готовый драйвер файловый системы (причём и под юниксы тоже). В отличии от других VCS он умеет делать динамические view. Это что-то типа хитрого сетевого драйва, на котором ты видишь версии файлов и директориев, которые выбраны в соответствии с указанными тобой условиями (configspec). По сути это тоже специфическая база данных. Почему я его тут упомянул? Потому что обычно людям приходит в голову хранение документов (особено CAD) в базе тогда, когда им нужно как-то упорядочить и заархивировать некий проект(точнее, дерево проектов), в котором куча документов. И нужно как-то фиксировать все стадии развития проекта(ов). Проекты постоянно изменяются и разветвляются. Характерный пример таких поектов - документация на какое-то изделие, например, самолёт. С одной стороны не бывает двух одинаковых самолётов, но каждая деталь в каждом из них обязана быть задокументирована. В каждой новой модели или даже партии изделий есть существенные изменения, но большая часть документации наследуется. Как видите, это очень напоминает VCS. Вот потому я порекомендовал посмотреть на ClearCase. Но сам по себе он тоже задачу не решает, просто показывает другой способ решения.

    Вообще-то есть много специализированных продуктов именно для CAD, но они дорогие и тяжёлые в развёртывании.
  • stas © (17.09.08 17:40) [11]
    >Alex Konshin ©   (17.09.08 11:18) [10]
    CAD  система была предложена только для примера. Вообще программисты часто сталкиваются с тем что в Blob нужно хранить какаой-то документ, и максимально удобно для юзера было бы открыть данный документ в привычной для него программе и понажатию на кнопку сохранить, после проведения корректировок, сохранение прошло бы на прямую в базу.
    И тут программеры начинают выдумывать технологии сохранения, открытия, и это для каждого типа документа хранящегося в базе.

    Почему документы хранятся в базе? для того чтобы не расшаривать на запись/чтение папку, чтобы бэкап базы сохранял и копии документов, чтобы однозначно хранить целостность данных.

    > Да, красиво для некоторых применений получается, но уж очень
    > сложно, а ошибки чреваты фатальными последствиями. То есть,
    >  писать и отлаживать самому может дороже выйти, а продать
    > такой потенциально опасный продукт будет сложно.

    Вот это меня как раз и интересует стоит ли выше изложенное таких затрат или все же затраты неочень большие?
  • tesseract © (17.09.08 19:13) [12]

    > Почему документы хранятся в базе? для того чтобы не расшаривать
    > на запись/чтение папку, чтобы бэкап базы сохранял и копии
    > документов, чтобы однозначно хранить целостность данных.
    >


    Ой ё. Кнута на тебя не хватает. А что файловая система уже и не база данных ? NFS или лучше AFS ИМХО тебе подойдёт больше, хотя бы доки по ним прочитай и пойми что AFS для таких целей и создавалась,  а Subversion так реально присмотрись, придёться перестроить мозг на другую частоту, но возможно поможет.  

    ЗЫ: Создание именно RAM-диска это причина исключительной дембильнутости винды в области драйверов HDD/FS. Да как средство быстрого и комфортабельного доступа к откэшированной библиотеке это да. Но в одиночку за такой бы проект я бы не взялся. Даже при патронаже Розыча или Шевченко.
  • stas © (17.09.08 20:14) [13]
    >tesseract ©   (17.09.08 19:13) [12]
    Subversion это типа CVS ?
    интересное решение. надо обдумать.

    >Но в одиночку за такой бы проект
    Я сам тоже не собираюсь. Если все же определюсь в его надобности, то найду кто напишет.
  • tesseract © (17.09.08 21:05) [14]

    > интересное решение. надо обдумать.


    Слегка получше.
  • Городской Шаман (17.09.08 21:23) [15]

    > Есть альтернативные пути. Можно посмотреть в сторону технологии
    > reparse points. MS говорит, что с их помощью можно сделать
    > что-то похожее, но тоже придётся писать драйвера, хотя вроде
    > должно быть проще и не так страшно. Кстати, вроде у MS есть
    > готовые продукты, которые используют reparse points (помню,
    >  что связаны с архивированием), возможно, что их можно как-
    > то задействовать и обойтись малой кровью.


    raparse поинт это обычное монтирование своей файловой ссылки (возможно даже на другую ФС в файл/папку в ФС NTFS) Там нужно писать драйвер фильтра, хоть опасность его не менее чем у обычного драйвера ФС. Также может вызвать синий экран.

    Вот в Vista хорошо - там реализовали архитектуру UMDF тоесть система поддерживает работу драйверов в пользовательском режиме. А тут приходится свой прокси изобретать для общения драйвера и сервиса.
  • tesseract © (17.09.08 21:24) [16]

    > А тут приходится свой прокси изобретать для общения драйвера
    > и сервиса.


    А Com + Export plugin для CAD  не проще ?
  • Городской Шаман (17.09.08 21:27) [17]

    > stas ©   (17.09.08 17:40) [11]
    > > Да, красиво для некоторых применений получается, но уж
    > очень
    > > сложно, а ошибки чреваты фатальными последствиями. То
    > есть,
    > >  писать и отлаживать самому может дороже выйти, а продать
    > > такой потенциально опасный продукт будет сложно.
    >
    > Вот это меня как раз и интересует стоит ли выше изложенное
    > таких затрат или все же затраты неочень большие?


    Если согласен на GPL лицензию и сопутствующие глюки проекта (хотя правятся они оперативно) то вот твой выбор, уже готовый фреймворк http://dokan-dev.net/en/about/
  • stas © (17.09.08 21:30) [18]
    Спасибо, посмотрю!
  • Городской Шаман (17.09.08 21:31) [19]

    > tesseract ©   (17.09.08 21:24) [16]
    >
    >
    > > А тут приходится свой прокси изобретать для общения драйвера
    > > и сервиса.
    >
    > А Com + Export plugin для CAD  не проще ?


    Мне не для CAD мне именно ProxyFS, а на основе ее несколько других проектов. Причем готовые аналоги есть, один стоит 10К$ за лицензию, другой 18К$ за лицензию и один слегка глючный и еще GPL.
  • tesseract © (17.09.08 22:05) [20]

    > Мне не для CAD мне именно ProxyFS, а на основе ее несколько
    > других проектов.


    AFS, для такого только ВЫДЕЛЕННЫЙ защищённый сервер+ кэширование на клиенте. Если я правильно понял - такой вопрос примерно в пятый раз поднимаеться.
  • Городской Шаман (17.09.08 22:39) [21]

    > tesseract ©   (17.09.08 22:05) [20]


    И что для AFS есть драйвер под windows?

    Кроме того ProxyFS удобно для преставления в виде монтирования в файловую систему тех же почтовых outlook сообщений или же подключения шифрованных дисков с флешек защита в которых серьёзнее обычной EFS ну и тому подобного.

    Можно реализовать подход, любая информация - файл.
  • tesseract © (17.09.08 23:10) [22]

    > И что для AFS есть драйвер под windows?


    Года два назад был, но cygwin.


    > любая информация - файл.


    Кнут убил себя ап стену, с другой сторны убивался Капица. Это уже не смешно,  это грустно.
  • Городской Шаман (18.09.08 00:22) [23]

    > tesseract ©   (17.09.08 23:10) [22]
    >
    > Кнут убил себя ап стену, с другой сторны убивался Капица.
    >  Это уже не смешно,  это грустно.


    Так мы не стену пробивать будем (наукой заниматься), мы пушить будем (торговать) этим :)

    Реклама двигатель науки. Если бы не было порнухи и игрушек то на каком уровне были бы современные процессоры и каналы интернета/сети?
  • Alex Konshin © (18.09.08 03:08) [24]
    > stas ©   (17.09.08 20:14) [13]
    > >tesseract ©   (17.09.08 19:13) [12]
    > Subversion это типа CVS ?
    > интересное решение. надо обдумать.

    Ещё раз: лучше посмотри не Subversion или большинство других VCS, а именно ClearCase. Он их на голову выше, хотя и сложнее в освоении.

    Все VCS кроме ClearCase, которые я видел (а видел я их немало) не имеют ничего подобного динамическим view из ClearCase. Все реализуют только static views (в терминах ClearCase). А это большая разница. Static view обновляется только по твоему запросу и оно содержит локальные копии файлов. А dynamic view это уже хитрый сетевой ресурс, в котором ты в реальном времени видишь изменения, сделанные другими пользователями (естественно, если эти изменения удовлетворяют условиям, которые установил для этого view), и где файлы хранятся именно на сервере.
  • Alex Konshin © (18.09.08 05:53) [25]
    > Городской Шаман   (17.09.08 21:23) [15]
    > > Есть альтернативные пути. Можно посмотреть в сторону технологии
    > > reparse points. MS говорит, что с их помощью можно сделать
    > > что-то похожее, но тоже придётся писать драйвера, хотя вроде
    > > должно быть проще и не так страшно. Кстати, вроде у MS есть
    > > готовые продукты, которые используют reparse points (помню,
    > >  что связаны с архивированием), возможно, что их можно как-
    > > то задействовать и обойтись малой кровью.
    > raparse поинт это обычное монтирование своей файловой ссылки
    > (возможно даже на другую ФС в файл/папку в ФС NTFS) Там
    > нужно писать драйвер фильтра, хоть опасность его не менее
    > чем у обычного драйвера ФС. Также может вызвать синий экран.

    Да, тоже нужен драйвер, но, насколько я понимаю, он проще, соответственно будет меньше места для ошибок. А вот писать драйвер файловой системы всё-таки слишком чревато. Даже если сам драйвер будет работать, то всё равно нет никакой гарантии, что не будет проблем с каким-нибудь антивирусом. И файловая система это такая вещь, которая может легко приводить к зависанию всей системы. Я говорю даже не о синем экране, а о том, что до висты ожидания в драйверах извне не прервать и потому такие задержки приводят к тому, что вся система перестаёт отвечать. Я видел подобные эффекты при проблемах с обращением к view на другой машине в том же ClearCase, где реализован свой драйвер FS. А в вашем случае задержки и проблемы при обращении к базе данных очень даже вероятны.
 
Конференция "Прочее" » Драйвер типа RAM диска
Есть новые Нет новых   [134442   +14][b:0.001][p:0.001]