SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
SUP	
  2.1	
  KNOWLEDGE	
  TRANSFER	
  
DATA	
  MODELING	
  


MICHAEL HO


OCTOBER 20, 2011
CONTENTS	
  
             •        MBO	
  DefiniAon	
  
             •        Data	
  Loading	
  
             •        Cache	
  Policies	
  
             •        Data	
  Model	
  ImplicaAons	
  on	
  Client	
  
             •        Challenges	
  in	
  the	
  Field	
  
             •        SUP	
  2.1.1	
  Preview	
  




2	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
MBO	
  DEFINITION	
  




             THE	
  MBO	
  DATA	
  MODEL	
  IS	
  THE	
  CLIENT	
  DATA	
  MODEL	
  




3	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
MBO	
  DATA	
  MODEL	
  
          •  MBO	
  data	
  model	
  is	
  NOT	
  a	
  model	
  for	
  backend	
  business	
  objects	
  
          •  It	
  is	
  the	
  data	
  model	
  for	
  the	
  mobile	
  applicaEon	
  on	
  the	
  device	
  
             – A	
  user	
  replicates	
  the	
  data	
  model	
  for	
  the	
  desktop	
  applicaAon	
  
                 on	
  the	
  device	
  where	
  many	
  of	
  the	
  aTributes	
  are	
  never	
  used,	
  
                 leading	
  to	
  slow	
  synchronizaAon	
  and	
  performance	
  degradaAon	
  
          •  Empirical	
  data	
  shows	
  that	
  MBO	
  data	
  model	
  impacts	
  not	
  only	
  
             mobile	
  applicaEon	
  development	
  but	
  synchronizaEon	
  
             performance	
  
          •  MBO	
  definiEon	
  should	
  take	
  into	
  consideraEon	
  mobile	
  
             database	
  limitaEons	
  
          •  SynchronizaEon	
  group	
  defines	
  what	
  to	
  synchronize	
  
          •  Cache	
  group	
  defines	
  what	
  and	
  when	
  to	
  load	
  from	
  backend	
  to	
  
             fill	
  the	
  tables	
  in	
  CDB	
  
4	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
MBO	
  DATA	
  MODEL	
  
             •  RelaEonship	
  enables	
  navigaEon,	
  whole-­‐part	
  removal,	
  cascade	
  
                  operaEons	
  
                  – Supports	
  associaAon	
  (items	
  	
  product)	
  and	
  composiAon	
  
                       (sales	
  order	
  	
  items)	
  
                  	
  
             	
  
             	
  
             	
  
             	
  
             •  Surrogate	
  key	
  scheme	
  on	
  the	
  client	
  database	
  
                  – As	
  primary	
  key	
  for	
  synchronizaAon	
  
                  – Foreign	
  key	
  to	
  implement	
  relaAonship	
  
                  – Cache	
  associates	
  surrogate	
  key	
  with	
  backend	
  primary	
  key	
  
5	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
MBO	
  DATA	
  MODEL	
  
             •  Backend	
  create	
  operaEon	
  expected	
  to	
  return	
  primary	
  key	
  so	
  
                associaEon	
  between	
  surrogate	
  key	
  and	
  primary	
  key	
  can	
  be	
  
                formed	
  
             •  SynchronizaEon	
  parameters	
  serve	
  as	
  subscripEon	
  to	
  
                download	
  data	
  
                – Can	
  have	
  mulAple	
  sets	
  of	
  synchronizaAon	
  parameters	
  at	
  any	
  
                  given	
  Ame	
  
                – Data	
  corresponding	
  to	
  these	
  sets	
  of	
  synchronizaAon	
  
                  parameters	
  are	
  downloaded	
  to	
  the	
  device	
  
                – May	
  delete	
  en#re	
  collecAon	
  of	
  synchronizaAon	
  parameters	
  
                  sets	
  to	
  reclaim	
  storage	
  space	
  



6	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             MBO	
  DEFINITION	
  
             •  Every	
  aUribute	
  is	
  used	
  by	
  the	
  mobile	
  applicaEon	
  
             •  MBO	
  instance	
  =	
  database	
  row	
  (must	
  fit	
  within	
  a	
  page)	
  
                – Large	
  row	
  size	
  requires	
  larger	
  page	
  size	
  impacAng	
  
                  performance	
  on	
  device	
  and	
  synchronizaAon	
  
                – Do	
  not	
  define	
  a	
  MBO	
  with	
  more	
  than	
  50	
  aTributes	
  
                – Do	
  not	
  use	
  STRING	
  data	
  type.	
  Instead,	
  use	
  STRING(n)	
  to	
  
                  define	
  the	
  maximum	
  string	
  length	
  (STRING	
  defaults	
  to	
  300)	
  
                – PromoAon	
  of	
  VARCHAR(n)	
  to	
  LONG	
  VARCHAR	
  can	
  occur	
  
                  during	
  code	
  generaAon	
  if	
  the	
  specified	
  page	
  size	
  is	
  less	
  than	
  
                  the	
  calculated	
  maximum	
  row	
  size	
  
                – Use	
  larger	
  page	
  size	
  during	
  code	
  generaAon	
  and	
  run	
  with	
  a	
  
                  smaller	
  one	
  on	
  device	
  if	
  normal	
  size	
  is	
  much	
  lower	
  than	
  
                  maximum	
  
7	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             INDEX	
  
             •  Use	
  the	
  minimum	
  number	
  of	
  indexes	
  to	
  support	
  queries	
  used	
  
                by	
  the	
  mobile	
  applicaEon	
  
                – Index	
  slows	
  down	
  update	
  operaAons	
  on	
  device	
  and	
  
                  synchronizaAon,	
  especially	
  on	
  low	
  end	
  devices	
  
                – Uncheck	
  findByPrimaryKey	
  and	
  FindAll	
  queries	
  generated	
  for	
  
                  each	
  MBO	
  by	
  default	
  if	
  they	
  are	
  not	
  needed	
  by	
  the	
  mobile	
  
                  applicaAon	
  
                  	
  
                  	
  
                  	
  
                  	
  
                  	
  
                – Determine	
  if	
  index	
  should	
  be	
  created	
  for	
  user	
  defined	
  object	
  
                  queries	
  
8	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             SYNCHRONIZATION	
  GROUP	
  
             •  Use	
  synchronizaEon	
  group	
  to	
  add	
  flexibility	
  on	
  what	
  to	
  
                synchronize	
  
                – Controls	
  which	
  MBOs	
  to	
  synchronize	
  at	
  a	
  parAcular	
  Ame	
  
                – Supports	
  prioriAzaAon	
  i.e.	
  get	
  service	
  Ackets	
  without	
  details	
  
                – Limits	
  the	
  amount	
  of	
  data	
  during	
  synchronizaAon	
  for	
  
                  customers	
  facing	
  impaired	
  connecAvity	
  to	
  avoid	
  repeatedly	
  
                  trying	
  to	
  complete	
  a	
  large	
  synchronizaAon	
  
                – Think	
  twice	
  if	
  the	
  synchronizaAon	
  group	
  has	
  more	
  than	
  5	
  
                  members	
  
                – Run	
  Ame	
  flexibility	
  available	
  by	
  combining	
  synchronizaAon	
  
                  group	
  to	
  reduce	
  overhead	
  
                – RelaAonship	
  across	
  synchronizaAon	
  groups	
  may	
  result	
  in	
  
                  incomplete	
  object	
  graphs	
  on	
  the	
  client	
  
9	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             CACHE	
  GROUP	
  
             •  Use	
  cache	
  group	
  to	
  control	
  what	
  and	
  when	
  to	
  load	
  data	
  into	
  
                CDB	
  
                – Break	
  up	
  expensive	
  data	
  retrievals	
  from	
  backend	
  
                – RelaAonship	
  across	
  cache	
  group	
  may	
  result	
  in	
  incomplete	
  
                  object	
  graphs	
  in	
  CDB	
  
                – Mapping	
  cache	
  group	
  to	
  synchronizaAon	
  group	
  reduces	
  
                  unnecessary	
  refresh	
  not	
  related	
  to	
  the	
  triggering	
  
                  synchronizaAon	
  
                – Avoid	
  circular	
  dependencies	
  between	
  cache	
  groups.	
  
                – 	
  Similarly,	
  avoid	
  driving	
  the	
  load	
  of	
  an	
  MBO	
  in	
  one	
  cache	
  
                  group	
  based	
  on	
  the	
  aTributes	
  of	
  an	
  MBO	
  in	
  another	
  cache	
  
                  group	
  


10	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             PRIMARY	
  KEY	
  
             •  MBO	
  primary	
  key	
  should	
  match	
  backend	
  business	
  key	
  
             •  MBO	
  with	
  a	
  composite	
  primary	
  key	
  and	
  the	
  EIS	
  load	
  
                operaEon	
  parameters	
  do	
  not	
  match	
  in	
  scope,	
  data	
  may	
  be	
  
                duplicated	
  in	
  the	
  cache	
  
             •  If	
  no	
  primary	
  key	
  is	
  modeled,	
  an	
  implicit	
  composite	
  primary	
  
                key	
  that	
  is	
  made	
  up	
  of	
  all	
  columns	
  is	
  generated	
  




11	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             SYNCHRONIZATION	
  PARAMETER	
  
             •  SynchronizaEon	
  parameters	
  should	
  be	
  defined	
  and	
  mapped	
  to	
  
                all	
  result-­‐affecEng	
  load	
  parameters	
  
                – MBO	
  uses	
  WS	
  operaAon	
  getAllBooksByAuthor(Author,	
  userKey)	
  
                  where	
  userKey	
  is	
  simply	
  a	
  mechanism	
  to	
  authenAcate	
  a	
  user	
  
                  and	
  does	
  not	
  effect	
  the	
  results	
  of	
  the	
  operaAon.	
  In	
  this	
  case	
  
                  "userKey"	
  is	
  not	
  a	
  result-­‐affecAng	
  parameter	
  and	
  therefore	
  
                  should	
  not	
  be	
  mapped	
  to	
  a	
  synchronizaAon	
  parameter	
  
                – MBO	
  uses	
  WS	
  operaAon	
  getEmployees(Group,	
  department).	
  Group	
  
                  is	
  mapped	
  to	
  a	
  synchronizaAon	
  parameter	
  but	
  department	
  is	
  
                  mapped	
  to	
  a	
  personalizaAon	
  key.	
  The	
  parAAon	
  idenAfied	
  by	
  
                  Group	
  is	
  now	
  constantly	
  overwriTen	
  




12	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             PARTITION	
  
             •  ParEEon	
  is	
  parEEons/unique	
  EIS	
  result	
  sets	
  idenEfied	
  by	
  the	
  
                result	
  affec+ng	
  load	
  parameters	
  
             •  Use	
  mulEple	
  parEEons	
  whenever	
  possible.	
  By	
  default,	
  we	
  
                have	
  a	
  single	
  parEEon	
  
                – Increase	
  parallelism	
  
                                Load	
  vs.	
  load,	
  load	
  vs.	
  update	
  
                   – Reduce	
  refresh	
  latency	
  
                   – Data/rows	
  must	
  not	
  be	
  contained	
  in	
  mulAple	
  parAAon	
  
                     otherwise	
  data	
  need	
  to	
  be	
  constantly	
  updated,	
  even	
  if	
  the	
  
                     actual	
  business	
  data	
  didn't	
  change,	
  as	
  it	
  will	
  bounce	
  between	
  
                     parAAons	
  and	
  that	
  severely	
  impacts	
  performance	
  and	
  
                     download	
  incorrect	
  data	
  to	
  client	
  


13	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             PARTITION	
  
                   – ParAAons	
  can	
  also	
  be	
  used	
  to	
  get	
  data	
  "real-­‐#me"	
  when	
  using	
  
                     a	
  cache	
  interval	
  of	
  zero	
  and	
  very	
  small	
  parAAons	
  in	
  their	
  own	
  
                     cache	
  group/sync	
  group	
  relaAonship	
  
                   – ParAAon	
  granularity	
  
                            Too	
  coarse	
  -­‐	
  long	
  refresh	
  Ame	
  
                            Too	
  fine	
  –	
  high	
  overhead	
  due	
  to	
  EIS/SUP	
  chadness.	
  It	
  is	
  more	
  efficient	
  
                             to	
  have	
  reasonably	
  chunky	
  interface	
  between	
  server	
  networked	
  
                             components	
  




14	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             SHARED	
  READ	
  MBO	
  
             •  Use	
  shared	
  read	
  MBO	
  when	
  appropriate	
  
                – Populate	
  mulAple	
  MBOs	
  with	
  a	
  single	
  data	
  retrieval	
  
                  invocaAon	
  for	
  efficient	
  data	
  loading	
  
                – All	
  MBOs	
  share	
  the	
  same	
  parAAon	
  key,	
  they	
  will	
  always	
  be	
  
                  loaded/refreshed	
  together	
  when	
  the	
  cache	
  expired	
  
                – Apply	
  operaAons	
  results	
  always	
  only	
  applies	
  to	
  the	
  MBO	
  
                  instance	
  the	
  operaAon	
  is	
  executed	
  on,	
  you	
  can	
  not	
  fill	
  
                  mulAple	
  MBO	
  from	
  a	
  single	
  operaAon	
  output/result*	
  
                – For	
  “Apply	
  Results	
  to	
  Cache”	
  to	
  work,	
  the	
  output	
  from	
  
                  operaAon	
  has	
  to	
  look	
  just	
  like	
  the	
  output	
  from	
  the	
  primary	
  
                  read*	
  



15	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
GOOD	
  MBO	
  MODELING	
  PRACTICE	
  
             SHARED	
  READ	
  MBO	
  
                   – Shared	
  read	
  is	
  very	
  useful	
  to	
  read	
  objects	
  into	
  the	
  cache	
  
                     efficiently	
  and	
  transacAonally,	
  you	
  sAll	
  have	
  to	
  use	
  client	
  
                     parameters	
  for	
  transacAonal	
  write	
  operaAons*	
  
                                Child	
  rows	
  cannot	
  be	
  apply	
  to	
  cache	
  
                   – AlternaAvely,	
  use	
  MLI	
  to	
  chain	
  discrete	
  creaAon	
  operaAons	
  
                     within	
  the	
  hierarchy	
  
                                Root	
  create	
  operaAon	
  returns	
  primary	
  key	
  for	
  associaAon	
  with	
  
                                 surrogate	
  key	
  and	
  child	
  creaAon	
  
                   – Apply	
  results	
  should	
  be	
  used	
  whenever	
  possible,	
  if	
  one	
  wants	
  
                     to	
  maintain	
  the	
  surrogate	
  -­‐>	
  business	
  key	
  affinity	
  
                   – Invalidate	
  cache	
  is	
  required	
  to	
  be	
  used	
  if	
  the	
  device	
  side	
  
                     content	
  must	
  be	
  confirmed	
  in	
  the	
  most	
  Amely	
  fashion	
  
                                MulAple	
  parAAons	
  to	
  reduce	
  invalidate-­‐refresh	
  cost	
  to	
  retrieve	
  result	
  


16	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
DATA	
  LOADING	
  




             FILLING	
  THE	
  CDB	
  WITH	
  ENTERPRISE	
  DATA	
  




17	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
DATA	
  LOADING	
  DESIGN	
  PREPARATION	
  
             •  Know	
  Thy	
  Data	
  
                – Reference	
  vs.	
  TransacAonal:	
  Mostly	
  Read	
  vs.	
  Read/Write	
  
                – Shared	
  vs.	
  Private	
  
                – Sources	
  of	
  changes:	
  coherency	
  implicaAons	
  
                – Update	
  frequency	
  and	
  freshness	
  requirement	
  
                – Access	
  paTern:	
  peak	
  and	
  valley	
  or	
  distributed	
  
                – Data	
  volume:	
  size	
  does	
  maTer	
  
             •  Know	
  Thy	
  Data	
  Sources	
  
                – Efficiency	
  of	
  interface	
  
                            Protocol:	
  JCO	
  vs.	
  Web	
  Services	
  
                            API:	
  Number	
  of	
  invocaAons	
  required	
  

                   – Push	
  vs.	
  Pull	
  
                   – ReacAon	
  to	
  peak	
  load	
  
                    	
  
18	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
RULE	
  OF	
  THUMB	
  RE:	
  DATA	
  LOADING	
  
             •  Do	
  not	
  use	
  exisEng	
  API	
  just	
  because	
  it	
  is	
  there	
  	
  
                – Evaluate	
  its	
  efficiency	
  for	
  loading	
  data	
  into	
  CDB	
  
                – Develop	
  custom	
  mobile	
  adapAon	
  if	
  appropriate	
  
                – Load	
  what	
  is	
  needed	
  not	
  what	
  is	
  provided	
  
             •  Use	
  an	
  efficient	
  interface	
  (protocol)	
  for	
  high	
  data	
  volume	
  
             •  Use	
  DCN	
  for	
  very	
  large	
  data	
  volume	
  
                – Avoids	
  large	
  data	
  transfer	
  and	
  differenAal	
  calculaAon	
  
                – Does	
  not	
  help	
  with	
  iniAal	
  loading	
  
             •  Use	
  mulEple	
  parEEons	
  to	
  split	
  the	
  loading	
  whenever	
  possible	
  
                – Private	
  data	
  should	
  consider	
  the	
  use	
  of	
  “parAAon	
  by	
  
                  requester	
  and	
  device	
  idenAty”	
  or	
  equivalent	
  
                – Develop	
  backend	
  API	
  to	
  load	
  by	
  parAAon	
  if	
  appropriate	
  

19	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
RULE	
  OF	
  THUMB	
  RE:	
  DATA	
  LOADING	
  
             •  Do	
  not	
  mix	
  DCN	
  with	
  scheduled	
  or	
  on	
  demand	
  
             •  Do	
  not	
  use	
  very	
  large	
  DCN	
  message	
  to	
  improve	
  efficiency	
  
                – Excessive	
  memory	
  consumpAon	
  to	
  process	
  large	
  message	
  
                – May	
  block	
  download	
  due	
  to	
  many	
  locked	
  rows	
  
             •  Use	
  cache	
  groups	
  to	
  group	
  MBOs	
  with	
  similar	
  usage	
  
                characterisEcs	
  to	
  tune	
  load	
  performance	
  
                – Reference	
  vs.	
  transacAonal	
  
                – Private	
  vs.	
  shared	
  
             •  Use	
  shared	
  read	
  operaEons	
  if	
  possible	
  
                – Reduce	
  backend	
  interacAons	
  




20	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
REFERENCE	
  DATA	
  
             •  [Mostly	
  Read,	
  Large	
  Data	
  Volume,	
  Low	
  VolaElity]	
  	
  
             •  Strategy:	
  Cache	
  and	
  Share	
  	
  
             •  On	
  Demand	
  with	
  non	
  zero	
  cache	
  interval	
  
                – Alleviate	
  large	
  iniAal	
  data	
  loading	
  issue	
  through	
  parAAoning	
  if	
  
                  users	
  take	
  different	
  subsets	
  of	
  the	
  reference	
  data	
  
                            Large	
  iniAal	
  load	
  is	
  spread	
  out	
  over	
  Ame	
  
                            Load	
  data	
  on	
  demand	
  and	
  in	
  parallel	
  

                   – SaAsfy	
  data	
  freshness	
  requirement	
  through	
  cache	
  interval	
  




21	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
REFERENCE	
  DATA	
  
             •  Scheduled	
  
                – Match	
  backend	
  with	
  predetermined	
  reference	
  data	
  update	
  
                  schedule	
  e.g.	
  batch	
  run	
  @	
  midnight	
  
                – ParAAoning	
  to	
  restrict	
  loading	
  only	
  for	
  subscribed	
  data	
  
                – Not	
  recommended	
  for	
  high	
  data	
  freshness	
  if	
  backend	
  data	
  is	
  
                  volaAle	
  as	
  we	
  are	
  limited	
  by	
  the	
  update	
  interval	
  




22	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
REFERENCE	
  DATA	
  
             •  DCN	
  (Fill	
  and	
  Filter	
  Model)	
  
                – Enable	
  backend	
  data	
  change	
  propagaAon	
  to	
  cache	
  with	
  
                  lowest	
  cost	
  compared	
  to	
  on	
  demand	
  or	
  scheduled	
  
                – Enables	
  SIS	
  without	
  extra	
  work	
  
                – Supports	
  high	
  data	
  freshness	
  through	
  proper	
  change	
  
                  detecAon	
  interval	
  
                   – 	
  ∞	
  cache	
  interval	
  
                   – Use	
  synchronizaAon	
  parameters	
  for	
  filtering	
  download	
  data	
  
                   – High	
  iniAal	
  load	
  cost	
  for	
  large	
  data	
  volume	
  can	
  be	
  an	
  issue	
  




23	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
SERVER	
  INITIATED	
  SYNCHRONIZATION	
  
             REFERENCE	
  DATA	
  
             •  On	
  Demand	
  
                – Change	
  detecAon	
  funcAonal	
  if	
  someone	
  refreshed	
  the	
  data	
  +	
  
                  cache	
  expiraAon	
  (NZCI)	
  
             •  Scheduled	
  
                – 	
  Change	
  detecAon	
  funcAonal	
  whenever	
  the	
  change	
  is	
  pulled	
  
                  into	
  the	
  system	
  
             •  DCN	
  
                – Most	
  opAmal	
  with	
  SIS	
  as	
  changes	
  are	
  pushed	
  to	
  the	
  cache	
  
                – Change	
  detecAon	
  funcAonal	
  aper	
  push	
  
             •  NoEficaEon	
  MBO	
  paUern	
  for	
  On	
  Demand	
  with	
  ZCI	
  




24	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
READ/WRITE	
  DATA	
  WITH	
  CACHE	
  INTERVAL	
  
             •  Data	
  in	
  cache	
  using	
  Non	
  Zero	
  Cache	
  Interval	
  ≠	
  System	
  of	
  
                Record	
  
                – It	
  helps	
  to	
  reduce	
  number	
  data	
  retrieval	
  invocaAons	
  to	
  
                  backend	
  
                – Apply	
  results	
  to	
  cache	
  is	
  not	
  always	
  the	
  same	
  as	
  what	
  is	
  in	
  the	
  
                  backend	
  even	
  when	
  the	
  operaAon	
  succeeds	
  
                – Race	
  condiAon	
  can	
  produce	
  a	
  stale	
  result	
  in	
  the	
  cache	
  unAl	
  
                  next	
  refresh.	
  In	
  case	
  of	
  DCN,	
  it	
  may	
  be	
  unAl	
  the	
  next	
  update	
  




25	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
TRANSACTIONAL	
  DATA	
  (PRIVATE)	
  
             •  [Read/Write,	
  Per	
  User	
  Data,	
  Low	
  Volume,	
  Moderate	
  VolaElity]	
  
             •  On	
  Demand	
  with	
  zero	
  cache	
  interval	
  
                  – Data	
  is	
  always	
  consistent	
  with	
  backend	
  
                  – Requester/Device	
  based	
  or	
  equivalent	
  parAAoning	
  limits	
  
                    refresh	
  cost	
  
                  – SIS	
  can	
  be	
  implemented	
  through	
  noAficaAon	
  MBO	
  paTern	
  
                  – Evaluate	
  if	
  backend	
  can	
  handle	
  peak	
  load	
  if	
  users	
  tend	
  to	
  
                    synchronize	
  within	
  certain	
  Ame	
  of	
  the	
  day	
  
             •  On	
  Demand	
  with	
  non	
  zero	
  cache	
  interval	
  
                  – No	
  benefit	
  unless	
  user	
  synchronizes	
  repeatedly	
  in	
  succession	
  
                    e.g.	
  submidng	
  operaAon	
  and	
  downloading	
  of	
  applied	
  results	
  
             	
  
             	
  
26	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
TRANSACTIONAL	
  DATA	
  (PRIVATE)	
  
             •  Scheduled	
  
                – Enables	
  SIS	
  based	
  on	
  cache	
  interval	
  
                – Performance	
  implicaAons	
  
             •  DCN	
  
                – Enables	
  SIS	
  without	
  extra	
  work	
  
                – Supports	
  high	
  data	
  freshness	
  through	
  proper	
  change	
  
                  detecAon	
  interval	
  
                – Data	
  is	
  not	
  always	
  consistent	
  with	
  backend.	
  May	
  require	
  
                  another	
  update	
  to	
  fix	
  the	
  inconsistency	
  
                See	
  notes	
  




27	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
TRANSACTIONAL	
  DATA	
  (SHARED)	
  
             •  Sharing	
  at	
  two	
  levels	
  
                – MBO	
  instances	
  level	
  (ML)	
  
                – ParAAon	
  level	
  (PL)	
  
             •  On	
  Demand	
  with	
  non	
  zero	
  cache	
  interval	
  
                – SIS	
  based	
  on	
  user	
  synchronizaAon	
  acAvity	
  +	
  expiraAon	
  
                – ParAAon	
  by	
  Requester	
  and	
  Device	
  IdenAty	
  (ML)	
  
                            Duplicated	
  rows	
  in	
  non-­‐overlapping	
  parAAons	
  
                            Duplicated	
  parAAons	
  if	
  user	
  has	
  mulAple	
  devices	
  

                   – ParAAon	
  by	
  user	
  specific	
  idenAty	
  (ML)	
  
                                Make	
  sure	
  that	
  the	
  user	
  specific	
  idenAty	
  is	
  combined	
  with	
  backend	
  
                                 primary	
  key	
  to	
  form	
  the	
  MBO	
  primary	
  key	
  to	
  avoid	
  shared	
  row	
  bouncing	
  
                                 between	
  parAAons	
  



28	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
CACHE	
  POLICY	
  




             STAGING	
  VS.	
  CACHING	
  




29	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
CACHE	
  POLICY:	
  ON	
  DEMAND	
  
    •  Refresh	
  triggered	
  by	
  synchronizaEon	
  
    •  Zero	
  cache	
  interval	
  
       – Allows	
  latest	
  data	
  from	
  backend	
  to	
  be	
  retrieved	
  
       – Unless	
  data	
  volume	
  is	
  small,	
  should	
  be	
  coupled	
  with	
  parAAoning	
  
       – User	
  synchronizaAon	
  acAviAes	
  allow	
  changes	
  to	
  be	
  detected	
  
    •  Non	
  zero	
  cache	
  interval	
  
       – Reduce	
  data	
  loading	
  invocaAons	
  against	
  backend	
  
       – Coupled	
  with	
  parAAoning	
  to	
  reduce	
  amount	
  of	
  data	
  to	
  be	
  loaded	
  
         per	
  invocaAon	
  
       – User	
  synchronizaAon	
  acAviAes	
  +	
  cache	
  interval	
  expiraAon	
  allow	
  
         changes	
  to	
  be	
  detected	
  
       – Chances	
  of	
  inconsistency	
  with	
  backend	
  
       – Increase	
  parallelism	
  when	
  for	
  shared	
  data	
  
30	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
CACHE	
  POLICY:	
  ON	
  DEMAND	
  
        •  Refresh	
  triggered	
  by	
  synchronizaEon	
  
        •  Zero	
  cache	
  interval	
  
             – Allows	
  latest	
  data	
  from	
  backend	
  to	
  be	
  retrieved	
  
             – Unless	
  data	
  volume	
  is	
  small,	
  should	
  be	
  coupled	
  with	
  
               parAAoning	
  
             – User	
  synchronizaAon	
  acAviAes	
  allow	
  changes	
  to	
  be	
  detected	
  
        	
  




31	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
CACHE	
  POLICY:	
  SCHEDULED	
  
             •  AutomaEc	
  refresh	
  based	
  on	
  interval	
  
             •  Cache	
  interval	
  is	
  base	
  case	
  noEficaEon	
  granularity	
  
             •  ParEEoning	
  helps	
  to	
  spread	
  out	
  iniEal	
  data	
  loading	
  
             •  Match	
  backend	
  data	
  update	
  frequency	
  especially	
  for	
  
                  reference	
  data	
  
             •  Chances	
  of	
  inconsistency	
  with	
  backend	
  
             	
  




32	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
CACHE	
  POLICY:	
  DCN	
  
             •  Single	
  parEEon	
  
             •  Download	
  filtering	
  via	
  synchronizaEon	
  parameters	
  
             •  IniEal	
  data	
  loading	
  can	
  take	
  a	
  long	
  Eme.	
  SynchronizaEon	
  must	
  
                wait	
  for	
  loading	
  to	
  complete	
  
             •  Concurrency	
  with	
  synchronizaEon	
  @	
  row	
  level	
  
             •  DCN	
  takes	
  advantage	
  of	
  mulEple	
  SUP	
  servers	
  in	
  the	
  cluster	
  to	
  
                parallelize	
  loading	
  
             •  Use	
  a	
  noEficaEon	
  MBO	
  to	
  let	
  device	
  know	
  data	
  is	
  ready	
  
             •  Referred	
  to	
  MBOs	
  have	
  to	
  be	
  pushed	
  before	
  referring	
  MBOs	
  




33	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
DATA	
  MODEL	
  IMPLICATIONS	
  ON	
  CLIENT	
  




             LIMITATIONS	
  OF	
  MOBILE	
  DATABASE	
  




34	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
CLIENT	
  IMPLICATIONS	
  
             •  Database	
  page	
  size	
  governed	
  by	
  maximum	
  row	
  size	
  derived	
  
                from	
  MBO	
  definiEon	
  
                – Lots	
  of	
  aTributes	
  or	
  lengthy	
  ones	
  larger	
  rows	
  	
  larger	
  
                  page	
  size	
  
                – On	
  some	
  devices	
  like	
  the	
  Blackberry,	
  more	
  than	
  memory	
  is	
  
                  consumed	
  –	
  object	
  handles	
  
                – Based	
  on	
  our	
  observaAons,	
  page	
  sizes	
  between	
  1k	
  –	
  4k	
  seems	
  
                  to	
  provide	
  best	
  overall	
  performance	
  
                – Do	
  not	
  forget	
  to	
  account	
  for	
  non	
  LaAn	
  encoding	
  which	
  will	
  
                  result	
  in	
  large	
  row	
  size	
  
                – Large	
  rows	
  means	
  less	
  rows	
  per	
  page	
  and	
  more	
  pages	
  must	
  
                  be	
  fetched	
  or	
  cached.	
  For	
  MBOs	
  used	
  in	
  list	
  views,	
  this	
  can	
  
                  impact	
  the	
  UI	
  response	
  

35	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
CLIENT	
  IMPLICATIONS	
  
             •  Large	
  MBO	
  instance	
  leads	
  to	
  slow	
  and	
  expensive	
  object	
  
                instanEaEon	
  
             •  Object	
  query	
  returns	
  object(s)	
  and	
  dynamic	
  query	
  returns	
  
                result	
  set.	
  Use	
  dynamic	
  query	
  to	
  bypass	
  object	
  instanEaEon	
  
                and	
  selecEvely	
  retrieve	
  a	
  subset	
  of	
  aUributes	
  
             •  For	
  one	
  	
  many	
  or	
  one	
  ↔	
  many	
  relaEonship	
  where	
  
                count(many)	
  is	
  large	
  
                 – NavigaAon	
  and	
  cascade	
  operaAon	
  can	
  be	
  expensive	
  
             •  Does	
  the	
  data	
  model	
  enable	
  applicaEon	
  to	
  use	
  simple	
  queries	
  
                for	
  most	
  use	
  cases?	
  
                – Simple	
  joins	
  are	
  expensive	
  on	
  mobile	
  devices.	
  This	
  is	
  true	
  
                  even	
  for	
  iPhone	
  and	
  the	
  like	
  
             •  Indexes	
  slow	
  down	
  synchronizaEon	
  and	
  updates	
  

36	
  –	
  Company	
  ConfidenAal	
  –	
  December	
  12,	
  2011	
  
Sybase Unwired Platform 2.1 MBO best practices

Weitere ähnliche Inhalte

Was ist angesagt?

Sapbpc nw 10.0 consolidations ic matching & ic booking v5
Sapbpc nw 10.0 consolidations ic matching & ic booking v5Sapbpc nw 10.0 consolidations ic matching & ic booking v5
Sapbpc nw 10.0 consolidations ic matching & ic booking v5Jothi Periasamy
 
Advanced level planning and budgeting in Hyperion - Inge Prangel
Advanced level planning and budgeting in Hyperion - Inge PrangelAdvanced level planning and budgeting in Hyperion - Inge Prangel
Advanced level planning and budgeting in Hyperion - Inge PrangelORACLE USER GROUP ESTONIA
 
Omaha Rug2012 People Soft Fms 9 1 Overview Apr2012
Omaha Rug2012 People Soft Fms 9 1 Overview Apr2012Omaha Rug2012 People Soft Fms 9 1 Overview Apr2012
Omaha Rug2012 People Soft Fms 9 1 Overview Apr2012tecrecruiter
 
BPC Session1
BPC Session1BPC Session1
BPC Session1bayu5012
 
Planning 11.1.2 roma maggio 2010
Planning 11.1.2 roma maggio 2010Planning 11.1.2 roma maggio 2010
Planning 11.1.2 roma maggio 2010guesta7ae170
 
DB2 10 Webcast #2 - Justifying The Upgrade
DB2 10 Webcast #2  - Justifying The UpgradeDB2 10 Webcast #2  - Justifying The Upgrade
DB2 10 Webcast #2 - Justifying The UpgradeLaura Hood
 
Preventing Database Perfomance Issues | DB Optimizer
Preventing Database Perfomance Issues | DB OptimizerPreventing Database Perfomance Issues | DB Optimizer
Preventing Database Perfomance Issues | DB OptimizerMichael Findling
 
DB2 Performance Tuning Z/OS - email me please for more details
DB2 Performance Tuning Z/OS - email me please for more detailsDB2 Performance Tuning Z/OS - email me please for more details
DB2 Performance Tuning Z/OS - email me please for more detailsManikandan Suresh
 
Sapbpc nw 10.0 master data load from bw to bpc
Sapbpc nw 10.0 master data load from bw to bpcSapbpc nw 10.0 master data load from bw to bpc
Sapbpc nw 10.0 master data load from bw to bpcSatya
 
Presentation2
Presentation2Presentation2
Presentation2knowrob
 
Step by step procedure for loading of data from the flat file to the master d...
Step by step procedure for loading of data from the flat file to the master d...Step by step procedure for loading of data from the flat file to the master d...
Step by step procedure for loading of data from the flat file to the master d...Prashant Tyagi
 
Qmf for z os nordic db2 days andy
Qmf for z os nordic db2 days andyQmf for z os nordic db2 days andy
Qmf for z os nordic db2 days andyPeter Schouboe
 
Drive User Adoption And Productivity Using Crm Within Microsoft Outlook
Drive User Adoption And Productivity Using Crm Within Microsoft OutlookDrive User Adoption And Productivity Using Crm Within Microsoft Outlook
Drive User Adoption And Productivity Using Crm Within Microsoft OutlookJerome Leonard
 

Was ist angesagt? (16)

Sapbpc nw 10.0 consolidations ic matching & ic booking v5
Sapbpc nw 10.0 consolidations ic matching & ic booking v5Sapbpc nw 10.0 consolidations ic matching & ic booking v5
Sapbpc nw 10.0 consolidations ic matching & ic booking v5
 
Advanced level planning and budgeting in Hyperion - Inge Prangel
Advanced level planning and budgeting in Hyperion - Inge PrangelAdvanced level planning and budgeting in Hyperion - Inge Prangel
Advanced level planning and budgeting in Hyperion - Inge Prangel
 
Analysis edition for olap
Analysis edition for olapAnalysis edition for olap
Analysis edition for olap
 
Omaha Rug2012 People Soft Fms 9 1 Overview Apr2012
Omaha Rug2012 People Soft Fms 9 1 Overview Apr2012Omaha Rug2012 People Soft Fms 9 1 Overview Apr2012
Omaha Rug2012 People Soft Fms 9 1 Overview Apr2012
 
BPC Session1
BPC Session1BPC Session1
BPC Session1
 
Planning 11.1.2 roma maggio 2010
Planning 11.1.2 roma maggio 2010Planning 11.1.2 roma maggio 2010
Planning 11.1.2 roma maggio 2010
 
DB2 10 Webcast #2 - Justifying The Upgrade
DB2 10 Webcast #2  - Justifying The UpgradeDB2 10 Webcast #2  - Justifying The Upgrade
DB2 10 Webcast #2 - Justifying The Upgrade
 
Preventing Database Perfomance Issues | DB Optimizer
Preventing Database Perfomance Issues | DB OptimizerPreventing Database Perfomance Issues | DB Optimizer
Preventing Database Perfomance Issues | DB Optimizer
 
DB2 Performance Tuning Z/OS - email me please for more details
DB2 Performance Tuning Z/OS - email me please for more detailsDB2 Performance Tuning Z/OS - email me please for more details
DB2 Performance Tuning Z/OS - email me please for more details
 
Comp ben121enhancementswebinar
Comp ben121enhancementswebinarComp ben121enhancementswebinar
Comp ben121enhancementswebinar
 
Sapbpc nw 10.0 master data load from bw to bpc
Sapbpc nw 10.0 master data load from bw to bpcSapbpc nw 10.0 master data load from bw to bpc
Sapbpc nw 10.0 master data load from bw to bpc
 
Presentation2
Presentation2Presentation2
Presentation2
 
Step by step procedure for loading of data from the flat file to the master d...
Step by step procedure for loading of data from the flat file to the master d...Step by step procedure for loading of data from the flat file to the master d...
Step by step procedure for loading of data from the flat file to the master d...
 
Qmf for z os nordic db2 days andy
Qmf for z os nordic db2 days andyQmf for z os nordic db2 days andy
Qmf for z os nordic db2 days andy
 
Drive User Adoption And Productivity Using Crm Within Microsoft Outlook
Drive User Adoption And Productivity Using Crm Within Microsoft OutlookDrive User Adoption And Productivity Using Crm Within Microsoft Outlook
Drive User Adoption And Productivity Using Crm Within Microsoft Outlook
 
IBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversationsIBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversations
 

Andere mochten auch

Sybase Complex Event Processing
Sybase Complex Event ProcessingSybase Complex Event Processing
Sybase Complex Event ProcessingSybase Türkiye
 
SAP Sybase Event Streaming Processing
SAP Sybase Event Streaming ProcessingSAP Sybase Event Streaming Processing
SAP Sybase Event Streaming ProcessingSybase Türkiye
 
Ensayo Software SAP
Ensayo Software SAPEnsayo Software SAP
Ensayo Software SAPRonaldoR3
 
Carlos nuñez bibliography
Carlos nuñez bibliographyCarlos nuñez bibliography
Carlos nuñez bibliographyNujiii
 
Semnarea digitala a unui e-mail
Semnarea digitala a unui e-mailSemnarea digitala a unui e-mail
Semnarea digitala a unui e-mailcraciunmalina
 
images for cover and dps
images for cover and dpsimages for cover and dps
images for cover and dpssarahlambe
 
Advanced SEO - Digital Content Creators
Advanced SEO - Digital Content CreatorsAdvanced SEO - Digital Content Creators
Advanced SEO - Digital Content CreatorsAndrea Berberich
 
Bos pengalihan ke transfer (2)
Bos   pengalihan ke transfer (2)Bos   pengalihan ke transfer (2)
Bos pengalihan ke transfer (2)Pramudjo211052
 
Role of the Police
Role of the PoliceRole of the Police
Role of the Policesarahmbeck
 
MBUS.525.Chavez.Spring.2012
MBUS.525.Chavez.Spring.2012MBUS.525.Chavez.Spring.2012
MBUS.525.Chavez.Spring.2012staffordlibrary
 
Reading and studying
Reading and studyingReading and studying
Reading and studyingdrmccreedy
 
Introduction to websites
Introduction to websitesIntroduction to websites
Introduction to websitesUCTI
 
Marcommagazine Maart 2011
Marcommagazine Maart 2011Marcommagazine Maart 2011
Marcommagazine Maart 2011gijs28
 

Andere mochten auch (20)

SYBASE
SYBASE SYBASE
SYBASE
 
SGBD Sybase
SGBD SybaseSGBD Sybase
SGBD Sybase
 
Sybase Complex Event Processing
Sybase Complex Event ProcessingSybase Complex Event Processing
Sybase Complex Event Processing
 
SAP Sybase Event Streaming Processing
SAP Sybase Event Streaming ProcessingSAP Sybase Event Streaming Processing
SAP Sybase Event Streaming Processing
 
Ensayo Software SAP
Ensayo Software SAPEnsayo Software SAP
Ensayo Software SAP
 
SAP
SAPSAP
SAP
 
curso SAP
curso SAPcurso SAP
curso SAP
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
Sybase: Power Designer
Sybase: Power DesignerSybase: Power Designer
Sybase: Power Designer
 
Carlos nuñez bibliography
Carlos nuñez bibliographyCarlos nuñez bibliography
Carlos nuñez bibliography
 
Semnarea digitala a unui e-mail
Semnarea digitala a unui e-mailSemnarea digitala a unui e-mail
Semnarea digitala a unui e-mail
 
images for cover and dps
images for cover and dpsimages for cover and dps
images for cover and dps
 
Tp fernandagonzalez lamejor
Tp fernandagonzalez lamejorTp fernandagonzalez lamejor
Tp fernandagonzalez lamejor
 
Advanced SEO - Digital Content Creators
Advanced SEO - Digital Content CreatorsAdvanced SEO - Digital Content Creators
Advanced SEO - Digital Content Creators
 
Bos pengalihan ke transfer (2)
Bos   pengalihan ke transfer (2)Bos   pengalihan ke transfer (2)
Bos pengalihan ke transfer (2)
 
Role of the Police
Role of the PoliceRole of the Police
Role of the Police
 
MBUS.525.Chavez.Spring.2012
MBUS.525.Chavez.Spring.2012MBUS.525.Chavez.Spring.2012
MBUS.525.Chavez.Spring.2012
 
Reading and studying
Reading and studyingReading and studying
Reading and studying
 
Introduction to websites
Introduction to websitesIntroduction to websites
Introduction to websites
 
Marcommagazine Maart 2011
Marcommagazine Maart 2011Marcommagazine Maart 2011
Marcommagazine Maart 2011
 

Ähnlich wie Sybase Unwired Platform 2.1 MBO best practices

The Three Stages of Cloud Adoption - RightScale Compute 2013
The Three Stages of Cloud Adoption - RightScale Compute 2013The Three Stages of Cloud Adoption - RightScale Compute 2013
The Three Stages of Cloud Adoption - RightScale Compute 2013RightScale
 
Sybase Unwired Platform Modelling Best Practices
Sybase Unwired Platform Modelling Best Practices Sybase Unwired Platform Modelling Best Practices
Sybase Unwired Platform Modelling Best Practices Sybase Türkiye
 
TCO - MongoDB vs. Oracle
TCO - MongoDB vs. OracleTCO - MongoDB vs. Oracle
TCO - MongoDB vs. OracleJeremy Taylor
 
MongoDB at eBay
MongoDB at eBayMongoDB at eBay
MongoDB at eBayMongoDB
 
TCO Comparison MongoDB & Oracle
TCO Comparison MongoDB & OracleTCO Comparison MongoDB & Oracle
TCO Comparison MongoDB & OracleEl Taller Web
 
Business Process Insight - SRII 2012
Business Process Insight - SRII 2012Business Process Insight - SRII 2012
Business Process Insight - SRII 2012Szabolcs Rozsnyai
 
Ibm log differentiators for strategic network planning 2011 v6
Ibm log differentiators for strategic network planning 2011 v6Ibm log differentiators for strategic network planning 2011 v6
Ibm log differentiators for strategic network planning 2011 v6Artem Vinogradov
 
GigaOm-sector-roadmap-cloud-analytic-databases-2017
GigaOm-sector-roadmap-cloud-analytic-databases-2017GigaOm-sector-roadmap-cloud-analytic-databases-2017
GigaOm-sector-roadmap-cloud-analytic-databases-2017Jeremy Maranitch
 
Crack Smoking Data Models
Crack Smoking Data ModelsCrack Smoking Data Models
Crack Smoking Data Modelsnewmedio
 
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...BI Brainz
 
Managing Large Amounts of Data with Salesforce
Managing Large Amounts of Data with SalesforceManaging Large Amounts of Data with Salesforce
Managing Large Amounts of Data with SalesforceSense Corp
 
The Total Cost of Ownership (TCO) of Web Applications in the AWS Cloud - Jine...
The Total Cost of Ownership (TCO) of Web Applications in the AWS Cloud - Jine...The Total Cost of Ownership (TCO) of Web Applications in the AWS Cloud - Jine...
The Total Cost of Ownership (TCO) of Web Applications in the AWS Cloud - Jine...Amazon Web Services
 
CDM SIG: Fusion MDM for Customer Highlights [2010 OAUG Collaborate]
CDM SIG: Fusion MDM for Customer Highlights [2010 OAUG Collaborate]CDM SIG: Fusion MDM for Customer Highlights [2010 OAUG Collaborate]
CDM SIG: Fusion MDM for Customer Highlights [2010 OAUG Collaborate]Rhapsody Technologies, Inc.
 
Gobblin for Data Analytics
Gobblin for Data AnalyticsGobblin for Data Analytics
Gobblin for Data AnalyticsIntel IT Center
 
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...IBM Analytics
 
Best Practices with OLAP Modeling with Cognos Transformer (Cognos 8)
Best Practices with OLAP Modeling with Cognos Transformer (Cognos 8)Best Practices with OLAP Modeling with Cognos Transformer (Cognos 8)
Best Practices with OLAP Modeling with Cognos Transformer (Cognos 8)Senturus
 
SBI Securities Case Study
SBI Securities Case StudySBI Securities Case Study
SBI Securities Case StudyVMware Tanzu
 
86921864 olap-case-study-vj
86921864 olap-case-study-vj86921864 olap-case-study-vj
86921864 olap-case-study-vjhomeworkping4
 
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...Amazon Web Services
 

Ähnlich wie Sybase Unwired Platform 2.1 MBO best practices (20)

The Three Stages of Cloud Adoption - RightScale Compute 2013
The Three Stages of Cloud Adoption - RightScale Compute 2013The Three Stages of Cloud Adoption - RightScale Compute 2013
The Three Stages of Cloud Adoption - RightScale Compute 2013
 
Sybase Unwired Platform Modelling Best Practices
Sybase Unwired Platform Modelling Best Practices Sybase Unwired Platform Modelling Best Practices
Sybase Unwired Platform Modelling Best Practices
 
TCO - MongoDB vs. Oracle
TCO - MongoDB vs. OracleTCO - MongoDB vs. Oracle
TCO - MongoDB vs. Oracle
 
MongoDB at eBay
MongoDB at eBayMongoDB at eBay
MongoDB at eBay
 
TCO Comparison MongoDB & Oracle
TCO Comparison MongoDB & OracleTCO Comparison MongoDB & Oracle
TCO Comparison MongoDB & Oracle
 
Business Process Insight - SRII 2012
Business Process Insight - SRII 2012Business Process Insight - SRII 2012
Business Process Insight - SRII 2012
 
Ibm log differentiators for strategic network planning 2011 v6
Ibm log differentiators for strategic network planning 2011 v6Ibm log differentiators for strategic network planning 2011 v6
Ibm log differentiators for strategic network planning 2011 v6
 
ADBMS 19MCA8125.pdf
ADBMS 19MCA8125.pdfADBMS 19MCA8125.pdf
ADBMS 19MCA8125.pdf
 
GigaOm-sector-roadmap-cloud-analytic-databases-2017
GigaOm-sector-roadmap-cloud-analytic-databases-2017GigaOm-sector-roadmap-cloud-analytic-databases-2017
GigaOm-sector-roadmap-cloud-analytic-databases-2017
 
Crack Smoking Data Models
Crack Smoking Data ModelsCrack Smoking Data Models
Crack Smoking Data Models
 
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
 
Managing Large Amounts of Data with Salesforce
Managing Large Amounts of Data with SalesforceManaging Large Amounts of Data with Salesforce
Managing Large Amounts of Data with Salesforce
 
The Total Cost of Ownership (TCO) of Web Applications in the AWS Cloud - Jine...
The Total Cost of Ownership (TCO) of Web Applications in the AWS Cloud - Jine...The Total Cost of Ownership (TCO) of Web Applications in the AWS Cloud - Jine...
The Total Cost of Ownership (TCO) of Web Applications in the AWS Cloud - Jine...
 
CDM SIG: Fusion MDM for Customer Highlights [2010 OAUG Collaborate]
CDM SIG: Fusion MDM for Customer Highlights [2010 OAUG Collaborate]CDM SIG: Fusion MDM for Customer Highlights [2010 OAUG Collaborate]
CDM SIG: Fusion MDM for Customer Highlights [2010 OAUG Collaborate]
 
Gobblin for Data Analytics
Gobblin for Data AnalyticsGobblin for Data Analytics
Gobblin for Data Analytics
 
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
 
Best Practices with OLAP Modeling with Cognos Transformer (Cognos 8)
Best Practices with OLAP Modeling with Cognos Transformer (Cognos 8)Best Practices with OLAP Modeling with Cognos Transformer (Cognos 8)
Best Practices with OLAP Modeling with Cognos Transformer (Cognos 8)
 
SBI Securities Case Study
SBI Securities Case StudySBI Securities Case Study
SBI Securities Case Study
 
86921864 olap-case-study-vj
86921864 olap-case-study-vj86921864 olap-case-study-vj
86921864 olap-case-study-vj
 
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
 

Kürzlich hochgeladen

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Kürzlich hochgeladen (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Sybase Unwired Platform 2.1 MBO best practices

  • 1. SUP  2.1  KNOWLEDGE  TRANSFER   DATA  MODELING   MICHAEL HO OCTOBER 20, 2011
  • 2. CONTENTS   •  MBO  DefiniAon   •  Data  Loading   •  Cache  Policies   •  Data  Model  ImplicaAons  on  Client   •  Challenges  in  the  Field   •  SUP  2.1.1  Preview   2  –  Company  ConfidenAal  –  December  12,  2011  
  • 3. MBO  DEFINITION   THE  MBO  DATA  MODEL  IS  THE  CLIENT  DATA  MODEL   3  –  Company  ConfidenAal  –  December  12,  2011  
  • 4. MBO  DATA  MODEL   •  MBO  data  model  is  NOT  a  model  for  backend  business  objects   •  It  is  the  data  model  for  the  mobile  applicaEon  on  the  device   – A  user  replicates  the  data  model  for  the  desktop  applicaAon   on  the  device  where  many  of  the  aTributes  are  never  used,   leading  to  slow  synchronizaAon  and  performance  degradaAon   •  Empirical  data  shows  that  MBO  data  model  impacts  not  only   mobile  applicaEon  development  but  synchronizaEon   performance   •  MBO  definiEon  should  take  into  consideraEon  mobile   database  limitaEons   •  SynchronizaEon  group  defines  what  to  synchronize   •  Cache  group  defines  what  and  when  to  load  from  backend  to   fill  the  tables  in  CDB   4  –  Company  ConfidenAal  –  December  12,  2011  
  • 5. MBO  DATA  MODEL   •  RelaEonship  enables  navigaEon,  whole-­‐part  removal,  cascade   operaEons   – Supports  associaAon  (items    product)  and  composiAon   (sales  order    items)             •  Surrogate  key  scheme  on  the  client  database   – As  primary  key  for  synchronizaAon   – Foreign  key  to  implement  relaAonship   – Cache  associates  surrogate  key  with  backend  primary  key   5  –  Company  ConfidenAal  –  December  12,  2011  
  • 6. MBO  DATA  MODEL   •  Backend  create  operaEon  expected  to  return  primary  key  so   associaEon  between  surrogate  key  and  primary  key  can  be   formed   •  SynchronizaEon  parameters  serve  as  subscripEon  to   download  data   – Can  have  mulAple  sets  of  synchronizaAon  parameters  at  any   given  Ame   – Data  corresponding  to  these  sets  of  synchronizaAon   parameters  are  downloaded  to  the  device   – May  delete  en#re  collecAon  of  synchronizaAon  parameters   sets  to  reclaim  storage  space   6  –  Company  ConfidenAal  –  December  12,  2011  
  • 7. GOOD  MBO  MODELING  PRACTICE   MBO  DEFINITION   •  Every  aUribute  is  used  by  the  mobile  applicaEon   •  MBO  instance  =  database  row  (must  fit  within  a  page)   – Large  row  size  requires  larger  page  size  impacAng   performance  on  device  and  synchronizaAon   – Do  not  define  a  MBO  with  more  than  50  aTributes   – Do  not  use  STRING  data  type.  Instead,  use  STRING(n)  to   define  the  maximum  string  length  (STRING  defaults  to  300)   – PromoAon  of  VARCHAR(n)  to  LONG  VARCHAR  can  occur   during  code  generaAon  if  the  specified  page  size  is  less  than   the  calculated  maximum  row  size   – Use  larger  page  size  during  code  generaAon  and  run  with  a   smaller  one  on  device  if  normal  size  is  much  lower  than   maximum   7  –  Company  ConfidenAal  –  December  12,  2011  
  • 8. GOOD  MBO  MODELING  PRACTICE   INDEX   •  Use  the  minimum  number  of  indexes  to  support  queries  used   by  the  mobile  applicaEon   – Index  slows  down  update  operaAons  on  device  and   synchronizaAon,  especially  on  low  end  devices   – Uncheck  findByPrimaryKey  and  FindAll  queries  generated  for   each  MBO  by  default  if  they  are  not  needed  by  the  mobile   applicaAon             – Determine  if  index  should  be  created  for  user  defined  object   queries   8  –  Company  ConfidenAal  –  December  12,  2011  
  • 9. GOOD  MBO  MODELING  PRACTICE   SYNCHRONIZATION  GROUP   •  Use  synchronizaEon  group  to  add  flexibility  on  what  to   synchronize   – Controls  which  MBOs  to  synchronize  at  a  parAcular  Ame   – Supports  prioriAzaAon  i.e.  get  service  Ackets  without  details   – Limits  the  amount  of  data  during  synchronizaAon  for   customers  facing  impaired  connecAvity  to  avoid  repeatedly   trying  to  complete  a  large  synchronizaAon   – Think  twice  if  the  synchronizaAon  group  has  more  than  5   members   – Run  Ame  flexibility  available  by  combining  synchronizaAon   group  to  reduce  overhead   – RelaAonship  across  synchronizaAon  groups  may  result  in   incomplete  object  graphs  on  the  client   9  –  Company  ConfidenAal  –  December  12,  2011  
  • 10. GOOD  MBO  MODELING  PRACTICE   CACHE  GROUP   •  Use  cache  group  to  control  what  and  when  to  load  data  into   CDB   – Break  up  expensive  data  retrievals  from  backend   – RelaAonship  across  cache  group  may  result  in  incomplete   object  graphs  in  CDB   – Mapping  cache  group  to  synchronizaAon  group  reduces   unnecessary  refresh  not  related  to  the  triggering   synchronizaAon   – Avoid  circular  dependencies  between  cache  groups.   –   Similarly,  avoid  driving  the  load  of  an  MBO  in  one  cache   group  based  on  the  aTributes  of  an  MBO  in  another  cache   group   10  –  Company  ConfidenAal  –  December  12,  2011  
  • 11. GOOD  MBO  MODELING  PRACTICE   PRIMARY  KEY   •  MBO  primary  key  should  match  backend  business  key   •  MBO  with  a  composite  primary  key  and  the  EIS  load   operaEon  parameters  do  not  match  in  scope,  data  may  be   duplicated  in  the  cache   •  If  no  primary  key  is  modeled,  an  implicit  composite  primary   key  that  is  made  up  of  all  columns  is  generated   11  –  Company  ConfidenAal  –  December  12,  2011  
  • 12. GOOD  MBO  MODELING  PRACTICE   SYNCHRONIZATION  PARAMETER   •  SynchronizaEon  parameters  should  be  defined  and  mapped  to   all  result-­‐affecEng  load  parameters   – MBO  uses  WS  operaAon  getAllBooksByAuthor(Author,  userKey)   where  userKey  is  simply  a  mechanism  to  authenAcate  a  user   and  does  not  effect  the  results  of  the  operaAon.  In  this  case   "userKey"  is  not  a  result-­‐affecAng  parameter  and  therefore   should  not  be  mapped  to  a  synchronizaAon  parameter   – MBO  uses  WS  operaAon  getEmployees(Group,  department).  Group   is  mapped  to  a  synchronizaAon  parameter  but  department  is   mapped  to  a  personalizaAon  key.  The  parAAon  idenAfied  by   Group  is  now  constantly  overwriTen   12  –  Company  ConfidenAal  –  December  12,  2011  
  • 13. GOOD  MBO  MODELING  PRACTICE   PARTITION   •  ParEEon  is  parEEons/unique  EIS  result  sets  idenEfied  by  the   result  affec+ng  load  parameters   •  Use  mulEple  parEEons  whenever  possible.  By  default,  we   have  a  single  parEEon   – Increase  parallelism     Load  vs.  load,  load  vs.  update   – Reduce  refresh  latency   – Data/rows  must  not  be  contained  in  mulAple  parAAon   otherwise  data  need  to  be  constantly  updated,  even  if  the   actual  business  data  didn't  change,  as  it  will  bounce  between   parAAons  and  that  severely  impacts  performance  and   download  incorrect  data  to  client   13  –  Company  ConfidenAal  –  December  12,  2011  
  • 14. GOOD  MBO  MODELING  PRACTICE   PARTITION   – ParAAons  can  also  be  used  to  get  data  "real-­‐#me"  when  using   a  cache  interval  of  zero  and  very  small  parAAons  in  their  own   cache  group/sync  group  relaAonship   – ParAAon  granularity     Too  coarse  -­‐  long  refresh  Ame     Too  fine  –  high  overhead  due  to  EIS/SUP  chadness.  It  is  more  efficient   to  have  reasonably  chunky  interface  between  server  networked   components   14  –  Company  ConfidenAal  –  December  12,  2011  
  • 15. GOOD  MBO  MODELING  PRACTICE   SHARED  READ  MBO   •  Use  shared  read  MBO  when  appropriate   – Populate  mulAple  MBOs  with  a  single  data  retrieval   invocaAon  for  efficient  data  loading   – All  MBOs  share  the  same  parAAon  key,  they  will  always  be   loaded/refreshed  together  when  the  cache  expired   – Apply  operaAons  results  always  only  applies  to  the  MBO   instance  the  operaAon  is  executed  on,  you  can  not  fill   mulAple  MBO  from  a  single  operaAon  output/result*   – For  “Apply  Results  to  Cache”  to  work,  the  output  from   operaAon  has  to  look  just  like  the  output  from  the  primary   read*   15  –  Company  ConfidenAal  –  December  12,  2011  
  • 16. GOOD  MBO  MODELING  PRACTICE   SHARED  READ  MBO   – Shared  read  is  very  useful  to  read  objects  into  the  cache   efficiently  and  transacAonally,  you  sAll  have  to  use  client   parameters  for  transacAonal  write  operaAons*     Child  rows  cannot  be  apply  to  cache   – AlternaAvely,  use  MLI  to  chain  discrete  creaAon  operaAons   within  the  hierarchy     Root  create  operaAon  returns  primary  key  for  associaAon  with   surrogate  key  and  child  creaAon   – Apply  results  should  be  used  whenever  possible,  if  one  wants   to  maintain  the  surrogate  -­‐>  business  key  affinity   – Invalidate  cache  is  required  to  be  used  if  the  device  side   content  must  be  confirmed  in  the  most  Amely  fashion     MulAple  parAAons  to  reduce  invalidate-­‐refresh  cost  to  retrieve  result   16  –  Company  ConfidenAal  –  December  12,  2011  
  • 17. DATA  LOADING   FILLING  THE  CDB  WITH  ENTERPRISE  DATA   17  –  Company  ConfidenAal  –  December  12,  2011  
  • 18. DATA  LOADING  DESIGN  PREPARATION   •  Know  Thy  Data   – Reference  vs.  TransacAonal:  Mostly  Read  vs.  Read/Write   – Shared  vs.  Private   – Sources  of  changes:  coherency  implicaAons   – Update  frequency  and  freshness  requirement   – Access  paTern:  peak  and  valley  or  distributed   – Data  volume:  size  does  maTer   •  Know  Thy  Data  Sources   – Efficiency  of  interface     Protocol:  JCO  vs.  Web  Services     API:  Number  of  invocaAons  required   – Push  vs.  Pull   – ReacAon  to  peak  load     18  –  Company  ConfidenAal  –  December  12,  2011  
  • 19. RULE  OF  THUMB  RE:  DATA  LOADING   •  Do  not  use  exisEng  API  just  because  it  is  there     – Evaluate  its  efficiency  for  loading  data  into  CDB   – Develop  custom  mobile  adapAon  if  appropriate   – Load  what  is  needed  not  what  is  provided   •  Use  an  efficient  interface  (protocol)  for  high  data  volume   •  Use  DCN  for  very  large  data  volume   – Avoids  large  data  transfer  and  differenAal  calculaAon   – Does  not  help  with  iniAal  loading   •  Use  mulEple  parEEons  to  split  the  loading  whenever  possible   – Private  data  should  consider  the  use  of  “parAAon  by   requester  and  device  idenAty”  or  equivalent   – Develop  backend  API  to  load  by  parAAon  if  appropriate   19  –  Company  ConfidenAal  –  December  12,  2011  
  • 20. RULE  OF  THUMB  RE:  DATA  LOADING   •  Do  not  mix  DCN  with  scheduled  or  on  demand   •  Do  not  use  very  large  DCN  message  to  improve  efficiency   – Excessive  memory  consumpAon  to  process  large  message   – May  block  download  due  to  many  locked  rows   •  Use  cache  groups  to  group  MBOs  with  similar  usage   characterisEcs  to  tune  load  performance   – Reference  vs.  transacAonal   – Private  vs.  shared   •  Use  shared  read  operaEons  if  possible   – Reduce  backend  interacAons   20  –  Company  ConfidenAal  –  December  12,  2011  
  • 21. REFERENCE  DATA   •  [Mostly  Read,  Large  Data  Volume,  Low  VolaElity]     •  Strategy:  Cache  and  Share     •  On  Demand  with  non  zero  cache  interval   – Alleviate  large  iniAal  data  loading  issue  through  parAAoning  if   users  take  different  subsets  of  the  reference  data     Large  iniAal  load  is  spread  out  over  Ame     Load  data  on  demand  and  in  parallel   – SaAsfy  data  freshness  requirement  through  cache  interval   21  –  Company  ConfidenAal  –  December  12,  2011  
  • 22. REFERENCE  DATA   •  Scheduled   – Match  backend  with  predetermined  reference  data  update   schedule  e.g.  batch  run  @  midnight   – ParAAoning  to  restrict  loading  only  for  subscribed  data   – Not  recommended  for  high  data  freshness  if  backend  data  is   volaAle  as  we  are  limited  by  the  update  interval   22  –  Company  ConfidenAal  –  December  12,  2011  
  • 23. REFERENCE  DATA   •  DCN  (Fill  and  Filter  Model)   – Enable  backend  data  change  propagaAon  to  cache  with   lowest  cost  compared  to  on  demand  or  scheduled   – Enables  SIS  without  extra  work   – Supports  high  data  freshness  through  proper  change   detecAon  interval   –   ∞  cache  interval   – Use  synchronizaAon  parameters  for  filtering  download  data   – High  iniAal  load  cost  for  large  data  volume  can  be  an  issue   23  –  Company  ConfidenAal  –  December  12,  2011  
  • 24. SERVER  INITIATED  SYNCHRONIZATION   REFERENCE  DATA   •  On  Demand   – Change  detecAon  funcAonal  if  someone  refreshed  the  data  +   cache  expiraAon  (NZCI)   •  Scheduled   –   Change  detecAon  funcAonal  whenever  the  change  is  pulled   into  the  system   •  DCN   – Most  opAmal  with  SIS  as  changes  are  pushed  to  the  cache   – Change  detecAon  funcAonal  aper  push   •  NoEficaEon  MBO  paUern  for  On  Demand  with  ZCI   24  –  Company  ConfidenAal  –  December  12,  2011  
  • 25. READ/WRITE  DATA  WITH  CACHE  INTERVAL   •  Data  in  cache  using  Non  Zero  Cache  Interval  ≠  System  of   Record   – It  helps  to  reduce  number  data  retrieval  invocaAons  to   backend   – Apply  results  to  cache  is  not  always  the  same  as  what  is  in  the   backend  even  when  the  operaAon  succeeds   – Race  condiAon  can  produce  a  stale  result  in  the  cache  unAl   next  refresh.  In  case  of  DCN,  it  may  be  unAl  the  next  update   25  –  Company  ConfidenAal  –  December  12,  2011  
  • 26. TRANSACTIONAL  DATA  (PRIVATE)   •  [Read/Write,  Per  User  Data,  Low  Volume,  Moderate  VolaElity]   •  On  Demand  with  zero  cache  interval   – Data  is  always  consistent  with  backend   – Requester/Device  based  or  equivalent  parAAoning  limits   refresh  cost   – SIS  can  be  implemented  through  noAficaAon  MBO  paTern   – Evaluate  if  backend  can  handle  peak  load  if  users  tend  to   synchronize  within  certain  Ame  of  the  day   •  On  Demand  with  non  zero  cache  interval   – No  benefit  unless  user  synchronizes  repeatedly  in  succession   e.g.  submidng  operaAon  and  downloading  of  applied  results       26  –  Company  ConfidenAal  –  December  12,  2011  
  • 27. TRANSACTIONAL  DATA  (PRIVATE)   •  Scheduled   – Enables  SIS  based  on  cache  interval   – Performance  implicaAons   •  DCN   – Enables  SIS  without  extra  work   – Supports  high  data  freshness  through  proper  change   detecAon  interval   – Data  is  not  always  consistent  with  backend.  May  require   another  update  to  fix  the  inconsistency   See  notes   27  –  Company  ConfidenAal  –  December  12,  2011  
  • 28. TRANSACTIONAL  DATA  (SHARED)   •  Sharing  at  two  levels   – MBO  instances  level  (ML)   – ParAAon  level  (PL)   •  On  Demand  with  non  zero  cache  interval   – SIS  based  on  user  synchronizaAon  acAvity  +  expiraAon   – ParAAon  by  Requester  and  Device  IdenAty  (ML)     Duplicated  rows  in  non-­‐overlapping  parAAons     Duplicated  parAAons  if  user  has  mulAple  devices   – ParAAon  by  user  specific  idenAty  (ML)     Make  sure  that  the  user  specific  idenAty  is  combined  with  backend   primary  key  to  form  the  MBO  primary  key  to  avoid  shared  row  bouncing   between  parAAons   28  –  Company  ConfidenAal  –  December  12,  2011  
  • 29. CACHE  POLICY   STAGING  VS.  CACHING   29  –  Company  ConfidenAal  –  December  12,  2011  
  • 30. CACHE  POLICY:  ON  DEMAND   •  Refresh  triggered  by  synchronizaEon   •  Zero  cache  interval   – Allows  latest  data  from  backend  to  be  retrieved   – Unless  data  volume  is  small,  should  be  coupled  with  parAAoning   – User  synchronizaAon  acAviAes  allow  changes  to  be  detected   •  Non  zero  cache  interval   – Reduce  data  loading  invocaAons  against  backend   – Coupled  with  parAAoning  to  reduce  amount  of  data  to  be  loaded   per  invocaAon   – User  synchronizaAon  acAviAes  +  cache  interval  expiraAon  allow   changes  to  be  detected   – Chances  of  inconsistency  with  backend   – Increase  parallelism  when  for  shared  data   30  –  Company  ConfidenAal  –  December  12,  2011  
  • 31. CACHE  POLICY:  ON  DEMAND   •  Refresh  triggered  by  synchronizaEon   •  Zero  cache  interval   – Allows  latest  data  from  backend  to  be  retrieved   – Unless  data  volume  is  small,  should  be  coupled  with   parAAoning   – User  synchronizaAon  acAviAes  allow  changes  to  be  detected     31  –  Company  ConfidenAal  –  December  12,  2011  
  • 32. CACHE  POLICY:  SCHEDULED   •  AutomaEc  refresh  based  on  interval   •  Cache  interval  is  base  case  noEficaEon  granularity   •  ParEEoning  helps  to  spread  out  iniEal  data  loading   •  Match  backend  data  update  frequency  especially  for   reference  data   •  Chances  of  inconsistency  with  backend     32  –  Company  ConfidenAal  –  December  12,  2011  
  • 33. CACHE  POLICY:  DCN   •  Single  parEEon   •  Download  filtering  via  synchronizaEon  parameters   •  IniEal  data  loading  can  take  a  long  Eme.  SynchronizaEon  must   wait  for  loading  to  complete   •  Concurrency  with  synchronizaEon  @  row  level   •  DCN  takes  advantage  of  mulEple  SUP  servers  in  the  cluster  to   parallelize  loading   •  Use  a  noEficaEon  MBO  to  let  device  know  data  is  ready   •  Referred  to  MBOs  have  to  be  pushed  before  referring  MBOs   33  –  Company  ConfidenAal  –  December  12,  2011  
  • 34. DATA  MODEL  IMPLICATIONS  ON  CLIENT   LIMITATIONS  OF  MOBILE  DATABASE   34  –  Company  ConfidenAal  –  December  12,  2011  
  • 35. CLIENT  IMPLICATIONS   •  Database  page  size  governed  by  maximum  row  size  derived   from  MBO  definiEon   – Lots  of  aTributes  or  lengthy  ones  larger  rows    larger   page  size   – On  some  devices  like  the  Blackberry,  more  than  memory  is   consumed  –  object  handles   – Based  on  our  observaAons,  page  sizes  between  1k  –  4k  seems   to  provide  best  overall  performance   – Do  not  forget  to  account  for  non  LaAn  encoding  which  will   result  in  large  row  size   – Large  rows  means  less  rows  per  page  and  more  pages  must   be  fetched  or  cached.  For  MBOs  used  in  list  views,  this  can   impact  the  UI  response   35  –  Company  ConfidenAal  –  December  12,  2011  
  • 36. CLIENT  IMPLICATIONS   •  Large  MBO  instance  leads  to  slow  and  expensive  object   instanEaEon   •  Object  query  returns  object(s)  and  dynamic  query  returns   result  set.  Use  dynamic  query  to  bypass  object  instanEaEon   and  selecEvely  retrieve  a  subset  of  aUributes   •  For  one    many  or  one  ↔  many  relaEonship  where   count(many)  is  large   – NavigaAon  and  cascade  operaAon  can  be  expensive   •  Does  the  data  model  enable  applicaEon  to  use  simple  queries   for  most  use  cases?   – Simple  joins  are  expensive  on  mobile  devices.  This  is  true   even  for  iPhone  and  the  like   •  Indexes  slow  down  synchronizaEon  and  updates   36  –  Company  ConfidenAal  –  December  12,  2011