[Mod_mp3] Patch to cache id3 info
Binesh Bannerjee
mod_mp3@lists.tangent.org
Mon, 2 Sep 2002 03:01:18 -0400 (EDT)
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
---1463811127-1022512909-1030950078=:3751
Content-Type: TEXT/PLAIN; charset=US-ASCII
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I'm just submitting this for everyone's approval... And, perhaps to shake
bugs out etc. (It seems to work here...)
I have nearly 17000 mp3s, and it was taking approximately 5 minutes to
start apache... So...
My patch writes the id3/md5sums out to a cache file, based on either the
directory being served or the playlist being served.
Here are the stats for _my_ system:
First run
[root@cablemodem init.d]# time ./httpd start
Starting httpd: /usr/local/apache/bin/apachectl startssl: httpd started
2.07user 6.68system 5:31.06elapsed 2%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (34150major+5349minor)pagefaults 0swaps
Second run,
[root@cablemodem init.d]# time ./httpd start
Starting httpd: /usr/local/apache/bin/apachectl startssl: httpd started
0.91user 2.34system 0:03.44elapsed 94%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (2259major+3804minor)pagefaults 0swaps
As you can see: startup time goes from 5 and a half minutes to 3.44 seconds.
Everything APPEARS to work, though, I have questions which I will post in
a later email...
I'm storing it internally as an AVL tree... (Which is what I'm most
suspicious of.)
Synopsis:
New files:
mod_mp3-0.38-binesh/src/cached_mp3_data.c
mod_mp3-0.38-binesh/src/cached_mp3_data.h
Changed file:
mod_mp3-0.38-binesh/src/load.c
mod_mp3-0.38-binesh/src/internal_dispatch.c
mod_mp3-0.38-binesh/Makefile.STATIC
mod_mp3-0.38-binesh/Makefile.tmpl
mod_mp3-0.38-binesh/configure
internal_dispatch, all I did was a tiny tiny (what I perceive to be)
bug fix... Basically, if you didn't search for anything, mod_mp3 was coring
for me... So, I simply check to see if signatures is null before
checking if signatures->nelts == max...
The meat of the changes is really load.c and cached_mp3_data.[ch]
Also, since I have apxs, I haven't really tested the Makefiles...
Feedback appreciated...
Binesh Bannerjee
- --
The measure of love is what one is willing to give up for it.
PGP Key: http://www.hex21.com/~binesh/binesh-public.asc
Key fingerprint = 421D B4C2 2E96 B8EE 7190 A0CF B42F E71C 7FC3 AD96
SSH2 Key: http://www.hex21.com/~binesh/binesh-ssh2.pub
SSH1 Key: http://www.hex21.com/~binesh/binesh-ssh1.pub
OpenSSH Key: http://www.hex21.com/~binesh/binesh-openssh.pub
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
Comment: pgpenvelope 2.10.2 - http://pgpenvelope.sourceforge.net/
iD8DBQE9cwzKtC/nHH/DrZYRAu4cAJ46U4zPMqt86AiO/ErG5WUaLbDD+gCgtHKd
8ljELtAzbGILedVXujuQLvU=
=4n5/
-----END PGP SIGNATURE-----
---1463811127-1022512909-1030950078=:3751
Content-Type: APPLICATION/x-bzip2; name="mod_mp3-0.38-binesh-patch.bz2"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.44.0209020301180.3751@client.cablemodem.hex21.com>
Content-Description:
Content-Disposition: attachment; filename="mod_mp3-0.38-binesh-patch.bz2"
QlpoOTFBWSZTWa5qeHsAGK5fgGAwf///////////7///YBq8ANBr5p3cYlQt
jjBhoUzO7u2LJbuOjbHPve8qDD29AaAPZJYF6wcqkSVJIXbUiiXIAbwkUICC
ehMU2TTRpNip5TNPUynij01D0ZQxADTQB6QSmggghMhDQUxo1DaaTINBpoH6
o9QyPUAAAHMmmhkADEZBkANMEDEA0aaADIGgASaSSJqn6TE0E9I2hD1I8g0m
jR6Q2oAaBp6gDQNAJKapqBpkA0xDEAZGAEZMIAABkBiaZBEkgEAEMpo1PKTa
NRmpqeCan6EammjR6Qep6gbU2keSUCAa7fRCoKKSKKCILACsFAqotYZEFIpj
AKg5bbDMzCFGIwgsbSTMgWAwEGQQjEcpJmZgVkGGOYVBtKwRFwspFbVLIGIq
iwMy+ry/r/UaIzNfRjttyPIcjVFFWVzJVmWjaWlgIMWIwESCDDGALjkQFgMQ
IgkFYgjisVyzGooVEtmOLBJKlRWSMyJYIlsikUsSVIUClpBzCy3s+r3vovVm
sf+luXrzVulYKobxizp5TpxMkP1z9FfxLZEey2mXFhf0Ue8n25uZZtg4G2cU
mAgjj23dttm4btQUJWwGUUUTBKiMCu7RCyYhpmMG2LXAVUgrqkihMsDWOXOe
6FEFVZNM+4lyUTcWAoVkV3YTDQ6YitpYwEJWKZEaWSisKikgdGFGImhA6WaD
hZX+O5/vu1Fjru4No5yD4zk2DJzbNwybvkT190WEUF9eFRRBTfejPYujEdPg
8WZYwqumHfcnl18tvhDe6q30cXVNJatUtNsqtV5WzH3FFtupbyD6szih/FeH
4oWPD8C4Pv6lu2Qyo7wR5uhAdRqKwdizy4g2OFw95eSMKBpVTGxrIW4ofGQG
0QKQo7x6AUF5+WCOAnwUUSQH+dFcsaDHeX2LiQnKfhh0sYwD1D1gaz+Tiu0Q
nZIysWL8I8sFB5cc8FYxPD8BRk2EGWXCn5E0IUKGsE7DKpm6UPF6X03yWX03
Pb/B5vjQZWlYl0Kxcq8YjDoPhUI+nnb1CuKSQtYabf/Y585A2yLpRSsRjY8U
O2EKfEUri5zNm054R0uEnJxlAy7esiu/o4oTT93t/m58C0XC3SVH0fbEs6RE
8V01xpnmDOxw/vgxray9XZ8WeNToYImYI5aMsX0ORtdrYHbNovI7x2h9Ablp
3Hygc8Ghk0rXpsQ1aZNDAUzZKOjB0mjmbF//EmOhQgR3mtGQxe0XBzzHYSCF
0+ZkaysIJVlZn4DR5y05NScPHuHKZOjB+uDaj4KVEU1nONCKjh1Ly01E1HhE
KRczVe7PURKaxzoAkQzHFpaByuMEUwYw2Ka76ZZvX/PjXp2/Ymsg6d/Cd9+a
/vdt7BvjmQehoMStVRq0FJMd33m4KNXiZTIyIWSPgeSC/2Obc49N2uCEkgTU
TBkg4vnoaFDX5jp7GM/MQBDIR7mvEGI4nMPUbm55+l92DgI1Qb9XCIsjq/CO
DHIDHpdgeMm5q3YcSBuA440gG/DrHpI4CLHYZwmt4eo3kf5cFzJAVmMiRFWX
C3UbVsuITBhtY6MpZfoXpO3mdLwPtvsNX5+CqqqtO4TcdXd5Tv92Q3vh1OfO
kw7/jDfXUKjYmOh45nTtOByG8ODTU8gttUGh445ErBHRWcbC8hw8uDicRuW3
AXHeCDd2Q4AZcnZgd2BBLJM/A93MUcEIf2jnqUboo8d35MJzO275MiEeBoMX
dr02GHC+7jRtL9ZyGG2beSucGRZIwEwiFQJBh2d31XHTQf3lfZ7gYCDB8QpQ
5uzX9iB0t2jdymGBmZEIljyr+Ht2qrWig+jykL5trD6n4HScYn6ZCMhOUOWj
SQQSzbL6Or5c/h19PqPcNhGMMDvDIMDY0QxVVVVeUpJXzwBkNwk3biwO/vef
Lb6jChVdEUUU57RRTRaKVEW22aLRCjZnUUIJ+2E4mF8FPDzKU3s5Q3k9Du7v
Ve9qTMzJMzMkzMyTMzJMzMkzMyTyKqqKmZkmB17EVvQXPQVqQOZQUwadPpfA
VrETbNjJW+0tY+9Zg08UuzWQxYstxU2h1P1cXNbENZBAiH2ip9V7HqJwL5SR
+ANgKXDUJfndqlg9ebghELFHIg0Hr4fPyz8qrxQ3n7VJlxO/3RiL5NgZduDg
Do9J4WwjUGPi7SW7taYJsu3Xkcgaw2TUO+MT3YwVjA5MO3GHJPE0fjE6ru47
SObPvO+t31G2rs5es69thjVhIZuaOFVCzoQhXYOuSg68E/V5JVvDN40BhaLb
vYLtQxM5pC2qv1WNh2EkISKp7mvA1Z0Zyt2VHdWK0eLfv82O4wcA44Wc3eN0
+xtGbuUFr0wRznhYKLWzZw0PjmNQEr6jxAwnM6w3X50m2jXktyC5x4GTW/iY
azvnyB7aKRUZFVUVO1A9WGowCYKEIyxIpIUGlAoCEifAQ+YVEeqxD8377LZd
YJAvALAlCeJDnFKEIo/2bTE6/zkhVxB49pdUnabTgCfDI4p5K7ArGjIxcMx1
5CSiVlMSw0cOaxUhnZnp2uQe4SdkYocOG0RKhRL11Mx7rAgYx6/n715+aeVX
M2LudtvnXerff94e5TtTr7Z0N3hCpDaihMKsYFN/QDE4IQiGB4ov0rDlS0vn
OIM0jgUmZ8eRyY9Q5B3S4qcmKHIKl/b5zwCewlEuj071p6yFBFFBETCcM1ax
RtrFG2sU4ZYZlLlrFG2sUy5lY5blG2NtYo21i9PIcE4esdvUtrXxEjYYsIwh
wQh5dLyjhJDCJ9EDwOVQUQqFEK4fIQ4LAg/QLGoJtNMfLnb4b/aRe+g7zpnE
JJEJ9c4yUyrzkWNDEsXGova7egk8B5dDWyYEhIBJJJgWBrFiY0CxqalzBoOZ
MymBZLZSY1NA0CCQyFw0Cg0DQugkhCE9K0UQmAU1FkZFfhkJ74fKB3YyHh9f
oER0fbAzFoHRmKqxjbbvcvKYsZxyWvstpKIwo0nsqzRBLtPjBMtmEMWZyMIk
oJZhqIMgw/jJDBJhmDstvytLqgGLmn+2IttT2HmCJMQ8U8RAF9tKlhQMTDKf
h+F2kAutFnDRnUm01dae/7bI8h1cSGFsQIQgQNhs16+xPYKxz/iGQqGZFGW/
Da+unGkjt3B+QK60N5qmE1KzCDObNoaMK+Atr1MTzKJ2Z0LAx031020stqgy
wzSaYIkkTYxQpG5jB3fA+TgbW2EcNK4VcXAmDtuSW8yOB85BhbfJ4/JGfncW
nRnj3ch1e7ZMy/dIw+QHX5JIPOJB3TGBcQduXywkstgIfomGiFOVUoYEH2kH
u9bk7/Iu1RyqYM8Ce30S0B8aOEEvBCiIi58bxiqljVJEW3q4VyTWyO6x1sDs
w4o6UzwfIYvBeuMeJMGqClyVkeCY7iRjoJjmDdgSemAgB6AYAkZSSikFQpIU
iQiMAoQSiERiMjaQhT5v74AjtPMzB5no6cS0khKW5JB3s+guQDXAAYA7ABnQ
7Z2G2iPpVkMFAj3lESTvnqCDOQl9gSfeMxYHoC6nX3FEJuLjs8aPvIQwxbcM
S2mAh25n/S7f4b53/tRf2CJ8C3IKCBMeA/54HtP+pPaimo59zeyB2uSO0aB+
JMBsWMrv2bJjob7ZPEuw/SbSbehvJo3dzllXRKvNnGSYEolEqQpqqQd3ZJ0Y
4nm2TQQ8OMm75e7EoKboKfCM+e7ei2V8N6XbKbec7BvPA3m3SKLsTH0YlVR2
jnrsJu6leeg19qi83tP0BiHYa5JqLGM+gCHUOZqh5+hoGmbeVajLRiAbiAOf
JaCcpJKMQ3nQ6vEOh3OIegJsPxKqFt4nFhbWd4WwN8KLdfRihtzyojzNHE6h
idGRl20TwLf6x3BGK7fUcePiK7uDJ9YSLTtV5f3NpRAvCmtWtovbZMEihDB4
YmJPOnUi5OaTQtCo3khKmlZqbe7au3NKEsqowKCgWE5eEO8XZjFV1vm82+l8
tj9uvm6iJwHr8PRLt3vWvY2+xwhDz94Z1wGTXsM6iadJQdhMTqdvR1rdR6m2
qJ2mMJA7ofeIYHtQSbK0qsKSflpclg/AA+3wC/EBf3FFWH++CGIRhiAYsY4O
3VAPVAt4HCTwOKWhRLD5hm6CbNGRAEi0QXh/i2N/+ycYqHAHkQT9J9wcQSAx
JMpgytR3PW4+J+cD9qLuEuTsDaf1auDUjCMgUfkw27RHXwNSKH4YYeN/AYCg
dheXOxVKzIf4H0BQJwwCRGCRGCdx/vdd9YYcbuQUEIyBR/7yMQsGhVnaqhqA
JQFzvKU3nIUPkXrxLnqT0zu+g90gdVBtAR/pxO2YEMIFhf8ympG0kCnoHRUK
936vrF99cmjtU4TiLCEQQUZJPnQh9KoTld/9vp4DwTEwTCQcfMKV4qeciG1i
kgxfe7QDHK9m7J7ELBYhZ5kg/uKcbijtRBkhhLbeew9AEAhxxxxI5lF74EAQ
ILOFm4vBiOYrRtpWrb7C4ME/O+TmuZkQxaLDDjN7QQjIFA6uIYp0n2Ea2lS0
vcium4zvdR0S4TeR3seYe3VxZwLUliko/0spXG9lkOtvLFzA+OyKWoMBiwhA
gOSNxVkwZigmCu+1xsALM2kQXtv+kgZb1g5bHQ/LQ5M1xz6mQfavM5d1ar7Z
Kd5oHEJY6saCBkBY1xtYN/OOwxs1G7AD9rpOHtegSomtlbAGqJtHjrWKIiv8
m0s34VETzWrdYuKIm7kPPovDymf84B8LuknH3Tjo5DFPVrfbdgfoSYgUjCa1
ywhMHEB+IsEsw4NKuO8lVOiClENOWdScThNKkqiFDslDC1VUm+2Ciq7ghmcU
NwmJtZTVqriiN1i2cEOQoIhQ69t7v3yvJnCLaASQYRvIDpsjMXAoaCoCzMNS
ZvfFOJT7DO9sLnydLZpcy9XyOGGAK/p3EKuOIw4m8C2pPsCAww1lw6zonrCA
SA8SBCGwu4BuBN+tQh3tAa4K5j5Be2eopkjkwTDZ0QfYvKzkSHfFDI0NpdVh
LzudMU7RPe35npKvJ9pVFwFcxeHo5aBii0YDChcPYcLyxvNhsiqEiyA295fm
QC7vSShrAiBxwcGeCxMEsFDbjMkWOvuOiEGoZUIxpEbQPKhGmfUyJJjgVgRj
Elyw1wBIoKckUUnmSZJpEwKhDhQ9pHgHxCE013t0L9dijAFKKsXAsIYqlKUh
qe0m8gHqTkpcXBCECHxuV+7LeFBCBI06GzTMTcqayKhGBidZxewhSU0iBIgJ
YWWabaFyrax6CWIhAXnBC8tPVaNn9kJEkbWxEq3JU855mymQm0Z1UhxHd5A7
k7GaKJQKgSghIggtQqiFZOyakdoeMEInMSBv7weMSKCJ7W0TixXC0M1vAsLo
btU8sbvzlHH2uIcOgvsy4LRKwWKfEz2iGHxxFOaAnTDibFA5txEISR1BuPC8
AxFMOK5ivucFNiHEJD2YcBRA7ontjjFEH8IlAD3C0ULIdZwePIZPd5t0mmo3
Q7rdBqlklucKV8zBvIKfmDCKp4mHF7EDWoXihl0/t7TIRvDkOZjf9PHAHawh
iQF9KJiHeEQ0gvYMwATYQsurnx7AxjImH8KdckPmHwIbu8dXsmHk8mkphgiI
iiIiIiRETY4BO6okRnaNsyKoqwIIjIlJldJFCt0LKvtUgHzkHKGAk3hxIEIR
YFyr1glwax5lAQsrZSwS1dNDRrU52o6Kj6LiqoqrjltyrnIJ4hwyLm+e/pWP
Hn4MOVFBTVqISx/IbgvREPaCbEOVNTRB63h8BVY4orRS1Ela0y1g3MKJzPSM
NDpi/J7hIHNxENUFQKW8aCl2my5Li++KmRrLC1ql2BAuCEApwSoomWeDeKXo
YKFBTEEhEFYCBZSCMBELuePjGdy0oUoVEpQRJSlBEEQRBEOulB8NCHmETzEg
eg15kIqXiUJ7otxsE8O3IzIq+wKN7AIZ5AN6aEEYe274Hwminc2cjYXOEvr0
5mu2R5Fm01DmExaX1gbxPENny6+a7fNrCggFAnUpoHvCrs42bUEKTLRgS8DL
CKE0ouVaBIGk2J0EE0g6Z9O6Ab6/Dyl8CeRhrRcIyYsZcNJsmt3moxR4hpXG
G8dZCg2p7wlxk8rsygJAiN8V2xoGyTa88jkPMb+pNwTTOS4tyWMqr0+BYsXq
T1aV5NwpRbxBQMDFOYBMJsbqSTmnjd9sRiqoiKIzW10mlRRVWKKr3gh2u+J0
PKYfE54p3juBO1o5gHQCJCKErHWld0YR6BciUQfu/Zx1oHHzofIK1sUNYtCb
NZr2UeuEt2hgb0zpDYEEsKcEC5MC9PlLXGBRXwwsRYQPqEKH2O2WGaoiTsab
aDw8fMcqSAxE69IHiHxaC9rkp8MvCowKonZZtaqh2wseHxYNnHvNxnkWq9tU
LEJRY91TGKYWgB7TsANnW4HcoQTUuJnMfcUsfrzvekQIDfUkkVVVWcRTm8MM
m/kgWQGBugdZAzvc3fPF2c2tk7BlV22y3cZpdqU1suYidh3S2YtDYgFAzGBc
UUm68dxC7uKv07NNWRVSbF3h7tsjFsK2lrYTA61LxFqiHINJm/T5x8FUlfFD
vURGsbmm7jXvdLOYhKXdJLdhmqsAYpcXLkqhsNx3q9OMluZRim4CKZAEZnuA
aAoKCmFeXcGRM5B1FWNzkRE+Q7GYgtym8Tv7z36vlkhbI3YnMU6iYhkOBD9l
wcNSbADHDWFBCMgUakA7VTrBhIRGkHLxOzcKFha3BCJAIB5zAaTBd5/TQA+6
A2glfqHA+A6TcxFhobV7nzIEtSgc2/vEpKEofVyrkJnYvTkSMhrLPro84+gu
MALmB5KdCIQsWKPxLFtDxMixcQcwh7NDh5Jm9rCxULHXzV57iX04QvqkJF9G
ngFBCMgUYFx1EA7QUuAE/r5xofZOmFoWKUEEZBXwAFhK1rgbj/xdyRThQkK5
qeHs
---1463811127-1022512909-1030950078=:3751--