Статьи по меткам ‘java’

Об опасности исключений

Ноябрь 12th, 2009

Об опасностях, таящихся в мороженом корме коде, генерирующем исключения.
Исключения в C++ достаточно опасны, именно поэтому я стараюсь их не использовать.
Давайте разберёмся вот с этим кодом:
» Читать дальше: Об опасности исключений

Sequoia изнутри #3

Август 27th, 2009

Пролог

В предыдущем посте я описал, на какие грабли пришлось наступить, чтобы заставить Sequoia создавать таблицы в RecoveryLog и запускать backends. Тем не менее, сама работа контроллера по-прежнему оставалась некорректной, и, как выяснилось, без правки исходников решить проблему никак не получалось.
» Читать дальше: Sequoia изнутри #3

Sequoia изнутри #2

Август 27th, 2009

Введение

Собственно, после первой неудачи с RAIDb1, изложенной в этом посте, я решил воспользоваться такой фичей, как RecoveryLog. Для этого ещё раз перечитывал туториал по созданию виртуальной БД.
» Читать дальше: Sequoia изнутри #2

Sequoia изнутри #1

Август 27th, 2009

Как бэ вступление

По работе возникла необходимость синхронной рабты с кластером БД (4 базы, в которых должны храниться одни и те же данные). Для этого я несколько месяцев подряд писать тулзу data_proc (коммерческая разработка), которая обрабатывает данные в поточном режиме и устойчива к connection-loss/database-failure ошибкам. Единственный недостаток — это хранение данных на локальном диске в виде журналов, объём которых достаточно велик, если база несколько часов находится offline.
Помимо data_proc у нас есть ещё куча других приложений, для которых пришлось писать балансировщик нагрузки для SELECT-запросов, с чем мы успешно справились. Тем не менее, вопрос балансировки нагрузки и кластеризации (с целью упрощения data_proc) остался, и мне предложили разобраться с C-JDBC, о чём я и буду сейчас писать.
» Читать дальше: Sequoia изнутри #1

Низкоуровневая оптимизация в Java?

Май 25th, 2009

По работе пришлось столкнуться с парсером файлов. Нужно парсить относительно простые структуры любой вложенности. Собственно говоря, для этого возникла необходимость написать токенайзер (заранее извиняюсь, если правильное название этой штуке будет разборщик лексем).
Соответственно, без посимвольного разбора не обойтись. Вариантов получения символов два: либо из CharSequence, либо из InputStream. Когда был готов алгоритм, скорость разбора строки меня не впечатлила: всего около 100 строк в секунду.
Почему? Давайте разбираться.

Разбор полётов