Skip to main content
Version: DEV

Deploy Infinity

This document provides guidance on deploying the Infinity database. In general, you can deploy Infinity in the following three ways:

Import Infinity as a Python module

IMPORTANT

This approach allows you to call Infinity as a Python module. To deploy Infinity with the client and server as separate processes, follow the instructions in Deploy Infinity using Docker or Deploy Infinity using binary.

Prerequisites

  • CPU: x86_64 with AVX2 support.
  • Python: Python 3.10+.
  • OS:
    • Linux with glibc 2.17+.
    • Windows 10+ with WSL/WSL2.

Install Infinity as a module

pip install infinity-embedded-sdk==0.5.0.dev4

Create an Infinity object

import infinity_embedded

infinity_obj = infinity_embedded.connect("absolute/path/to/save/to")
NOTE

For detailed information about the capabilities and usage of Infinity's Python API, see the Python API Reference.

Deploy Infinity using Docker

To deploy Infinity with the client and server as separate processes, consider either Deploy Infinity using Docker or Deploy Infinity using binary. Be aware of the respective system requirements for each approach.

Prerequisites

  • CPU: x86_64 with AVX2 support.
  • OS:
    • Linux with glibc 2.17+.
    • Windows 10+ with WSL/WSL2.
    • MacOS

Install Infinity server

This section provides instructions on deploying the 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

Install Infinity client

pip install infinity-sdk==0.5.0.dev4
import infinity

infinity_obj = infinity.connect(infinity.NetworkAddress("<SERVER_IP_ADDRESS>", 23817))
db_object = infinity_object.get_database("default_db")
table_object = db_object.create_table("my_table", {"num": {"type": "integer"}, "body": {"type": "varchar"}, "vec": {"type": "vector, 4, float"}})
table_object.insert([{"num": 1, "body": "unnecessary and harmful", "vec": [1.0, 1.2, 0.8, 0.9]}])
table_object.insert([{"num": 2, "body": "Office for Harmful Blooms", "vec": [4.0, 4.2, 4.3, 4.5]}])
res = table_object.output(["*"])
.match_dense("vec", [3.0, 2.8, 2.7, 3.1], "float", "ip", 2)
.to_pl()
print(res)
NOTE

For detailed information about the capabilities and usage of Infinity's Python API, see the Python API Reference.

Deploy Infinity using binary

To deploy Infinity with the client and server as separate processes, consider either Deploy Infinity using binary or Deploy Infinity using Docker. Be aware of the respective system requirements for each approach.

Prerequisites

  • CPU: x86_64 with AVX2 support.
  • OS:
    • Linux with glibc 2.17+.
    • Windows 10+ with WSL/WSL2.

Install Infinity server

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.5.0.dev4-x86_64.rpm
sudo systemctl start infinity

Install Infinity client

pip install infinity-sdk==0.5.0.dev4

Connect to Infinity Server and run a dense vector search

import infinity

infinity_object = infinity.connect(infinity.NetworkAddress("<SERVER_IP_ADDRESS>", 23817))
db_object = infinity_object.get_database("default_db")
table_object = db_object.create_table("my_table", {"num": {"type": "integer"}, "body": {"type": "varchar"}, "vec": {"type": "vector, 4, float"}})
table_object.insert([{"num": 1, "body": "unnecessary and harmful", "vec": [1.0, 1.2, 0.8, 0.9]}])
table_object.insert([{"num": 2, "body": "Office for Harmful Blooms", "vec": [4.0, 4.2, 4.3, 4.5]}])
res = table_object.output(["*"])
.match_dense("vec", [3.0, 2.8, 2.7, 3.1], "float", "ip", 2)
.to_pl()
print(res)
NOTE

For detailed information about the capabilities and usage of Infinity's Python API, see the Python API Reference.