Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
ghttpprovides thread pool, docker image, more commands and more kinds of API
- Many bugs are fixed in indices, caches,
ghttp, APIs and parallelism
- More documents are provided to help others use or contribute to this system
- Better custom is adopted to improve the readability of code
Multithreading is enabled by zengli in ghttp, to improve the performance of this HTTP web server.
In addition, openmp is added by suxunbin for sort and qsort to excavate hidden performance. However, this optimization does not yield good result.
As a result, we reserve the code of openmp, but still use standard sort and qsort functions.
Lijing adds support for multiple users and databases in ghttp, and improve the functions of web server, as well as the SPARQL query endpoint.
New key-value indices are designed by qinzongyue to take place of the original B+ trees.
In detail, we think the original ISTree and IVTree are not efficient enough, so we choose to implement array+hash method instead of B+ tree.
What needs to be noticed is that all these indices does not support parallelism now, so when multiple queries are running concurrently, we must add locks to ensure that the indices are visited in sequence.
Furthermore, qinzongyue designs a new method to compress the original string in RDF dataset.
For example, the prefix can be extracted and compressed using some special characters.
Hulin fixes the bugs in preFilter and Join functions, which has no impact on the performance of answering SPARQL queries.
This version is able to manage RDF datasets with billions of triples, meanwhile performs well on queries processing. In addition, a new HTTP server is included, which is nicer, powerful and stable. What's more, BIND and GROUPBY are supported in SPARQL query now.
VSTree is not used in this version.
- optimize preFilter() and choose_next_node() in Join module using pre2num structure
- add a global string buffer and reassign the buffer sizes of different B+ trees
- merge several B+ trees and the num of all B+ trees are reduced to 9 from 17
This version is the latest merged version, providing support for insertions and deletions.
In addition, good post processing strategies have been implemented to deal with all kinds of symbols, such as numerical values, time and so on.
StringIndex is added by Chen Jiaqi to speed up the getFinalResult() function, and the performance of this system actually improves a lot.
Insertion and deletion are available, and for most cases they are all right.
However, when we test on LUBM5000, the answers of q1.sql and q2.sql after deletion and insertion seem to lack a few.(we will solve this problem as quickly as possible)
This version provides support for the distributed architect, and you can configure the init.conf to use the single gStore or distributed gStore.
This version is on going, later we may choose this as the main version.
This versions provide support for the insertions and deletions, as well as the select queries.
It is needed to keep the duplicates in the KVstore, so the performance of the whole system is worse.
(we will try to solve this problem later)
This version is the newest gStore, and our later work will be based on it.