login:        password:      
Combats Scrolls
Rambler's Top100
Гость БК
1 | Хорадрим-1143548265 Open user info Open user photogallery
Friend page
updated 07.02.10 02:45
04.08.09 23:15   |  Куруфин Open user info |   Небольшой слив инфы. Ждем-с. ;)
 ru
Comments: 15 | Post comment
updated 04.08.09 06:35
04.08.09 06:32   |  Модификатор Open user info Open user photogallery |   Чуток о стихиях
 ru
 Подумалось тут мне форумно, что изображения склонностей Мастеров Стихий малость нелогичны. Нелогичны в том плане, что за основу берется тот же инь-ян, просто перекрашивается в другой цвет. Причём перекрашивается именно белая - "Ян" часть, а тёмная половина остается тёмной во всех изображениях. Гораздо логичнее было бы взять за основу сам цвет стихии, не связывая с нейтральностью внешне. Взяв за основу окружность и цвет стихии, я перерисовал значки для каждого мастера. На бытие художником не претендую - моя роль лишь подать идею.
Огонь (сейчас - ).
Вода (сейчас - ).
Воздух (сейчас - ).
Земля (сейчас - ).
Знак инь-ян можно было бы оставить, как знак нейтральности стихий (огонь-вода, воздух-земля). Эдакая склонность мастера баланса. В качестве гвардии нейтральности я давным-давно предлагал октаграмму, заключенную в окружность - знак порядка.

На пост в скролле навёл топик   Dasov [12]'а.
Comments: 20 | Post comment
updated 03.08.09 22:39
03.08.09 22:38   |  Лизка Open user info Open user photogallery |   Все каллории - в сиськи! (с)
 ru
 Помните такое выражение?:)
Я заметила, что если дать себе такую установку - так и будет! На ровном месте - без ощутимого увеличения веса (+/-0,5 кг) - "сиськи" увеличились на полразмера!))) Мысль - материальна, воистину:)

Mood: хитрое 
Music: Real O - Я Бы...
tags: реал
Comments: 64 | Post comment
03.08.09 21:21   |  Лизка Open user info Open user photogallery |   Пора в школу:)  ru
 Персонажу "Лизка" 7 лет:) Случайно зашла и вспомнила. Такие дела:)

Mood: сонное 
Music: Мика Ньютон - Выше Чем Любовь
tags: БК
Comments: 20 | Post comment
updated 03.08.09 20:48
03.08.09 20:46   |  Litera Open info : Билл Клинтон Open user info Open user photogallery |   Пляж
 ru
 Оригинал тут http://tarmans.kombats.ru/index.php?module=news&cmd=view_news&postID=72820



Mood: творческое 
Comments: 1 | Post comment
02.08.09 22:22   |  KSA-JOKER Open user info Open user photogallery |   пару фотографий  ru
Comments: 5 | Post comment
updated 02.08.09 19:00
02.08.09 18:10   |  kirillica Open user info Open user photogallery |   MySQL: MyISAM vs InnoDB vs MEMORY
 ru
 Те, кто играют в Двар, знают, что на сайте у тамошних Мерков есть мега-ресурс - рейтинг игроков. "Мега" он и по посещаемости, и по экспонентальным формулам рассчета очков рейтинга. Когда появилась первая версия ресурса, в базе было коло 30000 игроков. Исторические сложилось, что движки обоих таблиц, используемых в рейтинге - MyISAM. Вроде бы, "родной" движок от самих разработчиков MySQL, да и (с такими-то объемами) все работало "на ура". Тем более, что MyISAM позиционируется MySQL как лучший для OLAP (On-line Analyze Processing).

Но время идет, рейтинг дополняется новыми категориями, количество игроков в базе растет, и вот теперь это уже более 180 000 записей и более 500 select/insert/update/delete'ов по первичному ключу в минуту. И это без того самого пресловутого OLAP, который (в нашем случае) и есть выдача рейтинга по заданным пользователем критериям. Путем экспериментов, нашел комбинацию запросов, которые позволяю сделать это максимально быстро:
1) SELECT count(*) FROM <tables> WHERE <user filter> - дабы узнать, сколько же пользователей удовлетворяет фильтру
2) SELECT <data> FROM <tables> WHERE <user filter> LIMIT <page> - непосредственно страница рейтинга
3) SELECT count(*) FROM <tables> WHERE rating > <data entry rating> UNION ... - запрос UNION с для определения позиции каждого игрока на странице (это нужно потому, как сортировки бывают не только по рейтингу, поэтому лучший в одной категории может быть худшим в общем зачете, что и надо бы отразить его местом). Т.е. 3 запроса на каждую отображаемую страницу.

Все работает более-менее, пока пользователь захочет посмотреть не первую страницу, а, скажем 3001-ую. Что важно: на каждое поле, на которое может быть наложена сортировка и/или поиск - стоит индекс. Выходит, 12-20 секунд (в зависимости от загруженности сервера) - это предел производительности. Более того, фактически все это время таблицы залочены, а это значит, что остальные запросы ждут, пока выполнятся эти, при этом количество тредов в статусе Waiting резко возрастает. Быстрее MyISAM просто не может (железо хорошее, под базу выдано прилично ресурсов). А что сделает пользователь, когда он пару раз подождет? Правильно, среднестатистический серфер предпочтет вообще больше не ждать. Значит, надо что-то делать.

Иду в гугл, думаю. Ага, InnoDB - чуть-чуть хуже для OLAP (вроде как), но заметно лучше при таком количестве транзакций. И написано красиво: поменяйте движок через ALTER TABLE <table> ENGINE = InnoDB; - и будет вам счастье. Смотрю на загрузку сервера. Вроде, никого нет (времени - первый час ночи), тестирую производительность по транзакциям на локальной машине - действительно лучше. где-то на 10%. Запускаю. Ага... На 15ой минуте мне больше ничего не оставалось, как убить процесс. Сервер встал, загрузка выросла с 0.7 до 2.5, количество процессов в очереди поражает воображение. Но вот что интересно: KILL <process id> в MySQL процесс-то убило, он перешел в статус End, но сервер "не отпустило" и локи с таблиц не сняло. подождал пару минут и сделал в консоли "красивый" стоп-старт: /etc/init.d/mysqld stop. И что вы думали? Не останавливается. Говорит, failed - и все. Остается крайняя мера - kill -9 <pid>. Убился. Поднялся. Думаю дальше.

Делаю новый скрипт: создаю еще одну табличку, но уже с правильным движком, запускаю INSERT INTO ... SELECT * FROM - и жду. На этот раз 11 минут. И 10 минут на OPTIMIZE (на всякий случай), ибо "вес" таблицы вырос с 130 до 160 мегабайт. Последнее не помогло. Добавляю ссылку одной таблицы на другую, что бы совсем красиво и совсем как в крутых RDBMS (Relational DataBase Management System): CONSTRAINT FOREIGN KEY. Проверяю активно вывод рейтинга. И расстраиваюсь в конец. Предыдущие 12 секунд стали 2 минутами 12 секундами. Ладно, думаю, индексы не пересчитал (на сайте произовидтеля пишут, что такая бага иногда бывает, хотя... чего это он делал там 11 минут?). Делаю DROP ... CREATE INDEX... , как умные люди советуют. Не помогает. В шоке. Называется, починил рейтинг. Зато обычные транзакции просто летают.

И тут меня осенило. Памяти на сервере дофига, а что, если сделать систему с двумя таблицами на базе InnoDB и MEMORY. Т.е. для вывода рейтинга просто запихнуть все в HEAP, т.е. в память. В свое время ребята из Oracle рассказывали, что так их клиенты решают свои проблемы с производительностью. Остается надеется, что ребята из MySQL, т.е. из Sun Microsystems, т.е. из IBM, который, в свою очередь, выпускает мало кому нужную, но по слухам крутую DB2, ничуть не хуже.

Читаю мануал, интересные вещи пишут. В MySQL (по умолчанию) данный движок юзают для небольших таблиц, записи в которых не очень-то и важны. Например, список сессий. Если сервер перезапусткается/умирает - данные пропадают, но структура остается. Но мне так и так раз в 10 минут надо перезаписывать данные там, так что подходит. Эту задачу решим с помощью crontab. А что делать с объемом данных? Ага, пишут: измените в системных настройках max_heap_table_size - и солнышко засветит даже в полтретьего ночи. Увеличиваю, создаю структуру таблицы (внимание, MEMORY поддерживает HASH-индексы, но их надо определять вручную через USING HASH, поэтому тупо копировать структуру для лучшей скорости просто глупо. об этом, кстати, пишут вообще где-то в темных уголках мелкими буквами. это, кстати, первые грабли, которые надо знать).

Копирую через INSERT INTO ... SELECT * FROM - через 4 секунды "вылетает" с ошибкой, что Table is full. При этом копируется где-то 40000 записей. Офигеть. Учитывая, что я выдал один гигабайт под это безобразие - он утверждает, что все, нету места. Смотю размер таблицы - данным объемом даже и не пахнет. Оказывается, что, создавая структуру, надо еще и "намекнуть", сколько записей вы бы хотели в нее положить. Через MAX_ROWS.

Пересоздаю структуру, ставлю 1000000 строчек (чтоб уж наверняка), запускаю копирование данных... Мистика - 5 секунд. Да, за 5 секунд создается таблица в памяти размером в 110 мегабайт со всеми нужными индексами. Тестирую рейтинг - по 1-2 секунды на страницу, независимо от того, первая она или где-то в серединке. Дело за малым - написать скрипт, разделяющий и обновляющий данные. Собственно, тут все казалось совсем тривиальным: DELETE FROM ... ; INSERT INTO ... SELECT * FROM. (TRUNCATE средствами PHP не поддержвиается) Написал, протестировал. Вроде, работает. Запустил сервисы сайта в полном объеме.

Почти ушел спать, глянул краем глаза - и снова расстроился. Поскольку фактическое первое, что было написано для сайта - это логер всех запросов с ошибкой, там творились страшные вещи: Deadlock. Т.е. транзакции, которые приходились на момент копирования, блокировались копированием и, не захотев ждать, отваливались. При этом само копирование тоже "падало", независомо от того, в какой момент приходилась транзакция. Значит, надо все копирование "запихнуть" в одну транзакцию, предварительно мануально проставив локи. Дополняю скрипт в начале: SET autocommit = 0; START TRANSACTION; LOCK TABLES <source> READ, <destination> WRITE; и в конце ставлю COMMIT; SET autocommit = 1;. Но не тут-то было. Если DELETE находится внутри LOCK - скрипт "падает" из-за того, что ему резко не хватает памяти. Я даже представить не могу, как связан LOCK и DELETE, но, если поставить DELETE до LOCK - все работает без ошибок, не загружая сервер и память.

И пока, хвала Всевышнему, уже 13 часов работает без сбоев. Что интересно, загрузка сервера от сортировки и содержания двух таблиц в MEMORY меньше, чем без них средствами MyISAM/InnoDB. Необъяснимо, но факт.

Вот такой вот забавный секс до 4ех утра. :))
tags: MySQL fun
Post comment
updated 18.06.12 18:55
01.08.09 11:24   |  Rand Open user info Open user photogallery |   Полезные вкусняшки
 ru
 1) Достаточно часто при зависании верхнего (или как еще говорят боевого) фрейма в магазине при покупке или продаже вещей с зависанием борются, просто обновляя страницу. Не смотря на то, что при обновлении выскакивает табличка-предупреждение о том, что страница была создана с передачей в сеть данных (если перед этим покупали или продавали, что либо) все равно жмут подтверждение. Как результат или покупают не то, или продают то, что не собирались. Рекомендация: При выскакивании таких табличек обновлять верхний фрейм обновлять не кнопкой "обновить страницу" (или F5) а через заход в список друзей, и тому подобное.
P.S. Я в курсе, что в идеале зависаний не должно быть. Но избавится от них полностью невозможно никак. И зависит это не от меня.
P.P.S. Список будет пополнятся.
Comments: 4 | Post comment
01.08.09 07:51   |  Amy Lee-1063177677 Open user info Open user photogallery |   ПЦ как всегда прав  ru
Comments: 1 | Post comment
01.08.09 03:49   |  Mitja Open user info Open user photogallery |   О социуме в БК  ru
 Так получилось, что неделю назад у меня сдох комп.
Работал, работал и сдох...
Ладно бы блок питания сгорел - заменить не сложно. А сгоревшую мать менять вместе с процессором - проще новый собрать. Да и старенький он у меня был. Все равно менять пора было.
Свободной штуки баксов на руках не было - пришлось неделю сидеть дома без сети. А на работе не до БК сейчас.

Так вот о социуме...
Захожу сегодня вечером на ЧП. Нормальные люди на него заезжают, а я захожу.. От офиса метров пятьсот.
- Тебя чего в БК не видно последнюю неделю?
- Комп сгорел..
- Чинить будешь?
- Ну нафиг.. новый соберу.
- Ну пока соберешь.. Возьми пока мой на время. Я все равно дома только ноутом пользуюсь.

После ЧП поехали.. Забрал системный блок. Вполне приличный четвертый пень.
Что интересно - я не уверен, что у человека есть мой мобильный, не говоря уже про адрес или паспортные данные.

Да.. про социум.
Умер БК-шный социум. Мы его года полтора назад всем Бойцовским клубом хоронили.
Не стимулировали его развитие админы - вот он и дал дуба.
Такие дела...
Comments: 4 | Post comment

Total posts: 10767 Pages: 1077
«« « 1.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 100.. 110.. 120.. 130.. 140.. 149 150 151 152 153 154 155 156 157 158 159 160.. 170.. 180.. 190.. 200.. 210.. 220.. 230.. 240.. 250.. 260.. 270.. 280.. 290.. 300.. 310.. 320.. 330.. 340.. 350.. 360.. 370.. 380.. 390.. 400.. 410.. 420.. 430.. 440.. 450.. 460.. 470.. 480.. 490.. 500.. 510.. 520.. 530.. 540.. 550.. 560.. 570.. 580.. 590.. 600.. 610.. 620.. 630.. 640.. 650.. 660.. 670.. 680.. 690.. 700.. 710.. 720.. 730.. 740.. 750.. 760.. 770.. 780.. 790.. 800.. 810.. 820.. 830.. 840.. 850.. 860.. 870.. 880.. 890.. 900.. 910.. 920.. 930.. 940.. 950.. 960.. 970.. 980.. 990.. 1000.. 1010.. 1020.. 1030.. 1040.. 1050.. 1060.. 1070.. » »»
 
 


« 2025 july »
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

 
 © 2007–2025 «combats.com»
  18+  
feedback