Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

Изменения в API - часть первая


  • Авторизуйтесь для ответа в теме
20 ответов в теме

#1
AllSeeingI

AllSeeingI

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5107 сообщений
325
  • EVE Ingame:IlluminatedOne
  • Client:Eng
The API dev blog trilogy - volume one
CCP Stillman

Привет ребята,

Уже около месяца CCP PrismX, вместе со мной и дежурной командой поддержки (operations team) работает над повышением производительности API. Нам ещё многое предстоит сделать в плане улучшения этого востребованного сервиса, и в конце блога я расскажу о наших планах; но для начала - о том, что уже сделано.

Улучшаем API для всех и каждого

Как ранее написал CCP Zirnitra, мы активно сотрудничаем с некоторыми популярными сервисами, использующими API, дабы оптимизировать использование наших ресурсов. Ранее мы заметили, что некоторые сайты используют некорректные вызовы API, и эти вызовы отнимают массу процессорного времени у вызовов, возвращающих полезные данные. Создателям приложений очень важно удостовериться в том, что API не вызывается с некорректными или устаревшими ключами. Так же очень важно иметь ввиду время кэширования запросов; всё это делает API более доступным для всех игроков.

Как написано в посте, залинкованом выше, мы рассматривали возможность создания "чёрных списков" приложений, которые часто и системно делают некорректные вызовы. Это очень трудное для нас решение, но оно может оказаться необходимым для обеспечения доступности API для всех желающих. Разумеется, мы стараемся, когда возможно, связаться с разработчиками приложений и совместно устранить возникающие проблемы. Мы просим разработчиков приложений, использующих API, публиковать координаты для связи, чтобы, при необходимости, ГМы смогли связаться с вами.

Проблемы с серверами

В последние несколько месяцев мы несколько раз встречались с резким падением времени отклика серверов API. Проблема была решена 2 недели назад: профилирование показало, что задержку вызывало приложение, крутящееся на одном из 6 наших серверов API. После удаления этого приложения время отклика резко упало.

Оптимизации баз данных

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

Кроме этого, уменьшению времени отклика помог и апгрейд серверов - мы закупили новые дисковые массивы. База данных API теперь использует свой собственный 10-дисковый RAID 10, с винчестерами на 15,000 RPM, работающими через fibre channel.

Здорово. Ещё что-нибудь?

После того, как все срочные проблемы были решены, мы приступили к оптимизации внутренностей API.

Наша система логирования основана на утилите log4net, и позволяет пользователям видеть, какие запросы делаются по их API-ключам. API получает в среднем 17-18 миллионов запросов в день, что выливается в 2-3 гигабайта данных на таблицу в день. Это очень серьёзный объём данных, и каждый день мы вынуждены удалять определённую часть этих данных. Каждый день скрипт удаляет логи старше 7 дней. Мы выяснили, что эта операция вызывает проблемы с временем отклика из-за недостаточного индексирования. Мы решили проблему созданием отдельной таблицы, имеющей все необходимые индексы. Это позволит нам удалять логи без удара по производительности бд. Но с учётом объёма данных, создание таблицы и конвертация данных для неё займёт около 3-4 часов.

Так что для уменьшения необходимого для изменения бд даунтайма, мы не будем переносить данные, а просто удалим все старые логи. Мы понимаем, что это серьёзный шаг, но верим, что изменения стоят того.

В понедельник, 27 сентября, мы удалим все существующие логи доступа. После даунтайма логирование будет возобновлено; логи будут хранится 7 дней.

Что, где, когда?

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

Будущее

Мы готовим для вас ещё много чего интересного, как в плане производительности так и в плане новых возможностей API. CCP PrismX готовит новый релиз API, детали которого он раскроет в следующем девблоге. Следите за новостями.

Счастливо оставаться!

Сообщение отредактировал AllSeeingI: 21 September 2010 - 22:32

  • 0
Listen up! "Teamwork" means staying out of my way! - Seifer, Final Fantasy VIII.

#2
Harry

Harry

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 253 сообщений
41
  • EVE Ingame:HarryAR
  • EVE Alt:Deyro
  • Corp:AND.
  • Ally:RED
  • Client:Eng
То есть всякие буки, контакты, етс удалятся? В предмете не разбираюсь вообще
  • 0

#3
AllSeeingI

AllSeeingI

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5107 сообщений
325
  • EVE Ingame:IlluminatedOne
  • Client:Eng

То есть всякие буки, контакты, етс удалятся?

Нет. Речь о логах доступа по ключу API (см последнюю ссылку в девблоге) - все записи этого лога скоро тю-тю.
  • 0
Listen up! "Teamwork" means staying out of my way! - Seifer, Final Fantasy VIII.

#4
January

January

    Clone Grade Mu

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 7376 сообщений
331
Попахивает как обычно. Тем что даунтайм превратится в расширенный по причине непредвиденных обстоятельств :D
  • 0

#5
Anastasy

Anastasy

    Clone Grade Iota

  • Tech III Pilots
  • PipPipPipPipPip
  • 1662 сообщений
73
  • EVE Ingame:Anastasy BL
  • Corp:T R I B E
  • Ally:Minmatar Republic
  • Client:Eng
А у кого стоит автобновление килов на eve-kill.net у вас по два подряд запроса в одно время, первое ОК, второе код 119 ? Или я там где-то два раза ввёл и надо копать в борде ?
  • 0

#6
Loardriver

Loardriver

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2688 сообщений
741
  • EVE Ingame:Loardriver
  • DUST Ingame:LrDr
  • Channel:Сручат
  • Client:Eng
:D интересно, что им помешало собрать 5raid? - бюджетный контроллер который только 0,1,10 умеет?
  • 0

В этой жизни можно всё, было-бы желание.


#7
ПаЛаСаТиК

ПаЛаСаТиК

    Clone Grade Beta

  • Tech III Pilots
  • Pip
  • 78 сообщений
2
  • EVE Ingame:PaLaSaTiK
  • Corp:Little Green Corp
  • Channel:Little Green Channel
  • Client:Eng

:D интересно, что им помешало собрать 5raid? - бюджетный контроллер который только 0,1,10 умеет?


Вероятно, им нужна максимальная производительность? :rolleyes:
  • 0
Изображение

#8
myst

myst

    Clone Grade Theta

  • Tech III Pilots
  • PipPipPipPip
  • 1192 сообщений
664
  • EVE Ingame:Shinah Myst
  • Corp:CEDRA
  • Client:Eng

...профилирование показало, что задержку вызывало приложение, крутящееся на одном из 6 наших серверов API.

...блокировку вызывала утилита для мониторинга состояния сервера. С помощью фирмы-поставщика утилиты мы смогли решить эту проблему.

Это сраный детский сад что ли?!
  • 0

#9
JesDarkJewel

JesDarkJewel

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 952 сообщений
52
  • EVE Ingame:JesDarkJewel
  • Corp:Tungus Revolt
  • Channel:Tungus
  • Client:Рус
Некоторые на этом форуме :) не будем показывать пальцами прям так и вчитываются в тексты CCP в поисках куда-бы плюнуть :)
  • 0
Один аккаунт - залог долгой и интересной игры.
Ева - игра про взаимоотношения людей.
Он тоже скоро научится летать -> Изображение

#10
iDreamka

iDreamka

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 498 сообщений
-24
  • EVE Ingame:iDreamka
  • Corp:DOPC
  • Ally:Tower of Dark Alliance
  • Client:Рус
не плюнуть ,а метнуть искрометным знанием всего железа и софта .
  • 1

Persey 1 > кстати по рейтингу форбс самых влиятельных людей мира Путин занимает второе метсо .а Медведев 34 только
Danila Killer > ну так путин альта просто поздно качать начал )


#11
Salexey

Salexey

    Clone Grade Zeta

  • Tech II Pilots
  • PipPipPip
  • 394 сообщений
4
  • Client:Рус
Разжуйте мне тёмному, что такое "логи доступа" ?
Это которые в контах? Типа воришки перед ДТ потырят всё, а после ДТ в логах уже будет пусто?
  • 0
http://z0r.de/1820 Троллоло

#12
Fandanguero

Fandanguero

    Megatroll Navy Issue

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5119 сообщений
228
  • EVE Ingame:Fandanguero
  • Corp:I.N.
  • Channel:Ухотнеги рядам
  • Client:Eng
2 или 3 гб х7 = 15 - 21 гиг, это отщень серьёзный объём данных Изображение

могу им свой старый винт на 30 гиг отдать Изображение

Nikimi Изображение

Сообщение отредактировал Fandanguero: 22 September 2010 - 12:15

  • 0

whQ6XJu.png


#13
Th0r

Th0r

    Clone Grade Theta

  • Tech III Pilots
  • PipPipPipPip
  • 1393 сообщений
597
  • EVE Ingame:Calana Humane
  • EVE Alt:Есть такие
  • Corp:HTP
  • Client:Eng
тема про API, причем здесь конты? это вообще к ингейм данным не относиться.
Логи доступа записывают: кто, когда и какие данные смотрел по твоему API
  • 0
Documentation is like sex;when it's good, it's very good,and when it's bad, it's better than nothing

#14
Takeshi Ryuu

Takeshi Ryuu

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 696 сообщений
361
  • EVE Ingame:Takeshi Ryuu
  • Corp:IRR
  • Client:Eng

2 или 3 гб х7 = 15 - 21 гиг, это отщень серьёзный объём данных

могу им свой старый винт на 30 гиг отдать


Твой старый винт с порнушкой, которую ты уже даже не смотришь, а просто хранишь, сдохнет в первые же пять минут работы, когда к нему начнут обращаться каждую минуту за или с новым блоком данных из тех несерьезных 2 гигабайт.
  • 0

#15
myst

myst

    Clone Grade Theta

  • Tech III Pilots
  • PipPipPipPip
  • 1192 сообщений
664
  • EVE Ingame:Shinah Myst
  • Corp:CEDRA
  • Client:Eng

Твой старый винт с порнушкой, которую ты уже даже не смотришь, а просто хранишь, сдохнет в первые же пять минут работы, когда к нему начнут обращаться каждую минуту за или с новым блоком данных из тех несерьезных 2 гигабайт.

Да ну?! А ты проверял?
  • 0

#16
Fandanguero

Fandanguero

    Megatroll Navy Issue

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5119 сообщений
228
  • EVE Ingame:Fandanguero
  • Corp:I.N.
  • Channel:Ухотнеги рядам
  • Client:Eng

Твой старый винт с порнушкой, которую ты уже даже не смотришь, а просто хранишь, сдохнет в первые же пять минут работы, когда к нему начнут обращаться каждую минуту за или с новым блоком данных из тех несерьезных 2 гигабайт.


олсо, там овер 412 кб кеша Изображение

все мои винты всегда были и будут абсолютно бессмертны Изображение
  • 0

whQ6XJu.png


#17
vhl

vhl

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 517 сообщений
51
  • EVE Ingame:Ngen Chi
  • Corp:RTSQ
  • Ally:AAA
  • Client:Eng

То есть всякие буки, контакты, етс удалятся? В предмете не разбираюсь вообще

Да все ассеты удалят, будет вайп. В предмете разбираюсь.
  • 1

[ 2010.06.30 18:48:16 ] Irn Akerl > у меня есть куча русских, которым нельзя доверять, которые не будут помогать за деньги, но, конечно же сделают все возможное во имя великой идеи русского единства и т.д. и т.п.
[ 2010.06.30 18:48:29 ] Irn Akerl > ты не можешь себе представить, как я зол на них


#18
Wyrm

Wyrm

    Доктор каребирских наук

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 17552 сообщений
533
  • EVE Ingame:Abyss Wyrm
  • EVE Alt:Celestial Wyrm, Mist Wyrm
  • Corp:Caldari Navy
  • Channel:t2y, Brotherhood's pub
  • Client:Eng

тема про API, причем здесь конты? это вообще к ингейм данным не относиться.
Логи доступа записывают: кто, когда и какие данные смотрел по твоему API

Про full API никогда не слышали?
  • 0
There is so much to discover, just beneath the surface ©

#19
Th0r

Th0r

    Clone Grade Theta

  • Tech III Pilots
  • PipPipPipPip
  • 1393 сообщений
597
  • EVE Ingame:Calana Humane
  • EVE Alt:Есть такие
  • Corp:HTP
  • Client:Eng

Наша система логирования основана на утилите log4net, и позволяет пользователям видеть, какие запросы делаются по их API-ключам.

ну и при чем здесь фулл апи и ингейм данные?
сервак который занимается каким-либо определенным действием, должен логировать свои действия, а не какие-то другие действия с похожим названием
  • 0
Documentation is like sex;when it's good, it's very good,and when it's bad, it's better than nothing

#20
Takeshi Ryuu

Takeshi Ryuu

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 696 сообщений
361
  • EVE Ingame:Takeshi Ryuu
  • Corp:IRR
  • Client:Eng
Вышла вторая часть, пока что опять ничего существенно интересного. Вся суть второго блога про апи - в базе данных расширят представление некоторых идентификаторов с 32 до 64 бит, некоторых с 16 до 32 и некоторых с 8 до 16.
  • 0




0 посетителей читают тему

0 members, 0 guests, 0 anonymous users