Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ソーシャルゲームを支える技術 ~ クラウドを活用した高負荷対策
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Infiniteloop
July 12, 2023
Programming
35
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ソーシャルゲームを支える技術 ~ クラウドを活用した高負荷対策
2012年8月30日に北海道大学で行われた「Cloud Week 2012@北海道大学 ~クラウド技術の最先端を探る~」の講演発表で使用した資料。
Infiniteloop
July 12, 2023
More Decks by Infiniteloop
See All by Infiniteloop
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
18
91k
俺の PHP プロファイラの話 PHP スクリプトで PHP 処理系のメモリをのぞき込む
infiniteloop_inc
1
770
心理的安全性を学び直し、 「いい組織とは何か?」を考えてみる
infiniteloop_inc
1
1.2k
ゼロからつくる 2D物理シミュレーション ~物理現象をコードに落とし込む方法~
infiniteloop_inc
1
1.7k
詫び石の裏側
infiniteloop_inc
0
1k
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
7
36k
リファクタリングで実装が○○分短縮した話
infiniteloop_inc
0
320
ADRという考えを取り入れてみて
infiniteloop_inc
0
330
500万行のPHPプロジェクトにおけるログ出力の歩み
infiniteloop_inc
0
240
Other Decks in Programming
See All in Programming
dotNET_vulnclicker_intro.pdf
deka_morita
0
130
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
260
sbt 2.0: takeoff
eed3si9n
0
110
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
21
21k
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
110
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.5k
Agents on Rails - Rails at Scale 2026
irinanazarova
0
520
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
140
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.6k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
190
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
280
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
590
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
550
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
470
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
540
Done Done
chrislema
187
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Balancing Empowerment & Direction
lara
6
1.3k
Statistics for Hackers
jakevdp
799
230k
Evolving SEO for Evolving Search Engines
ryanjones
0
310
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Transcript
ؙপૠெ९ش३কঝ।ش॑ ੍ؙइॊૼ ؙ ॡছक़ॻ॑ણ৷खञৈৌੁ ઙૄভॖথইॕॽॵॺঝشউ ؙૈ੩ 健太郎
ঽഞງஂ ૈ੩ 健太郎 ైචলମؚైචક উটॢছঐ ke-tai.org 管理⼈ ॥شছधংॖॡॶشজথॢऋऌ ઙૄভॖথইॕॽॵॺঝشউ৻
ঽഞງஂ ઙૄভॖথইॕॽॵॺঝشউ 北海道札幌市のソフトウェア開発会社 ৫ৰౚقप१شং१ॖॻ॑૿ਊك ؙঈছक़२ਕবಂ(2009) ؙஶॡग़५ॺ(2010) ؙLord of Knights(2012)
ؙॡॖشথ६ঈঞॖॻ THE CONQUEST (2012) ※プログラム開発のみを担当しており、企画・運営は⾏っておりません
9LPਫ਼ 9LP⼒がぐんぐんと上昇してYLPUFも⻑くなる KHOSपॎॊৗऩ9LPभ৾ಆু پઽஇभमؚक़फ़থॲभ౩ऽोऩःञठभରஃपઞ৷औचथःञटःथउॉऽघ
3+3ਫ਼ ৸বਐযभ3+3HUभञीप৫ 3+3⼒がぐんぐんと上昇してSKSLQLも⻑くなる ء ZZZSKSQHWPDQXDOMD प৻ॎॊৗऩ3+3भ৾ಆু L3KRQHط$QGURLGৌૢ ਁ৫آ
ँःइॊञ॒ॉऽखञ ॖথইॕॽॵॺঝشউभঐ५॥ॵॺय़কছॡॱش َँःइॊञُ॒॑ॉऽखञ؛
মभઍ ਈभ९ش३কঝ।ش৫হੲपणःथ ॖথইছपणःथ ୁृইঞشডشॡपणःथ ৌੁपणःथق:HEౣك ৌੁपणःथق'%ౣك ॸ५ॺपणःथ અपखथःॊੲਾपणःथ ऽधी
ਈभ९ش३কঝ।شহੲ ᾧ ᾧ ᾧ ᾧ
९ش३কঝ।شधम ९ش३কঝ।شقஶୁ 6RFLDO *DPHكमؚ९ش३কঝ؞ॿॵॺডشय़থॢ؞१ شঅ५ق616كदऔोؚभঘش२شध॥গॽॣش३ঙথ॑धॉऩऋैউ ঞॖघॊड़থছॖথ।ش؞ঈছक़२।شदँॊ؛ মदमॢজشऋਈੂप९ش३কঝ।شभ॑৫खؚजभॹॕش؞ग़ॾ؞ ग़شऋઈघॊఝਗ਼ਵऐ१شঅ५ؚঔং।شॱक़থऋ॑৫खञِჁ൯ট ডॖখঝّऋனभऽॉधऩढञ؛年াपम616বਈপুभॡ३ॕऋ َPL[L॔উজُभ१شঅ५॑৫ؚপু।شভऋघॊ।شऋোऔोؚ
5HNRRऋघॊِ१থ३কॖথฝৃّऋਸऋਐয॑௭घऩनؚඩା घॊेअपऩढञ؛ :LNLSHGLDेॉ௷ხ KWWSMDZLNLSHGLDRUJZLNL९ش३কঝ।ش ᾧ ᾧ ᾧ ᾧ
ਈभ९ش३কঝ।شহੲ ਰधૻसॊधःौःौକऌथःॊऊुء ९ش३কঝ।شऋॽগش५दਵपऩॊऒधऋੜइञ ڀ ॻজছথॻੜ༢उेलजोपહྖघॊ507ਖ ڀ ॥থউफ़ॳক ڀ ऩ॒टऊ਼भ௯ਊञॉऋਘऎऩढञ
ڀ ौीञःुभ॑ढथःॊणुॉमऩः ڀ ग़থ४ॽ॔धखथमૼपૐরखञः ৰभ୶मؚँऽॉ૮ः ڀ ્पঽীभఢॉपঢ়खथमँऽॉ୶ऋ૮ःेअट ڀ ञटखఢॉभ৸ே९ش३কঝ।شप௪ऋऩऊढञযऽदऋؚ َؙপຣءُधୂःथऎॊधःअ୶ऋ
ਈभ९ش३কঝ।شহੲ 開発者から⾒た最近のソーシャルゲーム開発 ५ঐऋਅৃपऩढथऌथःॊ ڀ ॿॖॸॕঈ॔উজमुठौؚ॒0REDJH؞*5((ु ڀ ガラケー界隈は少し落ち着いて来た印象 ڀ 3&ऐभ।ش
प)ODVK॑ઞ৷ मखञਏ ृढरॉ৸ேযमଌॉथःऩः ڀ ॡছॖ॔থॺ؞१شং؞ॖথইছऩन৸थऋଌॉऩः ڀ '%$ق'DWD%DVH $GPLQLVWUDWRUكऋฤऔोॊ ڀ +70/-6ग़থ४ॽ॔भॽش६ऋੜइजअ ڀ धमःइா৲ऋऽॉؚऩ॒ठूढथभطग़থ४ॽ॔म ؙ जौजौᇋᆓऔोमगीॊऊु
ਈभ९ش३কঝ।شহੲ खङणॎढथःऎ९ش३কঝ।ش৫ ૽સभ৲ ڀ ৫ૠெभఁপपൣःग़থ४ॽ॔ीैोॊुभुॎढथऌञ ڀ ૽સী૿भન৲قग़থ४ॽ॔۸੫ؚ⎻म⎻ોपؚഄఴमॉନघك 求められる能⼒ ڀ
継戦能⼒(続く運営・アップデート、終わりがない) ڀ 情報の横への共有化、他者/他社への展開能⼒ ڀ 安定したリソース提供、⻑期を⾒越した教育スキームの確⽴ ڀ 海外展開能⼒ ९ش३কঝ।شਰਗषभૢ৷ु ڀ ৈ:HE१شঅ५षभషؚ।شইॕॣش३ঙথषभૢ৷ ڀ జਟभ॥থ३গشঐش।شभॿॵॺ৲धजभংॵॡग़থॻ৫
ॖথইছपणःथ ᾧ ᾧ ᾧ ᾧ
ॖথইছपणःथ(1) ソーシャルゲームとクラウドは相性が良い インフラ視点から⾒たソーシャルゲームの特徴 ؞জজش५भॵॺૠெऋखः ؙڀ ঁشॻक़ख़॔৹ऋखः ؙڀ ॵॺखञৃ়ؚ୯ਸঌش५ऋଫः ؞আشॡऋপऌः ؙڀ
ફभৢඐৎؚ೬ाؚఽ ؙڀ ଅؚাੂ ؙڀ य़কথঌشথॖঋথॺऩन
ॖথইছपणःथ(2) Q. नऒ॑णऊढथःॊभء A. 最近では国内のクラウドサービスを利⽤しています पবॡছक़ॻ॑ઞअऒधऋःदघؚँधमAWSुઞःऽघ ਲਗऐभ१شঅ५भৃ়मؚऺऻAWSदघ ْॖথইছ৭लमశଞपপহآآٓ こんなポイントを⾒て選んでいます ڀ
コストや安定度(障害履歴)は当然⾒る ڀ ુથLBがあり、それが強⼒であること ڀ インスタンスの追加が容易で速いこと(電話やメールとかは論外ك ڀ ॹॕ५ॡषभI/OऋசऎखथःॊऒधؚSSDಉुँॉऋञः ڀ ⾼価でも強⼒なスペックのインスタンスが⽤意されている、 ؙ または物理マシンとの併⽤が可能(最後の⼿段的な使い⽅ك
ॖথইছपणःथ(3) १شংଡਛपणःथؙৣ੶भेअऩଡਛदघقनभ੧੯दुপ৬गك ZZZ $SDFKH௺ 3+3௺$3& '% 0\64/௺ 0+$ .96
PHPFDFKHG .\RWR7\FRRQ जभ UV\VORJ FDFWL 0\'16
ୁृইঞشডشॡ पणःथ ᾧ ᾧ ᾧ ᾧ
ୁृইঞشডشॡपणःथ ୁमपPHP॑ઞढथःऽघऋؚ ୦दुःःधઓःऽघ؛ইঞشডشॡमঽदघ ৫ୁ ڀ 3+3 3HUO 5XE\ँञॉ॑ेऎୂऎ ڀ ੭ਔऩୁदेःधઓअऋؚ৫জ९ش५भଓౄृؚ
ؙ 新⼈教育が容易な⾔語が向いている ইঞشডشॡ ڀ ঽইঞشডشॡ॑ઞढथःॊ ڀ 以前はあえてのベタ書きだったが、開発効率や再利⽤性など ؙ の⾯からフレームワークを作成し利⽤するように ڀ V\PIRQ\ऩनभใோইঞشডشॡ॑ୗखथઞढथःॊ ؙ ऩनभਵखुୂऎऋؚਈીपमဗୗऔोथःॊेअट
ॸ५ॺपणःथ ᾧ ᾧ ᾧ ᾧ
ॸ५ॺपणःथ(1) まずはテストプレイなどから数値目標を⽴てる ؞୳औोॊৎமਢਯ ؞ঘش२ऋউঞॖदඝघॊৎ ؞ঘش२ऋ分間に⾏うリクエストの数 【例】 ৎமਢਯ যقৎமਢਯधमৎदமਢऋँढञঘॽشॡঘش२ਯधघॊك ঘش२ऋඝघॊৎ 分操作し続けて離脱と想定
ঘش२ऋ分間に⾏う平均リクエスト数 ڀ ীभৎமਢঘش२ਯ ঘش२ ؙڀ ীपজॡग़५ॺऔोॊਯ ؙؙڀ ଧपজॡग़५ॺऔोॊਯ َؙٙজॡग़५ॺଧُ॑ञचोयेः
ॸ५ॺपणःथ(2) -0HWHUद३ॼজड़॑ॊ ؞ऩॊसऎৰभඝपः३ॼজड़पघॊ ؞ਛभুऋऊऊॉघऍऩःेअपघॊ ؞全部をシナリオに⼊れるのは無理なので重い処理ランキングを元に、 利⽤頻度と処理の重さを考慮して配分する ॡছक़ॻप-0HWHUクライアントを複数台⽤意して⼀⻫実⾏ ୳खञਯக৯ఏ॑ॡজ॔दऌॊऊ॑નऊीॊ ॲওऩैॳগشॽথॢܒ॑ॉନघ ॸ५ॺपमॖথইছଳਡऋऎਏऩञी
このあたりを⼀緒に協⼒してくれる ॖথইছग़থ४ॽ॔ऋฤऔोॊ
॔উজડभৌੁ पणःथ ᾧ ᾧ ᾧ ᾧ
॔উজડभৌੁपणःथ(1) ৌੁपु౦رँॊभदದपହखऽघ পऌऎणपীऐथৌੁ ؙڀ ુৢীقইঞشডشॡكभৈச৲ ؙڀ શঌش४ृ$3,भৈச৲ 共通部分はあらゆる処理で呼ばれることになる णऽॉPVଫऎऩोयؚজॡग़५ॺऩैୀअ ા৷ৌટऋৈःુৢী॑રखथৌ૪खؚ
जभपશभউটॢছ॑ৌ૪खथःऎ
॔উজડभৌੁपणःथ(2) ৰपઞॎोथःॊৌੁॳख़ॵॡজ५ॺ 【共通処理編ٓ 共通処理内で何をしているかを全て把握しているか ڀ どういう処理が⾏われるか、64/は何回流れているか、などを完全に把握すること ڀ 共通部分に処理を⾜すときは、かならずチーム内で許諾を取ること
そもそも、その処理は本当に必要なのか ڀ 最も効果的な負荷対策は、処理の速度を速めるより処理⾃体を無くすことである ڀ ્पॡছॖ॔থॺ サーバ型のアプリの場合は、相当処理が削れる ڀ クライアント側でキャッシュや処理できるような処理がないか⾒直す य़কॵ३গमदऌऩःऊ ڀ $3&य़কॵ३গ ! PHPFDFKH !!!!! 0\64/ भದदசः ق$3&म:HE१شংਜ਼दभय़কॵ३গदँॊऒधपିਔك ڀ 共通処理内では、64/実⾏回数がゼロが望ましい
॔উজડभৌੁपणःथ(3) 無駄なものの発⾒ ڀ ૮ྤऩUHTXLUH॑ንघपमड़شॺটشॻभোऋ௫ ڀ ;+3URIभFDOOJUDSKदॳख़ॵॡ ڀ -HQNLQVृঽ५ॡজউॺदؚ ؙ
૮ྤऩਯृઞॎोथःऩःও९ॵॻऩन॑ जभିਔਡ ڀ টफ़شृग़ছشঁথॻছऩनؚઓॎफधऒौऋॿॵॡपऩॊऒधुँॊभदؚ ؙ ళयोॊਯऋःुभमؚङॳख़ॵॡ ॳগشॽথॢघॊऒध ڀ B6(66,21の利⽤は最低限に留めること
॔উজડभৌੁपणःथ(4) ৰपઞॎोथःॊৌੁॳख़ॵॡজ५ॺ 【個別処理編ٓ ः3+3ছথय़থॢ॑ॊقঔॢছᇗऌ১ك ڀ 実⾏速度を記録する仕掛けを作り、最も遅くて呼ばれる回数の多い順に対処 ڀ $SDFKHটॢऊैDQDORJऩनदૐੑघॊ্১ु
64/の⾒直し ڀ ःৃ়भऺध॒नम64/ऋਉदःق॔উজট४ॵॡदभೄमखःك ڀ ৰभমधॹشॱਯऋୀअधઅपऩैऩःؚॹشॱमଞपीपোोथउऎऒध ڀ ॖথॹॵॡ५ઞ৷भॡग़জृ५টشॡग़জটॢपൗढथऎॊॡग़জ॑ንघ ڀ PNTXHU\GLJHVWで早くても実⾏回数の多いクエリを発⾒しチューニング ڀ FDFWLなどのグラフから問題を発⾒する 仕様で⾒直す ڀ ல॑ऺऻञखणणुؚ୶ऩऎঝش६पोॊधऒौऋऩःऊ॑ଞपਫ਼ୈ ڀ どうしてもダメなら仕様の⾒直しを相談
॔উজડभৌੁपणःथ(5) '%ঐ५ॱشभৌੁ ৌੁभ੦মमَ१شংਯ॑ੜृखथৌ૪घॊऒधُदँॊ؛ ञटख:HE१شংृ'%५ঞॖঈमؚਯ॑ੜृघऒधदৌૢदऌॊऋؚ '%ঐ५ॱشमෞपमੜृघऒधऋदऌऩःञीؚऒऒऋॿॵॡधऩॊ؛ ेढथؚ॑ऩॊसऎभ१شংपীങघॊਏऋলथऎॊ .96 PHPFDFKHGऩन पऐॊ ڀ
情報が古い可能性があることに注意、トランザクション処理にはあまり使えない '%५ঞॖঈपऐॊ ڀ ৢଞम५ঞॖঈपமਢखؚॺছথ२ॡ३ঙথ৫ %(*,1 दঐ५ॱشपமਢघॊ ؙقইঞشডشॡঞঋঝदৰಎك ڀ ঐ५ॱشड़থজشद৫॑ਤीؚ৸ऩॡग़জऊैದप.96ृ५ঞشঈप ؙ ஷढथःऎृॉ্ु ڀ ॖথইছभଡണ্ଉपु൪॒दऎॊ
॔উজડभৌੁपणःथ(6) '%ঐ५ॱشীસ ളਯডشঝॻपীऐैोऩःॱॖউभ।شृؚৎઽઍযਯभ ः।شभৃ়ؚঐ५ॱشীસमೂऐथৢॊऒधऋदऌऩः؛ ႄઉীસ ڀ 切り離しやすいテーブルを他の'%に持って⾏く(例ൕંഝटऐશ'%ك ীસ ڀ ঘش२,'ਜ਼दীસघॊ
ڀ ॢটشংঝ'%॑ठؚजऒपঘش२,'धતವ'%॑੶ஈखञॸشঈঝ॑ण ڀ ৗૠఃஈৎपमਈु॔ॡॸॕঈঘش२ਯभऩः'%पఃஈ ਠ૾म॔উজડदളਯभ'%॑ದपॺছথ२ॡ३ঙথ৫ܒ॥ॵॺखथःॊ ڀ ীસ'%が多くなるほど性能が劣化する ڀ バックアップ時の整合性や、エラー時の処理が⼤変 ڀ ঘش२भঢ়ॎॉऋਘःेअऩ॔উজमॉतैः ڀ 0\64/ &OXVWHUपୄखञः
॔উজડभৌੁपणःथ(7) টॵॡ଼়ৌੁ मऊऊढथःऩःऋঃইज़شঐথ५ऋলऩःؚ /RFN ZDLW WLPHRXWऋघॊؚऩनभৃ়मটॵॡ଼়॑ઑअ ঐ५ॱشীસऔोथःॊৃ়मؚ デッドロック検出がされないので更に厄介 ْৌੁٓ ॺছথ२ॡ३ঙথৎम૭ચऩॉಢऎ
ڀ ॔উজડपਫ਼লभலෳऐ॑ःोथःॊ ڀ 0\6ORZ7UDQ&DSWXUHऩनभॶشঝ॑ણ৷ টॵॡऋऎऊऊॊॸشঈঝमऊऎীऐॊ ڀ ⾏ロックをかけるのでؚつのポイントを同時に更新できない ڀ এॖথॺ௺भॸشঈঝऩनदีॉऋठऩᵜ user_point_tbl ⁹user_id ⁹energy_point ⁹battle_point user_energy_point_tbl ⁹user_id ⁹energy_point user_battle_point_tbl ⁹user_id ⁹battle_point ᡒ ṯ
અपखथःॊੲਾ ᾧ ᾧ ᾧ ᾧ
અपखथःॊੲਾ ఎഭછ॑ओງஂखऽघ ؞:HEग़থ४ॽ॔भञीभॹشॱঋش५ૼ>ৰᄷ@ো ؙؙૈਦຫ෩ ؙڀ ્ؚपฆम९ش३কঝ।ش৫मഭ ؞ग़य़५ঃشॺभञीभ0\64/>ઈ৷管理@ ؙॺছঈঝ३গشॸॕথॢफ़ॖॻؙൔୌื෩ ؙڀؙৢَูჶমُؚロックを理解するのにオススメ ؞0REDJH੍॑इॊૼ
〜ソーシャルゲームの舞台裏〜 ؙؙ'H1$෩ ؙڀؙলञयऊॉؚৰᄷऩઍ ૼછਰਗटध ؞හधखथ:(%'% 35(66ؚ6RIWZDUH'HVLJQ ؞धॉँइङؚमथवभَ॥থআগشॱ؞,7ُカテゴリは全部⾒てます
ऽधी(1) ९ش३কঝ।ش৫ु౦رॎॉणणँॊ ीैोॊुभभ৲पฑໞपৌૢखथःऌञः クラウドとソーシャルゲームは相性が良い ॖথইছ৭लमశଞपਏ ॥থঃॿृAPIमౄৰखथःॊधृढरॉᇃखः ॹॕ५ॡI/O॑ଳ ৈटऐनৈ५ঌॵॡमജऑधखथँॉऋञः
ऽधी(2) ইঞشডشॡमঽऋड़५५ও ৌੁमॸ५ॺधॳख़ॵॡজ५ॺ॑ढथཤرधৌ ੁ DBঐ५ॱشभೄऋຩधऩॊ पमॖথইছ؞॔উজऋீधऩढथৌૢ 基本に忠実に鉄板構成で、ただし⾏けるところはガン फ़থध পऩऒधुःऐन௫खःदघؚ௫खिऒधऋਏ ःणुපभੱ॑ພोङप
য൳ૐ ઙૄভॖথইॕॽॵॺঝشউदमग़থ४ॽ॔॑൳ૐखथःऽघ 社⻑も含めほぼ全てがプログラマで技術者に優しい環境 ඐਜ北海道札幌市 उःखः୫सःढरःؚঽேःढरःؚ୨ऩःؚჳखः 短い通勤時間、徒歩や⾃転⾞で通勤ীधऊु२ছ 8ॱشথؚ,ॱشথপຈಶ 3+3৫ग़থ४ॽ॔ ५ঐ৫ग़থ४ॽ॔ 0\64/ग़থ४ॽ॔
ॖথইছग़থ४ॽ॔
ؙ ओಯലँॉऋधअओकःऽखञ