BMO/performance: Difference between revisions

 
(2 intermediate revisions by the same user not shown)
Line 35: Line 35:
Work on refactoring how we store tracking and status flags is nearing completion ({{Bug|750742}}), which should not only assist in overall performance but also allows us the opportunity to change how we present the tracking/status flag information without needing to heavily customise the Bugzilla core.
Work on refactoring how we store tracking and status flags is nearing completion ({{Bug|750742}}), which should not only assist in overall performance but also allows us the opportunity to change how we present the tracking/status flag information without needing to heavily customise the Bugzilla core.


The BzAPI (REST) API proxy, which is currently a service completely external to Bugzilla, is nearing its long journey to being included as an alternative native Bugzilla webservice endpoint, alongside XML-RPC, JSON-RPC and JSON-P.  Follow {{Bug|866927}} to see the progress there.  This is expected to greatly improve the responsiveness of the REST API, and it enables us to perform smart caching of requests.
The BzAPI (REST) API proxy, which is currently a service completely external to Bugzilla, is nearing the end of its long journey to being included as an alternative native Bugzilla webservice endpoint, alongside XML-RPC, JSON-RPC and JSON-P.  Follow {{Bug|866927}} to see the progress there.  This is expected to greatly improve the responsiveness of the REST API, and it enables us to perform smart caching of requests.


While the BzAPI proxy consumers themselves should consider the impact these calls have on BMO and implement caching mechanisms, it's understandable why this doesn't always happen (I've seen many a quick-and-dirty solution quickly turn into production-level usage without refactoring to lessen its impact).  Once the REST services are integrated with Bugzilla, we plan on caching identical requests within a set time frame to guard against accidental BzAPI-driven DDOSing of BMO.
While the BzAPI proxy consumers themselves should consider the impact these calls have on BMO and implement caching mechanisms, it's understandable why this doesn't always happen (I've seen many a quick-and-dirty solution quickly turn into production-level usage without refactoring to lessen its impact).  Once the REST services are integrated with Bugzilla, we plan on caching identical requests within a set time frame to guard against accidental BzAPI-driven DDOSing of BMO.


One change in the pipeline which should net client-side benefits is the upgrade of our core javascript library, YUI, from version 2 to version 3.  YUI3 footprint on the browser is significantly less when compared with YUI2, with a strong focus on lazy-loading of libraries.  Yahoo are performing the work for us here, in {{bug|453268}}.
One change in the pipeline which should net client-side benefits is the upgrade of our core javascript library, YUI, from version 2 to version 3.  YUI3's footprint on the browser is significantly less when compared with YUI2, with a strong focus on lazy-loading of libraries.  Yahoo are performing the work for us here, in {{bug|453268}}.


== What isn't the problem? ==
== What isn't the problem? ==
Line 46: Line 46:
* HTML layout.  While old-school, the time to render the page in the browser is a very small fraction of the overall load time, much less than server-side generation and network transmission times.  Again, this is verifiable with Firefox's Web Developer Tools.
* HTML layout.  While old-school, the time to render the page in the browser is a very small fraction of the overall load time, much less than server-side generation and network transmission times.  Again, this is verifiable with Firefox's Web Developer Tools.
* Hardware infrastructure.  The webheads have ample processing power and memory.
* Hardware infrastructure.  The webheads have ample processing power and memory.
* Perl.  Perl isn't a slow language by nature (it is pre-compiled to opcode akin to Java and Python), and there are modern high performance sites built using Perl, such as [http://help.duckduckgo.com/customer/portal/articles/216392-architecture Duck Duck Go].
Confirmed users
1,198

edits