Ha la cache di symfony handle di file system ext2 32000 file nella directory stessa limitazione?

StackOverflow https://stackoverflow.com/questions/2689343

  •  01-10-2019
  •  | 
  •  

Domanda

Fa il sistema di cache symfony maniglia ext2 32000 file nella directory stessa limitazione?

Ho 80000 utenti e voglio mettere in cache i loro profili, ma faccio symfony manico sistema di cache la limitazione ext2?

Sono anche distacco per gli altri che si troveranno ad affrontare lo stesso problema.

È stato utile?

Soluzione

Io non sono sicuro al 100% se la mia risposta è corretta, ma in PROJECT/lib/symfony/cache/sfCacheFile.class.php c'è un metodo: sfCacheFile::getFilePath() che restituisce un percorso di un file. Sembra che non ci sia alcuna protezione contro le limitazioni del file system ext2.

Ma c'è una soluzione molto semplice - override di quella classe:

  1. In PROJECT/apps/APP/config/factories.yml impostato la propria classe di cache:

    default:
    # Others factories (if any)
    
      view_cache:
        class: myOwnFileCache
        param:
          automatic_cleaning_factor: 0
          cache_dir:                 %SF_TEMPLATE_CACHE_DIR%
          lifetime:                  86400
          prefix:                    %SF_APP_DIR%/template
    
  2. Ora creare quella classe e assicurarsi che si estende sfFileCache e override getFilePath()

    # PROJECT/lib/PROJECT/cache/myOwnFileCache.class.php        
    class myOwnFileCache extends sfFileCache {
        protected getFilePath($key) {
            /*
                Convert from: abcdef
                          to: a/b/abcdef
            */
            $key = substr($key, 0, 1) . DIRECTORY_SEPARATOR . substr($key, 1, 1) . DIRECTORY_SEPARATOR . $key;
            return parent::getFilePath($key);
        }
    

    }

  3. Cancella cache: ./symfony cc

Ora è necessario 32000 chiavi della cache che si avvia con la stessa identica due lettere / cifre per schiacciare il filesystem.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top