Skip to content

Commit bbabcaa

Browse files
authored
Merge pull request #1484 from Altinity/fix_parquet_metadata_cache_max_size
Use serialized metadata size to calculate the cache entry cell
2 parents 664f99e + 20b1d70 commit bbabcaa

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

src/Processors/Formats/Impl/ParquetFileMetaDataCache.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,21 @@
22

33
#if USE_PARQUET
44

5+
#include <parquet/metadata.h>
6+
57
namespace DB
68
{
79

10+
size_t ParquetFileMetaDataWeightFunction::operator()(const parquet::FileMetaData & metadata) const
11+
{
12+
/// TODO fix-me: using the size on disk is not ideal, but it is the simplest and best we can do for now.
13+
/// this implementation is only used by the v1 reader, which is going to be deprecated and a new implementation for the v3
14+
/// reader will be added in the future.
15+
return metadata.size();
16+
}
17+
818
ParquetFileMetaDataCache::ParquetFileMetaDataCache()
9-
: CacheBase<String, parquet::FileMetaData>(CurrentMetrics::end(), CurrentMetrics::end(), 0)
19+
: CacheBase<String, parquet::FileMetaData, std::hash<String>, ParquetFileMetaDataWeightFunction>(CurrentMetrics::end(), CurrentMetrics::end(), 0)
1020
{}
1121

1222
ParquetFileMetaDataCache * ParquetFileMetaDataCache::instance()

src/Processors/Formats/Impl/ParquetFileMetaDataCache.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@ class FileMetaData;
1616
namespace DB
1717
{
1818

19-
class ParquetFileMetaDataCache : public CacheBase<String, parquet::FileMetaData>
19+
struct ParquetFileMetaDataWeightFunction
20+
{
21+
size_t operator()(const parquet::FileMetaData & metadata) const;
22+
};
23+
24+
class ParquetFileMetaDataCache : public CacheBase<String, parquet::FileMetaData, std::hash<String>, ParquetFileMetaDataWeightFunction>
2025
{
2126
public:
2227
static ParquetFileMetaDataCache * instance();

0 commit comments

Comments
 (0)