Re[6]: Zen Embedded Database for Nemerle
От: matumba  
Дата: 07.02.12 18:09
Оценка:
Здравствуйте, _Claus_, Вы писали:

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


эээ... да не проектами грузить, а задачами, которые может решать этот ZED! Я даже после этого
Автор: _Claus_
Дата: 01.02.12
слабо понимаю, зачем оно написано.
Это СУБД? Хранилка конфигов? Просто хранилище кучи объектов? Распределённая до какой степени? Как дела с синхронизацией? Требования к узлам-хранилищам? Почему 15 баз в кластере, это что-то принципиальное? К чему оптимизирована система — к записи, чтению, многоуровневым транзакциям? Что такое "множественные атомарные чтения" и в каких задачах это проявляется?

Т.е. сам видишь, из технических особенностей описание не состряпаешь — не поймут. Плюс, на фоне NoSQL придётся как-то объясняться — чем ZED лучше/хуже.
Ещё один афоризм: "Кто ясно мыслит, тот ясно излагает". Это не упрёк, ты наверное просто поторопился блеснуть фичами, но забыл куда этот паровоз должен ехать.
Re[7]: Zen Embedded Database for Nemerle
От: _Claus_  
Дата: 07.02.12 19:04
Оценка:
M> Я даже после этого
Автор: _Claus_
Дата: 01.02.12
слабо понимаю, зачем оно написано.


написано для замены сериализации. Если программа оперирует большим объемом данных в монопольном режиме.

M>Это СУБД? Хранилка конфигов? Просто хранилище кучи объектов? Распределённая до какой степени? Как дела с синхронизацией?


СУБД. монопольный режим. сервер.

M>Требования к узлам-хранилищам? Почему 15 баз в кластере, это что-то принципиальное?


надо было эффективно упаковать адрес в 32 бита. родилось такое ограничение.

M>К чему оптимизирована система — к записи, чтению, многоуровневым транзакциям? Что такое "множественные атомарные чтения" и в каких задачах это проявляется?


главная фича — скорость. когда NoSQL не пролазит. это задачи обработки сетей, графов, нейросетей, имеющие размер для решения практических задач. многоуровневые транзакции — такого просто не знаю.
многоуровневые данные — понимаю, и для этого как раз и написано.

M>Т.е. сам видишь, из технических особенностей описание не состряпаешь — не поймут. Плюс, на фоне NoSQL придётся как-то объясняться — чем ZED лучше/хуже.

M>Ещё один афоризм: "Кто ясно мыслит, тот ясно излагает". Это не упрёк, ты наверное просто поторопился блеснуть фичами, но забыл куда этот паровоз должен ехать.

я простой украинский метапрограммист. даже не из Meta Systems. пишу доки как получается. повторюсь — цель разработки, чтобы ничего лишнего не писать по сравнению с обычным .Net кодом, кроме префиксов полей.

P.S. Специально снабдил код комментами, чтобы заинтересованные люди при желании сами или с моей помощью могли решить свои задачи.
Re[8]: Zen Embedded Database for Nemerle
От: BogdanMart Украина  
Дата: 07.02.12 22:45
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>главная фича — скорость. когда NoSQL не пролазит. это задачи обработки сетей, графов, нейросетей, имеющие размер для решения практических задач. многоуровневые транзакции — такого просто не знаю.

_C_>многоуровневые данные — понимаю, и для этого как раз и написано.


А как планируется реализация запроссов к такой базе?
Просто перебор дерева начиная с рута и углубляясь будет не очень эффективным (прийдется тянуть объекты с файла в кучу)


PS. а вот для такой задачи очень пригодился бы "небезопастный код" в безопастном контексте макроссов.
(Я имею в виду работу с Memory Mapped файлами, и мапить их напрямую насвойства объектов) Сам думал нечто подобное писать, но с отствуием ансейфа подумал что нет смисла.


PS. надо будет найти время, чтобы разобратся с этим кодом
Re: Zen Embedded Database for Nemerle
От: BogdanMart Украина  
Дата: 07.02.12 22:50
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_> ZT str : string

_C_> ZT contains : List.[Px]
_C_> Zs unsup : Dictionary.[string, object]

зачем такие выкрутасы?

Предлагаю использовать следующий алгоритм:

1)Если поле является Persist классом -- использовать свой алгоритм
2)Если является сериалиуемім -- использовать BInForamtter
3)выдать ошибку

и того нет ошибок и все работает и какраньше (ибо сомниваюсь что єти персист классі будут сериализуемыми)

А уровень видимости можно брать с самой пропорты/филда.

ПС. проект интересный, просто возникает небольшая критика)
Re[9]: Zen Embedded Database for Nemerle
От: _Claus_  
Дата: 07.02.12 23:03
Оценка:
BM>А как планируется реализация запроссов к такой базе?

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

BM>Просто перебор дерева начиная с рута и углубляясь будет не очень эффективным (прийдется тянуть объекты с файла в кучу)


знаю. большие стандартные коллекции в базе — абсолютно неоптимально. она вся считывается. и при незначительной модификации вся записывается.
поэтому ессно нужно специализированные коллекции, которые хочу написать, но текущая реализация N этого не позволяет.
если наши переговоры с ConingUnit закончатся успехом по поводу макротипов — все будет умно и красиво. с помощью специализированных
List, Dictionaonary, Hash, .. а пока ничего лучшего предложить не могу — реализация N не позволяет.

BM>PS. надо будет найти время, чтобы разобратся с этим кодом


аналогично хочу довести до ума свои идейки под N
Re[2]: Zen Embedded Database for Nemerle
От: _Claus_  
Дата: 08.02.12 15:03
Оценка:
Здравствуйте, BogdanMart, Вы писали:

BM>Здравствуйте, _Claus_, Вы писали:


_C_>> ZT str : string

_C_>> ZT contains : List.[Px]
_C_>> Zs unsup : Dictionary.[string, object]

BM>зачем такие выкрутасы?


BM>Предлагаю использовать следующий алгоритм:


BM>1)Если поле является Persist классом -- использовать свой алгоритм

BM>2)Если является сериалиуемім -- использовать BInForamtter
BM>3)выдать ошибку

BM>и того нет ошибок и все работает и какраньше (ибо сомниваюсь что єти персист классі будут сериализуемыми)


BM>ПС. проект интересный, просто возникает небольшая критика)


критика не пугает, разумные мысли приветствуются.

Делай я это в Boo, все так бы и было. но предвидел замечание, что автомат (без предупреждений), не позволяет понять,
какой выбор сделан. а разница в производительности и поддержке того и другого существенно отличается.

могу предложить добавить третий тип — Zx — который будет так себя вести. и отдать на усмотрение пользователя.

хочет автомат без всяких предупреждений- пишет Zx и отдает на усмотрение Zdb. тогда и любители строгости будут
удовлетворены, и простоты.
Re[2]: Zen Embedded Database for Nemerle
От: _Claus_  
Дата: 08.02.12 18:25
Оценка:
BM>А уровень видимости можно брать с самой пропорты/филда.

это не работает. компилятор не пропускает

Zt public x: int

поэтому выходит, что только так.
Re[3]: Zen Embedded Database for Nemerle
От: BogdanMart Украина  
Дата: 08.02.12 20:09
Оценка:
Здравствуйте, _Claus_, Вы писали:
_C_>это не работает. компилятор не пропускает
_C_>Zt public x: int
_C_>поэтому выходит, что только так.

а так:


[Persist]
class Cls
   public x : int;



?


просто не хочется писать лишний код..)
Re[4]: Zen Embedded Database for Nemerle
От: _Claus_  
Дата: 08.02.12 21:51
Оценка:
BM>просто не хочется писать лишний код..)

хотел бы так, но в описании класса невозможно менять поля — простое на свойство.
если компилятор позволял бы, это бы было. а когда префикс, то макрос перехватывает до
формирования поля. увы.
Re: v 0.2
От: _Claus_  
Дата: 13.05.12 20:13
Оценка: 150 (1)
упростил схему описания, несмотря на то, что для обслуживания нужен форк со спец комитом. зато стало похоже на то, как должно быть.

Использование. Рутовые сохраняемые классы должны быть помечены атрибутом [Zo], все наследники автоматически становятся сохраняемыми. При описании полей класса можно использовать атрибут [Zno] (временное поле). Описание сохраняемых (Persist) классов:

[Zo]class Px
  public str : string
  contains : List.[Px]
  unsup : Dictionary.[string, object]
  private cnt : int

class Y : Px
  var1 : Var
  cv  : Dictionary.[Var, Var]
  lv  : list.[Var]
  [Zno] count: int


подробности здесь
Re[2]: v 0.2
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.05.12 20:17
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>Использование. Рутовые сохраняемые классы должны быть помечены атрибутом [Zo], все наследники автоматически становятся сохраняемыми. При описании полей класса можно использовать атрибут [Zno] (временное поле). Описание сохраняемых (Persist) классов:


Только один вопрос. А Zo — это что бы никто не догадался?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: v 0.2
От: _Claus_  
Дата: 13.05.12 20:39
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, _Claus_, Вы писали:


_C_>>Использование. Рутовые сохраняемые классы должны быть помечены атрибутом [Zo], все наследники автоматически становятся сохраняемыми. При описании полей класса можно использовать атрибут [Zno] (временное поле). Описание сохраняемых (Persist) классов:


VD>Только один вопрос. А Zo — это что бы никто не догадался?


Zo[bject], а что, есть вариант лучше?
Re[4]: v 0.2
От: QrystaL Украина  
Дата: 14.05.12 07:12
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>Здравствуйте, VladD2, Вы писали:


VD>>Здравствуйте, _Claus_, Вы писали:


_C_>>>Использование. Рутовые сохраняемые классы должны быть помечены атрибутом [Zo], все наследники автоматически становятся сохраняемыми. При описании полей класса можно использовать атрибут [Zno] (временное поле). Описание сохраняемых (Persist) классов:


VD>>Только один вопрос. А Zo — это что бы никто не догадался?


_C_>Zo[bject], а что, есть вариант лучше?


Да, ZObject
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.