summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorNing Sun2021-10-16 22:35:55 +0800
committerNing Sun2021-10-16 22:35:55 +0800
commit625a413d3c84aecf9762d598d3d86e621b87b659 (patch)
tree5e64447655dd36df6ff5425e03ea1a7507767eae
downloadaur-625a413d3c84aecf9762d598d3d86e621b87b659.tar.gz
initial release
-rw-r--r--.SRCINFO22
-rw-r--r--.gitignore4
-rw-r--r--PKGBUILD33
-rw-r--r--questdb-tmpfile.conf2
-rw-r--r--questdb.install3
-rw-r--r--questdb.service13
-rwxr-xr-xquestdb.sh271
-rw-r--r--questdb.sysusers1
8 files changed, 349 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..e1afea0e7d59
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,22 @@
+pkgbase = questdb
+ pkgdesc = Fast timeseries database
+ pkgver = 6.0.8
+ pkgrel = 0
+ url = https://questdb.io
+ install = questdb.install
+ arch = any
+ license = APACHE
+ depends = java-runtime=11
+ depends = bash
+ source = https://github.com/questdb/questdb/releases/download/6.0.8/questdb-6.0.8-no-jre-bin.tar.gz
+ source = questdb.sh
+ source = questdb.sysusers
+ source = questdb-tmpfile.conf
+ source = questdb.service
+ sha1sums = SKIP
+ sha1sums = SKIP
+ sha1sums = SKIP
+ sha1sums = SKIP
+ sha1sums = SKIP
+
+pkgname = questdb
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..ba5927706a6b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*.tar*
+pkg
+src
+*.jar*
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ba2a1758e406
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Ning Sun <n@sunng.info>
+
+pkgname=questdb
+pkgver=6.0.8
+pkgrel=1
+pkgdesc='Fast timeseries database'
+arch=('any')
+url='https://questdb.io'
+license=('APACHE')
+depends=('java-runtime=11' 'bash')
+install='questdb.install'
+source=(https://github.com/questdb/questdb/releases/download/${pkgver}/questdb-${pkgver}-no-jre-bin.tar.gz
+ 'questdb.sh'
+ 'questdb.sysusers'
+ 'questdb-tmpfile.conf'
+ 'questdb.service')
+sha1sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP')
+
+package() {
+ mkdir -p ${pkgdir}/{usr/bin,usr/share/java/questdb,etc/questdb,var/lib/questdb}
+
+ tar xf questdb-${pkgver}-no-jre-bin.tar.gz
+ cp questdb-${pkgver}-no-jre-bin/questdb.jar ${pkgdir}/usr/share/java/questdb/questdb.jar
+
+ install -Dm755 questdb.sh ${pkgdir}/usr/bin/questdb
+ install -Dm644 ${srcdir}/questdb.service ${pkgdir}/usr/lib/systemd/system/questdb.service
+ install -Dm644 ${srcdir}/questdb.sysusers ${pkgdir}/usr/lib/sysusers.d/questdb.conf
+ install -Dm644 ${srcdir}/questdb-tmpfile.conf ${pkgdir}/usr/lib/tmpfiles.d/questdb.conf
+}
diff --git a/questdb-tmpfile.conf b/questdb-tmpfile.conf
new file mode 100644
index 000000000000..cb520cc8d23c
--- /dev/null
+++ b/questdb-tmpfile.conf
@@ -0,0 +1,2 @@
+d /var/lib/questdb 0755 questdb questdb -
+d /var/log/questdb 0755 questdb questdb -
diff --git a/questdb.install b/questdb.install
new file mode 100644
index 000000000000..dfe833beaa3c
--- /dev/null
+++ b/questdb.install
@@ -0,0 +1,3 @@
+post_install() {
+ systemd-sysusers questdb.conf
+}
diff --git a/questdb.service b/questdb.service
new file mode 100644
index 000000000000..c62e85c68746
--- /dev/null
+++ b/questdb.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Questdb fast timeseries database
+Documentation=https://questdb.io/
+After=network.target
+
+[Service]
+Type=forking
+User=questdb
+ExecStart=/usr/bin/questdb start
+ExecStop=/usr/bin/questdb stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/questdb.sh b/questdb.sh
new file mode 100755
index 000000000000..796e284018c8
--- /dev/null
+++ b/questdb.sh
@@ -0,0 +1,271 @@
+#!/usr/bin/env bash
+
+################################################################################
+# ___ _ ____ ____
+# / _ \ _ _ ___ ___| |_| _ \| __ )
+# | | | | | | |/ _ \/ __| __| | | | _ \
+# | |_| | |_| | __/\__ \ |_| |_| | |_) |
+# \__\_\\__,_|\___||___/\__|____/|____/
+#
+# Copyright (c) 2014-2019 Appsicle
+# Copyright (c) 2019-2020 QuestDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+export QDB_PROCESS_LABEL="QuestDB-Runtime-66535"
+export QDB_MAX_STOP_ATTEMPTS=5;
+export QDB_OS=`uname`
+
+case `uname` in
+ Darwin|FreeBSD)
+ export PS_CMD="ps aux"
+ export QDB_DEFAULT_ROOT="/usr/local/var/questdb"
+ ;;
+ *)
+ export PS_CMD="ps -ef"
+ export QDB_DEFAULT_ROOT="/var/lib/questdb"
+ ;;
+esac
+
+if [ -f "/etc/questdb/questdb.env" ]; then
+ source "/etc/questdb/questdb.env"
+fi
+
+function read_link {
+ f=$(readlink $1)
+ if [ "$f" != "" ]; then
+
+ if [[ "$f" != /* ]]; then
+ f="$(dirname $1)/$f"
+ f="$(cd $(dirname ${f}); pwd)/$(basename ${f})"
+ fi
+
+ n=$(read_link ${f})
+ if [ "$n" != "" ]; then
+ f=${n};
+ fi
+ fi
+ echo "$f"
+}
+
+function usage {
+ echo "Usage: $0 start|status|stop [-f] [-d path] [-t tag]"
+ echo
+ exit 55
+}
+
+function export_pid {
+ export QDB_PID=`${PS_CMD} | grep ${QDB_PROCESS_LABEL} | grep -v grep | tr -s " " | cut -d " " -f 2`
+}
+
+function export_java {
+
+ # check if this is our runtime
+ if [ -f "$BASE/java" ]; then
+ export QDB_PACKAGE=withjre
+ export JAVA="$BASE/java"
+ else
+ export QDB_PACKAGE=withoutjre
+ if [ "$JAVA_HOME" = "" -a -e /usr/libexec/java_home ]; then
+ JAVA_HOME=$(/usr/libexec/java_home -v 11)
+ fi
+
+ # check that JAVA_HOME is defined
+ if [ "$JAVA_HOME" = "" ]; then
+ JAVA_HOME=/usr/lib/jvm/default
+ fi
+
+ # check that Java binary is executable
+ export JAVA=${JAVA_HOME}/bin/java
+ fi
+
+ if [ ! -x "$JAVA" ]; then
+ echo "$JAVA is not executable"
+ exit 55;
+ fi
+
+ echo "JAVA: $JAVA"
+}
+
+function export_args {
+
+ export QDB_OVERWRITE_PUBLIC=""
+ export QDB_DISABLE_HUP_HANDLER=""
+ export QDB_CONTAINER_MODE=""
+ export QDB_ROOT=${QDB_DEFAULT_ROOT}
+
+ while [[ $# -gt 0 ]]; do
+ key="$1"
+
+ case ${key} in
+ -f)
+ export QDB_OVERWRITE_PUBLIC="-f"
+ ;;
+ -n)
+ export QDB_DISABLE_HUP_HANDLER="-n"
+ ;;
+ -c)
+ export QDB_CONTAINER_MODE="-c"
+ ;;
+ -d)
+ if [[ $# -eq 1 ]]; then
+ echo "Expected: -d <path>"
+ exit 55
+ fi
+ export QDB_ROOT="$2"
+ shift
+ ;;
+ -t)
+ if [[ $# -eq 1 ]]; then
+ echo "Expected: -t <tag>"
+ exit 55
+ fi
+ export QDB_PROCESS_LABEL="QuestDB-Runtime-$2"
+ shift
+ ;;
+ *)
+ echo "Unexpected option: $key"
+ usage
+ ;;
+ esac
+ shift
+ done
+}
+
+function start {
+
+ export_pid
+
+ if [[ "${QDB_PID}" != "" ]]; then
+ echo "Already running. PID: ${QDB_PID}"
+ exit 55
+ fi
+
+ # LINK=$(read_link $0)
+ # if [ "$LINK" != "" ]; then
+ # BASE=$(dirname ${LINK})
+ # else
+ # BASE=$(dirname $0)
+ # fi
+ BASE=/usr/share/java/questdb
+
+ export_java
+
+ # create root directory if it does not exist
+ if [ ! -d "$QDB_ROOT" ]; then
+ echo "Created QuestDB ROOT directory: $QDB_ROOT"
+ mkdir -p ${QDB_ROOT}
+ fi
+
+ QDB_LOG=/var/log/questdb/
+
+ JAVA_LIB="$BASE/questdb.jar"
+
+ JAVA_OPTS="
+ -D$QDB_PROCESS_LABEL
+ -ea -Dnoebug
+ -XX:+UnlockExperimentalVMOptions
+ -XX:+AlwaysPreTouch
+ "
+
+ JAVA_MAIN="io.questdb/io.questdb.ServerMain"
+ DATE=`date +%Y-%m-%dT%H-%M-%S`
+
+ if [ "${QDB_CONTAINER_MODE}" != "" ]; then
+ ${JAVA} ${JAVA_OPTS} -p ${JAVA_LIB} -m ${JAVA_MAIN} -d ${QDB_ROOT} ${QDB_OVERWRITE_PUBLIC} > ${QDB_LOG}/stdout-${DATE}.txt
+ elif [ "${QDB_DISABLE_HUP_HANDLER}" = "" ]; then
+ ${JAVA} ${JAVA_OPTS} -p ${JAVA_LIB} -m ${JAVA_MAIN} -d ${QDB_ROOT} ${QDB_OVERWRITE_PUBLIC} > ${QDB_LOG}/stdout-${DATE}.txt &
+ sleep 0.5
+ else
+ ${JAVA} ${JAVA_OPTS} -p ${JAVA_LIB} -m ${JAVA_MAIN} -d ${QDB_ROOT} ${QDB_OVERWRITE_PUBLIC} ${QDB_DISABLE_HUP_HANDLER} > ${QDB_LOG}/stdout-${DATE}.txt
+ fi
+}
+
+function query {
+ export_pid
+
+ if [[ "${QDB_PID}" = "" ]]; then
+ echo "Not running"
+ else
+ echo "PID: ${QDB_PID}"
+ fi
+}
+
+function stop {
+ export_pid
+ if [[ "${QDB_PID}" = "" ]]; then
+ echo "Not running"
+ exit 55
+ fi
+
+ OUR_PID=${QDB_PID}
+
+ count=${QDB_MAX_STOP_ATTEMPTS}
+ while [ "${QDB_PID}" != "" ] && [ ${count} -gt 0 ]; do
+ kill ${QDB_PID}
+ sleep 0.5
+ export_pid
+ count=$((count-1))
+ done
+
+ if [[ "${QDB_PID}" != "" ]]; then
+ kill -9 ${QDB_PID}
+ echo "Something is wrong. Process does not stop. Killing.."
+ export_pid
+ fi
+
+ if [[ "${QDB_PID}" != "" ]]; then
+ echo "Cannot stop ${QDB_PID}. Check permissions."
+ else
+ echo "Stopped ${OUR_PID}"
+ fi
+}
+
+function banner {
+ echo ''
+ echo ' ___ _ ____ ____'
+ echo ' / _ \ _ _ ___ ___| |_| _ \| __ )'
+ echo '| | | | | | |/ _ \/ __| __| | | | _ \'
+ echo '| |_| | |_| | __/\__ \ |_| |_| | |_) |'
+ echo ' \__\_\\__,_|\___||___/\__|____/|____/'
+ echo ' www.questdb.io'
+ echo
+}
+
+banner
+
+if [[ $# -gt 0 ]]; then
+ command=$1
+ shift
+
+ export_args $@
+
+ case ${command} in
+ start)
+ start
+ ;;
+ status)
+ query
+ ;;
+ stop)
+ stop
+ ;;
+ *)
+ usage
+ ;;
+ esac
+else
+ usage
+fi
diff --git a/questdb.sysusers b/questdb.sysusers
new file mode 100644
index 000000000000..d95b4231de1d
--- /dev/null
+++ b/questdb.sysusers
@@ -0,0 +1 @@
+u questdb