From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 15 Sep 2005 13:26:51 +0400 From: Alexey Tourbin To: ALT Devel discussion list Message-ID: <20050915092651.GT3290@solemn.turbinal.org> Mail-Followup-To: ALT Devel discussion list References: <20050912113551.GI3290@solemn.turbinal.org> <20050912130520.GJ3290@solemn.turbinal.org> <20050912133437.GB25438@basalt.office.altlinux.org> <20050913052130.GN3290@solemn.turbinal.org> <20050914153546.GM3290@solemn.turbinal.org> <20050914154713.GR9602@osdn.org.ua> <20050914161234.GN3290@solemn.turbinal.org> <20050914163854.GD9602@osdn.org.ua> <20050914171004.GO3290@solemn.turbinal.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="U/MfkCnVXJJtEFur" Content-Disposition: inline In-Reply-To: <20050914171004.GO3290@solemn.turbinal.org> Cc: Subject: [devel] Re: cmdcache hash function X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2005 09:28:17 -0000 Archived-At: List-Archive: List-Post: --U/MfkCnVXJJtEFur Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Sep 14, 2005 at 09:10:04PM +0400, Alexey Tourbin wrote: > =E2=D5=CB=D7 =CE=C5=D4, =C5=D3=D4=D8 =D4=CF=CC=D8=CB=CF st_ino+st_size+st= _mtime. >=20 > at@solemn ~/.cmdcache 4 $ ls -1 rpmfile |head > i10003s62465m1079085926 > i10226s323862m1079960217 > i10287s367587m1080138012 > i10366s1535556m1077197737 > i10552s68368m1077197738 > i10580s107898m1078145421 > i10723s828128m1076422307 > i1090192s13734m1125334673 > i11055s406941m1079109059 > i1166331s4611m1125335339 > at@solemn ~/.cmdcache 4 $ >=20 > =EB =D4=CF=CD=D5 =D6=C5 =D0=CF =C2=D5=CB=D7=C1=CD =D0=CF=CC=D5=DE=C9=D4= =D3=D1 =D0=CC=CF=C8=CF=C5 =D2=C1=D3=D0=D2=C5=C4=C5=CC=C5=CE=C9=C5, =C1 =CB= =C5=DB =D7=D3=A3 =D2=C1=D7=CE=CF > "=CE=C5 =D0=D2=CF=DA=D2=C1=DE=CE=D9=CA" (=D4=CF =C5=D3=D4=D8 reverse look= up =DA=C1=D4=D2=D5=C4=CE=A3=CE). =ED=CF=D6=CE=CF =D3=C4=C5=CC=C1=D4=D8 > =CF=C4=CE=CF=D5=D2=CF=D7=CE=C5=D7=D5=C0 =D0=D2=CF=D3=CC=CF=CA=CB=D5 =C9= =DA =CB=C1=D4=C1=CC=CF=C7=CF=D7 =D0=CF =D0=CF=D3=CC=C5=C4=CE=C9=CD =C3=C9= =C6=D2=C1=CD ino =C9 size. > =F0=CF=CC=D5=DE=C9=D4=D3=D1 100 =C6=C1=CA=CC=CF=D7 =CE=C1 100 =CB=C1=D4= =C1=CC=CF=C7=CF=D7 =C4=CC=D1 10k capacity. =EE=C1=C4=CF =D0=CF=D3=CD=CF=D4= =D2=C5=D4=D8 > =CB=C1=CB =D7 ccache =D3=C4=C5=CC=C1=CE=CF. Okay, =C5=D3=D4=D8 =D4=D2=C9 =DE=C9=D3=CC=C1: st_ino, st_size =C9 st_mtime.= =EB=C1=CB =C9=C8 =D0=CF-=C7=D2=C1=CD=CF=D4=CE=CF=CD=D5 =DA=C1=C8=C5=DB=C9=D2=CF=D7=C1=D4=D8? =EE=D5=D6=CE=CF =D3=C4=C5=CC=C1=D4= =D8 =CF=C4=CE=CF=D5=D2=CF=D7=CE=C5=D7=D5=C0 =D0=D2=CF=D3=CC=CF=CA=CB=D5 =C9= =DA =CB=C1=D4=C1=CC=CF=C7=CF=D7. =E4=CC=D1 capacity =D0=CF=D2=D1=C4=CB=C1 10k =D7=D9=C2=C9=D2=C1=C5=CD =DE=C9=D3=CC=CF= =CB=C1=D4=C1=CC=CF=C7=CF=D7 (buckets) =D7 =D2=C1=CA=CF=CE=C5 100: $ for n in `seq 50 150`; do factor $n; done |awk NF=3D=3D2 53: 53 59: 59 61: 61 67: 67 71: 71 73: 73 79: 79 83: 83 89: 89 97: 97 101: 101 103: 103 107: 107 109: 109 113: 113 127: 127 131: 131 137: 137 139: 139 149: 149 $ =FA=CE=C1=DE=C9=D4 =C8=C5=DB=C9=D2=D5=C5=CD =D0=CF =CD=CF=C4=D5=CC=C0 =CE= =C1=D0=D2=C9=CD=C5=D2 97. cmdcache_hash() { local c_st c_st=3D"$(stat -L -c '%i %s %Y' -- "$1")" || return set -- $c_st local c_hashfile=3D"i${1}s${2}m${3}" local c_hashdir=3D$(( ( $1 + $2 + $3 ) % 97 )) echo "$c_hashdir/$c_hashfile" } bash-2.05b$ cmdcache_hash /etc/passwd 70/i22612s2957m1119749776 bash-2.05b$ exit =EB=CF=CC=CC=C5=C7=C9! =EB=C1=CB =D0=CF-=C7=D2=C1=CD=CF=D4=CE=CF=CD=D5 =D4= =D2=C9 =DE=C9=D3=CC=C1 =DA=C1=C8=C5=DB=C9=D2=CF=D7=C1=D4=D8? --U/MfkCnVXJJtEFur Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) iD8DBQFDKT5afBKgtDjnu0YRAt49AJ95Or00JSfgQmZ35HIhe97+GjxHSwCfYDXG g+guuBuWwXJLshuyRUaM5Xc= =5sfL -----END PGP SIGNATURE----- --U/MfkCnVXJJtEFur--