diff options
author | Henning Baldersheim <balder@oath.com> | 2018-09-25 23:05:25 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-09-25 23:06:12 +0200 |
commit | caf41285a431c02e896695d66eec19e3178260a1 (patch) | |
tree | 4b967534d08a20cff8392e75b53ffc62e196fab3 /vespalib | |
parent | 0246064bbfb9657515f516e2fea12d593cd13016 (diff) |
Add simple program to drop files from the buffer cache.
Diffstat (limited to 'vespalib')
4 files changed, 36 insertions, 0 deletions
diff --git a/vespalib/CMakeLists.txt b/vespalib/CMakeLists.txt index b32c875cb26..2212bbeb57a 100644 --- a/vespalib/CMakeLists.txt +++ b/vespalib/CMakeLists.txt @@ -12,6 +12,7 @@ vespa_define_module( src/apps/make_fixture_macros src/apps/vespa-detect-hostname src/apps/vespa-validate-hostname + src/apps/vespa-drop-file-from-cache TESTS src/tests/alignedmemory diff --git a/vespalib/src/apps/vespa-drop-file-from-cache/.gitignore b/vespalib/src/apps/vespa-drop-file-from-cache/.gitignore new file mode 100644 index 00000000000..24dc558b6bc --- /dev/null +++ b/vespalib/src/apps/vespa-drop-file-from-cache/.gitignore @@ -0,0 +1 @@ +vespa-drop-file-from-cache diff --git a/vespalib/src/apps/vespa-drop-file-from-cache/CMakeLists.txt b/vespalib/src/apps/vespa-drop-file-from-cache/CMakeLists.txt new file mode 100644 index 00000000000..409fd5bb725 --- /dev/null +++ b/vespalib/src/apps/vespa-drop-file-from-cache/CMakeLists.txt @@ -0,0 +1,9 @@ +# Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(vespalib_vespa-drop-file-from-cache_app + SOURCES + drop_file_from_cache.cpp + OUTPUT_NAME vespa-drop-file-from-cache + INSTALL bin + DEPENDS + vespalib +) diff --git a/vespalib/src/apps/vespa-drop-file-from-cache/drop_file_from_cache.cpp b/vespalib/src/apps/vespa-drop-file-from-cache/drop_file_from_cache.cpp new file mode 100644 index 00000000000..eca88c83738 --- /dev/null +++ b/vespalib/src/apps/vespa-drop-file-from-cache/drop_file_from_cache.cpp @@ -0,0 +1,25 @@ +// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include <cstdio> +#include <fcntl.h> +#include <unistd.h> + +int main(int argc, char **argv) { + if (argc != 2) { + fprintf(stderr, "%s <filename>", argv[0]); + return 1; + } + const char *fileName = argv[1]; + int fh = open(fileName, O_RDONLY); + if (fh != -1) { + int err = posix_fadvise(fh, 0, 0, POSIX_FADV_DONTNEED); + if (err != 0) { + perror("posix_fadvise failed"); + } + close(fh); + } else { + perror("Failed opening file"); + return 1; + } + return 0; +} |