Giter VIP home page Giter VIP logo

dpdk's Introduction

Scylla

Slack Twitter

What is Scylla?

Scylla is the real-time big data database that is API-compatible with Apache Cassandra and Amazon DynamoDB. Scylla embraces a shared-nothing approach that increases throughput and storage capacity to realize order-of-magnitude performance improvements and reduce hardware costs.

For more information, please see the ScyllaDB web site.

Build Prerequisites

Scylla is fairly fussy about its build environment, requiring very recent versions of the C++23 compiler and of many libraries to build. The document HACKING.md includes detailed information on building and developing Scylla, but to get Scylla building quickly on (almost) any build machine, Scylla offers a frozen toolchain, This is a pre-configured Docker image which includes recent versions of all the required compilers, libraries and build tools. Using the frozen toolchain allows you to avoid changing anything in your build machine to meet Scylla's requirements - you just need to meet the frozen toolchain's prerequisites (mostly, Docker or Podman being available).

Building Scylla

Building Scylla with the frozen toolchain dbuild is as easy as:

$ git submodule update --init --force --recursive
$ ./tools/toolchain/dbuild ./configure.py
$ ./tools/toolchain/dbuild ninja build/release/scylla

For further information, please see:

Running Scylla

To start Scylla server, run:

$ ./tools/toolchain/dbuild ./build/release/scylla --workdir tmp --smp 1 --developer-mode 1

This will start a Scylla node with one CPU core allocated to it and data files stored in the tmp directory. The --developer-mode is needed to disable the various checks Scylla performs at startup to ensure the machine is configured for maximum performance (not relevant on development workstations). Please note that you need to run Scylla with dbuild if you built it with the frozen toolchain.

For more run options, run:

$ ./tools/toolchain/dbuild ./build/release/scylla --help

Testing

Build with the latest Seastar Check Reproducible Build clang-nightly

See test.py manual.

Scylla APIs and compatibility

By default, Scylla is compatible with Apache Cassandra and its API - CQL. There is also support for the API of Amazon DynamoDB™, which needs to be enabled and configured in order to be used. For more information on how to enable the DynamoDB™ API in Scylla, and the current compatibility of this feature as well as Scylla-specific extensions, see Alternator and Getting started with Alternator.

Documentation

Documentation can be found here. Seastar documentation can be found here. User documentation can be found here.

Training

Training material and online courses can be found at Scylla University. The courses are free, self-paced and include hands-on examples. They cover a variety of topics including Scylla data modeling, administration, architecture, basic NoSQL concepts, using drivers for application development, Scylla setup, failover, compactions, multi-datacenters and how Scylla integrates with third-party applications.

Contributing to Scylla

If you want to report a bug or submit a pull request or a patch, please read the contribution guidelines.

If you are a developer working on Scylla, please read the developer guidelines.

Contact

  • The community forum and Slack channel are for users to discuss configuration, management, and operations of the ScyllaDB open source.
  • The developers mailing list is for developers and people interested in following the development of ScyllaDB to discuss technical topics.

dpdk's People

Contributors

ajcarew avatar am6 avatar anatolyburakov avatar bairemon avatar bruce-richardson avatar cchemparathy-tilera avatar chelsiocudbg avatar cristian-dumitrescu avatar declanwd avatar didier-pallard avatar helin-zhang avatar ileungcm avatar ivan6wind avatar jeffreybshaw avatar john-mcnamara-intel avatar kananyev avatar keithwiles avatar marvinliu123 avatar mukawa avatar nhorman avatar olivier-matz-6wind avatar pablodelara avatar pmatilai avatar rosenbaumalex avatar ryanmiao avatar sabutler avatar shemminger avatar wangliangmin1962 avatar wenzhuol avatar wujingji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dpdk's Issues

Compilation issue with dpdk

Getting the below compilation issue.

[root@vm7 dpdk-master]# make config T=x86_64-native-linuxapp-gcc && make
make[3]: Nothing to be done for `depdirs'.
Configuration done
== Build lib
== Build lib/librte_compat
== Build lib/librte_eal
== Build lib/librte_eal/common
== Build lib/librte_eal/linuxapp
== Build lib/librte_eal/linuxapp/igb_uio
CC [M] /home/pradeep/code/dpdk-master/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o
In file included from /usr/src/kernels/3.10.0-693.17.1.el7.x86_64/include/linux/kernel.h:11,
from /usr/src/kernels/3.10.0-693.17.1.el7.x86_64/include/linux/cache.h:4,
from /usr/src/kernels/3.10.0-693.17.1.el7.x86_64/include/linux/time.h:4,
from /usr/src/kernels/3.10.0-693.17.1.el7.x86_64/include/linux/stat.h:18,
from /usr/src/kernels/3.10.0-693.17.1.el7.x86_64/include/linux/sysfs.h:20,
from /usr/src/kernels/3.10.0-693.17.1.el7.x86_64/include/linux/kobject.h:21,
from /usr/src/kernels/3.10.0-693.17.1.el7.x86_64/include/linux/device.h:17,
from /home/pradeep/code/dpdk-master/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:27:
/usr/src/kernels/3.10.0-693.17.1.el7.x86_64/include/linux/log2.h:22:1: error: ignoring attribute ‘noreturn’ because it conflicts with attribute ‘const’ [-Werror=attributes]
int ____ilog2_NaN(void);
^~~
cc1: all warnings being treated as errors
make[8]: *** [/home/pradeep/code/dpdk-master/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o] Error 1
make[7]: *** [module/home/pradeep/code/dpdk-master/build/build/lib/librte_eal/linuxapp/igb_uio] Error 2
make[6]: *** [sub-make] Error 2
make[5]: *** [igb_uio.ko] Error 2
make[4]: *** [igb_uio] Error 2
make[3]: *** [linuxapp] Error 2
make[2]: *** [librte_eal] Error 2
make[1]: *** [lib] Error 2
make: *** [all] Error 2

compilation broken on >=glibc-2.25

Users trying to compile scylladb with dpdk enabled will fail if their version of glibc is >=2.25 with the following error:

dpdk/lib/librte_eal/linuxapp/eal/eal_pci_uio.c:134:8: error: implicit declaration of function ‘makedev’ [-Werror=implicit-function-declaration]
  dev = makedev(major, minor);
        ^
dpdk/lib/librte_eal/linuxapp/eal/eal_pci_uio.c:134:2: error: nested extern declaration of ‘makedev’ [-Werror=nested-externs]
  dev = makedev(major, minor);
  ^
cc1: all warnings being treated as errors

This is due to the following change in glibc:

* The inclusion of <sys/sysmacros.h> by <sys/types.h> is deprecated.  This
  means that in a future release, the macros “major”, “minor”, and “makedev”
  will only be available from <sys/sysmacros.h>.

The fix is to #include <sys/sysmacros.h> in the dpdk/lib/librte_eal/linuxapp/eal/eal_pci_uio.c file :)

I'm not submitting a PR because I've seen that you plan on upgrading your copy of dpdk wrt gcc-6 support, but if you want one just ask ;)

Meanwhile I will maintain a patch on Gentoo packaging for this until this issue is closed.

dpdk-pdump: vdev creation failed: Driver can not attach the device

when running the pdump getting the following error
my system config
hardware= dell poweredge r730
CPU= dual socket (xeon e5 2697a)
OS=CentOS 7
dpdk version=16.11.1
interface getting traffic=port0
NIC=intel x710 DA/SFP+
hugepage size=1G
number of hugepage=16
error copy

[root@localhost pdump]# ./dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=test.pcap'
EAL: Detected 64 lcore(s)
EAL: Probing VFIO support...
EAL: cannot connect to primary process!
EAL: VFIO support could not be initialized
EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel.
EAL: This may cause issues with mapping memory into secondary processes
EAL: PCI device 0000:83:00.0 on NUMA socket 1
EAL: probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:83:00.1 on NUMA socket 1
EAL: probe driver: 8086:1572 net_i40e
EAL: no driver found for net_pcap_rx_0
EAL: Driver cannot attach the device (net_pcap_rx_0)
EAL: Error - exiting with code: 1
Cause: vdev creation failed:create_mp_ring_vdev:736

Use quick sort in sort_by_physaddr maybe better

/*

  • Sort the hugepg_tbl by physical address (lower addresses first on x86,
    • higher address first on powerpc). We use a slow algorithm, but we won't
    • have millions of pages, and this is only done at init time.
      */
      But we can be better by other sort function.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.