mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 00:30:49 +00:00
Increase default maximum size of brtie dictionary to 128m ips (#1364)
* Increase default maximum size of brtie dictionary to 128m ips pbuilder: use newer cmake on ubuntu trusty * no cmake
This commit is contained in:
parent
6555d08782
commit
ddb0dcd2fd
@ -4,3 +4,8 @@ add_library (btrie
|
||||
)
|
||||
|
||||
target_include_directories (btrie PUBLIC include)
|
||||
|
||||
if (ENABLE_TESTS)
|
||||
add_executable(test_btrie test/test_btrie.c)
|
||||
target_link_libraries(test_btrie btrie)
|
||||
endif ()
|
||||
|
@ -13,7 +13,12 @@ extern "C" {
|
||||
*/
|
||||
|
||||
#define BTRIE_NULL (uintptr_t) -1
|
||||
#define MAX_PAGES 1024 * 16
|
||||
|
||||
#if !defined(BTRIE_MAX_PAGES)
|
||||
/// 54 ip per page. 8 bytes memory per page when empty
|
||||
#define BTRIE_MAX_PAGES 1024 * 2048 /// 128m ips , ~16mb ram when empty
|
||||
// #define BTRIE_MAX_PAGES 1024 * 65535 /// 4g ips (whole ipv4), ~512mb ram when empty
|
||||
#endif
|
||||
|
||||
typedef struct btrie_node_s btrie_node_t;
|
||||
|
||||
@ -36,7 +41,7 @@ typedef struct btrie_s {
|
||||
* memory pool.
|
||||
* memory management(esp free) will be so easy by using this facility.
|
||||
*/
|
||||
char *pools[MAX_PAGES];
|
||||
char *pools[BTRIE_MAX_PAGES];
|
||||
size_t len;
|
||||
} btrie_t;
|
||||
|
||||
|
@ -46,7 +46,7 @@ btrie_create()
|
||||
tree->free = NULL;
|
||||
tree->start = NULL;
|
||||
tree->size = 0;
|
||||
memset(tree->pools, 0, sizeof(btrie_t *) * MAX_PAGES);
|
||||
memset(tree->pools, 0, sizeof(btrie_t *) * BTRIE_MAX_PAGES);
|
||||
tree->len = 0;
|
||||
|
||||
tree->root = btrie_alloc(tree);
|
||||
|
@ -85,6 +85,15 @@ int main()
|
||||
printf("test case 4 error\n");
|
||||
}
|
||||
|
||||
// insert 4m ips
|
||||
for (size_t ip = 1; ip < 1024 * 1024 * 4; ++ip) {
|
||||
ret = btrie_insert(it, ip, 0xffffffff, 1);
|
||||
if (ret != 0) {
|
||||
printf("insert 5 error (%d) (%zu) .\n", ret, ip);
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
|
Loading…
Reference in New Issue
Block a user