There’s been an unbro­ken wave of inter­est from all sides since the lat­est ver­sion of the Adobe Expe­ri­ence Man­ag­er (AEM) Con­tent Repos­i­to­ry was announced (AEM 6.0 has been avail­able for a few days now). So to address some of the main ques­tions — what are the most sig­nif­i­cant improve­ments to the plat­form?

One of the pri­ma­ry goals was to address Web-scale, a scale-out archi­tec­ture, so that your cus­tomer expe­ri­ences (across all dig­i­tal devices) can be opti­mized and max­i­mized. New options for scal­a­bil­i­ty and per­for­mance are now avail­able and these can be imple­ment­ed accord­ing to your busi­ness require­ments, allow­ing you to plan the long-term suc­cess of your dig­i­tal mar­ket­ing engage­ments.

But let’s start from the begin­ning…

 As in pre­vi­ous ver­sions of AEM, the con­tent repos­i­to­ry CRX (Con­tent Repos­i­to­ry eXtreme) includes (and builds on) the open-source imple­men­ta­tion of Apache jackrab­bit. Adobe engi­neer­ing teams are ful­ly involved in the devel­op­ment of this open-source project, under the lead­er­ship of David Nueschel­er (VP, Enter­prise Tech­nol­o­gy at Adobe Sys­tems) and Dr. Michael Marth (Senior Engi­neer­ing Man­ag­er at Adobe Sys­tems).

So, AEM 6.0 is still ful­ly JCR-com­pli­ant (Java Con­tent Repos­i­to­ry). Since 2006, the JCR-spec­i­fi­ca­tion has been the indus­try-lead­ing stan­dard for con­tent-cen­tric applications.The advan­tages of this stan­dard in a het­ero­ge­neous land­scape are many and var­ied — often being the decid­ing fac­tor in real-life sce­nar­ios. The JCR API guar­an­tees long-term secu­ri­ty when plan­ning at the appli­ca­tion lev­el (lay­er); for exam­ple, code com­pat­i­bil­i­ty when upgrad­ing AEM.

The fol­low­ing 4 goals were pur­sued with the fur­ther devel­op­ment of the AEM con­tent repos­i­to­ry:

  1. Scal­a­bil­i­ty: to cater for large repos­i­to­ries, with many dis­trib­uted, clus­tered nodes.
  2. Write-per­for­mance: to allow par­al­lel writes and high write-through­put.
  3. Con­tent-scal­a­bil­i­ty: to pro­vide sup­port for many child nodes and high ACL com­plex­i­ty.
  4. Search-per­for­mance: to real­ize focus-ori­ent­ed con­tent index­ing.

Results show that these goals have been achieved; dif­fer­ent JCR actions are all per­form­ing faster com­pared to the pre­vi­ous repos­i­to­ry ver­sion, mea­sured with Jackrab­bit 2.

These improve­ments have been made pos­si­ble by the intro­duc­tion of the Micro­Ker­nel imple­men­ta­tion. In the repos­i­to­ry archi­tec­ture this is respon­si­ble for the per­sis­tence of con­tent, tak­ing over (and sig­nif­i­cant­ly enhanc­ing) the pre­vi­ous con­cept of the TAR-Per­sis­tence­M­an­ag­er. The Micro­Ker­nel opti­mizes the per­for­mance via mem­o­ry-mapped con­tent han­dling. Cur­rent vari­a­tions of the Micro­Ker­nel include TarMK and Mon­goMK, with oth­ers in the pipeline. While the TarMK man­ages the con­tent per­sis­tence of tar files (fast, local), the Mon­goMK for the Mon­goDB can be inte­grat­ed. This con­cept enables sev­er­al scal­ing options, all of which are depen­dent on your indi­vid­ual use-cas­es. Let’s look at a cou­ple of the pos­si­bil­i­ties:

  • CPU-Pow­er for pro­cess­ing AEM con­tent: this can be increased as required through the addi­tion of extra AEM instances.
  • Read-Through­put: can be increased by the addi­tion of Mon­goDB Repli­cas.
  • Write-Through­put: repos­i­to­ry growth and dis­trib­uted author­ing can be increased by the use of extra Mon­goDB shards.

Accord­ing to engi­neer­ing mea­sure­ments and tests, the major goal of hor­i­zon­tal lin­ear scal­a­bil­i­ty across dif­fer­ent dis­ci­plines can be achieved by adding Mon­goDB shards.

Con­clu­sions:

AEM 6.0 has tru­ly earned its title as an engine of inno­va­tion and offers sig­nif­i­cant­ly bet­ter per­for­mance. With the (option­al) use of Mon­goDB, fur­ther, pow­er­ful scal­ing pos­si­bil­i­ties is pos­si­ble. These sim­pli­fy your plan­ning and pro­tect your invest­ments for the future. So, AEM 6.0 is Webscale-ready…offering the best poten­tial for web expe­ri­ences that real­ly make the dif­fer­ence for your cus­tomers.

 

0 comments