Skip to main content
Version: v0.2.0

Deploy Infinity

This document provides guidance on deploying the Infinity database.

You can deploy Infinity in the following three ways:

Install Infinity using pip

Prerequisites

  • CPU: x86_64 with AVX2
  • Python: Python 3.10+
  • OS: Linux with glibc ≥ 2.17

Installation

pip install infinity-sdk==0.2.0
IMPORTANT

Deploy Infinity using Docker

Prerequisites

  • CPU: x86_64 with AVX2
  • Linux with glibc ≥ 2.17, Windows 10+ with WSL/WSL2, or MacOS

Installation

This section provides instructions on deploying Infinity using Docker on Linux x86_64, MacOS x86_64, and Windows WSL/WSL2.

sudo mkdir -p /var/infinity && sudo chown -R $USER /var/infinity
docker pull infiniflow/infinity:nightly
docker run -d --name infinity -v /var/infinity/:/var/infinity --ulimit nofile=500000:500000 --network=host infiniflow/infinity:nightly

Deploy Infinity using binary

Prerequisites

  • CPU: x86_64 with AVX2
  • Linux with glibc ≥ 2.17

Installation

This section provides instructions on deploying Infinity using binary package on Linux x86_64. You can download the binary package (deb, rpm, or tgz) for your Linux system from https://github.com/infiniflow/infinity/releases. The prebuilt packages are compatible with Linux distributions based on glibc 2.17 or later, for example, RHEL 7, Debian 8, Ubuntu 14.04.

Fedora/RHEL/CentOS/OpenSUSE

sudo rpm -i infinity-0.2.0-dev-x86_64.rpm
sudo systemctl start infinity

Connect to Infinity server

Before running the following Python scripts, please ensure that you have already installed infinity-sdk.

import infinity

# Connect to Infinity. If it is deployed locally use infinity.LOCAL_HOST to replace <SERVER_IP_ADDRESS>
infinity_obj = infinity.connect(infinity.NetworkAddress("<SERVER_IP_ADDRESS>", 23817))
db = infinity_obj.get_database("default_db")
table = db.create_table("my_table", {"num": {"type": "integer"}, "body": {"type": "varchar"}, "vec": {"type": "vector, 4, float"}})
table.insert([{"num": 1, "body": "unnecessary and harmful", "vec": [1.0, 1.2, 0.8, 0.9]}])
table.insert([{"num": 2, "body": "Office for Harmful Blooms", "vec": [4.0, 4.2, 4.3, 4.5]}])
res = table.output(["*"]).knn("vec", [3.0, 2.8, 2.7, 3.1], "float", "ip", 2).to_pl()
print(res)
note

For detailed information about the Python API, see the Python API Reference.