summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-09-25 23:05:25 +0200
committerHenning Baldersheim <balder@oath.com>2018-09-25 23:06:12 +0200
commitcaf41285a431c02e896695d66eec19e3178260a1 (patch)
tree4b967534d08a20cff8392e75b53ffc62e196fab3 /vespalib
parent0246064bbfb9657515f516e2fea12d593cd13016 (diff)
Add simple program to drop files from the buffer cache.
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/CMakeLists.txt1
-rw-r--r--vespalib/src/apps/vespa-drop-file-from-cache/.gitignore1
-rw-r--r--vespalib/src/apps/vespa-drop-file-from-cache/CMakeLists.txt9
-rw-r--r--vespalib/src/apps/vespa-drop-file-from-cache/drop_file_from_cache.cpp25
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;
+}