You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/01/25 20:14:42 UTC
svn commit: r1780266 - in /tomcat/tc8.0.x/trunk: ./
java/org/apache/catalina/core/ test/org/apache/catalina/core/ webapps/docs/
Author: markt
Date: Wed Jan 25 20:14:42 2017
New Revision: 1780266
URL: http://svn.apache.org/viewvc?rev=1780266&view=rev
Log:
Reduce the contention in the default InstanceManager implementation when multiple threads are managing objects and need to reference the annotation cache.
Prior to this patch, TestDefaultInstanceManager#testConcurrency() showed a roughly linear increase in execution time as the thread count increased. With this patch applied, the test shows broadly no change in execution time as the thread count is increased from 1 to 8 on a machine with 8 cores available.
Modified:
tomcat/tc8.0.x/trunk/ (props changed)
tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java
tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties
tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java
tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TestDefaultInstanceManager.java
tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
Propchange: tomcat/tc8.0.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jan 25 20:14:42 2017
@@ -1,2 +1,2 @@
/tomcat/tc8.5.x/trunk:1735042,1737966,1743139-1743140,1744151,1747537,1747925,1748002,1754614,1754643,1762124,1762183,1762203,1763792,1772948,1777014,1779719
-/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1637890,1637892,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886
,1644890,1644892,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1649973,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1653972,1654013,1654030,1654050,1654123,1654148,1654159,1654513,1654515,1654517,1654522,1654524,1654725,1654735,1654766,1654785,1654851-1654852,1654978,1655122-1655124,1655126-1655127,1655129-1655130,1655132-1655133,1655312,1655351,1655438,1655441,1655454,1655558,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657
592,1657607,1657609,1657682,1657907,1658207,1658734,1658781,1658790,1658799,1658802,1658804,1658833,1658840,1658966,1659043,1659053,1659059,1659174,1659184,1659188-1659189,1659216,1659263,1659293,1659304,1659306-1659307,1659382,1659384,1659428,1659471,1659486,1659505,1659516,1659521,1659524,1659559,1659562,1659803,1659806,1659814,1659833,1659862,1659905,1659919,1659948,1659967,1659983-1659984,1660060,1660074,1660077,1660133,1660168,1660331-1660332,1660353,1660358,1660924,1661386,1661770,1661867,1661972,1661990,1662200,1662308-1662309,1662548,1662614,1662696,1662736,1662985,1662988-1662989,1663264,1663277,1663298,1663534,1663562,1663676,1663715,1663754,1663768,1663772,1663781,1663893,1663995,1664143,1664163,1664174,1664301,1664317,1664347,1664657,1664659,1664710,1664863-1664864,1664866,1665085,1665292,1665559,1665653,1665661,1665672,1665694,1665697,1665736,1665779,1665976-1665977,1665980-1665981,1665985-1665986,1665989,1665998,1666004,1666008,1666013,1666017,1666024,1666116,1666386-1
666387,1666494,1666496,1666552,1666569,1666579,1666637,1666649,1666757,1666966,1666972,1666985,1666995,1666997,1667292,1667402,1667406,1667546,1667615,1667630,1667636,1667688,1667764,1667871,1668026,1668135,1668193,1668593,1668596,1668630,1668639,1668843,1669353,1669370,1669451,1669800,1669838,1669876,1669882,1670394,1670433,1670591,1670598-1670600,1670610,1670631,1670719,1670724,1670726,1670730,1670940,1671112,1672272,1672284,1673754,1674294,1675461,1675486,1675594,1675830,1676231,1676250-1676251,1676364,1676381,1676393,1676479,1676525,1676552,1676615,1676630,1676634,1676721,1676926,1676943,1677140,1677802,1678011,1678162,1678174,1678339,1678426-1678427,1678694,1678701,1679534,1679708,1679710,1679716,1680034,1680246,1681056,1681123,1681138,1681280,1681283,1681286,1681450,1681697,1681699,1681701,1681729,1681770,1681779,1681793,1681807,1681837-1681838,1681854,1681862,1681958,1682028,1682033,1682311,1682315,1682317,1682320,1682324,1682330,1682842,1684172,1684366,1684383,1684526-168452
7,1684549-1684550,1685556,1685591,1685739,1685744,1685772,1685816,1685826,1685891,1687242,1687261,1687268,1687340,1687544,1687551,1688563,1688841,1688878,1688885,1688896,1688901,1689345-1689346,1689357,1689656,1689675-1689677,1689679,1689687,1689825,1689856,1689918,1690011,1690021,1690054,1690080,1690209,1691134,1691487,1691813,1692744-1692747,1692849,1692894,1692896,1693088,1693105,1693429,1693461,1694058,1694111,1694290,1694501,1694548,1694658,1694660,1694788,1694872,1694878,1695006,1695354,1695371,1695379,1695459,1695582,1695706,1695778,1696199,1696272,1696280,1696366-1696368,1696378,1696390,1696392,1696467,1698212,1698220,1700607,1700870,1700896,1700977,1701093,1701123,1701213,1701607,1701666,1701673,1701760-1701761,1701765,1701940,1702092,1702183,1702244,1702246,1702250,1702268,1702313,1702531,1702630-1702635,1702637-1702638,1702640,1702647,1702660,1702662,1702665-1702666,1702668,1702671-1702673,1702675-1702676,1702680,1702722,1702778,1702795,1702862,1702881,1702886,1702910,170
2923,1702971,1702984,1703024,1703040,1703044,1703049-1703050,1703143,1703146,1703151,1703160,1703164,1703167,1703174,1703192,1703287,1703290,1703358,1703408,1703486,1703509,1703523,1703542,1703545,1703554,1703584,1703673,1703676,1703678,1703680,1703763,1703784,1703821,1703842,1703849,1703851,1703853,1703856,1703860,1703865,1703890,1703948,1704149,1704151,1704251,1704278,1704289,1704302,1704305,1704307,1704318,1704331,1704647,1704658,1704689,1704702,1704706,1704711,1704730-1704733,1704735,1704739,1704741-1704742,1704744,1704786,1704867,1705231,1705630,1705635,1705639,1705647,1705650-1705652,1705842,1705848,1705865-1705866,1705942,1706017,1706744-1706745,1706853,1706915,1707052,1707088,1708500-1708501,1708504-1708505,1708570,1708649,1708687,1708745,1708957,1709120,1709266,1709295,1709375,1709663,1709895,1709960,1710070,1710134,1710341,1710346,1710441,1710445,1710489,1710517,1710523,1710571,1710577,1710632,1710676,1710689,1710753-1710754,1710779,1710924,1710930,1710933,1710945,1711006,
1711016,1711022,1711026,1712163,1712225,1712228,1712233,1712250,1712254,1712489,1712547-1712548,1712588,1712617,1712645,1712654,1712695,1712765-1712766,1712771,1712775,1712859,1712876,1712898,1712902,1712905,1712912,1712974,1713129,1713168,1713184,1713285,1713362,1713397,1713446,1713612,1713618,1713871,1713931,1713975,1713987,1713992,1713997,1714002,1714012,1714019,1714054,1714521,1714535,1714537,1715168,1715188,1715206,1715413,1715415,1715434,1715510-1715512,1715514-1715515,1715517-1715519,1715521,1715633,1715661,1715682,1715965,1716213-1716214,1716258,1716269,1716347,1716354,1716364,1716413,1716420,1716511,1716543,1716640,1716644,1716856,1716858,1716881-1716882,1716886,1716894,1717085,1717225,1717233,1717252,1717264,1717282,1717286,1717290,1717385,1717416,1717418,1717445,1717515,1717520,1717528,1717965,1717967-1717968,1717979,1718022,1718308,1718523,1718794,1718796,1718834,1718836-1718838,1719278,1719291,1719315,1719332,1719334,1719340,1719346,1719441,1719446,1719488,1719909-17199
10,1720200,1720234,1720394,1720439,1720445,1720448,1720462,1720506,1720652,1720654-1720655,1720711,1720752,1720769,1720776,1720804,1720815,1721303,1721307,1721311,1721314,1721447,1721528,1721539,1721812,1721817,1721830,1721860,1721866,1721881,1721887,1722205,1722292,1722399,1722453,1722455,1722522,1722526,1722532,1722548,1722574,1722583,1722585,1722799,1722807,1722824,1722828-1722829,1722831,1722859,1722902,1722905,1722923,1722939,1722945,1722996,1723068,1723127,1723155,1723250,1723316-1723318,1723368,1723371,1723375,1723377,1723380,1723410,1723414,1723437,1723484,1723486,1723493-1723494,1723500,1723552,1723554,1723683,1723707,1723736,1724012,1724232,1724252,1724325,1724427-1724428,1724433,1724673,1724788,1724863,1724900,1724997,1725113,1725126-1725127,1725150,1725165,1725183,1725199,1725202,1725204,1725207,1725263-1725264,1725266,1725278,1725282,1725405,1725599,1725601,1725635,1725646,1725649-1725652,1725694,1725696-1725697,1725816,1725851,1725906-1725907,1725910,1725914,1725920,17
25926,1726177,1726202,1726628,1726632,1726637,1726639,1726648,1726651,1726654,1726669,1726676,1726803,1726925-1726926,1726972-1726973,1726991,1727162,1727670,1727675,1727899,1727914,1727917,1728091,1728138,1728433,1728448,1728664,1728677,1729185,1729361,1729625,1729730,1730101-1730102,1730137,1730612,1730946-1730975,1731008,1731055,1731079,1731283,1731856,1731882,1731946-1731958,1731976-1731983,1732359,1732488,1732900-1733448,1733602,1733617-1733963,1733978,1734113,1734128,1734192,1734258,1734301,1734418-1734454,1734466-1734512,1734522,1734592,1734594,1734597,1735041,1735577,1736162,1736209,1736280,1736646,1736836,1737119,1737280,1737339,1737632,1737664,1737715,1737834,1737903,1737959,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738643,1738850,1738982,1738996,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740509,1740520,1740535,1740707
,1740803,1740810,1740980,1740991,1741015,1741147,1741173,1741181,1741190,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741677,1741892,1741896,1742071,1742090,1742093,1742101,1742105,1742111,1742146,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742387,1742448,1742919,1742975,1742984,1742986,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743697,1743700-1743701,1744058,1744064-1744065,1744125,1744194,1744229,1744270,1744323,1744432,1744684,1744697,1744705,1744760,1745227,1745337,1746306,1746427,1746473,1746620,1746649,1746724,1746939,1746989,1747536,1747924,1748001,1748547,1748629,1748715,1749287,1749328,1749665-1749666,1750015,1750056,1750899,1750975,1750995,1751061,1751097,1752212,1752737,1753078,1753080,1753358,1753363,1754111,1754140-1754141,1754281,1754310,1754445,1754467,1754494,1754496,1754528,1754532-1754533,1754613,1754714,1754874,1754941,1754944,1754950-1754951,1755214,1755224,1755230,1755646-1755
647,1755650,1755675,1755693,1755717,1755884,1755890,1755918-1755919,1755942,1756013,1756019,1756039,1756408,1756410,1756898,1756939,1757123-1757124,1757126,1757128,1757132-1757133,1757167-1757168,1757175,1757180,1757182,1757195,1757271,1757278,1757347,1757353-1757354,1757363,1757374,1757399,1757406,1757408,1757495,1757499,1757527,1757997,1758072-1758075,1758078-1758079,1758292,1758369,1758423,1758425-1758427,1758430,1758486-1758487,1758499,1758556,1758582,1758584,1758588,1758842,1759019,1759224,1759227,1759252,1759274,1759513-1759516,1759611,1760022,1760300,1760397,1760446,1760454,1760640,1760648,1761057,1761491,1761498,1761500-1761501,1761550,1761625-1761626,1761628,1761682,1761740,1762123,1762168,1762172,1762182,1762202,1762288,1762296,1762348,1762353,1762374,1762541,1762608,1762710,1762766,1762769,1762944,1762947,1762953,1763167,1763179,1763232,1763259,1763271-1763272,1763276,1763319,1763370,1763372,1763375,1763377,1763393,1763412,1763430,1763512,1763574,1763634-1763635,1763718,1
763786,1763798-1763799,1764083,1764659,1764682,1764897,1765299,1765358,1765439,1765571,1766276,1766514,1766822,1767328,1767362,1767368,1767429,1767471,1767505,1767641-1767644,1768651,1768762,1768922,1769263,1770140,1770180,1770258,1770656,1770666,1770718,1770762,1771087,1771139,1771386,1771611,1771613,1771711,1771718,1771723-1771724,1771730,1771743,1771752,1771963,1772174,1772223,1772229,1772554,1772849,1772947,1773418,1773756,1773813-1773814,1774052,1774131,1774248,1774253,1774257,1774259,1774262,1774267,1774271,1774303,1774340,1774406,1774412,1775596,1776540,1776937,1777011,1777173,1777211,1777261,1777605,1777647,1778138-1778139,1778141-1778150,1778154,1779654,1779718,1780109
+/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1637890,1637892,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886
,1644890,1644892,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1649973,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1653972,1654013,1654030,1654050,1654123,1654148,1654159,1654513,1654515,1654517,1654522,1654524,1654725,1654735,1654766,1654785,1654851-1654852,1654978,1655122-1655124,1655126-1655127,1655129-1655130,1655132-1655133,1655312,1655351,1655438,1655441,1655454,1655558,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657
592,1657607,1657609,1657682,1657907,1658207,1658734,1658781,1658790,1658799,1658802,1658804,1658833,1658840,1658966,1659043,1659053,1659059,1659174,1659184,1659188-1659189,1659216,1659263,1659293,1659304,1659306-1659307,1659382,1659384,1659428,1659471,1659486,1659505,1659516,1659521,1659524,1659559,1659562,1659803,1659806,1659814,1659833,1659862,1659905,1659919,1659948,1659967,1659983-1659984,1660060,1660074,1660077,1660133,1660168,1660331-1660332,1660353,1660358,1660924,1661386,1661770,1661867,1661972,1661990,1662200,1662308-1662309,1662548,1662614,1662696,1662736,1662985,1662988-1662989,1663264,1663277,1663298,1663534,1663562,1663676,1663715,1663754,1663768,1663772,1663781,1663893,1663995,1664143,1664163,1664174,1664301,1664317,1664347,1664657,1664659,1664710,1664863-1664864,1664866,1665085,1665292,1665559,1665653,1665661,1665672,1665694,1665697,1665736,1665779,1665976-1665977,1665980-1665981,1665985-1665986,1665989,1665998,1666004,1666008,1666013,1666017,1666024,1666116,1666386-1
666387,1666494,1666496,1666552,1666569,1666579,1666637,1666649,1666757,1666966,1666972,1666985,1666995,1666997,1667292,1667402,1667406,1667546,1667615,1667630,1667636,1667688,1667764,1667871,1668026,1668135,1668193,1668593,1668596,1668630,1668639,1668843,1669353,1669370,1669451,1669800,1669838,1669876,1669882,1670394,1670433,1670591,1670598-1670600,1670610,1670631,1670719,1670724,1670726,1670730,1670940,1671112,1672272,1672284,1673754,1674294,1675461,1675486,1675594,1675830,1676231,1676250-1676251,1676364,1676381,1676393,1676479,1676525,1676552,1676615,1676630,1676634,1676721,1676926,1676943,1677140,1677802,1678011,1678162,1678174,1678339,1678426-1678427,1678694,1678701,1679534,1679708,1679710,1679716,1680034,1680246,1681056,1681123,1681138,1681280,1681283,1681286,1681450,1681697,1681699,1681701,1681729,1681770,1681779,1681793,1681807,1681837-1681838,1681854,1681862,1681958,1682028,1682033,1682311,1682315,1682317,1682320,1682324,1682330,1682842,1684172,1684366,1684383,1684526-168452
7,1684549-1684550,1685556,1685591,1685739,1685744,1685772,1685816,1685826,1685891,1687242,1687261,1687268,1687340,1687544,1687551,1688563,1688841,1688878,1688885,1688896,1688901,1689345-1689346,1689357,1689656,1689675-1689677,1689679,1689687,1689825,1689856,1689918,1690011,1690021,1690054,1690080,1690209,1691134,1691487,1691813,1692744-1692747,1692849,1692894,1692896,1693088,1693105,1693429,1693461,1694058,1694111,1694290,1694501,1694548,1694658,1694660,1694788,1694872,1694878,1695006,1695354,1695371,1695379,1695459,1695582,1695706,1695778,1696199,1696272,1696280,1696366-1696368,1696378,1696390,1696392,1696467,1698212,1698220,1700607,1700870,1700896,1700977,1701093,1701123,1701213,1701607,1701666,1701673,1701760-1701761,1701765,1701940,1702092,1702183,1702244,1702246,1702250,1702268,1702313,1702531,1702630-1702635,1702637-1702638,1702640,1702647,1702660,1702662,1702665-1702666,1702668,1702671-1702673,1702675-1702676,1702680,1702722,1702778,1702795,1702862,1702881,1702886,1702910,170
2923,1702971,1702984,1703024,1703040,1703044,1703049-1703050,1703143,1703146,1703151,1703160,1703164,1703167,1703174,1703192,1703287,1703290,1703358,1703408,1703486,1703509,1703523,1703542,1703545,1703554,1703584,1703673,1703676,1703678,1703680,1703763,1703784,1703821,1703842,1703849,1703851,1703853,1703856,1703860,1703865,1703890,1703948,1704149,1704151,1704251,1704278,1704289,1704302,1704305,1704307,1704318,1704331,1704647,1704658,1704689,1704702,1704706,1704711,1704730-1704733,1704735,1704739,1704741-1704742,1704744,1704786,1704867,1705231,1705630,1705635,1705639,1705647,1705650-1705652,1705842,1705848,1705865-1705866,1705942,1706017,1706744-1706745,1706853,1706915,1707052,1707088,1708500-1708501,1708504-1708505,1708570,1708649,1708687,1708745,1708957,1709120,1709266,1709295,1709375,1709663,1709895,1709960,1710070,1710134,1710341,1710346,1710441,1710445,1710489,1710517,1710523,1710571,1710577,1710632,1710676,1710689,1710753-1710754,1710779,1710924,1710930,1710933,1710945,1711006,
1711016,1711022,1711026,1712163,1712225,1712228,1712233,1712250,1712254,1712489,1712547-1712548,1712588,1712617,1712645,1712654,1712695,1712765-1712766,1712771,1712775,1712859,1712876,1712898,1712902,1712905,1712912,1712974,1713129,1713168,1713184,1713285,1713362,1713397,1713446,1713612,1713618,1713871,1713931,1713975,1713987,1713992,1713997,1714002,1714012,1714019,1714054,1714521,1714535,1714537,1715168,1715188,1715206,1715413,1715415,1715434,1715510-1715512,1715514-1715515,1715517-1715519,1715521,1715633,1715661,1715682,1715965,1716213-1716214,1716258,1716269,1716347,1716354,1716364,1716413,1716420,1716511,1716543,1716640,1716644,1716856,1716858,1716881-1716882,1716886,1716894,1717085,1717225,1717233,1717252,1717264,1717282,1717286,1717290,1717385,1717416,1717418,1717445,1717515,1717520,1717528,1717965,1717967-1717968,1717979,1718022,1718308,1718523,1718794,1718796,1718834,1718836-1718838,1719278,1719291,1719315,1719332,1719334,1719340,1719346,1719441,1719446,1719488,1719909-17199
10,1720200,1720234,1720394,1720439,1720445,1720448,1720462,1720506,1720652,1720654-1720655,1720711,1720752,1720769,1720776,1720804,1720815,1721303,1721307,1721311,1721314,1721447,1721528,1721539,1721812,1721817,1721830,1721860,1721866,1721881,1721887,1722205,1722292,1722399,1722453,1722455,1722522,1722526,1722532,1722548,1722574,1722583,1722585,1722799,1722807,1722824,1722828-1722829,1722831,1722859,1722902,1722905,1722923,1722939,1722945,1722996,1723068,1723127,1723155,1723250,1723316-1723318,1723368,1723371,1723375,1723377,1723380,1723410,1723414,1723437,1723484,1723486,1723493-1723494,1723500,1723552,1723554,1723683,1723707,1723736,1724012,1724232,1724252,1724325,1724427-1724428,1724433,1724673,1724788,1724863,1724900,1724997,1725113,1725126-1725127,1725150,1725165,1725183,1725199,1725202,1725204,1725207,1725263-1725264,1725266,1725278,1725282,1725405,1725599,1725601,1725635,1725646,1725649-1725652,1725694,1725696-1725697,1725816,1725851,1725906-1725907,1725910,1725914,1725920,17
25926,1726177,1726202,1726628,1726632,1726637,1726639,1726648,1726651,1726654,1726669,1726676,1726803,1726925-1726926,1726972-1726973,1726991,1727162,1727670,1727675,1727899,1727914,1727917,1728091,1728138,1728433,1728448,1728664,1728677,1729185,1729361,1729625,1729730,1730101-1730102,1730137,1730612,1730946-1730975,1731008,1731055,1731079,1731283,1731856,1731882,1731946-1731958,1731976-1731983,1732359,1732488,1732900-1733448,1733602,1733617-1733963,1733978,1734113,1734128,1734192,1734258,1734301,1734418-1734454,1734466-1734512,1734522,1734592,1734594,1734597,1735041,1735577,1736162,1736209,1736280,1736646,1736836,1737119,1737280,1737339,1737632,1737664,1737715,1737834,1737903,1737959,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738643,1738850,1738982,1738996,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740509,1740520,1740535,1740707
,1740803,1740810,1740980,1740991,1741015,1741147,1741173,1741181,1741190,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741677,1741892,1741896,1742071,1742090,1742093,1742101,1742105,1742111,1742146,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742387,1742448,1742919,1742975,1742984,1742986,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743697,1743700-1743701,1744058,1744064-1744065,1744125,1744194,1744229,1744270,1744323,1744432,1744684,1744697,1744705,1744760,1745227,1745337,1746306,1746427,1746473,1746620,1746649,1746724,1746939,1746989,1747536,1747924,1748001,1748547,1748629,1748715,1749287,1749328,1749665-1749666,1750015,1750056,1750899,1750975,1750995,1751061,1751097,1752212,1752737,1753078,1753080,1753358,1753363,1754111,1754140-1754141,1754281,1754310,1754445,1754467,1754494,1754496,1754528,1754532-1754533,1754613,1754714,1754874,1754941,1754944,1754950-1754951,1755214,1755224,1755230,1755646-1755
647,1755650,1755675,1755693,1755717,1755884,1755890,1755918-1755919,1755942,1756013,1756019,1756039,1756408,1756410,1756898,1756939,1757123-1757124,1757126,1757128,1757132-1757133,1757167-1757168,1757175,1757180,1757182,1757195,1757271,1757278,1757347,1757353-1757354,1757363,1757374,1757399,1757406,1757408,1757495,1757499,1757527,1757997,1758072-1758075,1758078-1758079,1758292,1758369,1758423,1758425-1758427,1758430,1758486-1758487,1758499,1758556,1758582,1758584,1758588,1758842,1759019,1759224,1759227,1759252,1759274,1759513-1759516,1759611,1760022,1760300,1760397,1760446,1760454,1760640,1760648,1761057,1761491,1761498,1761500-1761501,1761550,1761625-1761626,1761628,1761682,1761740,1762123,1762168,1762172,1762182,1762202,1762288,1762296,1762348,1762353,1762374,1762541,1762608,1762710,1762766,1762769,1762944,1762947,1762953,1763167,1763179,1763232,1763259,1763271-1763272,1763276,1763319,1763370,1763372,1763375,1763377,1763393,1763412,1763430,1763512,1763574,1763634-1763635,1763718,1
763786,1763798-1763799,1764083,1764659,1764682,1764897,1765299,1765358,1765439,1765571,1766276,1766514,1766822,1767328,1767362,1767368,1767429,1767471,1767505,1767641-1767644,1768651,1768762,1768922,1769263,1770140,1770180,1770258,1770656,1770666,1770718,1770762,1771087,1771139,1771386,1771611,1771613,1771711,1771718,1771723-1771724,1771730,1771743,1771752,1771963,1772174,1772223,1772229,1772554,1772849,1772947,1773418,1773756,1773813-1773814,1774052,1774131,1774248,1774253,1774257,1774259,1774262,1774267,1774271,1774303,1774340,1774406,1774412,1775596,1776540,1776937,1777011,1777173,1777211,1777261,1777605,1777647,1778138-1778139,1778141-1778150,1778154,1779654,1779718,1780109,1780120,1780189,1780196
Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java?rev=1780266&r1=1780265&r2=1780266&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Wed Jan 25 20:14:42 2017
@@ -34,7 +34,6 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
-import java.util.WeakHashMap;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@@ -53,6 +52,7 @@ import org.apache.catalina.util.Introspe
import org.apache.juli.logging.Log;
import org.apache.tomcat.InstanceManager;
import org.apache.tomcat.util.ExceptionUtils;
+import org.apache.tomcat.util.collections.ManagedConcurrentWeakHashMap;
import org.apache.tomcat.util.res.StringManager;
public class DefaultInstanceManager implements InstanceManager {
@@ -74,8 +74,8 @@ public class DefaultInstanceManager impl
protected final boolean privileged;
protected final boolean ignoreAnnotations;
private final Set<String> restrictedClasses;
- private final Map<Class<?>, AnnotationCacheEntry[]> annotationCache =
- new WeakHashMap<>();
+ private final ManagedConcurrentWeakHashMap<Class<?>, AnnotationCacheEntry[]> annotationCache =
+ new ManagedConcurrentWeakHashMap<>();
private final Map<String, String> postConstructMethods;
private final Map<String, String> preDestroyMethods;
@@ -190,10 +190,7 @@ public class DefaultInstanceManager impl
// At the end the postconstruct annotated
// method is invoked
- AnnotationCacheEntry[] annotations;
- synchronized (annotationCache) {
- annotations = annotationCache.get(clazz);
- }
+ AnnotationCacheEntry[] annotations = annotationCache.get(clazz);
for (AnnotationCacheEntry entry : annotations) {
if (entry.getType() == AnnotationCacheEntryType.POST_CONSTRUCT) {
Method postConstruct = getMethod(clazz, entry);
@@ -227,10 +224,7 @@ public class DefaultInstanceManager impl
// At the end the postconstruct annotated
// method is invoked
- AnnotationCacheEntry[] annotations = null;
- synchronized (annotationCache) {
- annotations = annotationCache.get(clazz);
- }
+ AnnotationCacheEntry[] annotations = annotationCache.get(clazz);
if (annotations == null) {
// instance not created through the instance manager
return;
@@ -249,6 +243,11 @@ public class DefaultInstanceManager impl
}
+ public void backgroundProcess() {
+ annotationCache.maintain();
+ }
+
+
/**
* Make sure that the annotations cache has been populated for the provided
* class.
@@ -268,10 +267,7 @@ public class DefaultInstanceManager impl
List<AnnotationCacheEntry> annotations = null;
while (clazz != null) {
- AnnotationCacheEntry[] annotationsArray = null;
- synchronized (annotationCache) {
- annotationsArray = annotationCache.get(clazz);
- }
+ AnnotationCacheEntry[] annotationsArray = annotationCache.get(clazz);
if (annotationsArray == null) {
if (annotations == null) {
annotations = new ArrayList<>();
@@ -446,10 +442,7 @@ public class DefaultInstanceManager impl
Class<?> clazz = instance.getClass();
while (clazz != null) {
- AnnotationCacheEntry[] annotations;
- synchronized (annotationCache) {
- annotations = annotationCache.get(clazz);
- }
+ AnnotationCacheEntry[] annotations = annotationCache.get(clazz);
for (AnnotationCacheEntry entry : annotations) {
if (entry.getType() == AnnotationCacheEntryType.SETTER) {
lookupMethodResource(context, instance,
@@ -470,9 +463,7 @@ public class DefaultInstanceManager impl
* Makes cache size available to unit tests.
*/
protected int getAnnotationCacheSize() {
- synchronized (annotationCache) {
- return annotationCache.size();
- }
+ return annotationCache.size();
}
Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties?rev=1780266&r1=1780265&r2=1780266&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties Wed Jan 25 20:14:42 2017
@@ -106,6 +106,7 @@ noPluggabilityServletContext.notAllowed=
standardContext.invalidWrapperClass={0} is not a subclass of StandardWrapper
standardContext.applicationListener=Error configuring application listener of class {0}
standardContext.applicationSkipped=Skipped installing application listeners due to previous error(s)
+standardContext.backgroundProcess.instanceManager=Exception processing instance manager {0} background process
standardContext.backgroundProcess.loader=Exception processing loader {0} background process
standardContext.backgroundProcess.manager=Exception processing manager {0} background process
standardContext.backgroundProcess.resources=Exception processing resources {0} background process
Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1780266&r1=1780265&r2=1780266&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Wed Jan 25 20:14:42 2017
@@ -5694,6 +5694,16 @@ public class StandardContext extends Con
resources), e);
}
}
+ InstanceManager instanceManager = getInstanceManager();
+ if (instanceManager instanceof DefaultInstanceManager) {
+ try {
+ ((DefaultInstanceManager) instanceManager).backgroundProcess();
+ } catch (Exception e) {
+ log.warn(sm.getString(
+ "standardContext.backgroundProcess.instanceManager",
+ resources), e);
+ }
+ }
super.backgroundProcess();
}
Modified: tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TestDefaultInstanceManager.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TestDefaultInstanceManager.java?rev=1780266&r1=1780265&r2=1780266&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TestDefaultInstanceManager.java (original)
+++ tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TestDefaultInstanceManager.java Wed Jan 25 20:14:42 2017
@@ -17,14 +17,22 @@
package org.apache.catalina.core;
import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+
+import javax.naming.NamingException;
import static org.junit.Assert.assertEquals;
+
+import org.junit.Ignore;
import org.junit.Test;
+import org.apache.catalina.Context;
import org.apache.catalina.Wrapper;
+import org.apache.catalina.servlets.DefaultServlet;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
import org.apache.jasper.servlet.JasperInitializer;
+import org.apache.tomcat.InstanceManager;
public class TestDefaultInstanceManager extends TomcatBaseTest {
@@ -53,6 +61,7 @@ public class TestDefaultInstanceManager
// Spin a while until GC happens or we wait too long
int loop = 0;
while (loop < 10) {
+ instanceManager.backgroundProcess();
if (instanceManager.getAnnotationCacheSize() == count) {
break;
}
@@ -86,4 +95,70 @@ public class TestDefaultInstanceManager
return (DefaultInstanceManager) ctxt.getInstanceManager();
}
+
+
+ /*
+ * Performance test. Comment out @Ignore to run the test.
+ */
+ @Ignore
+ @Test
+ public void testConcurrency() throws Exception {
+ // Create a populated InstanceManager
+ Tomcat tomcat = getTomcatInstance();
+ Context ctx = tomcat.addContext(null, "", null);
+
+ tomcat.start();
+
+ InstanceManager im = ctx.getInstanceManager();
+
+ for (int i = 1; i < 9; i++) {
+ doTestConcurrency(im, i);
+ }
+ }
+
+
+ private void doTestConcurrency(InstanceManager im, int threadCount) throws Exception {
+ long start = System.nanoTime();
+
+ Thread[] threads = new Thread[threadCount];
+
+ for (int i = 0; i < threadCount; i++) {
+ threads[i] = new Thread(new InstanceManagerRunnable(im));
+ }
+
+ for (int i = 0; i < threadCount; i++) {
+ threads[i].start();
+ }
+
+ for (int i = 0; i < threadCount; i++) {
+ threads[i].join();
+ }
+
+ long duration = System.nanoTime() - start;
+
+ System.out.println(threadCount + " threads completed in " + duration + "ns");
+ }
+
+
+ private class InstanceManagerRunnable implements Runnable {
+
+ private final InstanceManager im;
+
+ private InstanceManagerRunnable(InstanceManager im) {
+ this.im = im;
+ }
+
+ @Override
+ public void run() {
+ try {
+ Object test = new DefaultServlet();
+ for (int i = 0; i < 200000; i++) {
+ im.newInstance(test);
+ im.destroyInstance(test);
+ }
+ } catch (NamingException | IllegalAccessException | InvocationTargetException ne) {
+ ne.printStackTrace();
+ }
+ }
+ }
}
Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml?rev=1780266&r1=1780265&r2=1780266&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Wed Jan 25 20:14:42 2017
@@ -51,6 +51,11 @@
<bug>60596</bug>: Improve performance of DefaultServlet when sendfile
feature is disabled on connector. (kkolinko)
</update>
+ <fix>
+ Reduce the contention in the default <code>InstanceManager</code>
+ implementation when multiple threads are managing objects and need to
+ reference the annotation cache. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="WebSocket">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org