Deploy Infinity
This document provides guidance on deploying the Infinity database.
You can deploy Infinity in the following three ways:
- Install Infinity using pip: Mainly for local deployment or quick testing.
- Deploy Infinity using Docker: Mainly for deploying a separate server for remote access.
- Deploy Infinity using binary: Mainly for deploying a separate server for remote access.
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
- More detailed information is covered in the Quickstart Guide.
- This 'embedded' approach is for local installation or quick testing. If you wish to deploy a separate server for remote access, follow the instructions in Deploy Infinity using Docker or Deploy Infinity using binary.
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.
- Linux x86_64 & MacOS x86_64
- Windows
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
If you are on Windows 10+, you must enable WSL or WSL2 to deploy Infinity using Docker. Suppose you've installed Ubuntu in WSL2:
-
Following this to enable systemd inside WSL2.
-
Install Install docker-ce according to the instructions here.
-
If you have installed Docker Desktop version 4.29+ for Windows: Settings > Features in development, then select Enable host networking.
-
Pull the Docker image and start Infinity:
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
- Ubuntu/Debian
Fedora/RHEL/CentOS/OpenSUSE
sudo rpm -i infinity-0.2.0-dev-x86_64.rpm
sudo systemctl start infinity
sudo dpkg -i infinity-0.2.0-dev-x86_64.deb
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)
For detailed information about the Python API, see the Python API Reference.