Информационный портал
pocket versionPOCKET  wikiWIKI  FAQFAQ  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ПрофильПрофиль  Войти и проверить личные сообщенияВойти и проверить личные сообщения  ВходВход

Пиринг чем не новый вариант сетевой библиотеки?
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
 
Найти сообщения без ответов
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> Сделано для FB
Предыдущая тема :: Следующая тема  
Автор Сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Ср Май 30, 2007 17:29    Заголовок сообщения: Ответить с цитатой

Alan писал(а):
Cd_spb в приведенных тобой примерах - да, это одна книга и две книги. Вполне устраивает. имхо, конечно, но ведь именно про имхо и спрашивали?

Мое ИМХО - это должно быть две и две книги. Smile
Что бы в первом случае можно было сравнить и сделать третью - с исправлениями из обоих.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Mike Sinkovsky
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 27.10.2005
Сообщения: 296
Откуда: Пермь

СообщениеДобавлено: Ср Май 30, 2007 17:40    Заголовок сообщения: Ответить с цитатой

Cd_spb писал(а):
две и две книги. Что бы в первом случае можно было сравнить и сделать третью - с исправлениями из обоих.

Тогда их будет три. Именно что в распределенной пиринговой библиотеке трудно что-то удалить, в отличие от локальной личной.
Да и не нужно это наверно, это скорее достоинство чем недостаток.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Чт Май 31, 2007 11:46    Заголовок сообщения: Ответить с цитатой

Mike Sinkovsky
Пусть три. Но так как доступна версия - будет проще выбрать более вычитанную.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Sergey Chernov
Новенький участник форума

Новенький участник форума

Зарегистрирован: 14.05.2007
Сообщения: 32

СообщениеДобавлено: Чт Май 31, 2007 15:34    Заголовок сообщения: Ответить с цитатой

Kv писал(а):

хочу поинтересоваться насчет "специального функционала". Это по обмену книгами - я правильно понял? Насколько он привязан к формату фб2?

только сразу ногами не бейте Smile


FB2 предполагался как основной стандарт хранения и обмена, другие - если кто напишет плагин.

Другой специальный функционал: оценка текста, поиск идентичных текстов, критерий вероятности авторства. Экспорт-импорт непосредственно с/на КПК, поддержка атрибута "прочитал" для книжек, читанных на КПК.

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

Добавлено спустя 5 минут 22 секунды:

Про книги и авторов: парадигма такова - храним все версии. Показываем - последние *по умолчанию". Используем document-info.id.

Наприемр, сливаем из двух документов третий, можно использовать либо id одного из них и следующий номер версии (кста, версию то я забыл, но вставлю), либо новый докумнет.

Добавлено спустя 5 минут 29 секунд:

Cd_spb писал(а):
[
Sergey Chernov
я не вижу избыточности в Вашем описании.
Только не понятно назначение вот этих полей:
Код:
class Weblink(DataObject):
url = Col(key='uniqie')

class Email(DataObject):
email = Col(key='uniqie')

Код:
class Shelf(DataObject):
name = Col()
guid = Col(key=1)
path = Col()
notes = ForeignKey('Notes')

Код:
class Dupe(DataObject):
book1 = ForeignKey('Book')
book2 = ForeignKey('Book')


- мейлы и линки: чтобы не копировать повторяющиеся. Не уверен, что это шибко эффективно, надо посмотреть.

Дупы: у меня на 15600 примерно книг получается 4773 дупы только по document-info.id. Часть из них вероятно разрешится через версию. Таблица нужна по задумке чтобы можно было их посмотреть и отредактировать информацию - удалить ненужные, смержить и т.д.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Kv
Новенький участник форума

Новенький участник форума

Зарегистрирован: 30.05.2007
Сообщения: 23

СообщениеДобавлено: Чт Май 31, 2007 16:28    Заголовок сообщения: Ответить с цитатой

Sergey Chernov писал(а):
Kv писал(а):

хочу поинтересоваться насчет "специального функционала". Это по обмену книгами - я правильно понял? Насколько он привязан к формату фб2?

только сразу ногами не бейте Smile


FB2 предполагался как основной стандарт хранения
по хранению - понятно.
Sergey Chernov писал(а):
и обмена
не понятно. Ну в смысле, разве в fb2 какие-то средства особые возможности касаемые обмена уже заложены? Или что имеется в виду? Ну и как видится обмен - чем, с какой частотой, ну и т.д.
Sergey Chernov писал(а):
, другие - если кто напишет плагин.

плагин - имеется в виду, преобразование чего-то в фб2? Ну а когда преобразовался - тогда поехало по стандартной схеме. Так?
Sergey Chernov писал(а):
Другой специальный функционал: оценка текста, поиск идентичных текстов, критерий вероятности авторства. Экспорт-импорт непосредственно с/на КПК, поддержка атрибута "прочитал" для книжек, читанных на КПК.

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

насколько понял, то все это - набор фишек, которые в том или ином виде присутствуют по-чуть-чуть в разных прогах/либах еще где-то около-книжном. Это все наворотить на одну базу - в принципе не проблема, было бы время. Ну и куда. А здесь это - ведение локального архива в фб2 (я правильно выразился?) и обмен. Дык именно по обмену мне и не понятно что и как. Потому и спрашиваю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Sergey Chernov
Новенький участник форума

Новенький участник форума

Зарегистрирован: 14.05.2007
Сообщения: 32

СообщениеДобавлено: Чт Май 31, 2007 16:56    Заголовок сообщения: Ответить с цитатой

Локальная база - часть сетевой. Что есть в ней, то есть и в сетевой. А локальную делать все равно придется (да и делаю я ее так или иначе).

Обмен мы в данный момент и изобретаем. Предполагается использовать набор данных, предоставяемый стандартом, он вроде как достаточен. Грубо говоря, в качестве десриптора документа передается ветка FictionBook/description. Сжатая bz2, например.

Над алгоритмами я сейчас и думаю головой, пока руки клепают базу Smile

Договоримся о терминах:

* Точка: компьютер в сети, на котором активен наш пиринговый библиотекарь.

* Линк: другая точка, с которой в данный момент есть связь.

Пока видится примерно так. Уровень 1 - минимальный. Точка периодически раскидывает своим линкам (у нас нет деления на ап- и даунлинки, система пиринговая) случайные выборки (либо полные каталоги) своих doc.id/version, и сама принимает такие выборки. Если точка видит, что в ее фондах что-либо из этого отсутствует, она запрашивает некоторое количество отсутствующего фонда.

Если локальное хранилище переполняется, некая опять же случайная его часть заменяется но новые поступления. При этом в первую очередь удаляются "старые" версии документов. При этом вероятность замены (удаления) документа не зависит от его популярности - чтобы фонд не вырождался.

Уровень 2. Аналогично 1, но также распространяется некий общий каталог. Каждая точка добавляет в него свои докумнеты, если их там нет, каталог циркулирует по системе, постоянно обновляясь. В каталоге для каждого документа указывается параметр индекс - если на точке документ есть, он инкрементируется. Иначе декрементируется. Докумнеты с низким индексом запрашиваются у линков и сохранются в локальном фонде. Если фонд переполняется, из него удаляются случайно документы с максимальным индексом хранения.

Уровень 3. Аналогично 2, но с выделенным сервером библиографии, который хранит общий каталог. Если сервер доступен, то обновляется каклог на нем. Если нет, то используется уровень 2.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Mike Sinkovsky
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 27.10.2005
Сообщения: 296
Откуда: Пермь

СообщениеДобавлено: Чт Май 31, 2007 17:22    Заголовок сообщения: Ответить с цитатой

А как работает DNS например нельзя сделать, чтоб не изобретать велосипед без необходимости? То же самое ведь по сути, распределенная база...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Alan
Автор ридера Alreader и клона Haali


Зарегистрирован: 25.01.2005
Сообщения: 421

СообщениеДобавлено: Чт Май 31, 2007 17:22    Заголовок сообщения: Ответить с цитатой

Sergey Chernov
Цитата:
сжатая bz2, например.


а лучше всего еще и свой отдельный формат придумать... ни с чем не совместим, но зато в теории на 2 байта меньше итоговый размер...
Делать - так делать в зипе, чтобы клиента под любую систему можно было написать, взять ту же КПК... много раз уже предлагалось расширение fbz - вот его как fb2.zip и брать за основу без всяких дебильных извращений...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Чт Май 31, 2007 17:33    Заголовок сообщения: Ответить с цитатой

Sergey Chernov
1.Предполагается реализовать все 3 уровня или один из них?
2.Какой механизм фиксации документа будет?
Думаю нужна фиксация не только конкретного документа, но и по автору/серии + исключения.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Kv
Новенький участник форума

Новенький участник форума

Зарегистрирован: 30.05.2007
Сообщения: 23

СообщениеДобавлено: Чт Май 31, 2007 17:46    Заголовок сообщения: Ответить с цитатой

Sergey Chernov писал(а):
Локальная база - часть сетевой. Что есть в ней, то есть и в сетевой. А локальную делать все равно придется (да и делаю я ее так или иначе).

часть - значит не совпадает. А чем отличается.
Sergey Chernov писал(а):
Обмен мы в данный момент и изобретаем. Предполагается использовать набор данных, предоставяемый стандартом, он вроде как достаточен. Грубо говоря, в качестве десриптора документа передается ветка FictionBook/description. Сжатая bz2, например.

какой там получается объем передаваемых данных - для одной книги. А сколько книг всего предполагается в локальной базе и в сети в целом. Какая интенсивность обмена.
Sergey Chernov писал(а):
Над алгоритмами я сейчас и думаю головой, пока руки клепают базу Smile

Договоримся о терминах:

* Точка: компьютер в сети, на котором активен наш пиринговый библиотекарь.

* Линк: другая точка, с которой в данный момент есть связь.

Пока видится примерно так. Уровень 1 - минимальный. Точка периодически раскидывает своим линкам (у нас нет деления на ап- и даунлинки, система пиринговая) случайные выборки (либо полные каталоги) своих doc.id/version, и сама принимает такие выборки. Если точка видит, что в ее фондах что-либо из этого отсутствует, она запрашивает некоторое количество отсутствующего фонда.

Если локальное хранилище переполняется, некая опять же случайная его часть заменяется но новые поступления. При этом в первую очередь удаляются "старые" версии документов. При этом вероятность замены (удаления) документа не зависит от его популярности - чтобы фонд не вырождался.

а в чем смысл случайности? Ну и снова таки - сколько книг предполагается поддерживать в базе и сколько файлов и т.д.
Sergey Chernov писал(а):
Уровень 2. Аналогично 1, но также распространяется некий общий каталог. Каждая точка добавляет в него свои докумнеты, если их там нет, каталог циркулирует по системе, постоянно обновляясь. В каталоге для каждого документа указывается параметр индекс - если на точке документ есть, он инкрементируется. Иначе декрементируется. Докумнеты с низким индексом запрашиваются у линков и сохранются в локальном фонде. Если фонд переполняется, из него удаляются случайно документы с максимальным индексом хранения.

сколько в сети предполагается точек.
Sergey Chernov писал(а):

Уровень 3. Аналогично 2, но с выделенным сервером библиографии, который хранит общий каталог. Если сервер доступен, то обновляется каклог на нем. Если нет, то используется уровень 2.

если есть выделенный сервер, то какой же это пиринг?

Добавлено спустя 22 минуты 29 секунд:

Sergey Chernov

Кстати, Вы на вопрос не ответили
Sergey Chernov писал(а):

, другие - если кто напишет плагин.
Kv писал(а):

плагин - имеется в виду, преобразование чего-то в фб2? Ну а когда преобразовался - тогда поехало по стандартной схеме. Так?

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

А вот если речь идет только о ветке FictionBook/description, то ее, ИМХО, получить можно, если для этого использовать, например какую-то либу, где лежит инфа о книгах. А в каком там они формате - уже дело десятое. Что думаете?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Чт Май 31, 2007 18:23    Заголовок сообщения: Ответить с цитатой

Kv писал(а):

Кстати, Вы на вопрос не ответили
Sergey Chernov писал(а):

, другие - если кто напишет плагин.
Kv писал(а):

плагин - имеется в виду, преобразование чего-то в фб2? Ну а когда преобразовался - тогда поехало по стандартной схеме. Так?

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

А вот если речь идет только о ветке FictionBook/description, то ее, ИМХО, получить можно, если для этого использовать, например какую-то либу, где лежит инфа о книгах. А в каком там они формате - уже дело десятое. Что думаете?


Дежа преобразовывать бессмысленно.
Как я понимаю предполагаеться, что другие форматы тоже можно будет добавлять. Таким образом, что "оригинальный формат" можно было получить. Может быть это будет "обертка" из fb2 или еще что - обсуждалось выше.

Добавлено спустя 2 минуты 32 секунды:

Kv
Цитата:
использовать, например какую-то либу, где лежит инфа о книгах

Это как раз и будет - "вариант с сервером". Если есть fb2 файл на винчестере, зачем тащить откуда-то из инета информацию?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Kv
Новенький участник форума

Новенький участник форума

Зарегистрирован: 30.05.2007
Сообщения: 23

СообщениеДобавлено: Чт Май 31, 2007 19:25    Заголовок сообщения: Ответить с цитатой

Cd_spb писал(а):
Kv писал(а):
Кстати, Вы на вопрос не ответили
Sergey Chernov писал(а):
, другие - если кто напишет плагин.
Kv писал(а):
плагин - имеется в виду, преобразование чего-то в фб2? Ну а когда преобразовался - тогда поехало по стандартной схеме. Так?
а спрашиваю потому, что если это так, то тогда подключать другие форматы - нереально. Потому как написать такой плагин, например для джву, ИМХО, невозможно.

А вот если речь идет только о ветке FictionBook/description, то ее, ИМХО, получить можно, если для этого использовать, например какую-то либу, где лежит инфа о книгах. А в каком там они формате - уже дело десятое. Что думаете?

Дежа преобразовывать бессмысленно.

дык и я о том же.
Cd_spb писал(а):
Как я понимаю предполагаеться, что другие форматы тоже можно будет добавлять. Таким образом, что "оригинальный формат" можно было получить. Может быть это будет "обертка" из fb2 или еще что - обсуждалось выше.

как хранить - это одно. Я спрашиваю об обмене. Т.е. формат обменных сообщений - это просто кусок Фб2 файла там где description? Или как?
Cd_spb писал(а):
Kv
Цитата:
использовать, например какую-то либу, где лежит инфа о книгах

Это как раз и будет - "вариант с сервером". Если есть fb2 файл на винчестере, зачем тащить откуда-то из инета информацию?

а вот это - не факт. Смотрим сюда.
Sergey Chernov писал(а):
А локальную делать все равно придется (да и делаю я ее так или иначе).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Пт Июн 01, 2007 11:15    Заголовок сообщения: Ответить с цитатой

Kv
Под локальной версией понимается библиотека у каждого пользователя на компьютере.
Цитата:
Т.е. формат обменных сообщений - это просто кусок Фб2 файла там где description? Или как

Это сейчас обсуждается. Но в первом приближении - так.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Sergey Chernov
Новенький участник форума

Новенький участник форума

Зарегистрирован: 14.05.2007
Сообщения: 32

СообщениеДобавлено: Пт Июн 01, 2007 20:30    Заголовок сообщения: Ответить с цитатой

Ух сколько Smile Буду отвечать потихонечку.

Формат обмена информацией.


bz2 существует на всех платформах, он бесплатный, есть в исходниках сколько угодно, и жмет лучше, что в нашем случае весьма существенно. Я полагал это известно любому программисту. zip кажется не бесплатный. И на мой вкус вполне дебильный и извращенный. Хотя не думаю что такая лексика хороша для обсуждения Wink прости уж Алан. Таким образом, я надеюсь что использование этого сжатия позволит использовать для обмена уровня 2-3 существующий xml, хотя он крайне неэффективен по плотности упаковки.

Полагаю, информационный пакет на книгу будет до килобайта. В случае передачи каталога индекса копирования существенно ниже, байт 12-18 на книгу (id + собственно индекс в двоичном формате).

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

Тем не менее, для обмена собственно книгами с самого начала и предполагался fb2.zip. Речь шла о передаче каталогов и т.д.

Уровни

Сперва думаю надо реализовать 1, потом 2, потом 3. Вариант с сервером - если сервер содержит хранит _только_ библиографию, и не хранит собственно книг, то его накрыть непросто. Более того, в отличие от прикрытого сервера мп3 он даже не хранит никакую информацию об участниках сети. Но его можно убрать из системы в любой момент - она автоматом спустится на уровень 2 (если сервера-или серверов нет), и будет прекрасно пахать и без них.

Обмен

Смысл случайности: уменьшение вероятности пропажи некоторой книги из сетевой библиотеки. Рискну предположить, что если весь фонд текстов книг, который сейчас обретается, запихать в fb2.zip, то получится гигабайт 10-15. То есть не каждый пока согласится у себя держать копию всего фонда. Поскольку мы не в силах построить мгновенный срез всех кусочков, и понять, что именно требуется копировать, а что нет, мы делаем случайные выборки и надеемся на закон больших чисел Smile Это слабая надежда, для этого есть уровень 2, который существенно улучшает качество оценки, на основе которой книга удаляется либо наоборот копируется.

Другие форматы

Парадигма такая: ежели кто то напишет внятный плагин для импорта-экспорта XXX <-> FB2, мы его включаем в общий пакет. Но только для импорта-экспорта, внутри системы формат один - fb2. Иначе будет худо. НО. Можно потом сделать расширение fb2: в ветке body ссылка на бинарник, который в хвосте, а в хвосте - картиночная книжка, типа djvu. Или еще как расширить формат для такой цели. Хотя мне он категорически не нравится - текст это текст. Я бы скорее предложил добавить туда формулы a la tex и т.д.

Локальная и сетевая библиотека

Имхо в принципе идентичны. Различия минимальны, предложения весьма спорны, приводятся только для примера.

Варианты расширений локальной библиотеки:

* пометка личных книг, и они не будут пересылаться в общий фонд (например, над которыми идет работа и они еще не закончены)

* пометка книг, которые не будут автоматически удаляться при ротации фонда

* Ведение списка книг, прочитанных участником )для его удобства), информация не будет пересылаться. Хотя можно пересылать анонимную статистику

Добавлено спустя 17 минут 35 секунд:

Забыл сказать - DNS не катит, там все крутится на выделенных серверах, да еще поддержка этого протокола конфигурируется админами повсеместно, а мы такого счастья пока не заслуживаем Smile Нам надо прорываться сквозь файрволлы, и не надеяться на такие вкусные вещи, как мультикасты в сколь-нибудь серьезных размерностях сетей. Но это нас не пугает, мы профессионалы в конце концов Smile

Дополнительные фичи, о которых можно подумать.

Оценки и рецензии.

Можно расширить информационный пакет книги возможностью циркулярной рассылки рецензий и оценок. Сделать обмен такой информацией опциональным. Есть вероятность, что такая информация не может представлять собой слабость, за счет которой каперы от юриспруденции смогут организовать преследование, тогда для оценок, библиографии и рецензий можно будет ставить выделенные сервера. Но не факт, эта шайка горазда на пакости.

Поиск книги.

Новые термины:

Пакет запроса. Совокупнсть SQL-like запроса на выборку книг, и маршуртного пакета.

Маршрутный пакет. Совокупность информации, позволяющая ответу на запрос вернуться к источнику (если надо), а запросу не путешествовать бесконечно и по кругу Smile Воспользуемся опытом IP.

Уровень 1. Точка рассылает нечто вроде SQL-запроса исходя их общей для системы схемы данных, по своим линкам, и принимает такие запросы сама.

Если при обработке запроса получена непустая выборка по локальной базе, то инфопакет выборки немедленно отдается обратно на точку-инициатор запроса. В противном случае запрос рассылается дальше с модификацией маршрутного пакета (если дальнейший роутинг возожен). Если на транзитный запрос получет положительный ответ, возможно 2 сценария:

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

- недоступна: выборка добавляется стандартным образом в локальную базу, и "блокируется" на некоторый период времени (скажем, 4 дня). Следует принять специальные меры, чтобы такие книги по истечении блокировки удалялись в первую очередь (если вообще необходимо удаление), чтобы избежать вырождения фонда из за бестсендеров Wink

Наверное, пока достаточно для обусждения. Ваши комментарии?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Alan
Автор ридера Alreader и клона Haali


Зарегистрирован: 25.01.2005
Сообщения: 421

СообщениеДобавлено: Пт Июн 01, 2007 22:39    Заголовок сообщения: Ответить с цитатой

Цитата:
bz2 существует на всех платформах, он бесплатный, есть в исходниках сколько угодно, и жмет лучше, что в нашем случае весьма существенно. Я полагал это известно любому программисту.


причем тут исходники? Ты его требования к памяти знаешь? И к быстродействию? как раз форматик для кпк и смартов... Уж этото должно быть понятно любому программисту... А то распаковщик рара тоже можно сделать для любой платформы... вот только для словарика выделить 4 метра далеко не везде возможно...

Цитата:
zip кажется не бесплатный


да ну... что ты там писал про известно любому?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> Сделано для FB Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
Страница 3 из 8

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group