Рубрика «базы данных» - 44

image

С развитием веб-технологий в окне браузера появляется всё больше полезных сервисов, приложений, программ и даже игр. Пришло время и для терминала СУБД Caché.

Под катом вы найдете описание всех прелестей приложения и историю его разработки.

Читать полностью »

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

Реализация выборки, кэширования и отрисовки фотографий на карте

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

Итак, в данной статье будут затронуты следующие проблемы:

  1. Хранение и выборка фотографий из БД и помещение их в серверный кэш (SQL, C#, ASP.NET).
  2. Загрузка необходимых фотографий на стороне клиента и помещение их в клиентский кэш (JavaScript).
  3. Перерасчет фотографий, которые нужно скрыть или отобразить при каждом изменении окна просмотра (JavaScript).

Читать полностью »

Когда говорят про разработку игр, обычно речь идет о шейдерах, графике, AI и т.д. Крайне редко затрагивается серверная часть игровых проектов, а ещё реже — базы данных. Исправим это досадное недоразумение: сегодня я расскажу о нашем опыте работы с базами данных, который мы приобрели в ходе разработки Аллодов Онлайн и нашего нового проекта Skyforge. Обе эти игры — клиентские MMORPG. В первой зарегистрировано несколько миллионов игроков. Вторая разрабатывается студией в строжайшей секретности в недрах Allods Team.

Меня зовут Андрей Фролов. Я ведущий программист Allods Team и работаю в команде сервера. Мой опыт разработки — почти 10 лет, но в игры я попал только в октябре 2009. В коллективе я уже больше трёх лет, с марта 2010. Начинал работу на Аллодах Онлайн, а сейчас на Skyforge. Занимаюсь всем, что так или иначе связано с сервером Skyforge и базами данных. В этой статье я расскажу о базах данных в онлайн-играх на примере Аллодов и Skyforge.

Базы данных в онлайн играх. От Аллодов Онлайн до Skyforge

Читать полностью »

Всем привет! По многочисленным просьбам наших пользователей и читателей выкладываем статистические данные по использованию баз данных, серверов приложений, а также версий Java и PHP в облаке Jelastic. Данные собирались довольно простым образом: мы просто подсчитали количество наших пользователей, которые использовали тот или иной программный стек при создании окружений на платформе Jelastic за прошлый месяц (все тестовые аккаунты, конечно же, исключили). В статистической выборке учтены предпочтения более 5 000 активных пользователей. Также в данной статье можно отследить тренды за последний год для баз данных и всего, что касается Java, и за последние 5 месяцев для серверов приложений и версий PHP (так как поддержка PHP была реализована в конце января этого года).

Базы данных

Как видим, победитель среди баз данных вполне предсказуем – это MySQL (65%). С большим отрывом второе место занимает «сестра» MySQL – MariaDB, которую используют 12% наших пользователей. Тройку лидеров замыкают Postgres и Mongo – по 11% у каждой. Ну, и аутсайдер, нашего состязания — CouchDB, которая набрала всего один процент.

Database market share June 2013Читать полностью »

Unity3D и MySQL
Сегодня мы разберёмся как подключить проект на Unity3D к БД MySQL.
Читать полностью »

Поддержка транзакций, тестового окружения и другие удобные надстройки над commons-dbutils.

Поддержка транзакций, тестового окружения и другие удобные надстройки над commons dbutils"/>
  Если обращение к RDBMS вашего проекта ведется не через ORM или Spring JdbcTemplate, то работу через голый JDBC может сильно скрасить commons-dbutils.
Особенно если его надстроить транзакциями, работой с разными окружениями, авто-открытием/закрытием ресурсов, запрсами read-only, обработкой SqlException, возвратом pk при вставке и т.д.
Т.е, например, чтобы можно было бы сделать так:

int userId = Sql.queryForValue("SELECT ID FROM OU.USERS WHERE LAST_NAME=?", "IVANOV");
Sql.update("DELETE FROM OU.USERS WHERE FIRST_NAME=? AND LAST_NAME=?", fname, lname);
List<User> list = Sql.query("SELECT FROM OU.USERS", USER_LIST_HANDLER);
int newId = Sql.insert("INSERT INTO OU.USERS VALUES (?,?)", fname, lname);

И этот код работал бы внутри транзакции, через Application Server Connction pool и в JUnit без изменений и mock-ов.
За чуть меньше года моей работы с commons-dbutils он оброс различными классами и утильными методами, о которых и хочу здесь рассказать.
Читать полностью »

В MarkLogic Server реализован собственный диалект XQuery, который называется XQuery 1.0-ml. Не трудно догадаться, что это — тот самый XQuery 1.0 с некоторыми дополнениями от MarkLogic, призванными сделать жизнь разработчика лучше. Читать полностью »

image Очень многие разработчики считают что лучший интерфейс для работы с базами данных — текстовый интерфейс консольного. Я лично еще не достиг подобного просветления, поэтому больше доверяю GUI-инструментам. Хорошо, если у СУБД как у Postgres есть своя, утилита для работы с БД, а что делать если нет? Или если надо работать с различными базами данных одновременно? Под Windows альтернативных клиентов к различным СУБД — море разливанное. С другими ОС (я в данный момент работаю в OS X) все не так радужно, хотя есть программы разной степени пригодности и удобства. Раньше я использовал Navicat, но недавно нашел еще одно интересное решение, о котором и хочу рассказать: Valentina Studio.

Сразу скажу — я общался с разработчиками, и мне очень импонирует их концепция, то что они делают и как, поэтому я решил просто написать обзор о хорошем инструменте, о котором мало кто знает, поскольку публичный релиз программы состоялся очень недавно. До этого она долгое время разрабатывалась для Valentina DB и только в феврале вышла версия с поддержкой известных популярных баз данных. При этом разработчики приняли достаточно разумное решение — базовая версия совершенно бесплатна, а деньги берут только за несколько мощных «особо профессиональных» функций без которых чаще всего можно обойтись.
Читать полностью »

Эта статья — частичный перевод одной интересной статьи с sqlite.org, в которой подробно рассматривается реализация транзакций в SQLite. На самом деле я очень редко работаю с SQLite, но тем не менее мне очень понравилась статья. Поэтому если хотите просто развить кругозор — будет интересно почитать. Первые две секции не включены в перевод, так как там нет ничего интересного, да и мне лень их набивать.

3.0 Однофайловый коммит

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

3.1 Начальное состояние

Механизм атомарного коммита в SQLite
Состояние системы, когда соединение с БД только что было поднято, поверхностно изображено на рисунке справа. Справа показана информация, которая хранится на энерго-независимом носителе. Каждый прямоугольник — это сектор. Синий цвет говорит о том, что этот сектор содержит оригинальные данные. Посередине изображён дисковый кеш операционной системы. В самом начале нашего примера кеш холодный, это изображено белым цветом. На левой части рисунка — содержимое оперативной памяти процесса, который использует SQLite. Соединение с БД только что было открыто, и никакой информации прочитано не было.

Читать полностью »

Вышла новая версия Caché 2013.1 Что нового?

Развитие функционала

  • дальнейшее развитие EXtreme Event Persistence;
  • поддержка WebSocket;
  • расширенная поддержка JSON;
  • новый редактор панелей в BI DeepSee.

Повышение скорости разработки

  • multiсompile классов;
  • новая команда COS return;
  • args по ссылке;
  • %Find для Caché SQL.

Улучшение производительности

  • производительность обработки XML +50%;
  • улучшение производительности de-journaling;
  • повышение производительности ROLLBACK до 20%;
  • увеличение лимита глобального буфера до 16 ТБ;
  • увеличение лимита разделяемой памяти до 1 ТБ;
  • построение индексов класса с минимальным временем простоя — %Library.IndexBuilder;
  • эскалация блокировок;
  • увеличение производительности конкурентных обновлений — до 30%.

Полная версия документа на английском языке.
Обо всем по порядку и о других изменениях версии под катом.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js