ç§ãã¡ã¯èª°ã§ããïŒ
ç§ãã¡ã®éžæã説æããããã«ã¯ãäŒç€Ÿã®è©³çŽ°ã説æãã䟡å€ããããŸãã Project 111 Webãµã€ããéããšïŒããã°ã©ãã¯æ¢ã«ã¹ã©ãã·ã¥ãããå¹æããããã©ããã確èªããŠããŸãïŒãeã³ããŒã¹ã®ãªã³ã©ã€ã³ã¹ãã¢ãšéåžžã«ãã䌌ãŠããŸããããªã³ã©ã€ã³ã¹ãã¢ã®ããšã§ã¯ãªããB2Bã§ãã ã€ãŸããç§ãã¡ã«ã¯åžžé£å®¢ãããŠã圌ãã®å€ããããŠãããŒã±ãã£ã³ã°ã¯çã£ãŠãããæ°ããã¹ããŒã ãå²åŒãããã¢ãŒã·ã§ã³ãªã©ãèããŠããã®ã§ã販売ã«ã¯ããªãè€éãªããžãã¹ããã»ã¹ããããé·ãæéãããããã»ãŒ1é±éããããŸãã ãµã€ãã®é¡§å®¢ã§ããããŒââãããŒã¯ãERPã·ã¹ãã ã®æ¬æ ŒçãªåŸæ¥å¡ã§ã ãã€ãŸãã販売éšéã®éåžžã«å€ãã®æ©èœã䜿çšããŠããŸãããèªåã§æ¯æããè¡ãããšã¯ã§ããŸããã ãã®ãããã·ã¹ãã ã¯ããã³ããšã³ããå«ãéåžžã«éãã§ãã
ç§ãã¡ã¯äžèŠæš¡ã®äŒç€Ÿã§ãã æ°ã¯ããã»ã©å€ããããŸããã2300人ã®ãŠãŒã¶ãŒããµã€ãã«ãã°ãªã³ããŠããŸãïŒå²åŒãšæ¡ä»¶ãåããããŒãããŒïŒãããããã¯ããããŒãŠãŒã¶ãŒãã§ããã€ãŸããå庫ãŸãã¯è²¡åã®åŸæ¥å¡ãšåãè² è·ãäœæããŸãã ç§ãã¡ã¯é·ãéã€ã³ã¿ãŒãããã«è³ããŠããŸããã 泚æã®97ã98ïŒ ã¯ ãªã³ã©ã€ã³ã§è¡ããã泚æã®60ïŒ ã¯å¶æ¥å¡ã®æã«è§Šããããšãªããèªåçã«å庫ã«è¡ããŸãã
èªåã§ã·ã¹ãã ãæ§ç¯ãããšããã¢ã€ãã¢ãã©ã®ããã«ããŠæãã€ããã®ã§ããïŒ
2000幎代ã®åããç§ãã¡ããããè¡ã£ãŠãããšãããé«è² è·ããšããèšèã¯èããããã¢ã€ãã¯ã¹ãããããŸããã§ããã å šäœãšããŠãInternet Explorer 5.5ãå°ããããŸããã äŒç€Ÿã®çµå¶é£ã¯ãæªæ¥ã¯ã€ã³ã¿ãŒãããã«ãããé»è©±ã§æ³šæããã®ã¯æªã ãã¢ããªã±ãŒã·ã§ã³ãããŒãããŒã«é åžããããŸãã¯ãŠã§ããµã€ããæã£ãŠããïŒãããŠãŠã§ããµã€ããæã£ãŠããïŒã®ã§ã¯ãªãããšåŒ·ãæããŠããŸããã ç§ãã¡ã®ãµã€ãïŒãã¡ã€ã³ïŒã¯1998幎ã®ããã«ãDellã®5幎åŸã«ç»é²ãããŸããã ãããŠç§ãã¡ã¯åšããèŠåããã
2000幎代åé ã«ã¯ãæ¯å¹ŽãERPã·ã¹ãã ã®å¢å°ã«æ°ããå¢å°ã®ããæ°ããæ±ãããã€ãç»å ŽããŸããã ãããŠããè³Œå ¥ãããã®ãããå°æ¥ã®ã·ã¹ãã ãæ§ç¯ãããã®ãã«é¢ããéžæã¯éåžžã«å°é£ã§ããã ã€ãŸãããã³ããŒããã¯ãæããŠããŸããããäžæ¹ã§ããããã®ERPã·ã¹ãã ã®ããŒãããããç解ããŠããŸããã§ããã ããã«ãERPã·ã¹ãã ã«ã¯ããªãå³ããã©ã€ã»ã³ã¹å¶éããããŸããããããã¯äŸç¶ãšããŠååšããŸãã ããªããæããªãããªã1CãåããBitrixãããã«ãã蟌ãã§ãåãšã¡ã€ã³ãšååŒããŸããïŒ 1Cã«ã¯ãWeb APIã®ãããã·ãèš±å¯ããªãæ確ã«æ§é åãããå¶éããŸã ãããŸãã äœããã®çš®é¡ã®XML APIããããŸããã€ãŸãã1Cã¡ãœããããã«ã§ããŸãã ãã ãããã®æ¹æ³ã§çè«çã«äœ¿çšã§ãããã¹ãŠã®æ¥ç¶ã«ã¯ã©ã€ã»ã³ã¹ãå¿ èŠã§ãã ã€ãŸãã1Cã§åäœãããµãŒãã¹ããªã¢ã«ã¿ã€ã ã§ãµã€ãã«æçš¿ããå Žåããã¹ãŠã®ã©ã€ã»ã³ã¹ãè³Œå ¥ããå¿ èŠããããŸãã 1äžäººã®ãŠãŒã¶ãŒãããå Žåã1äžã®ã©ã€ã»ã³ã¹ããŸã ååšããå Žåã¯è³Œå ¥ããå¿ èŠããããŸãã
å¥ã®ã¢ãããŒãããããŸãã ããã¯ã¹ã¿ã³ãã¢ãã³ã®ERPã·ã¹ãã ãšã¹ã¿ã³ãã¢ãã³ã®ãµã€ãã§ããããããã®éã«ã¯äœããã®äº€æããããŸãã ããããç§ãã¡ã¯é£ããããžãã¹è²©å£²ããã»ã¹ããããšèšããŸããã泚æã®ã³ã¹ããèšç®ããããã«ããããã12ååã2åã®ããŒãã«ãå°ããŸãã ãããã¯ãããªã¥ãŒã ãã£ã¹ã«ãŠã³ãããã¹ããªã«ã«ãã£ã¹ã«ãŠã³ãããã£ã¹ã«ãŠã³ããªã¹ããç¹å®ã®ã¯ã©ã€ã¢ã³ãã®å¥çŽãå¥çŽæ¡é ãé貚ã§ããããšãŒãããã®ãªã¹ãã§ãäœããã®äŸ¡æ Œãªã¹ããæ¡çšãããŠããŸãã ãã®ã¢ã«ãŽãªãºã ãæžãããšã¯ãããæå³ã§èŠçã§ãã ãŸããERPã·ã¹ãã ã§ãã®ã¢ã«ãŽãªãºã ãèšè¿°ããå¿ èŠãããå Žåã¯ã©ãã§ããããïŒ äžäººãæžããã ããããã©ãããããããPHPããã°ã©ããŒã«è¡ããããã«ã¯XMLã§è€è£œããã25åã®ããŒãã«ãããããã®ã¢ã«ãŽãªãºã ãç¹°ãè¿ããšèšããŸãã ãã¡ããã圌ã¯ç¹°ãè¿ããŸãããæåã®ã¢ã«ãŽãªãºã ã§ã¯ãšã©ãŒãçºçããå¯èœæ§ãããã2çªç®ã®ã¢ã«ãŽãªãºã ã§ã¯ãã¹ãŠãééã£ãŠããããšãããããŸãã ã€ãŸããåããžã§ãã2åå®è¡ããŸãã
ãã®ããã ãµã€ãäžå¿ã®ERPãæ§ç¯ããããšã«ããŸãããã€ãŸãããã¹ãŠã®ããŒã¿ããã¹ãŠã®ããžãã¹ããžãã¯ãããã³ã©ããããããã¹ãŠãææãã1ã€ã®ã³ã¢ãåãªãã€ã³ã¿ãŒãã§ã€ã¹ã«ãªããŸãã 圌ãã¯ãã§ã«ããããã®ç¥æ§ãæã£ãŠããŸãããããžãã¹ãããã¯ã¯å®éã«ã¯å«ãŸããŠããŸããã çŽ2æéåã«ãCMSã·ã¹ãã ãšBitrixãåžå Žã§å°æ¬ãããããŒãããŒãšç«¶åä»ç€Ÿã芳å¯ããæ¹æ³ã«ã€ããŠè°è«ããŸãããæè¿ãäŒæ¥ã®1ã€ã1Cã®æ¬¡ã®ããŒãžã§ã³ã«åãæ¿ããŸããã 圌ãã¯ããæ倧ã®1CããŒãããŒã¯äœããã®éã§ãããç§ãã¡ã®ããã°ã©ããŒããŒã ã¯1幎éåããŠå®è£ ããããšå ±åãã6ãæéãã¹ãŠã®æ©èœã倱ã£ãããšãããããŸããã ãªãã§ïŒ 圌ãã¯å€ããµã€ããæšãŠãæ°ãããµã€ããäœããªããã°ãªããªãããã§ãã ãããã£ãŠãäºçŽã¯é»è©±ã§è¡ãããŸãã ããŠãæåŸã®èŠå ã¯ããµã€ãäžå¿æ§ã«å ããŠããããã¯ã¹ããžã®ææãçµµãæããã®ã§ãã ãããã§ãããšä¿¡ããŠããŸããã

äžè¬ã«ãã¹ãã¢ãããã·ãŒãžã£ã§ããžãã¹ããžãã¯ãå®è¡ããããšã¯è¯ããªããšèããããŠããŸã ã ç§ãæ¥ãããããå±ã§ããã ç§ãã¡ã¯ãããäœå¹Žãç¶ããŠããŸããããRomanã¯ç§ã«èšã£ãããã«æããããã段éã§å®éã«ã¯ç§ãã¡ã®ãããªäººãããããããããšãå€æããŸããã ç§ã ãã§ã¯ãããŸããã
ç¥è©±ã¯äœã§ããïŒ
ç°ãªãããŒã¿ããŒã¹éã®ç§»æ€æ§ã¯å€±ãããŸãã ã¯ãããããŸãã ç¶æããã®ã¯é£ããã§ã ã¯ããEclipseã®ã¹ãã¢ãããã·ãŒãžã£ã¯ãã©ãããããããããã§ã¯ãããŸããã å±éæ¹æ³ ãŸã ããŒã ã§éçºãè¡ãããšã¯å°é£ã§ãã 確ãã«ãpl / sqlããã·ãŒãžã£ãfig-figãããã³ä»ã®èª°ããæ¢ã«ããã§ã³ã³ãã€ã«ããŠããŸãã çã«ããªã£ãŠããããã§ãã æåŸã«ãã¹ãã¢ãããã·ãŒãžã£ã®äœæãéå§ããå Žåãã·ã£ãŒãã£ã³ã°ã¯ãããŸãããäœããã®åæããŒã䜿çšããŠåæ£æ§æãã©ã®ããã«è¡ããŸããïŒ ãããçã«ããªã£ãŠããããã§ãã
ããããããã¯æè¡çã«ç°è°ãå±ããã®ãé£ããã§ãã åã©ããã¡ã®è³ªåã«çããŸãããã ãããŒã¿ããŒã¹éã®ç§»æ€æ§ããããŠèª°ããããå¿ èŠãšããŸããïŒããã®ãããªå¯Ÿè©±ãæ³åããŠãã ããã ã¯ã©ã€ã¢ã³ãïŒãæããŠãã ãããã¢ããªã±ãŒã·ã§ã³ãå¥ã®ããŒã¿ããŒã¹ã«è»¢éã§ããŸããïŒãã¯ããå°ãªããšãæ¯æ¥ãMicrosoft-OracleãMicrosoft-Oracleã ãããŠèª°ããããå¿ èŠãšããŸããïŒ

ããŒã¿ããŒã¹éã®ç§»æ€æ§ã¯ã補åã販売ãã販売è ã«ãšã£ãŠãã©ã¹ã®æ©èœã§ãã ãããããã®è£œåãåãåã£ãŠäœ¿çšãããšãã«ã¯ãããã»ã©éèŠã§ã¯ãããŸããã
次ã®ãã€ã³ãïŒã¡ã³ããã³ã¹ãé£ããã ã¯ããå šåœã«100ã®ã€ã³ã¹ããŒã«ãããå Žåãããã¯ã¹åããã補åãç¶æããããšã¯å°é£ã§ããããããã«åå¥ã®ã¹ãã¢ãããã·ãŒãžã£ããããŸãã çªç¶ãéã³å¿ã®ãããã³ãæã£ãã¯ã©ã€ã¢ã³ããäœããã³ã³ãã€ã«ããããã«ãªããšãªãç¥çµè³ªã«ãªããå±éæ¹æ³ãããŒã«æ¹æ³ãæããŠãããŸããïŒ ãªããšãªãé£ããã
ç¹°ãè¿ããŸããããã®è£œåã®æ¶è²»è ã§ããå Žåã¯ãèªåã§äœæããŠäœ¿çšããã€ã³ã¹ããŒã«æ°ã1äžåã§ã¯ãªãå Žåãããã¯åé¡ã§ã¯ãããŸããã 倧èŠæš¡ãªããŒã ã§ããã¯ã¹ãé転ããã®ã¯é£ããã§ããïŒ ç§ãã¡ã¯äžå°äŒæ¥ã§ãããHighLodã§ã¯ãªããYandexã§ã¯ãªããGoogleã§ããããŸãããç§ãã¡ã¯æ®éã®çŽçšè ã§ãã Avitoãé«è² è·ã§æµ®äžããŠãããšããç§ã¯YandexãMail.RUãç¥ããŸããããã®åŸãç§ãã¡ã¯éåžžã®çŽçšè ã§ããã1Cã§ã²ããŸã§ç«ã£ãŠããŸãã 倧ããªããŒã ã«ã¯ãéããããŸããããã®ãããªè§ã®ããããã°ã©ããŒã«ã¯ãéããããŸããã ç§ãã¡ã®ããŒã ã¯å°ããã§ãã æéãæ®ã£ãŠããŠé¢çœãå Žåã¯ãå®éã«ã©ã®ããã«èšèšããã³å®è£ ãããã説æããŸãã
ããããã¬ã¬ã·ãŒã³ãŒããµããŒããéå§ãããŸã§ã«ãå€ãã·ã¹ãã ããŸãã«1Cãªã©ãããã³2.5人ãã·ã¹ãã ã®äœæãæŽæ°ãããã³ç§»è¡ãè¡ã£ãŠããŸããã2人ã®æ¬ç©ã®ããã°ã©ããšç§ã§ãã ã€ãŸãã倧ããªããŒã ã«é¢ãããã®ã§ã¯ãããŸããã
ç§ãã¡ã¯äœãæ®ããŸãããïŒ
ç¥è©±ã¯æ®ã£ãŠããŸã ïŒ ã·ã£ãŒãã£ã³ã°ãåæ£æ§æ ã ã·ã£ãŒãã£ã³ã°ã«å¯ŸããŠãè°è«ããã®ã¯éåžžã«ç°¡åã§ããçãããSkypeã«ã€ããŠèªãã ããšããããŸããïŒ ã¹ãã¢ãããã·ãŒãžã£ã pgbouncer ã pl / proxyãªã©ã«ãã¹ãŠããããŸãã ããŒã¿ããŒã¹ã§ã¢ããªã±ãŒã·ã§ã³ãããèªäœã«çŽæ¥ç»ãããšãã§ããªãå Žåã¯ãã¹ãã¢ãããã·ãŒãžã£ãããŒã¿ããŒã¹ã«ãã«ããããšããã§ãããå éšã§ã¯ã¢ããªã±ãŒã·ã§ã³ãã ãŸãããšãã§ããŸãã ã€ãŸããã¹ãã¢ãããã·ãŒãžã£ãªã©ã§ã·ã£ãŒãã£ã³ã°ãè¡ãããã«ãããã¯å¯èœãªããšã§ã¯ãªãããªã¯ãšã¹ãã§å¿ èŠãªå Žåã«ãå¿ èŠã§ãã pl / proxy ã dblink ã foreign data wrapperããããŸãã ããããã¯ååšããŸããã ããã«ã·ã£ãŒãã£ã³ã°ãè¡ãå¿ èŠããããŸããïŒ ããã¯æšæ¥ã®ã¬ããŒãã§ãã§ã«è°è«ãããŸããã äžè¬ã«ãçŸåšãäžèŠæš¡ã®ããžãã¹ã§ã¯ãYandexã§ã¯ãªãMail.ruã§ãªãå Žåãããã¯ããã»ã©éèŠã§ã¯ãªããããããŸããã
ãªãPostgreSQLãªã®ãïŒ
ãŸãã æçããpl / pgsql ã 圌ã¯98幎ç®ãããã«ã¯97幎ç®ã«ãç»å ŽããŸããã å³æ Œããæ©èœæ§ãåŠè¡çã¢ãããŒãã Postgresã®ããã¥ã¡ã³ããèŠããšãè¯ããã¥ãŒããªã¢ã«ã®ããã«æžãããŠããŸãã ã€ãŸããããã¥ã¡ã³ããèªãå¿ èŠãããã·ã¹ãã 管çè ãåãå ¥ãããšããFreeBSDã®ããã¥ã¢ã«ãšãµã€ãã®ããã¥ã¡ã³ãã䜿çšããŠãã¹ãããŸããã€ãŸããè¯ãè±èªãããããã¹ãŠãæ確ã§1ãæã«ãããŸãã ãªãŒãã³ãœãŒã¹ãšç¡æã©ã€ã»ã³ã¹ -ããã§èšãããšã¯ãããŸãããããŸããŸãªãªã¹ã¯ã軜æžãããŸãã 2005幎ã«1C 7ãå°å ¥ããå Žåãå€ãã®èŠçãçµéšããããã€ãã®æ å ±ã·ã¹ãã ãå€æŽããŠããŸããã ããŒã¿ããŒã¹ã®å€æŽã¯ããããšã¯äœã®é¢ä¿ããããŸããã
ãããŠã98幎ç®ã®ã©ããã§ãã®ãããªé¢çœãWebãµã€ããã§ããŸããã98幎ç®ã«ã¯PostgreSQLãç«ã¡äžããŠäœæ¥ããŸããã ç§ã¯ããã«ããªãã£ãã®ã§ã1幎åã§åå ããŸããã ç§ã®æèŠã§ã¯ããªãªãŒã¹6.4ã§ããã ããã«ãæ確ãªéçºèšç»ã ç§ãã¡ã¯ãŸã ãå ¬éããããŠã§ããµã€ãã®ã¿ãèšç»ããŠãããããŒãããŒã«ééãããŠããã®ã§ã¯ãªãã誰ããæ¥ãã°èª°ã§ãç»é²ã§ããŸãã 1幎åãã2幎ãT-Searchã«ãªãããšã¯ãã§ã«ããã£ãŠããŸããã ããŒã ã«ã¯ãçžäºäœçšã®ããã®ãªãŒãã³ãªéçºè ãåªããã³ãã¥ããã£ãããããã°ãããããšäœãèµ·ããããç解ããçŸå®çãªèšç»ãç«ãŠãããšãã§ããŸãã ãããŠããããã¯å®çŸããŸãã

ã¹ãã¢ãããã·ãŒãžã£ã®æªã é¢ãšè¯ãé¢ ã ããªãã¯å·šå€§ãªITäŒæ¥ã§ã¯ãªããããã¯ã¹ã·ã¹ãã ã§ã¯æºè¶³ã§ããªãããžãã¹ã§ãããç¬èªã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãå¿ èŠã ãšæ³åããŠãã ããã å€å žçãªéããã©ãã°ãJavaãCã§ãã®ãããªãã®ãæžãããšãã§ããŸãããããã°ã©ããŒã«å¯Ÿããã€ã³ã»ã³ãã£ãã¯éåžžã«é«ããªããã°ãªããŸããã ãããŠããã¹ãŠã®çã¿ã¯ãããã®ããã°ã©ããŒã«ãããŸãã ã¡ã¢ãªã®åé ãå¿ ç¶çã«çºçãããªãŒã¯ã«ã€ããŠèããå¿ èŠããããŸããäœããã®çš®é¡ã®ã¹ã¯ãªããèšèªãå¿ èŠã§ãããéãååŒãapplikuhaã皌ãããžãã¹ã«1æ¥ã«3åãå±éãã§ããªãããã§ãã ããžãã¹ã¯å€åºå ã§é å¿ããå¿ èŠããããåæ¢ããããšã¯ã§ããŸããã ãŸããã¹ã¯ãªããèšèªã䜿çšãããšãå€åºå ã§ããžãã¹ã«ãŒã«ãå€æŽã§ããŸãã äœããã®ãããã¡ã€ãªã³ã°ãå¿ èŠã§ãã äžè¬çã«ãããã»ã©åçŽã§ã¯ãããŸããã ããã§ãsgresã¯ããããã¹ãŠèªåèªèº«ã«åããŸãã
ã¡ã¢ãªãªãŒã¯ã«ã€ããŠã¯ãŸã£ããèããŠããŸãããåé¡ã¯ãããŸããã§ããã ç§ãã¡ã¯æ°ã¶æéããã«ãªã³ã©ã€ã³ã§ããŸãã ãããŠããããéåžžã«çããæŽæ°ãããå ŽåãæŽæ°ãããŸãããã©ã³ã¿ã€ã ã¯ãŸã£ããåæ¢ããŸããã ã¡ã¢ãªãªãŒã¯ã¯ãããŸããã ãããã¯éåžžã«åªç§ãªããã°ã©ããŒãç§ãã¡ã®ããã«è§£æ±ºãããã®ã§ãã ç§ãã¡ã¯ãéåžžã®ååŒããžãã¹ãšããŠæè¿ã«ãããŸãã ã¹ã¯ãªããèšèªã¯pl / pgsqlã§ãããããã䜿çšããŠäœ¿çšããŸãã æš©å©ãšã¹ã¿ããã®ãã§ãã¯ããããã¡ã€ãªã³ã°-詳现ã¯åŸã»ã©ã ããããåé¡ã解決ãããŠããŸãã
ã€ãŸãããããŒçšã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãååŸããŸããããã«ã¯å¶éããããŸãããã€ãŸããæãã€ãªãORMã®ãããªãã®ã¯ãããŸããã ããçšåºŠãŸã§ã ã·ã³ãã«ãªèšèªããšã³ããªã®äœãããå€ã ãããã¯ã·ã§ã³ãäžããããªãã£ãããã©ã®ããã«äœãæžããã瀺ãããã圌ããªã¬ãŒã·ã§ãã«æèãæã£ãŠããå Žåãããã¯éæããããç§ã®æèŠã§ã¯ããªããžã§ã¯ãæèãããå°ãæ©ãã圌ã¯ãã§ã«ãããã¯ã·ã§ã³ã«å ¥ããããšãã§ããéåžžã®ã³ãŒãããã§ã«çæã§ããŠããèŠãŠã ç§ã¯å®éã«20幎åŸã«éè·ããpl / pgsqlã³ãŒããç解ããèªåèªèº«ãå°ãªãæžãèœåãä¿æããŠããŸãããã³ãŒããæé©åã§ããŸãã ã€ãŸãããã®ç¥èã¯é·æéä¿åãããŸãã
ã»ãã¥ãªãã£ã¯ã2000幎代åæã«ç§ãã¡ãèããŠãããã®ã§ããã¹ãã¢ãããã·ãŒãžã£ãä»ããSQLã€ã³ãžã§ã¯ã·ã§ã³ãè©°ã蟌ãã®ã¯éåžžã«å°é£ã§ããæ¬åœã«è¶³ãèžã¿å ¥ããå¿ èŠããããããŸãçãå¿ èŠããããŸãã ãªããããéèŠã ã£ãã®ã§ããïŒ èª°ããCMSã·ã¹ãã ãäœæãã1ç§ããšã«ç©Žããã£ã±ãã«ãªããŸããã 2001幎ãã2002幎ã«ãããŠãCMSã®æãš10åã®15ã20ïŒ ã®ãµã€ãã§ãäœããã®ã€ã³ãžã§ã¯ã·ã§ã³ãæãèµ·ããããšãã§ããããã§ãã
ã¹ã©ã€ãã®æ¬¡ã®ãã€ã³ãã¯éåžžã«ç©è°ãéžã-ããã¯ã€ã³ã¿ãŒãã§ã€ã¹ããã®åé¢ã§ãã æ°åãããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ãäžéšã®å éšéçºããŸãã¯ãšã³ãã«ã¹ã¿ããŒãã¢ã¯ã»ã¹ã§ããªããµã€ãããããŒãããŒã®ã¿ã®ããã«å ¬éããŸããã ã³ãŒãã¯ããŸããªããããã«å¥ã®ãã¯ãããžãŒã«ç§»æ€ãããããžãã¹ããžãã¯ããŸã£ãã倱ãããšã¯ãããŸããã§ããã ã€ã³ã¿ãŒãã§ãŒã¹ããã®åé¢ã¯ãã©ããåã§ãããã©ããæªã§ããã ãããŠãããžãã¹ããžãã¯ãããã©ãŒãã³ã¹ãšã¯é¢ä¿ãªãå Žåãããã³ããšã³ãã§ãã¯ãããžãå€æŽã§ããŸãã
2000幎代åæã«æ»ããŸãããã ããã§å€æŽãããã€ã³ã¿ãŒãã§ã€ã¹ãã¯ãããžãŒã®æ°ã¯ïŒ ã€ã³ã¿ãŒãããã€ã³ãã©ã¡ãŒã·ã§ã³ãµãŒããŒäžã®Visual Basicã§ããã°ã©ã ããå¿ èŠããããŸãã 誰ããçç ãPHPãRubyãèŠãŠãããããã¹ãŠã®èšèããã©ãã«ãè¡ããªãã ã€ã³ã¿ãŒãã§ã€ã¹ãã¯ãããžãŒã¯éåžžã«æ¥éã«å€åããSQLã¯ãŸã çããŠããŸãã ç§ãã¡ã®ã·ã¹ãã ã§æãå€ãé¢æ°ã¯ãããªããéºç©ã«è¿ã¥ãã«ã€ããŠ1998幎ã«æžãããŸããã 確ãã«ãå æ¥èŠãŸãããããã®ã³ãŒãã¯æ©èœããŸãã ã€ãŸãã12幎åã«ç§ãã¡ãæžãããã®ã¯ããŸãã«ãã®ã©ã³ã¿ã€ã ã§åäœããŸãããããã«ãããã ãããã®ãµãŒã¯ã«ã§ãã ããPHPã«ããŸãããïŒã SQLã¯éåžžã®èšèªã§ãããã©ããã§å¶éãããŠããŸãã ããžãã¹ããžãã¯ã®é·å¯¿åœã¯äŸ¿å©ã§ãã

æªãé¢
æç±æ§ãè¯ã ãã¯ãã åºæ¬çã«ãåªããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãããã°ãããžãã¹ããžãã¯ããããACLã¯ã€ã³ã¿ãŒãã§ã€ã¹ãšå¯æ¥ã«é¢é£ããŠããŸãã åŸæ¥å¡åãã®å éšããã°ã©ã ãšWebãµã€ããšãã2ã€ã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŸãã ãããŠãäž¡æ¹ã®ã¢ããªã±ãŒã·ã§ã³ã¯éåžžã«ç°ãªã£ãŠããŸãã ãã®ç¥èãšã¹ãã«ãå ±æããããšã¯ãé·å¯¿åœã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãå ¥æããã»ã©äŸ¡å€ããããŸããã§ããã
çµ±åãããéçºããŒã«ã¯ãããŸããâã¯ããæ¬åœã§ãã ããŒãžã§ã³ç®¡çã·ã¹ãã ãšã®æ¥ç¶ãpgAdminã«çµ±åãããŠããŠãã³ãŒããå°ã匷調ãããŠããå Žåãããã¯çœ®ãæããããŸãã...ããã§ããŸã çã¿ããããŸãã ç§ãã¡ã®äžã«ã¯pgAdminã§åããŠãã人ãããã°ãèªå眮æã®ããã«ems-sqlã奜ããªäººãããŸãããããã¹ãããšããããŸãã
次ã®ç¬éã ãã£ãã·ã³ã°ã®åé¡ã¯è§£æ±ºããã ã¡ã¢ãªã®å²ãåœãŠã®åé¡ã解決ããªããšèšããŸããããååãªãã£ãã·ã³ã°ããªãå Žåã¯é²æ©ããŸãããæ°ããæœè±¡åã¬ã€ã€ãŒããããŸãã ããã¯ããŸãè¯ããããŸããã ããã³ããšã³ããæºããããšãã§ããªãããžãã¹ããžãã¯ãæžããããã°ã©ããŒãããå Žåãããã€ãã®ããã«ãŠã§ã¢ïŒããããããã³ããšã³ãããã°ã©ããŒãäœããã®JavaãŸãã¯Cã§èšè¿°ããŸãïŒã衚瀺ãããŸãã ããã¯å®éã«ã¯é£ããåé¡ã§ãã ãã£ãã·ã¥ãšãã£ãã·ã¥ã®ç¡å¹åã¯2ã€ã®åé¡ã®äžã§æãé£ãããããçè«çã«ã¯æãå°é£ã§ãã 誰ãã2çªç®ã®ããšãç¥ã£ãŠããŸã-å€æ°ã«æ£ããååãä»ããããã
å Žåã«ãã£ãŠã¯ãã¹ãã¢ãããã·ãŒãžã£ãäœæãããšãã«ãæééãã«åæ¢ããã®ãé£ããããšããããŸãã ç§ãã¡ã®Javaããã°ã©ããŒã¯ãpl / perlãšmimeã§æåãäœæããŠéä¿¡ããã¹ãã¢ãããã·ãŒãžã£ãæžããã®ã§ãç§ãæãŸããŸããã ããã¯ããããŸããã

äžèº«ã¯ïŒ
ããã§9.4ãã§ããŸããã éçºã¯7.4ããå§ãŸããŸããã 7.4ãæã«ãã人ã¯ããŸãããïŒ ã¹ãã¢ãããã·ãŒãžã£ãäœæããŸãããïŒ ãã®çã¿ãæãã人ãããŸãã èŠããªãã£ã人ã«ãšã£ãŠã¯ãã¹ãã¢ãããã·ãŒãžã£ã®æ¬æã¯äžéåŒçšç¬Šã§å²ãŸããŠããŸããã ãããŠãæ§æã¯ããã«æ£ç¢ºã«åŒ·èª¿ãããŠããŸããã§ããããã¹ãŠãåè¿ããè¶è²ã§ããã ããããããã«æ±ºå¿ããåæ¢ãªäººã ãããŸããã ç§ãã¡ã®ããžãã¹ããžãã¯ã¯3åã®ã¹ãã¢ãããã·ãŒãžã£ã§ãã ãããã»ã©å€§ããã¯ãããŸãããã³ãŒãã®éã§èšç®ã§ããŸãã æåã«å€ãã®ã³ãŒããäœæããå ŽåãçŸåšã¯éå»5.5ã6幎éã§ããã»ã©å€ããªãããšã«æ³šæããŠãã ããã ã³ãŒãã¯ããªãããã£ãŒã§ããã³ã¡ã³ããé¢æ°ããããŒããããŸãã ããã¯ãããããAndreiã話ããã³ãŒãã§ã¯ãããŸãããããã°ã©ãã1æ¥80è¡ãååŸããã®ã¯é£ããããšã§ãã ããŒã¿ããŒã¹ã¯ååã«æ£èŠåãããŠããã700ã®ããŒãã«ãããããããã®æ°çŸã¯åæã§ãããè¿ãå°æ¥ã«ãããåŒãåºããŸãã ããããå°ãéãæé·ããŠããŸãããããŒã¹ã¯ã»ãŒåãã§ãã
çãååŒã倧奜ãã§ãã çããã©ã³ã¶ã¯ã·ã§ã³ã¯é«éãªäœæ¥ãæå³ããèšåŒµããã€ã³ããã¯ã¹ã®ããªãŒããŒããããã¯ãªããããã¯ãåŸ æ©ããŸãã çãããžãã¹é¢æ°ãèšè¿°ã§ããå ŽåããããçãããŸãã constrates ã å€éšããŒãªã©ã倧奜ãã§ãã ãªããªã ãèšå€§ãªéã®ãšã©ãŒããªããªãããã§ãã æšå¹Žã1ã€ã®æ©èœã§ãå®æ°ãã®éåãçºçããŸãããããã¯ãã»ãŒ6幎éæ©èœããŠããŸããã ããã«ééãããããŸããããããã¯ãã£ãã«çŸããŸããã§ããã äŸãæããã®ã¯é£ããã§ãã ããããåºäž»ãå·Šæã§1ç®±ãå³æã§ãã1ç®±ãåãåºããããŒã³ãŒãã¹ãã£ããŒã錻ã§æŒããŠããã«äœãã移åãããšããã®ãšã©ãŒãçºçããŸãã ãããŠåœŒå¥³ã¯èµ·ããªãã£ãïŒ å¶çŽãæ©èœãããããç§ãã¡ã¯åœŒå¥³ãæãŸããŸããã äžè¬çã«ãå¶çŽã¯é©åã§ããã足å ã§èªåãæã€ããšã¯ã§ããŸããã
ããŒãã«ã¯æ£èŠåãããŠãããšèšããŸããã éæ£èŠåã倧奜ãã§ãã éæ£èŠåã¯äž»ã«ãµã€ãã§å¿ èŠã§ãã ããŸããŸãªããŒã¿ãããªãåºãããŒãã«ã«è©°ã蟌ãã§ããããµã€ãã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯éåžžã«é«éã§ãã äžããã®ã¯ç°¡åã§ããçµåãã¯ã»ãšãã©ãããŸããã
ORMãšãã³ãŒããžã§ãã¬ãŒã¿ãŒãã¯å«ãã§ããORMèªäœã®ã€ããªãã®ãŒã¯ççŸããŸãããèžã¿èŸŒãã ãšãããªãç§ãã¡ãæ··ä¹±ãããã®ãã説æã§ããŸãã

ããã³ããšã³ãã¯tomcat + nginx㧠ãããã€ãã®è£œåãå®è¡ããŸãã ãµã€ãã«å ããŠãã€ã³ãã©ããã補åïŒCMSãšCRMã¯ç°ãªããŸãïŒãã¬ããŒãïŒJasperã®ã¹ã¿ã³ãã¢ãã³ãµãŒããŒïŒããããŸãã Borland C Builderã§éå§ãããå éšã¢ããªã±ãŒã·ã§ã³ããããçŸåšã¯Embercaderoã§ãïŒã»ãšãã©éçºãããŠãããããã®ãããªã€ã³ã¿ãŒãã§ãŒã¹ã¯ãŸããŸãå°ãªããªã£ãŠããŸãïŒã ãããã¯ãã¹ãŠpgbouncerãä»ããŠæ©èœããŸãã ãããã«ã¯åå¥ã®æè¬ã®èšèããããŸãã åæãSEOãåŒã³åºããè¡ãã¢ã¹ã¿ãªã¹ã¯ãªã©ããŸã å€ãã®ããšããããŸãã ãŸããããŒã¿ããŒã¹ã«çµ±åãããŠãããåãããžãã¹ããžãã¯ã䜿çšããŠããŸãã

ã©ãã å®éã1ã€ã®å®çšŒåãµãŒããŒãããã2ã€ç®ã¯ã¬ããªã«ã§ããããã¹ãçšãšåæçšã®ãªãããŒãã§ãããµãŒããŒã¯ããæ®éã®ãã®ã§ãããããŒããŠã§ã¢ãç¯çŽããŸããã§ãããã芧ã®ãšãããè² è·ã¯ããã»ã©å€§ãããããŸãããLA㯠3ãããé«ããããŸããããçŸåšãå€ãå¬ã«æ·±å»ã«ãªãå¯èœæ§ããããŸãããªãã§ïŒååŒäŒç€Ÿã§ã¯ããœãŒã·ã£ã«ãããã¯ãŒã¯ãšã¯ç°ãªããéåžžã«å°ããªãããããŒã¿ã»ããã 10äžäººã®é¡§å®¢ãã20åã®ã¢ã¯ãã£ããªååã10äžäººã®é¡§å®¢ããã®ã¢ã¯ãã£ããªååããããŸããæ°åãæããã«ããããšãã§ããŸãïŒã·ãŒãºã³ããã40åéã®ç²å©çïŒçšåŒåçŽå©çïŒã«ããããã®ãããªãµãŒããŒãè³Œå ¥ã§ããŸãããããŠãããããŸããã·ã£ãŒãã£ã³ã°ã«ã€ããŠã®èšèã«æ»ããŸãã
ãããã®æ°å€ã¯ãã³ãŒããæ§ããã«èšè¿°ããå Žåãã¢ããªã±ãŒã·ã§ã³ã§ãSELECT *ããµãŒããŒãæžç®ããªãããšãæå³ãããšèããŠãã ããJavaã®ãµã€ã¯ã«ã§2ã€ã®ããŒãã«ãçµåããã«ãéåžžã«æ§ãããªã¢ã€ãã³ã§å¯Ÿå¿ã§ããŸãããããŠããªãããŒãã«ã¯ã¬ããªã«ããŸã 䜿çšããŠããŸãããã€ãŸãããµã€ãããã®èªã¿åãèŠæ±ã¯æŠéã¯ã©ã¹ã¿ãŒã«éãããŸãã
SSDã¯äœ¿çšããŸãããããã§ç§ã¯èªããªããã°ãªããŸããããã®ãããªééãããããŸããïŒç§ãã¡ã«ã¯ãµãŒããŒãéåžžã«çŽ°å¿ã«ãã¹ããããããã¯ãŒã¯ãšã³ãžãã¢ãããŸãããããŠãç§ãã¡ã¯çŸåšã誀ã£ãŠRAID5ã®ãçç£äžãã«ãªã£ãŠãããããããªãŒãåãããšãã«èª€ã£ãŠæ°ä»ããŸããã

ã©ããç§ãã¡ã¯ç¬ãã§çµãããŸããããããã§ã¯å°ãéå±ã«ãªããŸããã©ã®ããã«æ©èœããŸããïŒåè¿°ããããã«ãåäžã®ã¢ããªã±ãŒã·ã§ã³ãæ±ãæã§çŽæ¥ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããã®ã§ã¯ãªããåã¢ããªã±ãŒã·ã§ã³ã¯ç¬èªã®åœ¹å²ã§å®è¡ãããŸãããã¹ãŠã®ã¹ãã¢ãããã·ãŒãžã£ã¯ãããŸããŸãªæ¹æ³ã§ã¬ã€ã¢ãŠããããŸãã
ããã§äœãèŠããŸããïŒ Webã°ã«ãŒããéçšè ã°ã«ãŒã
ãªã©ã®ãã©ã«ããŒããŒã«ãããããããã«ã¯ã»ãšãã©æš©éããããŸããããŸããã¢ããªã±ãŒã·ã§ã³ããŒã«ã¯ãããã®ãã©ã«ããŒããŒã«ã«è©°ã蟌ãŸããŠããŸããã¢ããªã±ãŒã·ã§ã³ããµã€ãã®ããŒã«ãïŒãŠã§ãïŒããã³äžéšã®ããŒã«ãåŸæ¥å¡ãïŒãåŸæ¥å¡ãã¢ããªã±ãŒã·ã§ã³çšïŒã1äžã®ã¹ããŒãã¡ã³ãã¿ã€ã ã¢ãŠãã«æ³šæããŠãã ãããããªããããè¡ãããã®ã§ããïŒããã¯ããµã€ãã10ç§ä»¥å ã«å®è¡ãããªãèŠæ±ããã«ããããšã«æåããå Žåããã®èŠæ±ã¯ç Žæ£ãããããšãæå³ããŸããå®éãçãã¯ç°¡åã§ããã©ããã«äœããè©°ãŸã£ãŠããŠããµã€ãã®ãŠãŒã¶ãŒãããã匱ãå§ããŠããããããŒã¿ããŒã¹ããããäžããªãå Žåãããã¯èª°ã«ãšã£ãŠãæªåããã ãã§ããæ solã解ãå¿ èŠããããŸããããŒã«ããã¯ããããã©ã³ã¶ã¯ã·ã§ã³ã¯ãŸã ãããã¡ãã£ãã·ã¥ããŠã©ãŒã ã¢ããããŠããããšã«æ³šæããŠãã ããããŠãŒã¶ãŒã«äœãæäŸããªãã£ãå Žåã§ãã圌女ã¯ããããããã¡ãã£ãã·ã¥ã«é 眮ããŸãããæ°äººã®å®è¡è ïŒ1äžäººã2人ãå®è¡ïŒãååŸãããšããã£ãã·ã¥ããŒã¹ããŠã©ãŒã ã¢ãããã3çªç®ã®èŠæ±ã¯æ¢ã«æåããŠããŸããããããªããšãããŒã«ããªãŒããŒãããŒããJavaãç解ããpgbouncerã«ååãªãœã±ããããªãå¯èœæ§ããããŸãã
次ã«ãã¹ããŒã ãäœæããåã¢ããªã±ãŒã·ã§ã³ã«ã¹ããŒã ã«å¯Ÿããæš©éãä»äžããŸãã顧客ãWebã¢ããªã±ãŒã·ã§ã³ïŒWebGroupïŒãšå éšã°ã«ãŒãããã®ã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ãå ¥åã§ããããšã¯æããã§ãã人ããªãã£ã¹å ã§ãã¹ãŠãè¡ãæ¹æ³ãç¥ã£ãŠããå Žåã¯ããã¹ãŠããµã€ãã«ããããã«ããŸãããããŠæåŸã®æ®µèœã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãå ¥åæé ã®ã³ãŒããšããŒã¿ã¹ããŒã ãèŠãããšãçŠæ¢ããŠããŸãã
å®éãããã¯ãã§ã«å€ãããŸãã誰ããããªãã®ã¢ããªã±ãŒã·ã§ã³ããããã³ã°ããå Žåã圌ã¯ããªãã®ç§å¯ããŒãã«ãèŠãããšãã§ããŸããã圌ã¯ããŒã¿ãèªã¿åãããšãã§ãããããã§ãã¹ãã¢ãããã·ãŒãžã£ã®ååã¯è¡šç€ºãããŸããã

é¢æ°ã¯ã©ã®ããã«èŠããŸããïŒ in_SessionID
å ¥åãã©ã¡ãŒã¿ãŒãæããªãæåã®åäžã®é¢æ°ã¯èš±å¯ã§ããå人ããããŒãããŒãšããŠç§ãã¡ãšååããããšã§ã¯ãããŸãã50åãäŒç€Ÿã«æå±ããŠããã®ã§ããã¡ã€ã³ã¬ãžã¹ãã©ã®ããã«ç§ãã¡ã«ãšã£ãŠãã䟿å©ã§ããäŒç€Ÿã®å ¥ãå£ã1ã€ã®ãã°ã€ã³ããã¹ã¯ãŒãã§ãããã®é¢æ°ã¯ã»ãã·ã§ã³ãè¿ããå®çŸ©ã«æ³šæãæããŸããããã¯ã»ãã¥ãªãã£å®çŸ©è ã§ãããå éšã¢ããªã±ãŒã·ã§ã³ãšå€éšã°ã«ãŒãã®2ã€ã®ã°ã«ãŒãããã«ããæš©å©ããããŸãã

ä»ã®ãã¹ãŠã®é¢æ°ã«ã¯å ¥åãã©ã¡ãŒã¿ãŒSessionIDããããŸããããã«ãããäžåºŠãã°ã€ã³ããã»ãã·ã§ã³ããŠãŒã¶ãŒã«é¢é£ä»ãããã©ãŠã¶ãŒCookieãŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã¢ãªã§çºè¡ããä»ã®ãã¹ãŠã®é¢æ°ããã«ã§ããŸãããããã¯åžžã«Sessionå ¥åãã©ã¡ãŒã¿ãŒãæã¡ã誰ãåŒã³åºããŠãããã埩å ããããã«å éšçã«æäœãããŸããã€ãŸããOrderCreateé¢æ°ããµã€ããŸãã¯å éšã¢ããªã±ãŒã·ã§ã³ããåŒã³åºãããåäžã®ãŠãŒã¶ãŒããå®è¡ãããŸãããã®å éšã§ãã·ã¹ãã ã®ã©ã®è¢«éšè ãçŸæç¹ã§ãããåŒã£åŒµã£ãŠããã®ããå€æã§ããŸãã
ãµã€ãã«ããæ©èœã«ã€ããŠã説æããŸããOrderCreateé¢æ°ã«ã¯ã顧客ãæå®ããCustomerå ¥åãã©ã¡ãŒã¿ãŒãå¿ èŠã§ããããšã¯æããã§ããããã§ãããã«ããŒããŸããCompanyIDã¯ã»ãã·ã§ã³äžã«è¡šç€ºãããããäŒç€Ÿã¯å¥ã®äŒç€Ÿã®æ³šæãäœæã§ããŸããã

ããã«ãACLã§è§£æ±ºããå¿ èŠããããŸããããã¯éåžžã«çŽ æ©ãæ»ãã§ãããããªããªããããã¯æ·±ãé åã§ãããããããã«ããããå¿ èŠãããããã§ããåãã¡ã€ã³ããŒãã«ïŒé¡§å®¢ããã£ã³ããŒã³ã泚æãå¥çŽãäŸ¡æ Œé ç®ïŒã«ã¯ããªããžã§ã¯ãã®ããŒãã«ãžã®æ圱ããããŸããã€ãŸãã顧客ã®ããŒãã«ã¬ã³ãŒãã«ã¯ãobject_idãšobject_type = 84ã®ããŒãã«ã¬ã³ãŒãããããŸããããã¯äœãäžããŸããïŒããããã£ãã©ã€ããµã€ã¯ã«ãããã€ãã®å¶éããµããžã§ã¯ããšãªã¢å ã®ãªããžã§ã¯ãã®ãã®çµ±äžãããè¡šçŸã®ããã¯ãæããŠããã®äžã«æš©å©ãã§ãã¯ãæ§ç¯ã§ããŸãã

ãããã£ãŠã泚æãé åžãããã·ã³ãåºè·ãããµããžã§ã¯ããšãªã¢ã®åæ©èœå ã«ã¯ãæš©éããã§ãã¯ããæ©èœããããŸãããã®é¢æ°ããã«ããŠããªããžã§ã¯ãIDããªããžã§ã¯ãã®ã¿ã€ããããã³ãã¢ã¯ã·ã§ã³ãã®ã¿ã€ããæž¡ããŸãã圌女ã¯èªåã®å åŽã§OKãšèšãããäŸå€ãæããŸããäŸå€ãã¹ããŒãããšãã¢ããªã±ãŒã·ã§ã³ã§ç°¡åã«ãã£ããã§ããŸããã³ãã¯ã¿ïŒJDBCãã«ã¹ã¿ã ïŒã¯ããããã®äŸå€ãé©åã«ãã£ããããã¯ã©ã€ã¢ã³ãã«æž¡ããŸãããŠãŒã¶ãŒã¯ãšã©ãŒãåãåããåæã§ããŸããã¯ã©ã€ã¢ã³ãã§ãšã©ãŒã蚺æããå¿ èŠã¯ãªããäœãããã£ã«ã¿ãªã³ã°ããã ãã§ããã°ããã®ãããªãã©ã¡ãŒã¿ãŒãæž¡ããŸããããªãåä»ã«æããŸãããå®éã«ã¯ããã®æ¹æ³ã§æš©å©ã確èªããããšã¯ããã°ã©ãã®äœæ¥ã®ç®ã«èŠããªãéšåã§ãããããžãã¹ããžãã¯ã®äœæã劚ããããšã¯ãªããçµ±åãäœæããã ãã§ãã

ãã¹ãŠãåé¡ãªãã§ããŸãããïŒ
ããããã¯ãç§ãã¡ãå§ããç¬éãæããæ²ããåçã§ããåçã®äžçªäžã«ããã®ã¯2009幎ã®ç§ã§ããç§ãã¡ã¯äœãåŸãŸãããç§ãã¡ã«ã¯ãŠã§ããµã€ãããããçŽ200人ã300人ãæé·ããŸããã 5ã6ã®æ¥ç¶ãåæã«ããŒã«ã«çºè¡ãããããã«60ã70ã®æ¥ç¶ãå éšã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠå æãããŸããã 60人ã®ãŠãŒã¶ãŒã瀟å ã§åããŠããããããªãããŒã«ãå¿ èŠãšããã®ããçŽæ¥å€æããŸãããçªç¶çã¿ãæããŸããããµãŒã16åã®ã³ã¢ã¯ãããªãã¡4ãœã±ãã4ã³ã¢ã¯ããªã2009幎ãŸã§å·åŽããŠããããŠæã ãèŠããšãLA 60ã16ã³ã¢ã...
çç±ã¯äœããããŸããïŒ
ãã®åé¡ã¯ããååšããŸããããç§ã¯ããªãã«ããã話ããªããã°ãªããŸãããããã¯äžçš®ã®èªåèšç·Žã§ãããããŠç¬¬äºã«ãããããèŠåãããã®ããã«ïŒåžžã«é·èã«è³ãåŸããŸãã pgbouncerã¯å¿ èŠãªããšèããŸãããååãšããŠããã¹ãŠãéåžžã©ããã«å®è¡ããå Žåã¯å¿ èŠãããŸããããã ããé²è¡äžã«éããåã»ãã·ã§ã³ã§ã¯ãON COMMIT DELETE ROWSã¿ã€ãã®ã¹ãã¢ãããã·ãŒãžã£ãåæåãããŸããã 9.1ãŸãã¯9.2ããåã®ããŒãžã§ã³ã§ã¯ãåŸã§åŠç¿ããæ©èœããããŸãããåãã©ã³ã¶ã¯ã·ã§ã³ã®éå§æã«ãåæ¥ç¶ã®ã¿ã€ãON COMMIT DELETE ROWSã®åäžæãã¬ãŒãã«TRUNCATEãæäŸããããã©ã³ã¶ã¯ã·ã§ã³ã®çµäºæã«TRUNCATEãéä¿¡ãããããšãããããŸããã€ãŸãã100åã®çµåããããããããã«ON COMMIT DELETE ROWSã¿ã€ãã®30åã®äžæããŒãã«ãããå Žåã3,000åã®äžæããŒãã«ããããŸãããããŠããããã®ããŒãã«ãã©ãããã©ã³ã¶ã¯ã·ã§ã³ã«é¢äžããŠããªããŠãããã®TRUNCATEäºåºŠåãããããªãã¯äœãèµ·ãã£ãŠãããç解ããŠããŸãã
PostgresããªãŒãã³ãœãŒã¹ã§ããããšã¯ã©ã®ããã«åœ¹ç«ã¡ãŸãããïŒ
ãã°ããèŠåŽããŠã¯ããŒã«ãããã©ã³ã¶ã¯ã·ã§ã³ã®ééã確èªãããããã°ã©ããŒãããã°ã©ããŒãããŸãã ãéç¥ããå ¥ããŠããã®åãæšãŠãè¡ãããŠããã®ãèŠãŸãããç§ã¯ãµã€ãã®ãŠã§ããµã€ãã«ç»ããå£ããè±èªã§éµéã«æžããŠãããªããããããããããããã³ã«ãããæžãããããã«å¿ããŠããã ã¬ãŒã³ãèšã£ããšããç§ã¯ã·ã§ãã¯ãåããŸãããäžæããŒãã«ãã¯ãªãŒãã³ã°ããŠããããšã¯é©ãããšã§ã¯ãããŸãããããããå«ããŠãç§ãã¡ã¯ããŸãè¯ããããŸãããããããŠããã«ãŒã¹ã»ã¢ã ã¶ã³ã¯èªåèªèº«ãåŒãäžããŸããã圌ãããã«ãããªããç§ã¯ãŸã£ããæåŸ ããŠããŸããã§ããããããŠåœŒã¯ããæžããïŒãçãããå¿é ããªãã§ãã ããããããå人ã®todoãªã¹ãã«å«ããŠãå ¬åŒã®todoãªã¹ãã«èŒããããšããŸããããããŠãããèµ·ãã£ããããã«è§£æ±ºçãèŠã€ããŸããããŸããpgbouncerãã³ã³ãã€ã«ããŸãããããã§ã¯7åããããŸãããç §æã®7ååŸããã®[çŽEdãïŒã¹ã©ã€ãã®ã°ã©ãã®å³åŽãã芧ãã ãã]ãã€ãŸããè² è·ãäœäžããéåžžã«å¿«é©ã«ãªããæ¥ç¶ããã³ã°ããªããªããŸããããã©ã³ã¶ã¯ã·ã§ã³ã®éå§äžã«ããã€ãã®åé¡ãããã15ããªç§ã®ããããªé 延ããããŸããããããã§æ¢ã«çããããšãã§ããŸãããç§ã®æèŠã§ã¯ã幎æ«ãŸã§ã«ç§ãã¡ã¯ãã®ã¹ããŒã ã§ç掻ããä»ã·ãŒãºã³ã®é¡§å®¢æ°ã3åã«å¢ãããŸããããã«ãŒã¹ãšã³ãã¥ããã£ã«æè¬ããŸãã

åé¡ããããŸããééããããããããäœã§ãããã®ãã³ããããããããªè¡ããããŸããæ¬ ç¹ããããŸãpl / pgsqlããžãã¹ããžãã¯ã³ãŒããããã§ããããã«ãããŒã¿ããŒã¹ã¯å³å¯ã§ãããããªãèªèº«ãä¿è·ããæ©äŒããããããããŸãããã³ãŒãã¯ããŸããããã¹ããããŠããŸãããæ°ã¥ããªã人ã¯ãval2ãšval3ã®éã«ã³ã³ãããããŸããããã¹ãŠã®val-sïŒi1ãi2ãi3ãi4ïŒã«ãŠããããæž¡ããšãã©ã®çµæãéç¥ãçæããããæšæž¬ããŸãã ãéç¥ãã«ã¯4ã€ã®æ°åããããŸããã©ãïŒæåãš2çªç®ã¯singleã§ã3çªç®ãš4çªç®ã¯ïŒNULLã«ãªããŸãããããŠããããšäžç·ã«æ®ããæ¹æ³ã¯ïŒã®ã£ãããèŠãŠãé²æ©ã¯åã«ä»ã®ãã¹ãŠãç¡èŠããŸãããã®ããšã«ã€ããŠã¯ãã¥ãŒã¹ã¬ã¿ãŒã«ãæžããŸãããã誰ãçããã®ãèŠããŠããŸãããã°ã¬ãã°ã»ã¹ãã¹ããpl / pgsqlã¯SQLã³ãŒãã®éºç£ã ããã§ãããSQLã§äœ¿çšã§ããæ§æã¯ãããã§ç¿»èš³ãããŠããŸããã¯ããããã¯åé¡ã§ãããããã¯ç§ãã¡ãééããæ°å°ãªãåé¡ã®äžã€ã§ãã
次ã®åé¡ã¯ããã¥ã¡ã³ãã§ããããã¯ãç§ãã¡ãçµéšããæãé倧ãªäºæ ã®ç©èªã§ããããŒãã«ã«DROP CASCADEãé 眮ãããšãéç¥ã§ãã¹ãŠã®äŸå€ãé€å€ãããã«ã¹ã±ãŒãã§åé€ããããã¹ãŠã®ãªããžã§ã¯ãã衚瀺ãããŸããå€éšããŒã§é¢é£ä»ãããã5ã6åã®ããŒãã«ãããå ŽåãtruncateãšèšããŸããããŒãã«ã«åŸã£ãŠã2çªç®ã®ããŒãã«ãã¯ãªã¢ããããšåçãããŸãã圌ã¯åœŒå¥³ã®åŸã«ããã«4人ãæé€ããããšã¯èšããªãã§ãããããããŠãç§ãã¡ã¯ããã«åºããããŸãããããã¥ã¡ã³ããŒã·ã§ã³ã§ãããã ã£ããšæ¬åœã«èšãããŸãããããã®ãããªããšãèµ·ãããŸãã
æåŸã®åé¡ã¯åé¡ã§ã¯ãªãããããé©ãã§ããèªã¿åãå°çšã®èŠæ±ãã¬ããªã«ã§ãªãããŒããããããã«ãpl / proxyãè©Šãããšã«ããŸãããpl / proxy ã¯refã«ãŒãœã«ããµããŒãããŠããªãããšãå€æããrefã«ãŒãœã«ãæ¬åœã«å¥œãã§ãããã¹ãŠã®ããŒã¿ããŒã¹ã³ãã¯ã¿ã¯ã«ãŒãœã«ããµããŒãããŠãããããç°¡åã«å€æŽã§ããã¬ã³ãŒããšã¯ç°ãªããæ©èœéã§è»¢éã§ããŸãããã¹ãŠãã«ãŒãœã«äžã«æ§ç¯ãããŠããã ãã§ããJSONããã£ãå ŽåãJSONã§æ§ç¯ããŸããçŸåšãããã³ããšã³ããµã€ããJSONã«è»¢éãããã©ãããæ€èšããŠããŸãããã®åŸãpl / proxyãä»ããŠã¢ã³ããŒãããã¹ãã¢ãããã·ãŒãžã£ã«åºã¥ããŠãã¹ãŠããæçåãããããšã¯äžå¯èœã§ãããšããç¥è©±ã«åè«ããããšãã§ããŸããã«ãŒãœã«ã䜿çšããªãå Žåã¯å¯èœã§ãã

ç§ãã¡ã®äººçã¯ã©ãã§ããïŒ
ããã°ã©ãã³ã°ã«ã€ããŠã¯å°ãã話ããŸãããããã°ã©ããŒã¯æªãã§ãããæé©åã«ã€ããŠã¯ç¥ã£ãŠããŸãããã¹ãŠã®ããžãã¹ããžãã¯ãã¹ãã¢ãããã·ãŒãžã£ã«ããå Žåã誰ã責任ãè² ãã¹ãããåžžã«ææ¡ã§ããŸããããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ãã人ã¯èª°ã§ããã¹ãã¢ãããã·ãŒãžã£ããã©ããŸãããããŠpg_stat_user_functionsã®ãããã§ãããã«é¢ãããã¹ãŠãç¥ã£ãŠããŸãã
äœããŠãã®ïŒ
ãã®ãã¥ãŒã§ã¯ãpg_stat_user_functionsã¹ããŒã ããã¬ãŒãã®ååãã³ãŒã«ã®åèšæ°ãåèšå®è¡æéããµãããªç§ã®è§£å床ãæã€é¢æ°ã®é©åãªå®è¡æéãããããã¹ãŠã®å Žåã«ååã§ãã

1æ¥2åãåå8æãšååŸ8æã«ãã»ãšãã©ãã¢ã¹ã¯ã¯ãšãµã³ã¯ãããã«ãã«ã¯ã®ã¯ã©ã€ã¢ã³ãã§ããããããã®ãã¥ãŒã®çµæã§ããç¬èªã®ãã¬ãŒããæ¿å ¥ããŸããæãšå€æ¹ã«ã¹ãããã·ã§ãããä¿åããŸãã

ãã®åŸãæŽæ°ããŸããã³ãŒã«æ°ã®å·®ãåèšæéã®å·®ãã»ã«ãã¿ã€ã ã®å·®ãèšç®ããŸããããã«ããäœãåŸãããŸããïŒ

äœããé ããªã£ããããã«ç¢ºèªããŸããå é±ãä»é±ãéå»ãšæ¯èŒãããšãã©ã®æ©èœãããé »ç¹ã«ããŸãã¯ããé«äŸ¡ã«åŒã³åºãããŸãããïŒãããŠã圌女ãèŠã€ããŸãããããã ãã§ãªãã絶ãéãªããªã¯ãšã¹ãããããŸããããã¯ãã³ã³ãœãŒã«ã«è¡šç€ºãããå£åããæ©èœã瀺ããŠããŸãããããã®é害ã¯ã©ãããæ¥ãã®ã§ããïŒããã€ãã®çç±ããããŸãã第äžã«ãããã¯å¯èœæ§ããããã¹ã±ãžã¥ãŒã©ã¹ãã¥ãŒãå¿ããããã³ãŒãã¯ãæ°ããããŒãžã§ã³ãæŽæ°ããããŸãæ©èœããããã«äœ¿çšä»»æã®ã¢ã«ãŽãªãºã ãããã³ããã€ãã®ã³ããŒã·ã£ã«ããããã«ç¹ç¯ããŸããã€ãŸããäžæãªèŠæ±ãæäžé»ç¯ã§è¿œããããå¿ èŠã¯ãããŸãããèŠæ±ã¯ãã©ã®ããã³ããšã³ãããæ¥ãã®ãã誰ãåŒã³åºããã®ããäžæã§ããåé¡ãããã«ããããŸãã
ããããpg_stat_functionã¯ãã¹ãŠã®åé¡ã解決ããããã§ã¯ãããŸããããªãã§ïŒãŸããã«ãŒãœã«ãã«ãŒãœã«ãè¿ãé¢æ°ãããå Žåã1åéãã§ããã§ãããã®é¢æ°ã¯1ããªç§éåäœããŸãããã€ãŸããäžéšã«é ãã«ãŒãœã«ã¯è¡šç€ºãããŸããããå€ãã®ã«ãŒãœã«ããããŸãã
é¢æ°ã«ã¯åå²ããããŸããããšãã°ã泚æãéå§ããæ©èœããããŸããããã¯äººã®æã§èµ·åããããšãã§ããæš©å©ã®ãã§ãã¯ããããããããŸãããŸãã¯ãéãæ¥ãŠãã€ãã³ããéä¿¡ãã泚æãåŠçããŸãããã€ãŸããé¢æ°ã®åå²ã¯ãç°ãªãæ¡ä»¶ã§åãé¢æ°ãéåžžã«ç°ãªãæéã«åŒã³åºãããšãã§ããå Žåã§ãããã€ã³ãããŒã
ããããŸããéåžžã«éèŠãªããžãã¹æ©èœããããŸããããšãã°ã1人ã¯1æ¥15åéããã§åããŠããŸãããå€ãã¯ããã«äŸåããŠããŸãããããŠã人ãããã£ãããšè² è·ãå¢å ããŸããã圌ã¯æ°ã¥ããŸããããããæããã«ãªããŸããããã£ãšæ·±ãè¡ããŸãã
pg_stat_statementsã䜿çšããŸãããŸããäœæ¥ã·ããã®ããŒã¿ãæåãšæåŸã«ä¿åããåãããšãåæããŸããããããããã¯ããå€ããäžããŸãã

ããã¯pg_stat_statementsãžã®ãªã¯ãšã¹ããã©ã®ããã«èŠãããã§ãã泚ç®ãã¹ãã¯ãã¹ãã¢ãããã·ãŒãžã£ã®ã¢ãããã¯ãªã¯ãšã¹ããpg_stat_statementsã«å°éããããšã§ããããã«åŒããããŸãïŒããã«ããŒã¿ãæœåºããã»ãã³ãã³ãæ¹è¡ãã³ã¡ã³ããããŒã¿ãæŽæ°ããŸãããããã®2ã€ã®ãã©ã°ã¡ã³ãã¯ãã³ã¡ã³ããšããŠãŒã¶ãŒãã©ãŒãããããªã©ãéåžžã«äŸ¿å©ãªpg_stat_statementsã«åé¡ãããŸãã

å€èŠ³ã¯æ¬¡ã®ãšããã§ããäžçªäžã¯äžè¬çãªãªã¹ãã®ããã§ãäžçªäžã¯èå³ã®ããæçã§ããåç §ã«ãŒãœã«ãåŒã³åºããŠè¿ãé¢æ°å ã«1ã€ã®ã¢ãããã¯åŒãããããã®ããã¥ãŒãã«3åå ¥ããŸããé¢æ°èªäœããã£ãããããå³åº§ã«æ©èœããå°äž2ããªç§ã®ã©ããã«é 眮ãããŸãã SELECTã«ããŽãªãããã®ã¢ãããã¯ã¯ãšãªãšã«ãŒãœã«ãããã®ãã§ããããããã¯ç°¡åã«èå¥ã§ããŸããã€ãŸããã«ãŒãœã«ã«åé¡ãããå Žåãé¢é£ä»ããããŠããæ©èœãããããªããããã»ãŒæéçã«äžèŽããåŒã³åºãæ°ãæ£ç¢ºã«äžèŽããã¢ãããã¯ã¯ãšãªãšã«ãŒãœã«ãèªåçã«åæããããããæ¯èŒã§ããŸãã圹ã«ç«ã€ããªãã¯ã
2è¡ç®ã§ã¯ãååä»ãã«ãŒãœã«ããã§ããããŸããããã³ããšã³ããã¹ãã¢ãããã·ãŒãžã£ãåŒã³åºããšãã«ããã®ããã·ãŒãžã£ã®ååã§ã«ãŒãœã«ã«ååãä»ããæ¹æ³ãç¥ã£ãŠããã°ããã°ã®ã©ãã«ã§ãçŽæ¥è¡šç€ºãããŸãããŸãã䟿å©ãªããªãã¯ãpg_stat_statementsã«

æè¬ããŸãæœåšçã«æªãå ŽæãèŠã€ããã®ã¯ç°¡åã§ããã©ãïŒç¬¬äžã«ãæŽæ°ã¯åžžã«é«äŸ¡ã§ããã第äºã«ãç§ãèšã£ãããã«ãããªãã®ã³ã¡ã³ããããpg_stat_statementsã«å ¥ãããããã£ãŠã誰ãããªã¯ãšã¹ãã«å¯ŸããŠãTODOããŸãã¯ãããã§äœããããããããšæžããå Žåãpg_stat_statementsã«è¡ããçåã®ããã³ã¡ã³ããå«ãã¯ãšãªãããå Žåã¯æåã«æ¢ããŸãããããŠãããªãã¯ããã«ããããèŠã€ããŸãããšãŠãéãã§ãã
ãããŠä»ãçã¿ã«ã€ããŠå°ãã 2æç®ãŸãã¯3æç®ã®ã¹ã©ã€ããèŠãããšãã§ããç§ãã¡ã®ããã³ããšã³ããµã€ãã¯Liferayã«åºã¥ããŠããŸããããããã»ãšãã©ãã¹ãŠã飲ã¿ãŸããããäœããæ®ã£ãŠããŸããããããŠãäœããäŒæ¢ç¶æ ã§ã誰ã圌ãããŒãã«ã«æžãããã®ããšãã¥ã¬ãŒãããå¿ èŠããããŸããã¯ãããã®Liferayã¯ãŠãŒã¶ãŒãã¬ãŒããäœæããŸããå®éã圌ã¯ãã£ãã·ã¥ããŸããã€ãŸãã圌ã¯ããã®ã»ãšãã©ããã£ãã·ã¥ããŸãããç§ãã¡ãåŸãå°ããªãã®ã¯ããã«ãããŸãã Liferayãå®å šã«äŒæ¢ç¶æ ã§é£²ããšãå®éã«ã¯20å以äžãå¿åŽã®ã©ããã«è¡ããŸãã Hibernateãªã¯ãšã¹ãã衚瀺ãããã£ãã®ã§ããããããåããªãããšã«æ°ä»ããŸãããããã¯å¯ŸåŠãé£ããã§ãã
ãããã人æ°ã®ããããžãã¹ãœãããŠã§ã¢ã®ãµãã©ã€ã€ã§åé¡ãçºçããå Žåãè«è² æ¥è ãå°å ¥ãããµãŒãã¹ãæäŸããªãã·ã¹ãã ãæ§ç¯ãããŠããŸãã圌女ã¯MS SQLãµãŒããŒãšããäŸå€ãæããŸãã64ãããã€ããè¶ ããèŠæ±ãå®è¡ã§ããŸããã 64ãããã®ãšã³ã¿ãŒãã©ã€ãºããŒãžã§ã³ãè³Œå ¥ããå¿ èŠããããŸããäžè¬ã«ãMS SQL Serverã®å¶éã¯ã65536ãã€ãã®èŠæ±ãå®è¡ã§ããªãããšã§ãããããããµããŒãããããŒãžã§ã³ã¯ãããŸãããã»ãŒã«ã¹ãããŒãžã£ãŒããã«ããã¹ã¯ãããŒãžã£ãŒãããžãã¹ããžãã¯ãæžããåŸèŒ©ããããŠ10ã¡ãŒãã«ã®ã©ããã«1Cã³ãŒããžã§ãã¬ãŒã¿ãŒãæžãã人ããããšããäºå®ã®ããã«ãç§ãã¡ã¯åœŒãã«çŽæ¥é»è©±ããŸãããããæ£åžžã§ãããšèããŠãã ããã
ãªããããéèŠãªã®ã§ããããïŒç§ãã¡ã¯å°ããªäŒç€Ÿã§ããå°ããªITã¹ã¿ãããããŸããå€ãã®äººã ããããã®ã¬ã€ã€ãŒã®è²¬ä»»ãå ±æããå¿ èŠãããããããã®ãããªéããã¯ãããžãŒãè³Œå ¥ããäœè£ã¯ãããŸãããããã«å°éããã®ã¯é£ããã§ããããã§ã®

æé©å
ã¯éåžžã«çãããããã誰ããç¥ã£ãŠããŸããæã ã¯æã£ãŠããçµ±èšæŽæ°ãæ¿å ¥ãé€ç® ããŒãã«ã§ã¯ãæ»ãã ãã¿ãã«ããã€ã³ããã¯ã¹ã®æ²»çã«é¢ããçµ±èšããããã¯ã©ã®ããã«äœ¿çšã§ããŸããïŒ ãšãŠãç°¡åã§ãã10ããžã·ã§ã³ã®æ³šæã®åããžãã¹ãã©ã³ã¶ã¯ã·ã§ã³ã«ã€ããŠãåããžã·ã§ã³ã1åæŽæ°ããå¿ èŠããããšæãããå Žåã¯ããã©ã³ã¶ã¯ã·ã§ã³ãéå§ããã«ãŠã³ã¿ãŒãåé€ãããã©ã³ã¶ã¯ã·ã§ã³ãå®äºããã«ãŠã³ã¿ãŒãåé€ããŠã10ååŠçãããããšã確èªããŸããå Žåã«ãã£ãŠã¯ãåã¢ã€ãã ãnéä¹åæ°æŽæ°ãããããšãå€æããŸããnã¯ãªãŒããŒå ã®ã¢ã€ãã ã®æ°ã§ãããããŠãããªãã¯çè«ãå®è·µãšå¯Ÿç«ããŠããããšãç解ããŠããŸããã¢ã«ãŽãªãºã ãæ¢ããŠããŠããããèŠã€ããŠããŸãããããã¯ãµã€ã¯ã«ã§ãããµã€ã¯ã«ã¯åžžã«çã¿ã®åå ã§ãããããã¯å¿ããããæ¡ä»¶ã§ããã€ãŸããããŒã¿ãæ£ããå€ã§æŽæ°ããŸããããã以äžå¿ èŠãªãå Žåã¯ãåæ¢ããšèšããããã§ãæŽæ°ããŸãã
æã ãããã¯DISTINCTãè¡ãã®ãå¿ãããµãã¯ãšãªãã€ãŸãWHEREãªã¯ãšã¹ãã§ã...ID INã§ãããå€ãã®äžæã§ãªãå€ãè¿ããããåé¡ãçºçããŸãããããŠããã¡ãããå¿ããããã€ã³ããã¯ã¹ã

ãããŠæåŸã«ãç§ã¯æã ãŸããªããžãã¹æ©èœããããšèšããŸããã人ã1æ¥ã«1åãæžã ãšåœŒãã«è¿ã¥ããæ©èœããããã£ãããšãã£ããåäœãããšããèšé²ã¯æ¬¡ã®ãšããã§ããïŒ15åã®ä»äºããã®äººã¯2æéã®ä»äºã«å€ãããŸããããããŠã誰ã圌ã®ãªãŒããŒããç¥ããªãã£ããå¶ç¶èŠã€ãããšãããã ã®åã³ãšã·ã£ã³ãã³ã®ã¹ãã©ãã·ã¥ããããŸãããã§ãç§ãã¡ã¯ããªããã°ãªããªãããšãåžžã«ãã°ã¹ãã¢ãããã·ãŒãžã£æ¢ãããããã§æ©èœpg_stat_statementsãã¥ãŒã§ã¯ããã£ããç°åžžãpg_stat_functionsã³ãŒããã¯ãªãŒã³ã¢ããããã ãã§ãããã«ãã¯ãªã³ããªããžããã€ã³ããããããªãã®ã§ããããã5ãæé©åãããšãããã«å€ãã®æ°ããããªããžã衚瀺ãããåãæãããã«æ©ããŸããããããããã¯ãŠãŒã¶ãŒã®å¿«é©ãã®éµã§ãã
æçµçã«ãäžæããŒãã«ãåé€ããŸãããäžæããŒãã«ã¯ã2009幎ã«çã¿ãåŒãèµ·ãããŸããããã©ã³ã¶ã¯ã·ã§ã³ããšã«åãæšãŠãå¿ èŠããã£ãããã§ããã¬ã¬ã·ãŒ ã³ãŒãããŠã£ã³ããŠé¢æ°ãååž°ã¯ãšãªã®åé€ã«æåããŸãããããã¯ããçš®ã®å¥è·¡ã§ããã»ãšãã©ã®å Žåããã®æ©èœã«ã€ããŠèšè¿°ãããã¹ãŠã®ã³ãŒãã¯ãããé«éã«ã€ã³ã¹ããŒã«ãããèªã¿ããããªããŸãã
æåŸã«ãäœããã®è€éãªå Žæãããå Žåãã©ã®ããã«é¢æ°ããããã°ããŸããïŒã¯ããã¯ã¿ã€ã ã¹ã¿ã³ãåã«éç¥ããåŸã«éç¥ããæéãèŠãããšãã§ããŸãããããã¡ã€ã«ããããšãã§ããŸãã

ã©ã®ããã«ã³ãŒãã管çããŸããïŒ
å ã»ã©èšã£ãããã«ãçŸåš3,000ã®é¢æ°ããããŸããæšå¹Žãç§ãã¡ã¯éåžžã«å€§ããªæŽæ°ãè¡ããã»ãšãã©ã®ããžãã¹ããžãã¯ãæ¹åãããµã€ãçšã«æŽæ°ããŸããã誰ããæºè¶³ããŠããŸãããç§ãã¡ã¯å€§éã®ã³ãŒããæããŸããïŒå£ããã€ã³ã¿ãŒãã§ãŒã¹ãå£ããæ©èœããããåãé€ãæ¹æ³ã¯ïŒ EclipseãŸãã¯IDE IDEAã®ã©ããã§ãã¯ã©ã¹ãã¡ãœãããããããã¹ãŠããªã³ã¯ã§ããŸããããã®ã¢ããªã±ãŒã·ã§ã³ãå®éã«äœ¿çšãããŠãããã©ããã¯ããããŸãããããžãã¹ããžãã¯ããã¹ãŠé¢æ°ã§èšè¿°ãããŠããå Žåãpg_stat_user_functionã䜿çšãããšãé¢æ°ãåŒã³åºãããŠãããã©ãããããããŸãã
3ãæéåããŠããå Žåã¯ãçµ±èšãèŠãŠãã ããããŸã£ããåŒã³åºãããªãé¢æ°ãèŠã€ãããŸãããããŠç§éã¯ããããŠå幎ã«ããã£ãŠã»ãŒåã®æ»ãã æ©èœãèç©ãããã¯ãšãªã®å©ããåããŠã1åïŒãããã2æéïŒèããã«ããããã®é¢æ°ãšåè·¯ã®ååãåãåãããããã " to-delete " ã¹ããŒã ã«è»¢éããã¹ãã¢ãããã·ãŒãžã£ãäœæããŸãããé©ããããšã«ã2é±éã§æ©èœãæ¬ èœããŠããäŸå€ã¯2ã€ãããããŸããã§ããã 1ã€ã®æ©èœã¯ããã€ãã®å¶éãåãæ¿ããããã¯ãé¢å©ããšåŒã°ãããã1ã€ã¯ç§ã®å人çãªæ©èœã§ãããç§ã¯é·ãéå ¬åŒã®ããŒãºãããããåŒã³åºããŸããã§ããã
ã€ãŸããããã¯è¯ãæ©äŒã§ãããããããä»ã®å Žåã«ã¯å©çšã§ããŸããã 1ã€ã®çµ±åç°å¢ã§ã³ãŒãããããã¡ã€ãªã³ã°ããã³éçºã§ããã ãã§ãªããåãç°å¢ã§åŒ·åãªã³ãŒããåèšèšã§ããŸãã UIDãååŸããåã«ãSessionIDããŒã¿åãåç·šéããããint8ã䜿çšããŸããã Liferayãšã®äºææ§ã®ããã«ãã€ã³ã¿ãŒãããã«åºãããããšã«ãããšãã¯ãUIDã«åãæ¿ããå¿ èŠããããŸããã pg_procãåæããããã€ãã®ã¹ã¯ãªããã䜿çšããŠãDROP FUNCTIONãCREATE FUNCTIONãããã³å€æŽãããããŒã¿åãå®è¡ãã倧èŠæš¡ãªSQLã¹ã¯ãªãããäœæããŸããããããã¯ãã¹ãŠã1ãã©ã³ã¶ã¯ã·ã§ã³ã§å€é8åã§å®è¡ãããŸããã 2500ã®ã¹ãã¢ãããã·ãŒãžã£ãå€æŽãããŸããã

åžæãšæåŸ JSONãšJSONBã«
倧ããªæåŸ ãïŒå ã»ã©èšã£ãããã«ãããã¯ã«ãŒãœã«ã®åé¡ã§ãããããåãé€ããŠãPL / Proxyãéã®å€§ç¿ã®äžã«çœ®ããŸãã第äºã«ãããã€ãã®ã€ã³ã¿ãŒãã§ãŒã¹ãAndroidã«è»¢éãããšããæåŸ ããããJSONã¯éåžžã«äŸ¿å©ã§ãããµã€ãã®ããããçš®é¡ã®ãã£ã«ã¿ãŒãšACLãJSONã«çµã蟌ãã§ãéæ£èŠåããããšã¯å¯èœã§ããã€ã³ããã¯ã¹ã«ã¯ã©ããªçŽ æŽãããããšãããããèæ ®ããŠãéåžžã«é«éã«åäœããã¯ãã§ããBRINã€ã³ããã¯ã¹ã«éåžžã«æºè¶³ããŠããŸããåæããããããå¥ã®ããŒã¿ããŒã¹ã«è»¢éãããŸãããããŠãBDRãšè«çè€è£œ-ãªããããå¿ èŠãªã®ããŸã ããããŸããããå®éã«è©ŠããŠã¿ãããšæããŸãããŸããåæã®åé¡ã解決ããŸããã€ãŸããäžéšã®ããŒã¿ãå¥ã®ããŒã¿ããŒã¹ã«éžæçã«ããã·ã¥ã§ããŸãã次ã«ãåæ£ã·ã¹ãã ïŒAvitoãªã©ïŒãäœæããããšãã§ããŸãã
ããŠãAvitoãYandexãZalandoãPivoââtalãªã©ã®å°èŠæš¡ã ãæåããŠããäŒæ¥ãšæ倧ã®åœéçãªäŒæ¥ã®äž¡æ¹ã®ãªãŒããŒããã®æãèå³æ·±ããµã¯ã»ã¹ã¹ããŒãªãŒã®ã¿ãæºåãç¶ããŠããŸããã¬ããŒãã®ç³è«ã¯ãäŒè°Webãµã€ãã§ç¢ºèªã§ããæãé¢é£æ§ã®ãããããã¯ã«æ祚ã§ããŸãã