-Поиск по дневнику

Поиск сообщений в akie

 -Подписка по e-mail

 

 -Интересы

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 23.06.2003
Записей: 75
Комментариев: 49
Написано: 87

Infinity






Стало страшно

Среда, 20 Февраля 2008 г. 13:25 + в цитатник
Стало по-настоящем страшно :-)


P. S. Я должен много чего написать в блог, причём как можно быстрее. Надо делать это сегодня!

Tags: , ,

Сообщение добавлено через MovableType API


Слоны уже тут. Быстрые, надёжные, мощные. PostgreSQL 8.3!

Вторник, 05 Февраля 2008 г. 00:32 + в цитатник
Более 200 разработчиков, более 300 патчей, 15 месяцев напряжённой работы разработчиков и тестировщиков... И вот — новейшая версия лучшей СУБД в мире готова к использованию в промышленных условиях!

4 февраля 2008-го года Глобальная группа разработчиков PostgreSQL (PostgreSQL Global Development Group) анонсировала долгожданный релиз версии 8.3 самой развитой открытой СУБД, факт выхода которой ещё более укрепляет позиции PostgreSQL как и самой производительной СУБД из систем с открытым исходным кодом. Среди новшеств, касающихся производительности, стоит выделить:

* HOT (Heap Only Tuples)
* механизм автонастройки параметров процесса bgwriter
* асинхронная фиксация транзакций (Asynchronous Commit)
* «размазанные контрольные точки» (Spread Checkpoints)
* «синронизованные просмотры» (Synchronous Scans)
* дополнительное уменьшение дискового пространства («Var-Varlena»)
* защита L2-кэша
* уменьшение скорости «скорости накрутки» счётчика транзакций (Lazy XID)

PostgreSQL 8.3 также содержит много интересных и привлекательных новинок, которые по достониству оценят разработчики и администраторы баз данных. Вот некоторые из этих новшеств:

* CSV-логирование
* SQL/XML (!)
* поддержка MS Visual C++
* ENUM-типы
* встроенный Tsearch (!)
* SSPI & GSSAPI
* массивы составных типов
* pg_standby

Этот список очень короткий, данный релиз содержит ещё много, много нового. Посмотрите на список нововведений и матрицу возможностей, полистайте описание релиза, почитайте статью на русском языке. И обязательно скачивайте и пробуйте!

Текст официального пресс-релиза на русском языке: http://www.postgresql.org/about/press/pr…
Статья о новинках 8.3 на русском языке: http://postgresmen.ru/articles/view/78
Коммерческая поддержка 24/7, консультации на русском языке: http://postgresmen.ru

P. S. Надеюсь, ещё не всем все уги прожужжал ;-)

Tags: ,

Сообщение добавлено через MovableType API


8.3!

Воскресенье, 03 Февраля 2008 г. 22:55 + в цитатник
PostgreSQL 8.3 готов к выходу! Официальная дата релиза — 4 февраля 2008.

Бинарники уже можно скачать с официального сайта:
http://www.postgresql.org/ftp/binary/v8.3.0/

Обзор новшеств: http://nikolay.samokhvalov.com/2007/10/08/postgresql83/

Как только «стукнут куранты», Nick Gazaloff представит официальный пресс-релиз на русском.





Написано веб-клиентом Swiftpen.

Tags:

Сообщение добавлено через MovableType API


Кому рассказать/расписать про PostgreSQL 8.3?

Вторник, 22 Января 2008 г. 02:04 + в цитатник
Господа организаторы конференций, семинаров, шоу, дискуссий, подкастов, вечеринок, симпозиумов, а также редакторы, журналисты, CTO и просто интересующиеся. Приглашайте на ваши мероприятия, в ваши издания, с удовольствием расскажу про новинки 8.3 :-)

Да, она обязательно выйдет. Скоро. Мы в это верим :-)

Tags: , , ,

Сообщение добавлено через MovableType API


Книга по материалам SQL.ru

Вторник, 22 Января 2008 г. 01:58 + в цитатник
Тут, оказывается, интересную книгу выпустили, «Microsoft SQL Server. Полезные алгоритмы от SQL.RU». Затея правильная, молодцы, в принципе. Но бегло осмотрев содержание, я напрягся:

ЧАСТЬ I. ПОЛЕЗНЫЕ АЛГОРИТМЫ

Древовидные структуры в базах данных, соответствующих стандартам SQL

Автор: Евгений Лепёхин

... и так далее


Алгоритмы... В общем, напрягся аж так, что полез смотреть определение слова в Википедию %) Думал, всё, хана.

Tags: , ,

Сообщение добавлено через MovableType API


MySQL under Sun

Среда, 16 Января 2008 г. 19:18 + в цитатник
Sun Microsystems купила MySQL AB. За миллиард.

Tags: ,

Сообщение добавлено через MovableType API


Ралли Дакар отменили

Пятница, 04 Января 2008 г. 23:44 + в цитатник

Юбилейное (30 лет) ралли отменили целиком. Терроризм добрался до спорта. Не в первый раз.

Tags: , ,

Сообщение добавлено через MovableType API


Извините, ваш аккаунт не обслуживается компанией СУП, поэтому некоторые сервисы могут быть недоступны.

Пятница, 04 Января 2008 г. 23:35 + в цитатник
Извините, ваш аккаунт не обслуживается компанией СУП, поэтому некоторые сервисы могут быть недоступны.

Интересно, как такое сейчас возможно, ведь ЖЖ теперь полностью в СУПе?


Tags: ,

PostgreSQL 8.3 RC1

Пятница, 04 Января 2008 г. 18:19 + в цитатник
Первый релиз-кандидат версии 8.3 планируется на ближайший понедельник.

Tags: ,

Сообщение добавлено через MovableType API


moskva.fm

Четверг, 27 Декабря 2007 г. 16:21 + в цитатник
moskva.fm существенно улучшились: обновили плеер (стало очень удобно), добавили возможность комментирования.

Приятный проект, разработчики молодцы.

Tags: , ,

Сообщение добавлено через MovableType API


Вторник, 25 Декабря 2007 г. 00:39 + в цитатник
  4090, 55

Сообщение добавлено через MovableType API


Где [виртуального] меня можно найти

Понедельник, 03 Декабря 2007 г. 21:21 + в цитатник

PostgreSQL 8.3

Понедельник, 08 Октября 2007 г. 21:01 + в цитатник
Первая бета версии 8.3 Постгреса уже лежит на официальном ftp (правда, пока только исходники). Так что самое время рассказать, чем же порадует нас в этом году самая развитая из открытых СУБД в мире.

Я разобью весь список на четыре части. В первой, для многих самой важной, части я перечислю изменения, которые так или иначе касаются производительности. Во второй — приведу список новых возможностей для программистов баз данных, призванных ещё более расширить и без того неслабый набор «фич» PostgreSQL. Третья часть посвящена нововведениям, предназначенным для администраторов баз данных. И, наконец, в конце я упомяну некоторые Open Source проекты, которые являются проектами-спутниками Постгреса (другими словами, имеют свой собственный цикл разработки).

Производительность
Начнём с того, что сегодня (на данный момент стабильная ветка — 8.2, актуальная версия — 8.2.5) PostgreSQL успешно тягается в плане производительности не только с OpenSource-альтернативами, но и с ведущими коммерческими СУБД. Такими как Oracle. Это уже не пустой звук — взгляните на результаты тестирования, проведённого в компании Sun. Медленных слонов больше нет! Богатейший набор типов индексов, широчайшие возможности тюнинга системы, работа с очень большими объёмами и нагрузками, хороший выбор систем репликации и масштабирования — всё это «по зубам» современным слонам. Даже скорость разработки выгодно отличает Постгрес по сравнению с другими СУБД: каждый год мы неизменно получаем существенный шаг вперёд.

Что же нового в PostgreSQL версии 8.3 в плане производительности? Многие изменения нетривиальны. По словам координатора разработки PostgreSQL Брюса Момджана (Bruce Momjian), нанёсшего не так давно по приглашению компании «Постгресмен» визит в Москву, та работа по оптимизации производительности системы, которой заняты разработчики Постгреса в последние годы, является чрезвычайно сложной. Каждый шаг требует всё более и более существенных трудозатрат, занимает всё больше времени и сил разработчиков.

Одним из таких действительно нетривиальных изменений можно смело считать «фишку» под названием HOT (Heap Only Tuples). Это, пожалуй, одно из самых существенных изменений в плане производительности. Чтобы понять, в чём заключается данное изменение, необходимо вспомнить, что PostgreSQL реализует так называемую мультиверсионную модель разграничения доступа (MVCC, Multi-Version Concurrency Control).



Суть HOT в следующем. Ранее, до реализации данного подхода, при обновлении строки в таблице каждая новая её версия приводила к появлению новых версий всех индексов, независимо от того, затрагивали ли данные изменения проиндексированные столбцы или нет (см. рис. «Обновление без HOT»). Теперь же, если новая версия строки попадает в ту же страницу памяти, что и предыдущая, и столбцы, по которым был создан индекс, не изменялись, индекс остаётся прежним. Но это ещё не всё. Если есть такая возможность, происходит «моментальное» повторное использование места в странице Heap. Что, естественно, сокращает объём работы, производимой при операции VACUUM. На рис. «HOT-обновление» схематически отображено, каким образом происходит теперь обновление строки.

Следующая новинка придётся по вкусу, прежде всего, большому количеству веб-разработчиков. Начиная с версии 8.3 любую транзакцию в PostgreSQL можно делать «асинхронной». Это означает, что при выполнении операции фиксации транзакции (COMMIT) сервер PostgreSQL не будет ждать завершения дорогостоящей операции синхронизации журнала транзакций (WAL fsync). Другими словами, транзакция будет считаться успешно завершённой сражу же, как только все логические условия будут выполнены (проверены все необходимые ограничения целостности). Физически запись в журнал транзакций произойдёт через очень малый промежуток времени (как правило, для нормально функционирующих систем это максимум 200-1000 мс).

За состояние транзакций (синхронная/асинхронная) отвечает переменная окружения synchronous_commit. Перейти в асинхронный режим просто:
SET synchronous_commit TO OFF;
Стоит отметить, что асинхронные транзакции не являются альтернативой режиму работы сервера с отключенной операций fsync. Дело в том, что режим fsync=off может привести к получению несогласованного состояния базы (к примеру, в случае непредвиденного отказа оборудования или потери питания) и рекомендуется только в тех случаях, когда используется оборудование высокой надёжности (например, контроллер дисков с батарейкой). Использование же новой возможности никак не может привести к рассогласованию данных. Максимум, что возможно, это потеря небольшой порции данных (опять-таки, в случае жёсткого сбоя  сервера — ошибки ОС, оборудования, сбой питания). Типичным примером для асинхронных транзакций может служить задача сохранения большого количества информации в таблицу-журнал (например, лог действий пользователя), когда потеря нескольких строк не является критичной. При этом все важные транзакции могут по-прежнему объявлены синхронными.

Ещё одно улучшение в области производительности относится к ситуациям, когда при выполнении запросов PostgreSQL последовательно просматривает таблицы (операция SeqScan). Если до версии 8.3 в таких случаях нередко возникали ситуации, когда разные процесса Постгреса одновременно делали одну и ту же работу — просматривали одну и ту же таблицу — то теперь, благодаря реализации Synchronized Scans («синронизованные просмотры»), в один и тот же момент времени для одной таблицы может проводиться не более одной операции просмотра. Достигается это следующим образом. Если в рамках какой-либо сессии требуется проведение SeqScan-а для некоторой таблицы, для которой уже выполняется SeqScan (для другой сессии), то произойдёт «прыжок на ходу» к результатам уже выполняющегося SeqScan-а. По завершении данного процесса, если это необходимо, будет осуществлён «добор» результатов с помощью ещё одного неполного SeqScan-а (см. рис).



Работа над уменьшением стресс-эффекта, производимого выполнением системой процессов checkpoint («контрольная точка») продолжается: теперь checkpoint-ы выполняются не сразу, а постепенно: процесс как бы «размазан» во времени. Отсюда и название данного изменения — checkpoint smoothing. Стоит отметить, что при штатном выключении сервера и проведениия «явной» операции checkpoint (команда CHECKPOINT ) запись данных на диск по-прежнему будет производиться с максимально возможной скоростью.

В завершение разговора о производительности, приведём краткий перечень других изменений, призванных улучшить быстродействие систем, использующих PostgreSQL:
  • теперь autovacuum включён по умолчанию;
  • в некоторых ситуациях теперь возможнен запуск сразу нескольких процессов autovacuum (например, при продолжительном процессе чистки большой таблицы, небольшие таблицы теперь не вынуждены ждать завершения данного процесса);
  • заметное уменьшение дискового пространства, занимаемого базами данных: 1) за счёт заголовков varlena-типов (типы данных переменной длины: текст, массивы и т. п.), которые ранее занимали строго 4 байта, а теперь в некоторых ситуациях всего 1 байт; 2) за счёт экономии заголовков строк таблицы (ранее 27 байт, теперь — 24);
  • выполнение транзакций, не модифицирующих данные, не приводит к увеличению значения счётчика транзакций (xid), что существенно снижает вероятность ситуации «перекрытия» счётчика транзакций (xid wraparound); кроме того, данное изменение является значительным шагом вперёд к реализации встроенной Master-Slave репликации на основе трансфера журнала транзакций — теперь не возникнет рассинхронизации счётчика xid между Master- и Slave-узлами;
  • реализован механизм автонастройки параметров процесса bgwriter ( background writer — специальный процесс, занимающийся записью «грязных» разделяемых буферов на диск);
  • оптимизирован механизм получения результата для запросов с использованием « ...ORDER BY ... LIMIT...» (т. н., Top-N sorting): в некоторых случаях система удерживает необходимые страницы данных в оперативной памяти, что обеспечивает очень высокую скорость выдачи результата;
  • теперь можно задавать (пока только в виде двух констант) оценочную стоимость выполнения фунции и оценку количества рядов, которые она возвращает, что позволяет планнеру PostgreSQL выбирать лучший план запроса (пример: ALTER FUNCTION log_data(text) COST 100000 ROWS 1).
Разработчикам баз данных
Самое заметное и существенное изменение, которое следует здесь отметить, — это миграция модуля для полнотекстового поиска (contrib/tsearch2) в ядро системы. Разрабатываемый российскими разработчиками Олегом Бартуновыми и Фёдором Сигаевым, tsearch2 долгое время являлся самым популярным contrib-модулем Постгреса. Патч для миграции полнотекстового поиска в ядро, который был принят этим летом в результате кропотливой и продолжительной работы (принятая версия патча — 58!) сразу нескольких ключевых разработчиков команды PostgreSQL, является самым большим за всю историю проекта.

Кроме того, что все возможности модуля tsearch2 теперь будут доступны по умолчанию и процессы миграции на новую версию PostgreSQL заметно упростятся, конфигурировать словари и правила обработки текстов теперь станет проще: все основные операции по конфигурированию осуществляются с помощью SQL-команд. Вот так, например, можно создать простой словарь-тезаурус:
СREATE TEXT SEARCH DICTIONARY thesaurus_astro (
    TEMPLATE = thesaurus,
    DictFile = thesaurus_astro,
    Dictionary = english_stem
);
ALTER TEXT SEARCH CONFIGURATION russian
    ADD MAPPING FOR lword, lhword, lpart_hword
        WITH thesaurus_astro, english_stem;

Упростились и процессы создания индекса. Пример создания GIN-индекса над обычным текстовым столбцом (без создания дополнительных столбцов и триггеров):
CREATE INDEX pgweb_idx ON pgweb
    USING gin(to_tsvector('russian', title || body));

А вот пример запроса с ранжированием по релевантности, использующий к тому же специальную функцию plainto_tsquery для получения tsquery (позволяет забыть об экранировании символов и быстро и просто преобразовать обычный текст в tsquery):
SELECT
    ts_rank_cd(textsearch_index, q) AS rank, title
FROM
    pgweb, plainto_tsquery('supernova star') q
WHERE
    q @@ textsearch_index
ORDER BY
    rank DESC LIMIT 10;

Другое заметное изменение — поддержка XML, в работе над которой принимал участие автор данной статьи. Данный функционал реализован в соответствии со стандартом SQL:2003 (14-я часть стандарта, SQL/XML).

Прежде всего, появился специальный тип данных xml, встроенный в ядро. При использовании данного типа, сервер проверяет, правильно ли сформированы данные (проверка на well-formedness). Причём возможны варианты использования, при которых разрешена работа с частями документа (это позволяет обеспечить свойство «замкнутости» функций для работы с XML на тип данных xml).

В соответствии со стандартом SQL:2003 реализован набор функций для преобразования реляционных данных в XML (т. н., функции публикации SQL/XML). Вот простой пример запроса на формирование XML-данных:
SELECT XMLROOT (
   XMLELEMENT (
      NAME 'some',
      XMLATTRIBUTES (
         'val' AS 'name',
         1 + 1 AS 'num'
      ),
      XMLELEMENT (
         NAME 'more',
         'foo'
      )
   ),
   VERSION '1.0',
   STANDALONE YES
);

Кроме того, реализована поддержка DTD-валидация (функция xmlvalidatedtd()), поддержка оценки XPath-выражений (функция xpath(), возвращающая массив из данных типа xml ), и альтернативные функции для упрощённой публикации реляционных данных в виде XML (функции table_to_xml(), query_to_xml() и другие).

Для ускорения выполнения запроса к XML-данным возможно использование функциональных btree-индексов и GIN-индексов, а также использования полнотекстового поиска для XML-данных. Приведём пример создания btree-индекса по результатам оценки XPath-выражения:
CREATE INDEX i_table1_xdata ON table1 USING btree(
   xpath('//person/@name', xdata)
);

Что касается типов данных, PostgreSQL 8.3 представляет целый ряд нововведений — помимо встроенных в ядро системы типов tsquery/tsvector и xml , появились следующие:
  • enum (перечислимые типы данных, определяемые пользователем) для удобства некоторых пользователей, в том числе мигрирующих с TheirSQL;
  • типы данных GUID/UUID (в виде contrib-модуля);
  • массивы составных типов (например, определённых пользователем типов).
И наконец, краткий список остальных изменений:
  • автоматическая инвалидация кэша плана запросов для PL/pgSQL-функций;
  • конструкции "CREATE FUNCTION ... RETURNS TABLE" и " RETURN TABLE..." для создания функций, результатом которых является таблица;
  • поддержка операции обновления для курсоров;
  • стандартная (ISO/ANSI SQL) конструкция " ORDER BY ... NULLS FIRST/LAST" для упрощения установки порядка следования NULL-значений (также помогает при миграции с других СУБД);
  • индексация NULL-значений в GiST-индексах.
Администраторам баз данных
Данный раздел является куцым, ибо многое из того, что призвано улучшить жизнь DBA, описано выше :-) Тем не менее, опишем кратко то, что осталось.

В планах запросов (команда EXPLAIN ANALYZE) теперь видно, какой именно алгоритм сортировки был выбран и сколько памяти было израсходовано:
                       QUERY PLAN
-------------------------------------------------------
 Sort (cost=34.38..34.42 rows=13 width=176) (actual time=0.946..0.948 rows=6 loops=1)
   Sort Key: obj2tag.o2t_tag_name
   Sort Method: quicksort Memory: 18kB
   -> Hash Join (cost=19.19..34.14 rows=13 width=176) (actual time=0.812..0.835 rows=6 loops=1)
[...]
Специальный contrib-модуль pg_standby, написанный Саймоном Ригсом (Simon Riggs) упростит работу администраторам, настраивающим сервер "тёплого бэкапа" (Warm Standby) на основе трансфера журнала логов (WAL transfer). Модуль написан на чистом C,  поэтому является легко расширяемым и портируемым на новые платформы (работоспособность проверена уже, по крайней мере, на Linux и Win32).

При определении функции теперь можно переопределять переменные окружения, которые будут действовать только в рамках выполнения данной функции (привязка значений переменных функциям). Например, вот так можно указать, что выполнение функции log_data() переключает транзакцию в режим асинхронности:
ALTER FUNCTION log_data(text)
    SET synchronous_commit TO OFF;

Ну и, по традиции, краткий список других новинок данного раздела:
  • поддержка интерфейса GSSAPI;
  • улучшенная сборка на платформе Win32 (теперь не требуется MinGW, сборка ведётся в MS VC++, что помимо прочего приводит к улучшению производительности в Windows);
  • создание таблиц по подобию с учётом индексов (пример: CREATE TABLE dict2 (LIKE dictionary INCLUDING INDEXES)).
Дополнительные проекты
Компания EnterpriseDB (сотрудники которой являются активным разработчиками PostgreSQL, многие изменения версии 8.3 в области производительности являются именно их заслугой) выпустила отладчик pldebugger, который представляет собой contrib-модуль, позволяющий отлаживать PL/pgSQL-функции в стандартном инструменте для администрирования pgAdminIII и осуществлять профайлинг.


Проект в данный момент существует в виде независимого contrib-модуля (представлен на PgFoundry) и работает на  большом количестве платформ (включая Linux и Win32). Стоит отметить, что данный модуль работает и с версией 8.2 Постгреса.

Как мы рассказывали не так давно, компания Skype (которая использует в широко известном одноимённом проекте именно PostgreSQL) выпустила в Open Source сразу несколько продуктов, которые могут быть полезны большому кругу разработчиков. Среди них прежде всего стоит отметить псевдо-язык PL/Proxy, позволяющий организовывать горизонтальное масштабирование практически без ограничений (при условии, если вся бизнес-логика приложения реализована в виде хранимых процедур), чрезвычайно лёгкий менеджер соединений PgBouncer. Загляните на страничку Skype Developers Zone, вы найдёте много интересного!

И наконец, кратко об остальных продуктах:
  • проект pgSNMP является реализацией SNMP-агента для PostgreSQL (мониторинг состояния сервера);
  • SEPostgres – расширение, основанное на модели обеспечения усиленной безопасности SELinux;
  • создан инструмент, создающий рекомендации администратору баз данных по созданию индексов и показывающий возможный план выполнения запроса при условии наличия таких индексов (Index Advisor);
  • в известном инструменте для web-администрирования phppgadmin появились (или вот-вот появятся) возможности настройки Slony-кластера, настройки полнотекстового поиска, параметров автовакуума.
Заключение
Версия 8.3 является очередным шагом на пути к полноценной системе управления баз данных для корпоративного использования. Нетривиальные улучшения в области производительности, появление возможностей, которые продиктованы нуждами пользователей, расширение множества проектов-спутников — всё это демонстрирует уверенное и быстрое развитие PostgreSQL.

Tags: , , , , ,

Сообщение добавлено через MovableType API


PostgreSQL VS Firebird

Четверг, 06 Сентября 2007 г. 09:52 + в цитатник
Неплохая табличка сравнения PostgreSQL и Firebird SQL: http://www.amsoftwaredesign.com/pg_vs_fb.

Да, ещё не все ячейки у Постгреса «зелёные»... :-) Но по некоторым «красным» работа уже ведётся.

Tags: ,

Сообщение добавлено через MovableType API


Web-разработка: очень нужны ещё люди

Воскресенье, 02 Сентября 2007 г. 00:38 + в цитатник
Наша команда (за плечами которой уже несколько успешных -- в том числе и очень успешных -- инновационных веб-проектов) всё ещё нуждается в пополнении. Нужны разработчики. Ключевые слова: Linux, PostgreSQL, memcached, PHP, Smarty, AJAX, XHTML.

Наиболее актуальные вакансии:
Хорошие условия, адекватный уровень оплаты (гуру могут смело просить больше указанных сумм), возможности роста, совмещение с учёбой, оформление по ТК и соц. пакет. Ядро команды составляют выпускники МФТИ и МГУ.

Резюме присылайте по адресу: ns@openwebtech.ru.

Tags: , ,

Сообщение добавлено через MovableType API


Социальная сеть на связях из реальной жизни

Четверг, 30 Августа 2007 г. 15:47 + в цитатник
В социальных сетях люди выстраивают связи исходя из некоторых признаков, которые их объединяют. Например, это могут быть общие интересы (коммьюнити LiveJournal и круги МоегоКруга), места учёбы и работы (для Одноклассники.ру основное -- школы, для ВКонтакте -- вузы, а у того же МоегоКруга -- всё перечисленное плюс компании, где работают люди, книги и т.п.).

Повторю, чтобы стало понятнее, куда я клоню (берём основное, что отличает проект на фоне остальных):
  МойКруг -- работа (компании, где вместе работали);
  Одноклассники -- школы, где вместе учились;
  ВКонтакте -- вузы, где вместе учились.

Все эти проекты эксплуатируют связи, приобретённые людьми в реальной жизни. В той жизни, которая моделируется четырёхмерным пространством. Другими словами, где важно, где ты есть и когда ты есть. Если люди сидят за одной партой или в одном кабинете, им ничего не остаётся, как познакомиться друг с другом.

Почему бы не собрать всё это в одну кучу, сделав проект, который будет объединять людей на основе информации о месте и времени? Тогда школа, вуз, работа -- всё это станет частным случаем общей идеи объединения -- сильной идеи, которую подсказывает обычная, реальная жизнь. Другими частными случаями будут дома, где мы живём (соседи), места, где родились (земляки), где проводим отпуск, где назначаем встречи, куда отводим детей на день (детские сады), где смотрим кино (кинотеатры) и где обедаем (кафе и рестораны). Уверен, список будет очень длинным :-)

Tags: , ,

Сообщение добавлено через MovableType API


MAKS-2007

Вторник, 28 Августа 2007 г. 09:18 + в цитатник

Полнотекстовый поиск теперь в ядре PostgreSQL

Вторник, 21 Августа 2007 г. 19:46 + в цитатник
Патч FTS 0.58 включён в CVS HEAD.

Значит, 8.3 beta уже не за горами.

Tags: ,

Сообщение добавлено через MovableType API


Группировка новостей

Понедельник, 20 Августа 2007 г. 10:59 + в цитатник

Bruce Momjian на Highload-2007

Воскресенье, 19 Августа 2007 г. 09:57 + в цитатник
Приглашаем Брюса в Москву, пробудет здесь с недельным визитом. На конференции Highload-2007 Брюс выступит с докладом и проведёт тренинг (данные предварительные):
«Улучшения производительности PostgreSQL версии 8.3»
Bruce Momjian, доклад

PostgreSQL — свободно распространяемая объектно-реляционная система управления базами данных, наиболее развитая из открытых СУБД в мире и являющаяся реальной альтернативой коммерческим базам данных. Каждая новая версия PostgreSQL является значительным шагом вперёд благодаря новым уникальным возможностям и оптимизации существующих. Особое внимание при развитии системы уделяется производительности.

В данном докладе будут описаны нетривиальные шаги по оптимизации производительности в версии PostgreSQL 8.3. Bruce Momjian опишет детали реализации данных изменений и расскажет, как и насколько пользователи PostgreSQL смогут выиграть благодаря данным улучшениям. Кроме того, будет представлен список других новшеств, ожидаемых в версии 8.3.

«Настройка производительности PostgreSQL»
Bruce Momjian, тренинг

Данный семинар рассчитан на пользователей PostgreSQL, желающих получить углубленные знания по настройке производительности PostgreSQL. Будут освещены все аспекты производительности:
  • настройки сервера,
  • кэширование,
  • управление ресурсами операционной системы,
  • работа оптимизатора,
  • проблемные запросы,
  • вопросы эффективности хранилища,
  • некоторые детали выбора железа.
Слушатели узнают, как правильно распоряжаться разделяемой памятью, научатся понимать данные, предоставляемые оптимизатором, и как правильно настраивать хранилище для оптимальной производительности.

Об авторе тренинга: Bruce Momjian является сооснователем и действующим членом PostgreSQL Global Development Group, среди его основных обязанностей — координация процесса разработки, обработка и принятие патчей, поддержка списка TODO, проведение тренингов. Благодаря общению с ключевым разработчиком PostgreSQL участники семинара смогут укрепить и существенно расширить свои знания и навыки в области оптимизации производительности системы.
А Фёдор Сигаев расскажет о вопросах производительности систем создания обобщённых индексов GiST и GIN:
«Производительность GiST и GIN индексов PostgreSQL»
Фёдор Сигаев, доклад

При построении современных информационных систем приходится решать разнообразные технологические задачи, связанные с хранением, доступом и поиском информации. Учитывая современные требования к производительности, надежности и шкалированию таких систем, такие задачи требуют использования достаточно сложных алгоритмов и специализированных структур данных (abstract data type, ADT).

Эффективный доступ к данным является одной из важнейшей задачей базы данных. Мы рассматриваем большие базы данных, которые не помещаются в оперативную память. Для таких БД эффективность доступа к данным определяется, в основном, количеством обращений к диску, поэтому основной задачей СУБД является минимизация этих обращений. Обычно, это достигается использованием индекса, который представляет собой вспомогательную структуру данных, предназначенную для ускорения получения данных удовлетворяющих определенным поисковым критериям. Индекс позволяет уменьшить количество дисковых операций необходимых для считывания данных с диска. Обычно, индекс представляет собой файл на диске, и, если этот файл становится очень большим, то может потребоваться дополнительный индекс для ускорения работы самого индекса. Методами доступа (access methods, AM), обычно, называют организацию (структуру) индексного файла и методы работы с ней. В традиционных реляционных СУБД для работы с одномерными данными, такими как строки, цифры, используются B+-tree и хэш, для которых разработаны очень эффективные алгоритмы работы. Однако, современные приложения, такие как ГИС (GIS), мультимедийные системы, CAD, цифровые библиотеки, которые по-сути используют многомерные данные, требуют других, более эффективных AM.

Для эффективной работы с такими многомерными данными PostgreSQL предлагает два типа индекса: GiST (Generalized Search Tree) и GIN (Generalized Inverted Index).

GiST был предложен Hellerstein et al. [HNP95] как обобщение нескольких классов индексов (такие как B-Tree, R-Tree, Similarity Tree, RD-Tree) и позволяет создавать индексы на базе произвольной метрики типа данных. Для использования GiST разработчик должен создать метрику и функции-адаптеры, используя API. Как классический индекс, в котором храниться одна и только одна пара ключ-ссылка, индексы GiST имеют хорошею производительность при вставке нового ключа, но производительность при поиске может сильно зависеть от метрики проиндексированного типа данных и собственно типа поискового запроса.

GIN представляет собой обратный индекс, в которов храняться ключи и список ссылок на значения, в которых ключи встречаются. Обратный индекс получил широкое распространение для полнотекстовго поиска. Но PostgreSQL предлагает некоторое обобщение обратного индекса, не ограничиваясь только текстом. Как и для использования индексов GiST, для использования индексов GIN разработчик должен создать несколько функций-адаптеров, в основном, выделяющие ключи из индексируемого или поискового значения. GIN показывает хорошую прозводительность при поиске данных мало зависят от типа поискового запроса. Производительность при вставке сильно зависит от количества ключей в индексируемом значении - для каждого ключа требуется отдельная вставка в индекс.

В докладе представлены сравнение производительности и потребного дискового пространства для GIN и GiST индексов на примере полнотекстового поиска с использованием модуля раширения tsearch2, а также практические советы по их использованию в высоконагруженных приложениях.




Tags: , , ,

Сообщение добавлено через MovableType API



Поиск сообщений в akie
Страницы: 4 [3] 2 1 Календарь