Giter VIP home page Giter VIP logo

lightdb's Introduction

About LightDB

LightDB is a database management system (DBMS) designed to efficiently ingest, store, and deliver virtual reality (VR) content at scale. LightDB currently targets both live and prerecorded spherical panoramic (a.k.a. 360°) and light field VR videos. It persists content as a multidimensional field that includes both spatiotemporal and angular (i.e., orientation) dimensions. ontent delivered through LightDB offers improved throughput, less bandwidth, and scales to many concurrent connections.

See our website for more details.

Installing LightDB

  1. Docker

Install a containerized version of LightDB via DockerHub

docker pull lightdb/core
docker run -it lightdb/core
  1. Build from source

To build from source, clone the repository, install dependencies, generate a Makefile, and build:

git clone https://github.com/uwdb/lightdb.git
cat packages.txt | xargs sudo apt-get install
mkdir build
cd build
cmake ..
make

Using LightDB

LightDB support declarative queries over temporal light fields (TLF). To obtain a reference to a TLF, scan it from the internal LightDB catalog or load it from disk:

    tlf = Scan("internal-tlf")
    tlf2 = Load("~/video.mp4")

Each of the algebraic operators described in section 3.2 of the LightDB paper may be applied to a TLF. For example, to apply the predictive 360° query described in section 3.5, a user would write the following query:

    query = Scan("internal-tlf")
              .Partition(Dimension::Theta, degrees{90})
              .Partition(Dimension::Phi, degrees{90})
              .Subquery(lambda tlf: tlf.Encode(Codec.hevc, bitrate=b))
              .Store("result")
    Coordinator().execute(query)

Note that this query performs the workload presented in our SIGMOD'16 VideoCloud demonstration and discussed in the video shown below. Note that LightDB's architecture and functionality now extend far beyond this use case; see the paper for more details.

Questions?

Open an issue with any questions or issues you might have.

Citations & Paper

If you use LightDB, please cite our VLDB'18 paper:

LightDB: A DBMS for Virtual Reality Video
Brandon Haynes, Amrita Mazumdar, Armin Alaghi, Magdalena Balazinska, Luis Ceze, and Alvin Cheung
VLDB:1192-1205 [PDF]

@article{DBLP:journals/pvldb/HaynesMABCC18,
  author    = {Brandon Haynes and
               Amrita Mazumdar and
               Armin Alaghi and
               Magdalena Balazinska and
               Luis Ceze and
               Alvin Cheung},
  title     = {{LightDB}: {A} {DBMS} for Virtual Reality Video},
  journal   = {{PVLDB}},
  volume    = {11},
  number    = {10},
  pages     = {1192--1205},
  year      = {2018},
  doi       = {10.14778/3231751.3231768},
}

Acknowledgments

This work is supported by the National Science Foundation through NSF grants CCF-1703051, IIS-1247469, IIS-1546083, CCF-1518703, and CNS-1563788; DARPA award FA8750-16-2-0032; DOE award DE-SC0016260; a Google Faculty Research Award; an award from the University of Washington Reality Lab; and gifts from the Intel Science and Technology Center for Big Data, Intel Corporation, Adobe, Amazon, Facebook, Huawei and Google.

 

lightdb's People

Contributors

amritamaz avatar brandonhaynes avatar maureendaum avatar mundrapranay 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lightdb's Issues

Add an "implicit interpolator"

Allow users to define an implicit interpolator, which is used when a TLF needs to be resampled. The QO can use the II (if present) when necessary to improve query performance. This will also reduce the length of queries, although it might lead to unexpected interpolations.

Linker errors building in release mode

E.g.,

`_ZNSt17_Function_handlerIFN7lightdb16shared_referenceINS0_7runtime7RuntimeIJEEENS0_12DefaultMixinEEEvEZNS2_L4makeINS0_8physical9CPUDecode7RuntimeESA_JEvEEDaRT0_DpOT1_EUlvE_E9_M_invokeERKSt9_Any_data' referenced in section `.rodata.cst8' of CMakeFiles/lightdb_test.dir/src/planning/VisitorTests.cc.o: defined in discarded section `.text._ZNSt17_Function_handlerIFN7lightdb16shared_referenceINS0_7runtime7RuntimeIJEEENS0_12DefaultMixinEEEvEZNS2_L4makeINS0_8physical9CPUDecode7RuntimeESA_JEvEEDaRT0_DpOT1_EUlvE_E9_M_invokeERKSt9_Any_data[_ZN7lightdb12optimization14ChooseDecoders5visitERKNS_7logical17ScannedLightFieldE]' of CMakeFiles/lightdb_test.dir/src/planning/VisitorTests.cc.o

Add `version` parameter to Scan

Might as well allow users to pick out a version, if they know it. Should we also expose version information in the metadata?

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.