LINUX.ORG.RU

Осуществлено портирование Sqlite на C#/Mono

 , , , ,


0

0

Noah Hart осуществил порт Sqlite на C# путем переписывания оригинальной библиотеки строчка за строчкой. При этом производительность получилась несколько более низкой, чем у оригинального кода - порт примерно в 5 раз медленнее (это означает, что он способен обработать примерно 1.5 миллионов операций типа SELECT или 300 000 операций типа INSERT за секунду - очень достойные результаты).

На канале #mono @ irc.gnome.org уже идет обсуждение, как можно ещё улучшить производительность кода. Один из возможных вариантов - не использовать стиль C там, где стиль C# итак работает на хорошем уровне.

Потенциал этой библиотеки огромен. Она может использоваться для запуска серверов ASP.NET в режиме Medium Trust. Также она может использоваться и для написания приложений на основе Silverlight. Tim Anderson уже начал работу над улучшением производительности библиотеки при работе с Silverlight.

Ещё раз замечу: это не очередная «обёртка» для библиотеки Sqlite, не какой-то драйвер - это реализация оригинальной библиотеки Sqlite на языке C#.

Исходный код

FAQ

>>> Блог Мигеля де Иказы

★★★★

Проверено: hibou ()

Ответ на: комментарий от MuZHiK-2

> Насколько я понимаю, тут очень важная фича - это возможность использовать это в сильверлайте. Это все равно что использовать БД во флеше.

о ужос! сильверлайт, флэшь, становиться страшно!

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

Вы опоздали.
Уже есть Unity.
SeconLife написана на моно.

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

> Столлман негодуе!

Мир меняется... Рано или поздно он тоже ласты склеет, интересно как тогда начнут развиватся события :)

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

>PS: Жаба тоже была закрытой корпоративной технологией. Не было бы этой закрытой корпоративной технологии - сидели бы все сейчас под вендой и не вякали без всяких перспектив. Так что сейчас надо сказать большое спасибо сану и молиться чтобы оракл вложил в нее денег.
Ктати, Сан - хороший пример того, как потратили силы на войну с Линукс(даже SCO деньгами помогали, после того как те судиться начали) вместо того, чтобы сосредоточиться на расспространении технологии.

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

В нашем случае важно не количество.
По Вашей же логике, выходит, существует лишь одна реализация Си, Ruby, интернет-браузера, и DE. Что определенно расходится с реальностью.

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

>Жаба тоже была закрытой корпоративной технологией.
>Ой тооолстооо.

Закрытая и патентованная. IBМ и прочие покупали лицензию на то, чтобы её использовать.
Более того Сан до сих пор Java это проприетарный стандарт Сан, не открытый никиой международной организации.

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

>численность сравни - мы на положении партизан.

И что? От этого нам надо шифроваться со всех мест где появляется противник? Это не партизаны а беженцы тогда будут.

Вопрос стоит не в том будут ли писать на дотнете - будут, а в том можно ли писать на дотнете под линукс. И если ответ "нет" - то результатом будет в этих случаях зачастую "линукс не нужен". Потому что в энтерпрайзе все равно какая прозрачность окон и какие кодеки там есть. В энтерпрайзе ОС - это пускалка для другого приложения. И вопрос стоит в возможности писать "дешево, багонуто и быстро" (C) Страуструп, под чем подпишется любая программистская галера. А операционка на которой оно крутится никого не парит. Линукс начал вытеснять юниксы потому что народ обнаружиш что онор дешевле и та же жаба работает, или кобол - на пример с почтой обрати внимание. Думаешь в энтепрайзе смый большой расход выкинуть косарь денег на операционку? Нафоне заказа сайтиков за суммы от 4 нулей - это смешно.

И если гипотетически допустить что нужно кроспалтформенное приложение в условиях отсутствия жабы - то большинство народу на галере (равно как и заказчиков) при выборе .NET+Win / Linux+Не Жаба скаже "f*ck linux". А галеры - это заказной энтерпрайз. И линукс пускалка для того жабского софта который написан на галерах.

>а открытый софт, который для своих накой хрен на этом ваять?


По той же причине почему и любой другой. Скорость. Дешевизна.

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

>И что? Сан тожы писал под всего 3 платформы, а не весь спектр.

Зато писали другие. То же M$ делало свою JVM с "блекджеком и шлюхами". Парвда по поводу правил игры в блеклжек и такитико-технических характеристик шлюх у него с Саном возникли бааальшие разногласия. Собственно так и появился .NET.

>За 5 лет никто не догадался, что это может случится и с жабой.

Вот как ты это себе представляешь? Я это могу представить только в виде жуткого акта мазохизма, когда Сан будет уничтожать свой же собственный рынок. А вот у M$ есть хорошие возможности вдарить по рынку Mono, да еще с нехилым профитом для себя.

Одна лишь надежда, на то что FSF встанет на защиту. Но пока пойдет суд да дело, да доказательства действительности патентов в суде, пройдет очень много времени.

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

>Зато писали другие.

А Novell и GNU - это не другие?

>Вот как ты это себе представляешь?


Точно так же как и с микрософтом. Ты ж говоришь он денежку с разработчиков собираются брать? Что сану мешало? Возьмут хитрые люди налицензируют жаб, а через пяток лет очередные спеки откажутся - скажут "дай мне мильярд"? И все в заднице. Или заманят всех на жабу под вендой и линуксом о потом оопс и свернут эти версии и скажут - покупай солярис - цена сто штук - под ним все будет работать - а по линукс пилить мы не нанимались.

>А вот у M$ есть хорошие возможности вдарить по рынку Mono, да еще с нехилым профитом для себя.


Вот как ты себе это представляешь?


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

Да и вообще это выглядит фантасмагорично (массовые патентные преследования).

1. Это будет групповой иск буквально против всех включая новел. Защита новела ничего не дает ему если рассматривать нположение новела на рынке в общей картине - а общая картина говорит на м о том что если претензии будут сделаны ключевым игрокам рынка вроде редхат и каноникал - то новел уйден в задницу - сам разрабатывать линукс он не потянет - они все плотно сидят на игле кооперативной разработки. Все кто попытались вытянуть свои операционки или сдохли или скинули их (как SGI) или открыли чтобы не сдохло (как Sun) или тянут постепенно замещая другими (как HP). Время когда каждая корпорация разрабатывала собственную ось почти на исходе - это еще может себе позволить только MS - у него выбора нету даже если рентабельность будет маленькой, ну и бимеры - потому что последний мегагигант.

То есть война будет против всех - а что с такими случается уже видели на примере SCO Group.

2. Как говорит мой друг Алан Шор "первая поправка была сделана для того чтобы пресечь религиозные гонения, а не узаконить их". Переходя к нашему случаю - патентная система разработана, чтобы давать разработчику временную монополию тем самым стимулируя инновации, а не чтобы сшибать бабло исками. На месте судьи я бы задал микрософтовцам резонный вопрос (на фоне общественного резонанса который сущестет уже несколько лет) "Вы знали про проект моно? Вы знали что он нарушает патенты которые вы сейчас предьявляете? Вы знали что идет массовая разработка софта который нарушает ваши патенты? Какого хера вы раньше не предьявляли претензии, чтобы защитить монополию карантированную патентным законом?" И послал бы их в задницу объявив патенты нефорсабельными.

Это не та фигня с ТомТом - кто про него знал до микрософт - мелкая контора. Это массовая война со всей индустрией. Не один судья в здравом уме не вынесет вердикт в пользу истца который полностью осознавая положение сидел на патентах несколько лет ожидая что все раскрутится чтобы срубить денег на "недополученной прибыли".

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

> Это будет групповой иск буквально против всех включая новел.

Что насчет кросс-договора про патенты между Novell и M$, не?

> На месте судьи я бы задал микрософтовцам резонный вопрос (на фоне общественного резонанса который сущестет уже несколько лет) "Вы знали про проект моно?

Навряд ли судья будет превращать суд в цирк. А насчет сшибания бабок - вспомни историю про JPEG и патентные отчисления.

Spectr ★★★
()
Ответ на: комментарий от MuZHiK-2

>Зато я ой как ощутил во время последнего ЧМ по хоккею, когда многие матчи только на спортбоксе можно было в прямом эфире глянуть

4.2

Все без исключения матчи можно было смотреть с оф. сайта не то чтобы без сильверлайта - а даже без флэша. Прекрасно игралось через mplayer-plugin к ФФ.

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

>Что насчет кросс-договора про патенты между Novell и M$, не?

Ничего. Новел первым запишется в антимикрософтовскую группу. Я ж говорю Новел хоть и конкурент тому же редхату но жить он без него не может - у него не хватит денег разрабатывать линукс самостоятельно. И новел знает что если редхат проиграет - то новел сдохнет следующим автоматически. Его договор - ситуативный чистый бизнес - взаимное проникновение - почему бы не воспользоваться. Но конкурент редхат новелу нужен живым больше чем дружба микрософта.

>Навряд ли судья будет превращать суд в цирк.


Какой цирк? У закона есть четкое намерение (т.н. дух закона), а не только формальное определение. Патентное законодательство существует не чтобы сбивать иски. Претензии должны быть обоснованы. Если истец не делал никаких попыток прекратить нарушение, а потом ему вожжа под хвост стрельнула - кто ему лекарь?

Даже убийство может быть "проститительным".

>А насчет сшибания бабок - вспомни историю про JPEG и патентные отчисления.


Что вспомнить? Вот это:

>On May 26, 2006 the USPTO found the patent _invalid_ based on prior art.


или это:

>On July 22, 2008, the Patent Office issued the first "Office Action" of the second reexamination, finding the claim invalid based on nineteen separate grounds.


Не один суд по JPEG не был выигран - все кончалось инвалидацией патента.

А те кто им заплатили добровольно - кто ж им лекарь - SCOGroup тоже платили за линукс добровольцы.

А вот пример как раз того что я говорю:

The USPTO also found that Forgent _knew about the prior art_, and did not tell the Patent Office, making any appeal to reinstate the patent highly unlikely to succeed.

То есть истец который знает о нарушении но нефига не делает - сам себя подставляет.

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

> кинь ссыль на сайт который использует силвер\мун лайты

ubersmith.voxel.net использует Silverlight в качестве интерфейса для управления виртуальными машинами (Silverlining).

sjinks ★★★
()

>Q: What OS will does this run on? >A: This is managed code, written in C# and has only been tested on Vista 32bit

я правильно понял что пока это проверили только в висте? может тогда стоило подождать пока ее и в линуксе проверят.. и тогда уже новость постить.

>порт примерно в 5 раз медленнее (это означает, что он способен обработать примерно 1.5 миллионов операций типа SELECT или 300 000 операций типа INSERT за секунду - очень достойные результаты)

наверно вообще не стоило писать результаты.. а то такое чувство что хотели как то сгладить то что оно медленне работает.

keinas
()

Это упражнение программера для изучения C#, а не разработка для практических нужд. По крайней мере, изначально.
Раз протестировано только на висте, выходит, автор -- виндузятник?

Xenius ★★★★★
()
Ответ на: комментарий от MuZHiK-2

> Главное - без фанатизма.

от тебя это звучит более чем смешно

overmind88 ★★★★★
()

> На канале #mono @ irc.gnome.org уже идет обсуждение, как можно ещё улучшить производительность кода.

Да что тут обсуждать? Очевидно, что производительность кода можно увеличить переписав его обратно на Си. Притом аж в 5 раз.

Civil
()

Запарили новости про моно.

name_no ★★
()

Ждём новости о том, что Мигель начал скандировать "Developers, developers, developers!"

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

> Очевидно, что производительность кода можно увеличить переписав его обратно на Си. Притом аж в 5 раз.

С очевидностью можно поспорить. Автор новости пишет, что "портировали" не построчно - так что при переписывании назад будут изменения. Сдается, что взять оригинал и использовать именно его - наилучшее решение :)

Spectr ★★★
()

йаМобилко кодинг через моно, скюлайт на моно,...

>Год спустя...


Моно портировали на C#/Моно

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

> А как же шрифты в Ubuntu?

А ещё в Gentoo =).

Deleted
()

А мужичёк-то засланный...

Lumi ★★★★★
()

>This is managed code, written in C# and has only been tested on Vista 32bit

Судя по этому ответу, тесты проводились под свистой и новость никак не связана с линукс. Я конечно понимаю что велосипеды делать не тру, но переписывать код это через чур. Ничего хорошего такой программист, ИМХО, не сделает для опен-сорс комьюнити.

gh0stwizard ★★★★★
()
Ответ на: комментарий от MuZHiK-2

>Моно выгоден всем. Это бесспорно.

В чем моя выгода моно?

>Дык есть же бумажка, что претензий не имеют.

И какова юридическая сила этой бумажки?

kraw ★★★★
()
Ответ на: комментарий от MuZHiK-2

>Ага, продадут патенты на технологии, на которых строится весомая часть их бизнеса. Ты хоть сам-то подумал?

Запросто. Создают дочернюю компанию как отдельное юридическое лицо. Владельцы те же. Продают или передают ей патенты. И никаких проблем.

kraw ★★★★
()

2 MuZHiK-2: Пости, пожалуйста, эти новости в Linux General.

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

>Вот именно при чем тут закрытость? НЕ надо подменять понятия - разговор о совместимости. Может ты и двигатели внутреннего згоранияя в "отечественном автопроме" запретишь потому что проприетарный немецкий мерседес их использует? Чтобы не быть идеологическим последователем отчисления денег немецкому автопрому.

Тут другой пример больше подходит. В свое время в СССР была создана БЭСМ-6. Находилась тогда на острие тогдашней науки и развития технологий. Нет бы и дальше ее развивать, но вмнесто этого взяли (точнее - украли) "совместимую" ЕС ЭВМ (содранную с IBM/360) и стали ее развивать вместо собственной разработки. Сразу из передовых попали в догоняющие. Чем это закончилось для отечественной вычислительной техники, думаю, объяснять не надо.

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

>Сюрприз - везде. И .NET реальный конкурент жабе на серверах. И просрать серверный сегмент линукс может именно из-за нета.

Наоборот. Сейчас линукс помогает войти MS на этот рынок с новым продуктом и занять там серьезные позиции.

kraw ★★★★
()

> Она может использоваться для запуска серверов ASP.NET в режиме Medium Trust. Также она может использоваться и для написания приложений на основе Silverlight.

А зачем оно нужно?

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

Переписывание на Java есть и живёт нормально. http://www.zentus.com/sqlitejdbc/

SQLiteJDBC is a Java JDBC driver for SQLite. It runs using either a native code library 100% Pure Java driver based on NestedVM emulation. Both the pure driver and the native binaries for Windows, Mac OS X, and Linux x86 have been combined into a single jar file.

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

>> Сюрприз - везде. И .NET реальный конкурент жабе на серверах. И просрать серверный сегмент линукс может именно из-за нета.

> Наоборот. Сейчас линукс помогает войти MS на этот рынок с новым продуктом и занять там серьезные позиции.

Новому продукту примерно лет 10. Managed DirectX в 2002 г. появился, кажется...

> Тут другой пример больше подходит. В свое время в СССР была создана БЭСМ-6. Находилась тогда на острие тогдашней науки и развития технологий. Нет бы и дальше ее развивать, но вмнесто этого взяли (точнее - украли) "совместимую" ЕС ЭВМ (содранную с IBM/360) и стали ее развивать вместо собственной разработки. Сразу из передовых попали в догоняющие. Чем это закончилось для отечественной вычислительной техники, думаю, объяснять не надо.

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

Мне так запомнилось.

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

>Вопрос стоит не в том будут ли писать на дотнете - будут, а в том можно ли писать на дотнете под линукс. И если ответ "нет" - то результатом будет в этих случаях зачастую "линукс не нужен".

Вопроса нет. дотнет - это изделие MS. И под линукс они его выпускать не будут. А если и выпустят, то только для того, чтобы подсадить пользователей на технологию и дальше отказаться от выпуска. А моно, в режиме воспроизведения дотнет всегда будет отставать также как wine отстает от MS Windows и по той же причине. Моно только "помогает" сделать первичный выбор в пользу создания продукта на дотнет ("он же будет кроссплатформенный"), а потом, когда выяснится, что этой совместимости нет и моно отстает на 2 шага, то будет уже выбор в пользу ОС. Какой именно - надо уточнять?

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

Иск будет не к разработчикам дистрибутивов, а к пользователям технологии. Хочешь пользоваться дальше и не выкидывать прежние наработки - плати. Ну или "исключительно из хорошего расположения лично к Вам и Вашей фирме", переходи на винду с ее истинным дотнетом.

>На месте судьи я бы задал микрософтовцам резонный вопрос (на фоне общественного резонанса который сущестет уже несколько лет) "Вы знали про проект моно? Вы знали что он нарушает патенты которые вы сейчас предьявляете? Вы знали что идет массовая разработка софта который нарушает ваши патенты? Какого хера вы раньше не предьявляли претензии, чтобы защитить монополию карантированную патентным законом?" И послал бы их в задницу объявив патенты нефорсабельными.

Но только ты не на месте судьи.

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

>Новому продукту примерно лет 10. Managed DirectX в 2002 г. появился, кажется...

Только он еще из детских штанишек не вырос.

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

>Мне так запомнилось.

И каким боком тут БЭСМ-6 и IBM/360? Лишь бы что-то сказать?

kraw ★★★★
()

Прошел по ссылкам.Mono упоминается только как название irc-канала, на котором моно-пацаны сказали, что неплохо для построчно переписанного кода. Ну и самое интересное на гуглокоде:

Q: What OS will does this run on? A: This is managed code, written in C# and has only been tested on Vista 32bit

В общем, новость должна звучать так: Осуществлено портирование Sqlite на C#, чудесным образом химера заработала и на Mono.

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

> Только он еще из детских штанишек не вырос.

Кто не вырос и чем можете аргументировать свои слова, чтобы там не выросло или выросло, написали догм/ЦУ и указаний, примеры не однозначные, ответы не точные...

> И каким боком тут БЭСМ-6 и IBM/360? Лишь бы что-то сказать?

Про ЕС ЭВМ были слова.

ЕС 1840, 1841, 1842 с ЕГА-монитором. Кажется и 39-ая была...

Если имелись в виду большие ЭВМ, то и для приведенных мною ЕС ЭВМ - тоже было содрано.

EugenyN
()

1. Причём тут Гном (если, конечно, эти "переписывания" не являются звоночками)?
2. А зачем они это сделали? Я понимаю, совместимость с флешем (ну надо, что уж тут поделать, сайтов много), но Silverlight?! Из-за этой штуковины, которую использует полтора сайта, переписывать заново проект, причём не ради качественного улучшения!
P.S. В Moonlight уже допилили нормальную работу с ALSA?

dogbert ★★★★★
()

А у нас в НИИ коровью лепешку в токамаке синтезировали. Правда потом долго задавались вопросом "зачем".

shutty
()

Ждём переписывания ядра на моно и появление MonoSuSeLinux.

pento ★★★★★
()

Несколько неожиданно - по сабжу.

1) Автор статьи и.или переводчик вообще не имеют представления о чем пишут. Действительно хороший сервер, использующий, как SQLite это делает, только один процессор, способен выполнить примерно 10-20 тыс очень простых INSERT или SELECT операций. Это если сервер OLTP, хорошо настроен и RAID неплохой. Это возможно также, если вся база попадает в память. SQLite, при всем моем уважении к его авторам, показывает на хорошем железе до 300 операций INSERT в секунду. Правда, на этом железе никто и никогда не будет гонять SQLite. На обычном же сервере, SQLite обычно делает около тех же 300 транзакций в секунду, но только в режиме без синхронизации с диском. Как только включаем синк - получаем 25-35 операций в секунду. Ни о какой серьезной работе без синк, как вы понимаете, речи быть не может. Расхождение в цифрах между статьей и реальностью - в несколько десятков тысяч раз.

2) Если учесть, что Mono-версия SQLite примерно в 5 раз медленнее, получаем примерно 5-7 INSERT/sec.

Вывод: Никакой практической ценности порт на Mono не имеет.

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

Я вас уважаю. Спасибо, без шуток. Сам разъяснять я что-то побрезговал, тут какой-то thread гадкий, не приятный.

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

+1. Очень часто эту шутку от местных дурачков слышать приходится. Конкуренция. хихи. Может они ещё про невидимую руку рынка расскажут.

alx_me ★★☆
()

>При этом производительность получилась несколько более низкой, чем у оригинального кода - порт примерно в 5 раз медленнее

А это под Mono или .Net? А то слышал, что на отдельных операциях Mono медленней в сотни раз, чем .Net, а в среднем в разы.

anonymfus ★★★★
()
Ответ на: комментарий от MuZHiK-2

>И по поводу 5 раз: ты хоть представляешь, что значит 1.5 млн селектов в секунду?

Без привязки к железу? просто 1,5 млн селектов/сек в вакууме? нет.

Зато я вижу, как легко и родной сишный sqlite задумывается, например в файрфоксе при работе с журналом и экстраполирую задержки при поиске еще в пять раз...

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