Hex Artifact Content
Not logged in

Artifact bcd7e9b47b469a065e5476c4e6c167edb9af9714:

Ticket change [bcd7e9b47b] - Closed ticket 678eb0c20a: Large files make memory usage spike through the roof. plus 2 other changes by drh on 2009-09-16 16:20:55.

0000: 44 20 32 30 30 39 2d 30 39 2d 31 36 54 31 36 3a  D 2009-09-16T16:
0010: 32 30 3a 35 35 0a 4a 20 2b 63 6f 6d 6d 65 6e 74  20:55.J +comment
0020: 20 5c 6e 5c 6e 3c 68 72 3e 3c 69 3e 64 72 68 5c   \n\n<hr><i>drh\
0030: 73 61 64 64 65 64 5c 73 6f 6e 5c 73 32 30 30 39  sadded\son\s2009
0040: 2d 30 39 2d 31 36 5c 73 31 36 3a 32 30 3a 35 35  -09-16\s16:20:55
0050: 3a 3c 2f 69 3e 3c 62 72 3e 5c 6e 4e 6f 2c 5c 73  :</i><br>\nNo,\s
0060: 66 6f 73 73 69 6c 5c 73 69 73 5c 73 3c 75 3e 6e  fossil\sis\s<u>n
0070: 6f 74 3c 2f 75 3e 5c 73 70 75 6c 6c 69 6e 67 5c  ot</u>\spulling\
0080: 73 74 68 65 5c 73 77 68 6f 6c 65 5c 73 72 65 70  sthe\swhole\srep
0090: 6f 73 69 74 6f 72 79 5c 73 69 6e 74 6f 5c 73 6d  ository\sinto\sm
00a0: 65 6d 6f 72 79 2e 2e 2e 2e 5c 72 5c 6e 5c 72 5c  emory....\r\n\r\
00b0: 6e 42 75 74 5c 73 69 74 5c 73 64 6f 65 73 5c 73  nBut\sit\sdoes\s
00c0: 63 6f 6e 73 74 72 75 63 74 5c 73 61 6e 5c 73 65  construct\san\se
00d0: 6e 74 69 72 65 5c 73 48 54 54 50 5c 73 72 65 70  ntire\sHTTP\srep
00e0: 6c 79 5c 73 6d 65 73 73 61 67 65 5c 73 69 6e 5c  ly\smessage\sin\
00f0: 73 6d 65 6d 6f 72 79 2e 5c 73 5c 73 54 68 61 74  smemory.\s\sThat
0100: 5c 73 69 6e 76 6f 6c 76 65 73 5c 72 5c 6e 72 65  \sinvolves\r\nre
0110: 61 64 69 6e 67 5c 73 69 6e 5c 73 74 68 65 5c 73  ading\sin\sthe\s
0120: 31 38 4d 42 5c 73 62 6c 6f 62 5c 73 6f 75 74 5c  18MB\sblob\sout\
0130: 73 6f 66 5c 73 74 68 65 5c 73 64 61 74 61 62 61  sof\sthe\sdataba
0140: 73 65 5c 73 61 6e 64 5c 73 64 65 63 6f 6d 70 72  se\sand\sdecompr
0150: 65 73 73 69 6e 67 5c 73 69 74 2c 5c 72 5c 6e 74  essing\sit,\r\nt
0160: 68 65 6e 5c 73 61 70 70 65 6e 64 69 6e 67 5c 73  hen\sappending\s
0170: 74 68 61 74 5c 73 62 6c 6f 62 5c 73 74 6f 5c 73  that\sblob\sto\s
0180: 74 68 65 5c 72 5c 6e 65 6e 64 5c 73 6f 66 5c 73  the\r\nend\sof\s
0190: 74 68 65 5c 73 67 72 6f 77 69 6e 67 5c 73 48 54  the\sgrowing\sHT
01a0: 54 50 5c 73 72 65 70 6c 79 5c 73 28 74 68 65 72  TP\sreply\s(ther
01b0: 65 5c 73 69 73 5c 73 33 36 4d 42 5c 73 66 6f 72  e\sis\s36MB\sfor
01c0: 5c 73 79 6f 75 5c 73 61 6c 72 65 61 64 79 29 5c  \syou\salready)\
01d0: 73 74 68 65 6e 5c 73 63 6f 6d 70 72 65 73 73 69  sthen\scompressi
01e0: 6e 67 5c 72 5c 6e 74 68 65 5c 73 65 6e 74 69 72  ng\r\nthe\sentir
01f0: 65 5c 73 48 54 54 50 5c 73 72 65 70 6c 79 5c 73  e\sHTTP\sreply\s
0200: 75 73 69 6e 67 5c 73 5a 2d 6c 69 62 2e 5c 73 5c  using\sZ-lib.\s\
0210: 73 41 73 5c 73 74 68 65 5c 73 48 54 54 50 5c 73  sAs\sthe\sHTTP\s
0220: 72 65 70 6c 79 5c 73 62 75 66 66 65 72 5c 73 67  reply\sbuffer\sg
0230: 72 6f 77 73 2c 5c 73 69 74 5c 73 75 73 65 73 5c  rows,\sit\suses\
0240: 73 74 68 65 5c 72 5c 6e 74 72 69 63 6b 5c 73 6f  sthe\r\ntrick\so
0250: 66 5c 73 72 65 61 6c 6c 6f 63 2d 61 6e 64 2d 63  f\srealloc-and-c
0260: 6f 70 79 5c 73 73 6f 5c 73 67 72 6f 77 69 6e 67  opy\sso\sgrowing
0270: 5c 73 61 5c 73 62 75 66 66 65 72 5c 73 6d 69 67  \sa\sbuffer\smig
0280: 68 74 5c 73 6d 61 6b 65 5c 73 72 65 71 75 69 72  ht\smake\srequir
0290: 65 5c 73 74 77 69 63 65 5c 73 74 68 65 5c 73 73  e\stwice\sthe\ss
02a0: 69 7a 65 5c 72 5c 6e 6f 66 5c 73 74 68 65 5c 73  ize\r\nof\sthe\s
02b0: 62 75 66 66 65 72 2e 5c 73 5c 73 45 76 65 72 79  buffer.\s\sEvery
02c0: 5c 73 63 6f 6d 70 72 65 73 73 2f 75 6e 63 6f 6d  \scompress/uncom
02d0: 70 72 65 73 73 5c 73 6f 70 65 72 61 74 69 6f 6e  press\soperation
02e0: 5c 73 69 6e 76 6f 6c 76 65 73 5c 73 6b 65 65 70  \sinvolves\skeep
02f0: 69 6e 67 5c 73 62 6f 74 68 5c 72 5c 6e 74 68 65  ing\sboth\r\nthe
0300: 5c 73 6f 72 69 67 69 6e 61 6c 5c 73 61 6e 64 5c  \soriginal\sand\
0310: 73 74 68 65 5c 73 6d 6f 64 69 66 69 65 64 5c 73  sthe\smodified\s
0320: 63 6f 70 79 5c 73 69 6e 5c 73 52 41 4d 5c 73 61  copy\sin\sRAM\sa
0330: 74 5c 73 6c 65 61 73 74 5c 73 66 6f 72 5c 73 61  t\sleast\sfor\sa
0340: 5c 73 73 68 6f 72 74 5c 73 77 68 69 6c 65 2e 5c  \sshort\swhile.\
0350: 72 5c 6e 41 64 64 5c 73 74 6f 5c 73 74 68 61 74  r\nAdd\sto\sthat
0360: 5c 73 6d 61 6c 6c 6f 63 5c 73 66 72 61 67 6d 65  \smalloc\sfragme
0370: 6e 74 61 74 69 6f 6e 5c 73 61 6e 64 5c 73 74 68  ntation\sand\sth
0380: 65 5c 73 6d 65 6d 6f 72 79 5c 73 73 70 61 63 65  e\smemory\sspace
0390: 5c 73 74 68 61 74 5c 72 5c 6e 53 51 4c 69 74 65  \sthat\r\nSQLite
03a0: 5c 73 77 69 6c 6c 5c 73 72 65 71 75 65 73 74 5c  \swill\srequest\
03b0: 73 28 77 65 5c 73 63 6f 6e 66 69 67 75 72 65 5c  s(we\sconfigure\
03c0: 73 53 51 4c 69 74 65 5c 73 69 6e 5c 73 66 6f 73  sSQLite\sin\sfos
03d0: 73 69 6c 5c 73 74 6f 5c 73 75 73 65 5c 73 6c 6f  sil\sto\suse\slo
03e0: 74 73 5c 73 6f 66 5c 73 6d 65 6d 6f 72 79 5c 72  ts\sof\smemory\r
03f0: 5c 6e 62 65 63 61 75 73 65 5c 73 74 68 61 74 5c  \nbecause\sthat\
0400: 73 6d 61 6b 65 73 5c 73 69 74 5c 73 66 61 73 74  smakes\sit\sfast
0410: 65 72 5c 73 61 6e 64 5c 73 62 65 63 61 75 73 65  er\sand\sbecause
0420: 5c 73 66 6f 73 73 69 6c 5c 73 69 73 5c 73 64 65  \sfossil\sis\sde
0430: 73 69 67 6e 65 64 5c 73 74 6f 5c 73 72 75 6e 5c  signed\sto\srun\
0440: 73 6f 6e 5c 73 61 5c 73 5c 72 5c 6e 77 6f 72 6b  son\sa\s\r\nwork
0450: 73 74 61 74 69 6f 6e 2c 5c 73 6e 6f 74 5c 73 61  station,\snot\sa
0460: 5c 73 63 65 6c 6c 70 68 6f 6e 65 21 29 5c 73 61  \scellphone!)\sa
0470: 6e 64 5c 73 69 74 5c 73 69 73 5c 73 6c 69 74 74  nd\sit\sis\slitt
0480: 6c 65 5c 73 77 6f 6e 64 65 72 5c 73 74 68 61 74  le\swonder\sthat
0490: 5c 73 79 6f 75 5c 72 5c 6e 61 72 65 5c 73 72 75  \syou\r\nare\sru
04a0: 6e 6e 69 6e 67 5c 73 6f 75 74 5c 73 6f 66 5c 73  nning\sout\sof\s
04b0: 52 41 4d 2e 5c 72 5c 6e 5c 72 5c 6e 54 68 65 5c  RAM.\r\n\r\nThe\
04c0: 73 6f 62 76 69 6f 75 73 5c 73 73 6f 6c 75 74 69  sobvious\ssoluti
04d0: 6f 6e 5c 73 68 65 72 65 5c 73 69 73 5c 73 74 6f  on\shere\sis\sto
04e0: 5c 73 67 65 74 5c 73 6d 6f 72 65 5c 73 52 41 4d  \sget\smore\sRAM
04f0: 2e 5c 73 5c 73 54 68 61 74 5c 73 63 61 6e 27 74  .\s\sThat\scan't
0500: 5c 73 62 65 5c 73 68 61 72 64 2e 5c 72 5c 6e 49  \sbe\shard.\r\nI
0510: 5c 73 75 73 65 5c 73 5b 68 74 74 70 3a 2f 2f 77  \suse\s[http://w
0520: 77 77 2e 6c 69 6e 6f 64 65 2e 63 6f 6d 2f 5c 73  ww.linode.com/\s
0530: 7c 5c 73 4c 69 6e 6f 64 65 5d 5c 73 61 73 5c 73  |\sLinode]\sas\s
0540: 6d 79 5c 73 56 50 53 5c 73 70 72 6f 76 69 64 65  my\sVPS\sprovide
0550: 72 5c 73 61 6e 64 5c 73 74 68 65 5c 73 5c 72 5c  r\sand\sthe\s\r\
0560: 6e 3c 65 6d 3e 73 6d 61 6c 6c 65 73 74 3c 2f 65  n<em>smallest</e
0570: 6d 3e 5c 73 73 79 73 74 65 6d 5c 73 74 68 65 79  m>\ssystem\sthey
0580: 5c 73 73 65 6c 6c 5c 73 69 73 5c 73 33 36 30 4d  \ssell\sis\s360M
0590: 42 2e 5c 72 5c 6e 49 5c 73 61 6c 73 6f 5c 73 75  B.\r\nI\salso\su
05a0: 73 65 5c 73 66 6f 73 73 69 6c 5c 73 6f 6e 5c 73  se\sfossil\son\s
05b0: 5b 68 74 74 70 3a 2f 2f 77 77 77 2e 68 65 2e 6e  [http://www.he.n
05c0: 65 74 2f 5c 73 7c 5c 73 48 75 72 72 69 63 61 6e  et/\s|\sHurrican
05d0: 65 5c 73 45 6c 65 63 74 72 69 63 5d 2e 5c 73 5c  e\sElectric].\s\
05e0: 73 48 45 5c 73 69 73 5c 73 61 5c 72 5c 6e 73 68  sHE\sis\sa\r\nsh
05f0: 61 72 65 64 5c 73 68 6f 73 74 69 6e 67 5c 73 70  ared\shosting\sp
0600: 72 6f 76 69 64 65 72 2c 5c 73 6e 6f 74 5c 73 61  rovider,\snot\sa
0610: 5c 73 56 50 53 5c 73 70 72 6f 76 69 64 65 72 2c  \sVPS\sprovider,
0620: 5c 73 62 75 74 5c 73 73 68 61 72 65 64 5c 73 68  \sbut\sshared\sh
0630: 6f 73 74 69 6e 67 5c 73 69 73 5c 73 73 75 66 66  osting\sis\ssuff
0640: 69 63 69 65 6e 74 5c 72 5c 6e 74 6f 5c 73 73 75  icient\r\nto\ssu
0650: 70 70 6f 72 74 5c 73 66 6f 73 73 69 6c 5c 73 61  pport\sfossil\sa
0660: 6e 64 5c 73 79 6f 75 5c 73 64 6f 6e 27 74 5c 73  nd\syou\sdon't\s
0670: 68 61 76 65 5c 73 61 72 62 69 74 72 61 72 79 5c  have\sarbitrary\
0680: 73 52 41 4d 5c 73 6c 69 6d 69 74 73 2e 5c 72 5c  sRAM\slimits.\r\
0690: 6e 5c 72 5c 6e 43 6f 75 6c 64 5c 73 66 6f 73 73  n\r\nCould\sfoss
06a0: 69 6c 5c 73 62 65 5c 73 72 65 65 6e 67 69 6e 65  il\sbe\sreengine
06b0: 65 72 65 64 5c 73 74 6f 5c 73 73 75 70 70 6f 72  ered\sto\ssuppor
06c0: 74 5c 73 31 38 4d 42 5c 73 62 69 6e 61 72 69 65  t\s18MB\sbinarie
06d0: 73 5c 73 6f 6e 5c 73 61 5c 73 36 34 4d 42 5c 73  s\son\sa\s64MB\s
06e0: 73 65 72 76 65 72 3f 5c 72 5c 6e 50 72 6f 62 61  server?\r\nProba
06f0: 62 6c 79 2e 5c 73 5c 73 42 75 74 5c 73 77 68 79  bly.\s\sBut\swhy
0700: 5c 73 77 6f 75 6c 64 5c 73 79 6f 75 5c 73 77 61  \swould\syou\swa
0710: 6e 74 5c 73 74 6f 3f 5c 73 5c 73 52 41 4d 5c 73  nt\sto?\s\sRAM\s
0720: 69 73 5c 73 63 68 65 61 70 5c 73 61 6e 64 5c 73  is\scheap\sand\s
0730: 67 65 74 74 69 6e 67 5c 73 63 68 65 61 70 65 72  getting\scheaper
0740: 5c 72 5c 6e 64 61 69 6c 79 2e 5c 73 5c 73 46 6f  \r\ndaily.\s\sFo
0750: 73 73 69 6c 5c 73 64 6f 65 73 5c 73 6e 6f 74 5c  ssil\sdoes\snot\
0760: 73 75 73 65 5c 73 74 68 61 74 5c 73 6d 75 63 68  suse\sthat\smuch
0770: 5c 73 6d 65 6d 6f 72 79 5c 73 72 65 6c 61 74 69  \smemory\srelati
0780: 76 65 5c 73 74 6f 5c 73 74 68 65 5c 73 73 69 7a  ve\sto\sthe\ssiz
0790: 65 5c 73 6f 66 5c 72 5c 6e 74 68 65 5c 73 66 69  e\sof\r\nthe\sfi
07a0: 6c 65 73 5c 73 69 74 5c 73 73 74 6f 72 65 73 5c  les\sit\sstores\
07b0: 73 2d 5c 73 70 65 72 68 61 70 73 5c 73 61 5c 73  s-\sperhaps\sa\s
07c0: 6d 75 6c 74 69 70 6c 69 65 72 5c 73 6f 66 5c 73  multiplier\sof\s
07d0: 33 5c 73 6f 72 5c 73 34 2c 5c 73 62 75 74 5c 73  3\sor\s4,\sbut\s
07e0: 74 68 61 74 5c 73 69 73 5c 73 6e 6f 74 5c 73 73  that\sis\snot\ss
07f0: 6f 5c 72 5c 6e 6d 75 63 68 5c 73 69 6e 5c 73 74  o\r\nmuch\sin\st
0800: 68 65 5c 73 67 72 61 6e 64 5c 73 73 63 68 65 6d  he\sgrand\sschem
0810: 65 5c 73 6f 66 5c 73 74 68 69 6e 67 73 2e 5c 73  e\sof\sthings.\s
0820: 5c 73 54 68 69 73 5c 73 70 72 6f 62 6c 65 6d 5c  \sThis\sproblem\
0830: 73 68 61 73 5c 73 61 5c 73 76 65 72 79 5c 73 73  shas\sa\svery\ss
0840: 69 6d 70 6c 65 5c 73 73 6f 6c 75 74 69 6f 6e 3a  imple\ssolution:
0850: 5c 72 5c 6e 74 68 72 6f 77 5c 73 6d 65 6d 6f 72  \r\nthrow\smemor
0860: 79 5c 73 61 74 5c 73 69 74 5c 73 61 6e 64 5c 73  y\sat\sit\sand\s
0870: 6d 6f 76 65 5c 73 6f 6e 2e 0a 4a 20 72 65 73 6f  move\son..J reso
0880: 6c 75 74 69 6f 6e 20 4e 6f 74 5f 41 5f 42 75 67  lution Not_A_Bug
0890: 0a 4a 20 73 74 61 74 75 73 20 43 6c 6f 73 65 64  .J status Closed
08a0: 0a 4b 20 36 37 38 65 62 30 63 32 30 61 30 37 66  .K 678eb0c20a07f
08b0: 36 30 31 61 61 32 62 31 31 34 33 39 62 37 61 63  601aa2b11439b7ac
08c0: 34 39 65 63 61 66 32 31 65 35 63 0a 55 20 64 72  49ecaf21e5c.U dr
08d0: 68 0a 5a 20 31 64 39 62 36 37 61 30 34 64 35 32  h.Z 1d9b67a04d52
08e0: 66 33 36 33 35 39 63 63 32 35 39 35 39 62 65 30  f36359cc25959be0
08f0: 32 38 30 62 0a                                   280b.