X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ferasure-code%2Fisa%2FErasureCodeIsaTableCache.h;fp=src%2Fceph%2Fsrc%2Ferasure-code%2Fisa%2FErasureCodeIsaTableCache.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=64aaae752af87ecd784311c08600e3687daf4ea6;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/erasure-code/isa/ErasureCodeIsaTableCache.h b/src/ceph/src/erasure-code/isa/ErasureCodeIsaTableCache.h deleted file mode 100644 index 64aaae7..0000000 --- a/src/ceph/src/erasure-code/isa/ErasureCodeIsaTableCache.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2014 CERN (Switzerland) - * - * Author: Andreas-Joachim Peters - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - */ - -/** - * @file ErasureCodeIsaTableCache.h - * - * @brief Erasure Code Isa CODEC Table Cache - * - * The INTEL ISA-L library supports two pre-defined encoding matrices (cauchy = default, reed_sol_van = default) - * The default CODEC implementation using these two matrices is implemented in class ErasureCodeIsaDefault. - * ISA-L allows to use custom matrices which might be added later as implementations deriving from the base class ErasoreCodeIsa. - */ - -#ifndef CEPH_ERASURE_CODE_ISA_TABLE_CACHE_H -#define CEPH_ERASURE_CODE_ISA_TABLE_CACHE_H - -// ----------------------------------------------------------------------------- -#include "common/Mutex.h" -#include "erasure-code/ErasureCodeInterface.h" -// ----------------------------------------------------------------------------- -#include -// ----------------------------------------------------------------------------- - -class ErasureCodeIsaTableCache { - // --------------------------------------------------------------------------- - // This class implements a table cache for encoding and decoding matrices. - // Encoding matrices are shared for the same (k,m) combination. It supplies - // a decoding matrix lru cache which is shared for identical - // matrix types e.g. there is one cache (lru-list + lru-map) for Cauchy and - // one for Vandermonde matrices! - // --------------------------------------------------------------------------- - -public: - - // the cache size is sufficient up to (12,4) decodings - - static const int decoding_tables_lru_length = 2516; - - typedef std::pair::iterator, bufferptr> lru_entry_t; - typedef std::map< int, unsigned char** > codec_table_t; - typedef std::map< int, codec_table_t > codec_tables_t; - typedef std::map< int, codec_tables_t > codec_technique_tables_t; - - typedef std::map< std::string, lru_entry_t > lru_map_t; - typedef std::list< std::string > lru_list_t; - - ErasureCodeIsaTableCache() : - codec_tables_guard("isa-lru-cache") - { - } - - virtual ~ErasureCodeIsaTableCache(); - - Mutex codec_tables_guard; // mutex used to protect modifications in encoding/decoding table maps - - bool getDecodingTableFromCache(std::string &signature, - unsigned char* &table, - int matrixtype, - int k, - int m); - - void putDecodingTableToCache(std::string&, - unsigned char*&, - int matrixtype, - int k, - int m); - - unsigned char** getEncodingTable(int matrix, int k, int m); - unsigned char** getEncodingCoefficient(int matrix, int k, int m); - - unsigned char** getEncodingTableNoLock(int matrix, int k, int m); - unsigned char** getEncodingCoefficientNoLock(int matrix, int k, int m); - - unsigned char* setEncodingTable(int matrix, int k, int m, unsigned char*); - unsigned char* setEncodingCoefficient(int matrix, int k, int m, unsigned char*); - - int getDecodingTableCacheSize(int matrixtype = 0); - -private: - codec_technique_tables_t encoding_coefficient; // encoding coefficients accessed via table[matrix][k][m] - codec_technique_tables_t encoding_table; // encoding coefficients accessed via table[matrix][k][m] - - std::map decoding_tables; // decoding table cache accessed via map[matrixtype] - std::map decoding_tables_lru; // decoding table lru list accessed via list[matrixtype] - - lru_map_t* getDecodingTables(int matrix_type); - - lru_list_t* getDecodingTablesLru(int matrix_type); - - Mutex* getLock(); - -}; - -#endif