Start EVA Server#

Run on Google Colab View source on GitHub Download notebook

Launch EVA server#

We use this notebook for launching the EVA server.

## Install EVA package if needed
# %pip install "evadb[dev]" --quiet

import os
import time
from psutil import process_iter
from signal import SIGTERM
import re

def shell(command):
    print(command)
    os.system(command)

def kill_server_with_pid(pid):
    for proc in process_iter():
        if proc.pid == pid:
            proc.send_signal(SIGTERM)

def stop_eva_server():
    # FIND eva PID
    pid = None
    try:
        with open('eva.log', 'r') as f:
            for line in f:
                if 'PID' in line:
                    pid = re.findall(r'\(\d+\)', line)[0]
                    pid = pid[1:-1]
    except FileNotFoundError:
        pass

    if pid is not None:
        kill_server_with_pid(pid)

def launch_eva_server():
    # Stop EVA server if it is running
    stop_eva_server()

    os.environ['GPU_DEVICES'] = '0'

    # Start EVA server
    shell("nohup eva_server > eva.log 2>&1 &")

    try:
        with open('eva.log', 'r') as f:
            print(f.read())
    except FileNotFoundError:
        pass

    # Wait for server to start
    time.sleep(10)

def connect_to_server():
    from eva.server.db_api import connect
    %pip install nest_asyncio --quiet
    import nest_asyncio
    nest_asyncio.apply()

    # Connect client with server
    connection = connect(host = '127.0.0.1', port = 5432) 
    cursor = connection.cursor()

    return cursor

# Launch server
launch_eva_server()
nohup eva_server > eva.log 2>&1 &
01-01-2023 23:08:30 INFO  [catalog_manager:catalog_manager.py:_bootstrap_catalog:0073] Bootstrapping catalog
01-01-2023 23:08:30 INFO  [base_model:base_model.py:init_db:0103] Creating tables
01-01-2023 23:08:30 INFO  [timer:timer.py:log_elapsed_time:0045] Query Compile Time: 0.2593 sec
01-01-2023 23:08:30 WARNING[create_udf_executor:create_udf_executor.py:exec:0042] UDF FastRCNNObjectDetector already exists, nothing added.
01-01-2023 23:08:30 INFO  [timer:timer.py:log_elapsed_time:0045] Query Compile Time: 0.0009 sec
01-01-2023 23:08:30 WARNING[create_udf_executor:create_udf_executor.py:exec:0042] UDF Array_Count already exists, nothing added.
01-01-2023 23:08:30 INFO  [timer:timer.py:log_elapsed_time:0045] Query Compile Time: 0.0007 sec
01-01-2023 23:08:30 WARNING[create_udf_executor:create_udf_executor.py:exec:0042] UDF Crop already exists, nothing added.
01-01-2023 23:08:30 INFO  [timer:timer.py:log_elapsed_time:0045] Query Compile Time: 0.0005 sec
01-01-2023 23:08:30 WARNING[create_udf_executor:create_udf_executor.py:exec:0042] UDF Open already exists, nothing added.
01-01-2023 23:08:30 INFO  [timer:timer.py:log_elapsed_time:0045] Query Compile Time: 0.0006 sec
01-01-2023 23:08:30 WARNING[create_udf_executor:create_udf_executor.py:exec:0042] UDF YoloV5 already exists, nothing added.
01-01-2023 23:08:30 INFO  [timer:timer.py:log_elapsed_time:0045] Query Compile Time: 0.0010 sec
01-01-2023 23:08:30 WARNING[create_udf_executor:create_udf_executor.py:exec:0042] UDF Similarity already exists, nothing added.
01-01-2023 23:08:30 INFO  [timer:timer.py:log_elapsed_time:0045] Query Compile Time: 0.0005 sec
01-01-2023 23:08:30 WARNING[create_udf_executor:create_udf_executor.py:exec:0042] UDF DummyObjectDetector already exists, nothing added.
01-01-2023 23:08:30 INFO  [timer:timer.py:log_elapsed_time:0045] Query Compile Time: 0.0005 sec
01-01-2023 23:08:30 WARNING[create_udf_executor:create_udf_executor.py:exec:0042] UDF DummyMultiObjectDetector already exists, nothing added.
01-01-2023 23:08:30 INFO  [timer:timer.py:log_elapsed_time:0045] Query Compile Time: 0.0005 sec
01-01-2023 23:08:30 WARNING[create_udf_executor:create_udf_executor.py:exec:0042] UDF DummyFeatureExtractor already exists, nothing added.
01-01-2023 23:08:30 INFO  [server:server.py:start_server:0096] Start Server
01-01-2023 23:08:30 INFO  [server:server.py:start_server:0115] PID(78894) serving on ('0.0.0.0', 5432)