Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Enhance the replacement algorithm for the tarball cache so that it gives extra weight to tarballs that have been accessed more than once. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
7ffa5ae027bf03d7643601ef23271b63 |
User & Date: | drh 2018-04-10 11:55:54.085 |
Context
2018-04-10
| ||
17:48 | Update the built-in SQLite to version 3.23.1. ... (check-in: 52b3b8ed user: drh tags: trunk) | |
11:55 | Enhance the replacement algorithm for the tarball cache so that it gives extra weight to tarballs that have been accessed more than once. ... (check-in: 7ffa5ae0 user: drh tags: trunk) | |
2018-04-06
| ||
12:01 | Enhance the /tarball, /zip, and /sqlar pages so that the checkin name to be downloaded can be expressed as part of the URI, and without the need for query parameters. ... (check-in: 3e94c7ed user: drh tags: trunk) | |
Changes
Changes to src/cache.c.
︙ | ︙ | |||
163 164 165 166 167 168 169 | sqlite3_bind_text(pStmt, 1, zKey, -1, SQLITE_STATIC); sqlite3_bind_int(pStmt, 2, blob_size(pContent)); sqlite3_bind_int(pStmt, 3, sqlite3_last_insert_rowid(db)); if( sqlite3_step(pStmt)!=SQLITE_DONE) goto cache_write_end; rc = sqlite3_changes(db); /* If the write was successful, truncate the cache to keep at most | | > > > > > > > | > | 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | sqlite3_bind_text(pStmt, 1, zKey, -1, SQLITE_STATIC); sqlite3_bind_int(pStmt, 2, blob_size(pContent)); sqlite3_bind_int(pStmt, 3, sqlite3_last_insert_rowid(db)); if( sqlite3_step(pStmt)!=SQLITE_DONE) goto cache_write_end; rc = sqlite3_changes(db); /* If the write was successful, truncate the cache to keep at most ** max-cache-entry entries in the cache. ** ** The cache entry replacement algorithm is approximately LRU ** (least recently used). However, each access of an entry buys ** that entry an extra hour of grace, so that more commonly accessed ** entries are held in cache longer. The extra "grace" allotted to ** an entry is limited to 2 days worth. */ if( rc ){ nKeep = db_get_int("max-cache-entry",10); sqlite3_finalize(pStmt); pStmt = cacheStmt(db, "DELETE FROM cache WHERE rowid IN (" "SELECT rowid FROM cache" " ORDER BY (tm + 3600*min(nRef,48)) DESC" " LIMIT -1 OFFSET ?1)"); if( pStmt ){ sqlite3_bind_int(pStmt, 1, nKeep); sqlite3_step(pStmt); } } |
︙ | ︙ | |||
289 290 291 292 293 294 295 | if( db ){ sqlite3_exec(db, "DELETE FROM cache; DELETE FROM blob; VACUUM;",0,0,0); sqlite3_close(db); fossil_print("cache cleared\n"); }else{ fossil_print("nothing to clear; cache does not exist\n"); } | | > | 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 | if( db ){ sqlite3_exec(db, "DELETE FROM cache; DELETE FROM blob; VACUUM;",0,0,0); sqlite3_close(db); fossil_print("cache cleared\n"); }else{ fossil_print("nothing to clear; cache does not exist\n"); } }else if(( strncmp(zCmd, "list", nCmd)==0 ) || ( strncmp(zCmd, "ls", nCmd)==0 )){ db = cacheOpen(0); if( db==0 ){ fossil_print("cache does not exist\n"); }else{ int nEntry = 0; char *zDbName = cacheName(); cache_register_sizename(db); |
︙ | ︙ | |||
348 349 350 351 352 353 354 | @ The web-page cache is disabled for this repository }else{ char *zDbName = cacheName(); cache_register_sizename(db); pStmt = cacheStmt(db, "SELECT key, sizename(sz), nRef, datetime(tm,'unixepoch')" " FROM cache" | | | 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 | @ The web-page cache is disabled for this repository }else{ char *zDbName = cacheName(); cache_register_sizename(db); pStmt = cacheStmt(db, "SELECT key, sizename(sz), nRef, datetime(tm,'unixepoch')" " FROM cache" " ORDER BY (tm + 3600*min(nRef,48)) DESC" ); if( pStmt ){ @ <ol> while( sqlite3_step(pStmt)==SQLITE_ROW ){ const unsigned char *zName = sqlite3_column_text(pStmt,0); @ <li><p>%z(href("%R/cacheget?key=%T",zName))%h(zName)</a><br /> @ size: %s(sqlite3_column_text(pStmt,1)) |
︙ | ︙ |