Re[28]: Объектные базы как они есть
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 19.04.05 08:09
Оценка:
Здравствуйте, stalcer, Вы писали:

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


S>>>Одно из требований (желаний) я определил: Надо сделать так, чтобы при изменении одного конца связи не нужно было грузить всю коллекцию (или объект со ссылкой) на другом конце.


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


S>В базах данных, в этом смысле, есть один очень положительный момент: основное время тратиться на работу с диском. Это само по себе, конечно очень плохо, но зато можно не экономить на работе в кэше. То есть формат данных в кэше можно сделать и более навороченным, по сравнению, например, со стандартными коллекциями C++.


Чесно говоря я не понял, причем тут кэш и экономия времении, а так же навороченность коллекций

S>В данном конкретном случае — всегда нужно стремиться к тому, чтобы не загружать зря коллекцию с другой стороны. Так как накладные расходы на загрузку будут несоизмеримо больше, чем работа с кэшем.


Это да, согласен.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[20]: Объектные базы как они есть
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.04.05 09:03
Оценка:
Здравствуйте, stalcer, Вы писали:



S>Я о чем и говорю: коллекции в таком случае должны быть построены так, чтобы не нужно было подгружать ее вообще. Может быть даже просто запоминать все изменения в какой-то другой структуре, для того чтобы когда коллекция реально потребуется — загрузить ее (коллекцию) и скорректировать.


S>Тут еще фишка в том, что в большинстве случаев коллекции — маленькие и без разницы грузить ее всю или только часть. Это все равно одно обращение к базе. А вот если совсем не грузить , это да, это хорошо.


S>А еще может быть и обратная ситуация. Когда коллекция уже загружена, и из нее, например, удаляем объект. Или еще круче: делаем просто Clear(). И прикинь, что для этого необходимо будет подгрузить все соответствующие children объекты, чтобы изменить в них ссылки.


S>А ведь и та и другая ситуация может быть с равной вероятностью. И придумать алгоритм, который бы не грузил лишнее в обоих случаях — вот хитрая задачка.


Все, что применимо в обычном программировании, применимо и для БД. Реально можно обходится и без индексов для подчиненных коллекций если ее применять ввиде двухнаправленного связного списка, а начало и конец держать в родителе (при этом запись может содержать относительное место в БД например номер записи). При этом всиавка,Clear() вообще простая операция.
Еще лично мое видение и повторюсь в сотый раз, это делать объектную надстройку над записями (записью) в БД. Нужно только считать данные с нужно страницы, и не держать огромное количество объектов в памяти, а только те которые необходимы при данной транзакции.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re[21]: Объектные базы как они есть
От: Cyberax Марс  
Дата: 19.04.05 09:07
Оценка:
BaZa wrote:

> C>Я работал немного с Versant в свое время — Hibernate его (по моим

> C>ощущениям) намного превосходит в удобстве.
> Просто вопрос: а с каким именно продуктом Вы работали?
> (действительно интересно)

C FastObjects .NET — писал небольшой проектик, в нем уже FastObjects
использовался.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[21]: Объектные базы как они есть
От: stalcer Россия  
Дата: 19.04.05 09:20
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Все, что применимо в обычном программировании, применимо и для БД. Реально можно обходится и без индексов для подчиненных коллекций если ее применять ввиде двухнаправленного связного списка, а начало и конец держать в родителе (при этом запись может содержать относительное место в БД например номер записи). При этом всиавка,Clear() вообще простая операция.


Дело в том, что речь идет о двунаправленной связи. И если ты делаешь в коллекции Clear(), то необходимо еще учтановить в null все ссылки с противоположной стороны, то есть в возможно большом количестве объектов.
http://www.lmdinnovative.com (LMD Design Pack)
Re[13]: Объектные базы как они есть
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.04.05 09:21
Оценка:
Здравствуйте, vdimas, Вы писали:


V>Я же русским языком сказал, что в ячейках хеш-таблицы хранятся сортированные индексы, в которых всегда поиск NLog(N).

V>Я все-таки буду писать подобную хеш-таблицу для второго дотнета (нужна самим подобная), учитывая твое замечание, предусмотрю в конструкторе фабрику для создания сортированных индексов в ячейках таблицы. Т.е., если будут подозрения плохое хеширование, можно подать фабрику для B+ индексов в ячейках. По умолчанию будет простой сортированный массив, в котором опять же трудоемкость не более NLog(N).
Таких хэш таблиц много, но опять же ты упрешься в неопределенность размера индекса и в итоге получишь гибрид хэш таблицы с Б+ деревом в каждой ячейке. Б+ деревья сами по себе очень универсальны и особенно подходят для неопределенного размера. Другое дело, что для больших структур лучше делать Б+ дерево на их хэшах со сравнением при выборе диапозона поискового хэша с искомым значением.
Кстати разница в поиске не столь огромна для Б+ деревьев и хэш таблиц. На практике всего в 4 раза http://gzip.rsdn.ru/article/alg/tlsd.xml
Автор(ы): Сергей Смирнов (Serginio1)
Дата: 14.08.2004
Пример реализации двухуровневого массива с помощью нового средства С# — generics. Сравнение производительности различных реализаций сортированных списков.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re[22]: Объектные базы как они есть
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.04.05 09:26
Оценка:
Здравствуйте, stalcer, Вы писали:

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


S>> Все, что применимо в обычном программировании, применимо и для БД. Реально можно обходится и без индексов для подчиненных коллекций если ее применять ввиде двухнаправленного связного списка, а начало и конец держать в родителе (при этом запись может содержать относительное место в БД например номер записи). При этом всиавка,Clear() вообще простая операция.


S>Дело в том, что речь идет о двунаправленной связи. И если ты делаешь в коллекции Clear(), то необходимо еще учтановить в null все ссылки с противоположной стороны, то есть в возможно большом количестве объектов.

То бишь упираемся в GC . Но пятьже все зависит от организации данных. Возможно держать для каждой записи некий список ссылающихся объектов, а в ссылающихся объектах держать не только ссылку, но и адрес в этом списке, для быстрого удаления при смене ссылки.
Но это так фантазии не слишком продуманные
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re[23]: Объектные базы как они есть
От: stalcer Россия  
Дата: 19.04.05 09:43
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>Дело в том, что речь идет о двунаправленной связи. И если ты делаешь в коллекции Clear(), то необходимо еще учтановить в null все ссылки с противоположной стороны, то есть в возможно большом количестве объектов.


S> То бишь упираемся в GC . Но пятьже все зависит от организации данных. Возможно держать для каждой записи некий список ссылающихся объектов, а в ссылающихся объектах держать не только ссылку, но и адрес в этом списке, для быстрого удаления при смене ссылки.


Неа. Я не про это вовсе. Здесь же речь идет о кэшировании объектов базы данных. Вот это "возможно большое количество объектов" может быть вообще не подгружено в кэш. И что тогда делать? Тупой вариант — это подгрузить их все, изменить в каждом поле, и сохранить эти изменения обратно на диск. Но, это плохой вариант.
http://www.lmdinnovative.com (LMD Design Pack)
Re[24]: Объектные базы как они есть
От: Alexey Rovdo Россия http://ru.linkedin.com/in/rovdo
Дата: 19.04.05 09:50
Оценка: 6 (1)
Здравствуйте, stalcer, Вы писали:

S>Неа. Я не про это вовсе. Здесь же речь идет о кэшировании объектов базы данных. Вот это "возможно большое количество объектов" может быть вообще не подгружено в кэш. И что тогда делать? Тупой вариант — это подгрузить их все, изменить в каждом поле, и сохранить эти изменения обратно на диск. Но, это плохой вариант.


А почему бы просто не подождать до тех пор, пока они не подгрузятся в кэш по какой-либо иной надобности? А пока просто оставить специальную метку на месте удаленного объекта. Т.е. ссылки редактировать не сразу, а только по мере обращения к соответствующим объектам?
Re[24]: Объектные базы как они есть
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.04.05 09:56
Оценка:
Здравствуйте, stalcer, Вы писали:


S>Неа. Я не про это вовсе. Здесь же речь идет о кэшировании объектов базы данных. Вот это "возможно большое количество объектов" может быть вообще не подгружено в кэш. И что тогда делать? Тупой вариант — это подгрузить их все, изменить в каждом поле, и сохранить эти изменения обратно на диск. Но, это плохой вариант.

Я вообще противник кэширования объектов, либо только в одной транзакции. В сложных системах один из лучших вариантов, является много версионных читателей, один экслюзивный писатель. Re[20]: Объектно-ориентированные БД: основные принципы, орга
Автор: Serginio1
Дата: 11.03.05
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re[25]: Объектные базы как они есть
От: stalcer Россия  
Дата: 19.04.05 10:04
Оценка:
Здравствуйте, Alexey Rovdo, Вы писали:

AR>А почему бы просто не подождать до тех пор, пока они не подгрузятся в кэш по какой-либо иной надобности? А пока просто оставить специальную метку на месте удаленного объекта. Т.е. ссылки редактировать не сразу, а только по мере обращения к соответствующим объектам?


Дык, я же именно про это и говорю.
http://www.lmdinnovative.com (LMD Design Pack)
Re[25]: Объектные базы как они есть
От: stalcer Россия  
Дата: 19.04.05 10:08
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Я вообще противник кэширования объектов, либо только в одной транзакции. В сложных системах один из лучших вариантов, является много версионных читателей, один экслюзивный писатель. Re[20]: Объектно-ориентированные БД: основные принципы, орга
Автор: Serginio1
Дата: 11.03.05


Здесь вроде речь идет о движке СУБД, а не о ORM или других надстройках. Сам то движок должен как-то кэшировать для выполнения запросов и update'ов, хранимые процедуры (методы) должны как-то работать. Не с диском же напрямую.
http://www.lmdinnovative.com (LMD Design Pack)
Re[25]: Объектные базы как они есть
От: stalcer Россия  
Дата: 19.04.05 10:14
Оценка:
Здравствуйте, Alexey Rovdo, Вы писали:

AR>А почему бы просто не подождать до тех пор, пока они не подгрузятся в кэш по какой-либо иной надобности? А пока просто оставить специальную метку на месте удаленного объекта. Т.е. ссылки редактировать не сразу, а только по мере обращения к соответствующим объектам?


Здесь еще одна хитрость в том, как эти данные хранятся на диске. Если двунаправленная связь храниться на диске тоже в двух местах, т.е. со стороны каждого из связываемых объектов, то и обновлять придется оба конца. Независимо от того, были все объекты подгружены в кэш или не были.
http://www.lmdinnovative.com (LMD Design Pack)
Re[26]: Объектные базы как они есть
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.04.05 10:18
Оценка:
Здравствуйте, stalcer, Вы писали:

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


S>> Я вообще противник кэширования объектов, либо только в одной транзакции. В сложных системах один из лучших вариантов, является много версионных читателей, один экслюзивный писатель. Re[20]: Объектно-ориентированные БД: основные принципы, орга
Автор: Serginio1
Дата: 11.03.05


S>Здесь вроде речь идет о движке СУБД, а не о ORM или других надстройках. Сам то движок должен как-то кэшировать для выполнения запросов и update'ов, хранимые процедуры (методы) должны как-то работать. Не с диском же напрямую.

Прошу прощения, как то потерял нить. Я это о своем эфимерном движке. Ну а с диском помоему уже давно никто не работает при кэшированных страницах. Просто доступ к ним возможенн только при своей реализации.
Еще раз прошу прощения за высказывания в невпопад.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re[25]: Объектные базы как они есть
От: GlebZ Россия  
Дата: 19.04.05 11:48
Оценка:
Здравствуйте, Alexey Rovdo, Вы писали:

AR>А почему бы просто не подождать до тех пор, пока они не подгрузятся в кэш по какой-либо иной надобности? А пока просто оставить специальную метку на месте удаленного объекта. Т.е. ссылки редактировать не сразу, а только по мере обращения к соответствующим объектам?

Тут встанет другая проблема. Транзакционный механизм с их savepoint's.

С уважением, Gleb
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[26]: Объектные базы как они есть
От: Alexey Rovdo Россия http://ru.linkedin.com/in/rovdo
Дата: 19.04.05 12:16
Оценка: +1
Здравствуйте, GlebZ, Вы писали:


AR>>А почему бы просто не подождать до тех пор, пока они не подгрузятся в кэш по какой-либо иной надобности? А пока просто оставить специальную метку на месте удаленного объекта. Т.е. ссылки редактировать не сразу, а только по мере обращения к соответствующим объектам?

GZ>Тут встанет другая проблема. Транзакционный механизм с их savepoint's.


Что то вы не так поняли. Я не имел ввиду никакого нарушения транзакционной целостности. Просто внутренние механизмы ООСУБД вовсе не обязаны физически удалять с диска (исправлять) те элементы, которые мы удалили. Достаточно пометить этот элемент как удаленный, а дальше — работа GC, который может исполняться асинхронно вне транзакции. То же самое и с исправлением ссылок. Если после поднятия ссылки (уже в другой задаче) оказывается, что она указывает на помеченный как удаленный элемент, то без уведомления приложения СУБД сама может обнулить соответсвующую ссылку и передать дальше уже null, а объект на диске исправить (вписать нул в хначение ссылки). Это очень похоже на то, как в FastObjects работает механизм версионности. Например, если мы исправили описание класса и удалили один из его атрибутов, то это вовсе не значит, что СУБД тут же перелопатит всю базу и изменит записи всех объектов данного класса (хотя мы и можем заставить ее сделать это). Вместо этого она будет править хранимые объекты только по мере их очередного редактирования, автоматически переводя их в новую версию при сохранении.
Re[27]: Объектные базы как они есть
От: GlebZ Россия  
Дата: 19.04.05 13:49
Оценка:
Здравствуйте, Alexey Rovdo, Вы писали:

AR>Что то вы не так поняли. Я не имел ввиду никакого нарушения транзакционной целостности. Просто внутренние механизмы ООСУБД вовсе не обязаны физически удалять с диска (исправлять) те элементы, которые мы удалили. Достаточно пометить этот элемент как удаленный, а дальше — работа GC, который может исполняться асинхронно вне транзакции. То же самое и с исправлением ссылок. Если после поднятия ссылки (уже в другой задаче) оказывается, что она указывает на помеченный как удаленный элемент, то без уведомления приложения СУБД сама может обнулить соответсвующую ссылку и передать дальше уже null, а объект на диске исправить (вписать нул в хначение ссылки). Это очень похоже на то, как в FastObjects работает механизм версионности. Например, если мы исправили описание класса и удалили один из его атрибутов, то это вовсе не значит, что СУБД тут же перелопатит всю базу и изменит записи всех объектов данного класса (хотя мы и можем заставить ее сделать это). Вместо этого она будет править хранимые объекты только по мере их очередного редактирования, автоматически переводя их в новую версию при сохранении.

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

Что касается транзакционного механизма. Как примерно работает нормальный (я бы сказал самый распространенный) механизм транзакции. Все изменения производятся в кольцевом логе. После определенного момента — происходит сброс изменений на диск (savepoint). После этого лог можно перезаписывать. Система достаточно проста и выдерживает отключение питания. У нас получается несколько неприятная вещь. С одной стороны, часть ссылок уже нормализована, а часть нет. Как это отразится на функционировании восстановления, с ходу не скажу, но то что надо что-то делать, вполне понятно.

Очень интересует вопрос функционирования GC для ООБД. То бишь, в персистентном хранилище(большом и медленном). Не мог бы кто-нибудь "плюнуть" какую-нибудь ссылочку. Должна быть занятная вещь.

С уважением, Gleb.
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[28]: Объектные базы как они есть
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 19.04.05 14:03
Оценка: +1
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, Alexey Rovdo, Вы писали:


AR>>Что то вы не так поняли. Я не имел ввиду никакого нарушения транзакционной целостности. Просто внутренние механизмы ООСУБД вовсе не обязаны физически удалять с диска (исправлять) те элементы, которые мы удалили. Достаточно пометить этот элемент как удаленный, а дальше — работа GC, который может исполняться асинхронно вне транзакции. То же самое и с исправлением ссылок. Если после поднятия ссылки (уже в другой задаче) оказывается, что она указывает на помеченный как удаленный элемент, то без уведомления приложения СУБД сама может обнулить соответсвующую ссылку и передать дальше уже null, а объект на диске исправить (вписать нул в хначение ссылки). Это очень похоже на то, как в FastObjects работает механизм версионности. Например, если мы исправили описание класса и удалили один из его атрибутов, то это вовсе не значит, что СУБД тут же перелопатит всю базу и изменит записи всех объектов данного класса (хотя мы и можем заставить ее сделать это). Вместо этого она будет править хранимые объекты только по мере их очередного редактирования, автоматически переводя их в новую версию при сохранении.

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

Я думаю, что здесь проблем нет. Просто такая обработка лежит на отдельном уровне абстракции. Где-то выше кэша, но ниже планировщика запросов (или какая там архитектура будет).

GZ>Что касается транзакционного механизма. Как примерно работает нормальный (я бы сказал самый распространенный) механизм транзакции. Все изменения производятся в кольцевом логе. После определенного момента — происходит сброс изменений на диск (savepoint). После этого лог можно перезаписывать. Система достаточно проста и выдерживает отключение питания. У нас получается несколько неприятная вещь. С одной стороны, часть ссылок уже нормализована, а часть нет. Как это отразится на функционировании восстановления, с ходу не скажу, но то что надо что-то делать, вполне понятно.


Здесь я так же не вижу проблемы. Главное, чтобы надежно сохранился объект-ссылка, в котором установлен признак, что она уже некорректна.

GZ>Очень интересует вопрос функционирования GC для ООБД. То бишь, в персистентном хранилище(большом и медленном). Не мог бы кто-нибудь "плюнуть" какую-нибудь ссылочку. Должна быть занятная вещь.


У Константина Книжника в Goods подобный механизм был реализован. Он даже в своей диссертации какую-то теорему доказывал на эту тему. Если не ошибаюсь о том, что объект можно удалять из БД, если он не достижим по ссылкам из других объектов.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[29]: Объектные базы как они есть
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.04.05 14:22
Оценка:
Здравствуйте, eao197, Вы писали:
E>У Константина Книжника в Goods подобный механизм был реализован. Он даже в своей диссертации какую-то теорему доказывал на эту тему. Если не ошибаюсь о том, что объект можно
E> удалять из БД, если он не достижим по ссылкам из других объектов.
Ну, это-то и так очевидно, при условии отсутствия маршалинга ссылки за пределы СУБД
А по теме с первого выстрела нагуглил http://citeseer.ist.psu.edu/context/82619/0
(сейчас citeseer в дауне, вот то, что вспомнил гугль: http://64.233.183.104/search?q=cache:tdbly9VAk3MJ:citeseer.ist.psu.edu/context/82619/0+garbage+collecting+in+odbms%27&amp;hl=ru)
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[29]: Объектные базы как они есть
От: GlebZ Россия  
Дата: 19.04.05 14:26
Оценка:
Здравствуйте, eao197, Вы писали:

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


E>Я думаю, что здесь проблем нет. Просто такая обработка лежит на отдельном уровне абстракции. Где-то выше кэша, но ниже планировщика запросов (или какая там архитектура будет).

Смотри что получается. У нас есть запрос вместе с where exist(object.reference) Три варианта:
1. Мы просматриваем объект на который ссылаемся. Плохо. Избыточное чтение.
2. Мы кладем это в запрос. Плохо. В результате у нас получается очень неприятное условие и длинное.(в ОРМ — более чем криминально, но для ООДБ этот вариант я считаю наименее плохим)
3. Мы смотрим после выполнения запроса. Плохо. Избыточное чтение.

GZ>>Что касается транзакционного механизма. Как примерно работает нормальный (я бы сказал самый распространенный) механизм транзакции. Все изменения производятся в кольцевом логе. После определенного момента — происходит сброс изменений на диск (savepoint). После этого лог можно перезаписывать. Система достаточно проста и выдерживает отключение питания. У нас получается несколько неприятная вещь. С одной стороны, часть ссылок уже нормализована, а часть нет. Как это отразится на функционировании восстановления, с ходу не скажу, но то что надо что-то делать, вполне понятно.


E>Здесь я так же не вижу проблемы. Главное, чтобы надежно сохранился объект-ссылка, в котором установлен признак, что она уже некорректна.

Я тоже явно не вижу. Но тут нужно сохранять не ссылку, а состояние GC. Что может быть очень накладным и сложным процессом.(сходу не скажу).

GZ>>Очень интересует вопрос функционирования GC для ООБД. То бишь, в персистентном хранилище(большом и медленном). Не мог бы кто-нибудь "плюнуть" какую-нибудь ссылочку. Должна быть занятная вещь.


E>У Константина Книжника в Goods подобный механизм был реализован. Он даже в своей диссертации какую-то теорему доказывал на эту тему. Если не ошибаюсь о том, что объект можно удалять из БД, если он не достижим по ссылкам из других объектов.

Тут несколько другой GC. Второй тип ссылочной целостности, в котором при удалении объекта — все ссылки на него обнуляются. Хотя в принципе это можно организовать более простым способом чем в goods. При наличии метаданных, ессно.

С уважением, Gleb.
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[29]: Объектные базы как они есть
От: Alexey Rovdo Россия http://ru.linkedin.com/in/rovdo
Дата: 19.04.05 14:38
Оценка:
Здравствуйте, eao197, Вы писали:

E>У Константина Книжника в Goods подобный механизм был реализован. Он даже в своей диссертации какую-то теорему доказывал на эту тему. Если не ошибаюсь о том, что объект можно удалять из БД, если он не достижим по ссылкам из других объектов.


GC в FastObjects t7 работает фактически по данному принципу (там только всякие настроечки имеются).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.