Git Product home page Git Product logo

db-engine's People

Contributors

rembrant777 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

db-engine's Issues

Add pthread unit test cases

add pthread's useful api's unit test case with name of pthread_test.cpp includes

phtread_t, pthread_attr_t, pthread_mutex_t, pthread_cond_t;

pthread_create
pthread_mutex_init
pthread_mutex_destroy
pthread_mutex_lock
pthread_mutext_unlock
pthread_cond_init
pthread_cond_destroy
pthread_cond_signal
pthread_cond_broadcast
pthread_join
pthread_exit

Support multiple underlying query structure

emeralddb is originally designed and implemednted based on the hash map.
what we need to enhance and explore is design uniform api that can shielding underlying details supports
multiple structure like:
B tree, B+ tree Bw and lsm (not sure for now just add a todo) and so on, uniform api deisgn also provides convenience to benchmark testing cases' execution .

Investigate combine rdma with emeralddb on multiple indexes

try to support tree lsm structures to replace original hash table structure this is the first step
and in second step try to implement those structures based on rdma devices and based on the operations like wqe that rdma device support

Install gtest in workflow as a step instead of in cmake

Recently we got a failure in GitHub merge workflow after enabling in cmake file automatically quietly install gtest.

failure link address: https://github.com/Rembrant777/db-engine/actions/runs/4275539172

It is not maintainable to set gtest installation logic in cmake's CMakeLists.txt, cuz local env already have gtest installed, everytime execute local cmake will duplicate download. And in github workflow download not stable and difficult to maintain.

Move the gtest download && installation as a step same as boost's package download, compile and installation.

Support client framework

in this issue we add codes for client module, all codes locate in client/
branch name: issue_client

Support google protobuf

  1. include google protobuf's closure as method pointer for thread pool
  2. add install protobuf in github work flow step

Improve workflow efficiency

for now, we support boost and gtest install automatically in github workflow everytime user executes pull request or push operations.

it is ok for gtest install and linking time, however, boost's package download, compile and install takes a too long time.

there are two ways can solve this time-consuming step in the workflow which are worth investigating:

  1. download binary(compiled) file directly and move the header files to /usr/local/include && libs to /usr/local/libs directly -- question: file to large and there may exists an in-compatible from the binary files to current system
  2. set boost cache refer to this github workflow file demo.

Modify db-engine compiler tools from automake to cmake

in previous db-engine project compiling and packaging all depend on multiple complex steps which often met linux system problems(or even cannot support mac local compiling).
like if we need to compile a project often follow those steps

autoscan  
# autoscan will generte a intermidiate file with the name of configure.scan 
# we need to rename the file from configure.scan to configure.ac 
aclocal 

autoconf 
autoheader 
automake --add-missing # this steps often need meet lots of errors 
./configure CXXFLAGS= CFLAGS= 
# after we execute the configure we often got a Makefile 
# finally execute make operaiton 
make 

in order to reduce those kind of issues happen and improve coding efficienty. I would like to choose cmake/CMakeLists.txt this compiling tool to liberate me from previous autoscan, automake those complex tools. In this way what I care about is how to write CMakeLists.txt and how to organize the parameters/flags that need to passing to the project.

Support workflow to execute unit test cases and integration test cases

Add a todo list:
branch: us_action

  1. stage-1: execute cmake and pass is ok
  2. stage-2: support automation test cases execution based on github's actions workflow
  3. stage-3: this workflow should support code style, grammar checking, test case, regression and integrations like benchmark automaticatlly invoked by pull requests and merge operations

Add network communcation message struct

instead of sending data that stored in a buffer pointed by the char* we need to design the message body(struct) that contains message self detail metadata, message header and message body. also message type should be varied from different transporting scenarios.

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.