florijan
231b84e834
Query::Plan - Reconstruct fails after delete
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D287
2017-04-18 12:25:41 +02:00
Dominik Gleich
461ea65ad4
Deferred deleter added.
...
Summary:
Add tests.
Merge branch 'dev' into remove_locks
Everything works. Refactor complete.
Documentation:
https://phabricator.memgraph.io/w/memgraph_implementation/indexing/
Reviewers: buda, mislav.bradac, florijan
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D258
2017-04-14 17:46:16 +02:00
Mislav Bradac
bba20cf89c
Remove unneccessary files from utils
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D276
2017-04-13 17:55:33 +02:00
florijan
1273cea870
EdgeAccessor::is_cycle added. Query::Plan::Expand fixed
...
Reviewers: mislav.bradac
Reviewed By: mislav.bradac
Differential Revision: https://phabricator.memgraph.io/D262
2017-04-11 15:52:01 +02:00
Teon Banek
804d0b09b9
Move typed_value to query top level and namespace it
...
Summary:
Upgraded old uses of TypedValue.
Also, implemented operator<< for EdgeAccessor and VertexAccessor.
Reviewers: buda, florijan, mislav.bradac, mferencevic
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D251
2017-04-11 08:50:46 +02:00
Dominik Gleich
fd2780155a
Refactor GC to use scheduler.
...
Reviewers: buda, matej.gradicek
Reviewed By: matej.gradicek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D247
2017-04-10 15:57:45 +02:00
Dominik Gleich
e8fd479bbc
Fix memory leak. Refactor mvcc. Revert commit function to old and introduce new one.
...
Summary:
Update tests.
Documentation:
https://phabricator.memgraph.io/w/memgraph_implementation/mvcc/
Reviewers: mislav.bradac, florijan, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D227
2017-04-10 12:16:03 +02:00
Dominik Gleich
8c7ed8c186
Add edge_types indexes.
...
Summary: Refactor label_index. Also add edge_type indexes.
Reviewers: mislav.bradac, florijan
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D217
2017-04-05 17:23:12 +02:00
florijan
e2949a88ce
Storage::EdgeAccessor::set_edge_type removed
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D221
2017-04-04 16:58:30 +02:00
florijan
9ce2081103
Storage::RecordAccessor - added multiple pointers to RecordAcessors and switching capabilities. Rewired GraphDbAccessor and VersionList accordingly. Added tests for new RecordAccessor functions.
...
Reviewers: teon.banek, dtomicevic, mislav.bradac, dgleich, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D207
2017-04-03 12:29:56 +02:00
Dominik Gleich
863f55dc2f
Labels implementation.
...
Summary: Labels implementation
Reviewers: buda, teon.banek
Reviewed By: buda, teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D201
2017-04-03 11:50:22 +02:00
Dominik Gleich
3ad55dd352
Fix config include in GC. This somehow breaks integration_query_engine. Argh.
...
Reviewers: mislav.bradac, mferencevic
Reviewed By: mferencevic
Differential Revision: https://phabricator.memgraph.io/D211
2017-03-31 16:59:24 +02:00
florijan
078b50a154
Storage::RecordAccessor - added SwitchNew, SwitchOld and Reconstruct API and placeholder implementations
...
Reviewers: teon.banek, mislav.bradac, buda
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D205
2017-03-30 13:49:17 +02:00
Dominik Gleich
cac422f6a8
Fix conditional wait.
...
Summary: It could happen that the garbage collector waits for the sleep period before exiting thread since notify_one wasn't done after mutex locking.
Reviewers: mislav.bradac
Reviewed By: mislav.bradac
Differential Revision: https://phabricator.memgraph.io/D206
2017-03-30 13:26:08 +02:00
Matej Ferencevic
3d2b37ed35
Split bolt encoder into two.
...
Summary:
Added temporary_id to record_accessor.
Added ID encoding to encoder.
Reviewers: florijan
Reviewed By: florijan
Subscribers: pullbot, matej.gradicek
Differential Revision: https://phabricator.memgraph.io/D197
2017-03-30 09:59:47 +02:00
Dominik Gleich
bd0b81526e
Initial version of mvcc_gc.
...
Summary:
Tested MVCC garbage collector.
Also refactors graph_db forward declarations of vertex and edge which were causing issues.
Reviewers: mislav.bradac, dtomicevic, florijan, teon.banek, buda
Reviewed By: teon.banek, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D177
2017-03-29 12:38:24 +02:00
florijan
af8df9e282
Query::Plan - Set logical ops implementation and testing. PropertyValueStore set() overriden to handle Null values as a removal instead of setting them. PropertyValueStore.clear() function added.
...
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D194
2017-03-29 08:51:12 +02:00
florijan
1280e77fd3
Query - Logical - Delete op added and tested. Minor refactors.
...
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D184
2017-03-27 14:57:44 +02:00
florijan
a2a4c28168
Query - Add expansion LogicalOp and tests
...
Summary: Query - AstTreeStorage - TODO for forwarding resolved
Reviewers: teon.banek, mislav.bradac, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D139
2017-03-21 11:26:05 +01:00
florijan
09999e877f
RecordAccessor uses pointers for storage so it's move/copy assignable
...
Summary: See above.
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D118
2017-03-14 13:04:07 +01:00
Mislav Bradac
725ebd1a0e
int -> int64_t in in Typed and PropertyValue
...
Reviewers: buda, mferencevic
Reviewed By: buda, mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D106
2017-03-09 11:44:10 +01:00
Mislav Bradac
00d818c762
Implement expression code generator
...
Summary: Work in progress, this is not usable yet
Reviewers: florijan
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D84
2017-03-08 14:10:16 +01:00
Dominik Gleich
57f1b40d8d
Refactor transaction inside db_accessor. Also introduce advance_command.
...
Summary:
Modification to MVCC - CHECK!
Refactor transaction_read
Add automatic commit/abort functionality to graph_db_accessor.
Fix failing test in graph_db_accessor.
Reviewers: buda, dtomicevic, florijan
Reviewed By: buda, florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D87
2017-03-07 09:42:04 +01:00
florijan
2aeef25881
Traversal namespace specialization added for real DB primitives
...
Summary: database/GraphDbAccessor and storage/...Accessor now returns iterators over lazily created Accessors (filtered on visibility). Dependecies and forward declarations reorganized to support new code
Reviewers: buda, teon.banek
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D83
2017-03-03 14:01:01 +01:00
Mislav Bradac
ccdffa1d7e
Refactor TypedValue to PropertyValue
...
Summary:
Rename TypedValue to PropertyValue.
Move original TypedValue to query/backend/cpp.
Fix undefined behaviours and memory leaks in PropertyValue.
Add list type to PropertyValue.
Operators and appropriate tests will be revised in following commits.
Fix bugs in TypedValue
Fix bugs in typed value
Reviewers: buda, florijan
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D77
2017-03-01 12:31:47 +01:00
Dominik Gleich
82414b9111
Fix naming of asserts.runtime_assert & assert -> debug_assert
...
Summary:
Merge branch 'dev' into rename_assert
Fix new files.
Remove cassert.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D66
2017-02-24 11:41:55 +01:00
Dominik Gleich
af23253e7e
Implement less than operator.
...
Summary:
Add test.
Vertex accessor test checks for sortability.
Reviewers: buda, florijan, mislav.bradac
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D62
2017-02-24 10:10:24 +01:00
florijan
68f57fa47d
CMakeLists cleanup w.r.t. Antlr linking. Removed the unused typed_value_store.cpp
...
Summary: See above.
Test Plan: Building tested.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot, buda
Differential Revision: https://phabricator.memgraph.io/D50
2017-02-20 09:43:58 +01:00
Marko Budiselic
3642fb1312
examples folder has been removed; src/test folder has been removed; the existing tests were moved to tests folder; StacktraceException has been introduced; query_plan_templated has been moved to query folder; hazard pointers have been deleted because they are not used any more
2017-02-18 18:03:48 +01:00
Marko Budiselic
d4e3c4cd10
clang format has been run on all hpp and cpp files under src and tests
2017-02-18 11:54:37 +01:00
Marko Budiselic
e7f5bd4c21
antlr integration, *.hpp and *.cpp inside src dir, cleanup
...
Summary: antlr integration, *.hpp and *.cpp inside src dir, cleanup
Test Plan: manual
Reviewers: mislav.bradac, dgleich, florijan
Reviewed By: florijan
Subscribers: pullbot, buda
Differential Revision: https://phabricator.memgraph.io/D49
2017-02-17 16:20:31 +01:00
florijan
a11ebef9c5
Properties system and core storage major refactor. STABLE STATE, unit tests added.
2017-02-16 17:43:39 +01:00
florijan
55f1912910
Properties refactoring: STABLE STATE. Memgraph compiles. Properties are out. Tests are in progress.
2017-02-16 15:47:55 +01:00
florijan
70a8b93b0b
Major properties system and database accessor refactor: first stable state (compiles).
2017-02-15 14:10:16 +01:00
Florijan Stamenkovic
9adf5699d9
Major properties and storage refactoring in progress. UNSTABLE STATE
2017-02-13 09:21:35 +01:00
Florijan Stamenkovic
ee523d5080
Continuing major refactor, UNSTABLE STATE. Merged current dev
2017-02-07 13:22:07 +01:00
Florijan Stamenkovic
b38704391c
Typed-value migration in progress. UNSTABLE STATE
2017-02-06 12:40:55 +01:00
Florijan Stamenkovic
b374ae1dbb
storage and database major refactor in progress, also switching from properties to typed-value system. a lot of overdesigned functionalities cut down, new implementations just started. VERY UNSTABLE STATE
2017-02-04 09:01:56 +01:00
Florijan Stamenkovic
10c7514c8a
storage/model - added typed_value system and tests. Modified utils slightly (backward compatible).
...
Summary: Added TypedValue system.
Test Plan: ???
Reviewers: sale, buda
Reviewed By: buda
Subscribers: pullbot, florijan, buda, sale
Differential Revision: https://phabricator.memgraph.io/D46
2017-02-02 15:48:16 +01:00
Florijan Stamenkovic
46dbc08d4e
Merge branch 'MG_typed_values-new_implementation' into MG_typed_value_migration
2017-02-02 10:37:01 +01:00
Florijan Stamenkovic
261797ea9c
storage/model/typed_value - fixes after code review
2017-02-02 10:29:14 +01:00
Florijan Stamenkovic
e508482ab9
Deleted storage/model/properties, started refactoring
2017-02-02 09:03:48 +01:00
Florijan Stamenkovic
b329225322
storage/model - added typed_value system and tests. Modified utils slightly (backward compatible).
...
Summary: Added TypedValue system.
Test Plan: ???
Reviewers: sale, buda
Subscribers: florijan, buda, sale
Differential Revision: https://phabricator.memgraph.io/D46
2017-02-01 14:05:08 +01:00
Marko Budiselic
362bc3ba48
Bug fixes: RELEASE MODE - asserts
2016-12-19 18:32:44 +01:00
Marko Budiselic
cfd36be2e0
All possible request changes from D9#146 are done
2016-11-30 11:05:48 +01:00
Marko Budiselic
21788d003a
Dressipi CRUD queries are dummy implemented; Fixes T99 and T131
...
Summary: Dressipi CRUD queries are dummy implemented; Fixes T99 and T131
Test Plan: manual
Reviewers: sale
Subscribers: buda, sale
Maniphest Tasks: T131, T99
Differential Revision: https://memgraph.phacility.com/D9
2016-11-29 04:08:49 +01:00
Marko Budiselic
c312c2e369
iterators, properties, search by properties in index hardcoded query; TODO: implement in compiler
2016-10-19 02:41:06 +02:00
Kruno Tomola Fabro
d806d635f9
Added documentation.
...
Fixed test for index.
2016-09-18 23:22:36 +01:00
Kruno Tomola Fabro
e22074ad9f
Added test for snapshot with stored index.
2016-09-13 17:02:04 +01:00
Kruno Tomola Fabro
be1a936944
Fixed logging of index creation.
2016-09-12 20:38:03 +01:00
Kruno Tomola Fabro
2a59ed8906
Minor refactorings:
...
Importes now use logger.
Refactored order of constrution of objects in Db.
Moved index creation/removing from Db to Indexes.
Completed Garbage class.
Cleaner now calls garbage.clean() for databases.
Renamed List to ConcurrentList which better names it.
2016-09-12 20:13:04 +01:00
Kruno Tomola Fabro
911eeff1d9
Snapshot store and load works.
2016-09-09 16:14:20 +01:00
Kruno Tomola Fabro
4443cb8b7b
Finished creating part of snapshot.
2016-09-08 13:25:52 +01:00
Kruno Tomola Fabro
0ca1436703
Fixed bug where mask for casting Flags to Type was to small.
2016-09-05 15:56:08 +01:00
Kruno Tomola Fabro
5d235b51f3
tmp commit
...
tmp commit
tmp commit v2
Finished reimplementation of propertys.
They now can be placed in a holder with different source of type information.
Tmp commit
2016-09-05 10:02:48 +01:00
Kruno Tomola Fabro
8fa73eee43
Merge with dev.
2016-08-30 23:09:56 +01:00
Kruno Tomola Fabro
2ab3600117
Added partial test for cleaner.
2016-08-30 23:07:42 +01:00
Kruno Tomola Fabro
ae4e52ff69
Extracted class Composable from BaseIterator.
...
Added iter::Virtual.
Indexes::for_all now return iter::Virtual
2016-08-30 18:13:23 +01:00
Kruno Tomola Fabro
2eb5d3c3ff
Added basic exception handlig.
...
Changed methods insert in Vertices and Edges to be valid even if exception occurs.
2016-08-30 15:12:30 +01:00
Kruno Tomola Fabro
0f249c4f1f
Added support for some queries.
2016-08-30 08:53:02 +01:00
Kruno Tomola Fabro
027dce0d9a
Commint which extracts iterator_base methods to hpp.
2016-08-30 06:16:04 +01:00
Kruno Tomola Fabro
ff07babeba
Commmit for buda.
2016-08-30 05:29:30 +01:00
Kruno Tomola Fabro
b2ce3d58a4
Added cleaner.
...
Added multithreading to dbms.
Skiplist now supports emplace insert.
2016-08-30 00:45:07 +01:00
Kruno Tomola Fabro
2218b0e472
Merged border and testes two querys.
2016-08-29 14:51:31 +01:00
Kruno Tomola Fabro
e908d6588b
Tidied up barrier files.
...
MEMGRAPH has linked/definistion errors during compile.
2016-08-28 20:46:30 +01:00
Kruno Tomola Fabro
77a3298d1e
tmp
2016-08-28 15:47:13 +01:00
Kruno Tomola Fabro
8a89f6601d
EdgeType indexes added.
...
Implemented untested UniqueOrderedIndex.
Introduced TypeGroupEdge/Vertex into database.
Added Index capabilityes to PropertyFamily.
Added method for adding index.
Added method for removing index.
2016-08-25 15:29:45 +01:00
Kruno Tomola Fabro
fbd9ca8420
First version of CSVImport tool.
...
Query and import works.
Properties now use unordered_map.
Reduced memory footprint of properties by more than half.
2016-08-22 19:03:45 +01:00
Kruno Tomola Fabro
eba7fd8be4
Fixed Query compiler to use new interface.
2016-08-19 18:40:04 +01:00
Marko Budiselic
427a7bbe4b
merged interface branch
2016-08-19 11:28:10 +01:00
Kruno Tomola Fabro
cdd7188747
Changes for audit of previous commit.
2016-08-18 17:43:06 +01:00
Kruno Tomola Fabro
5a42e15c4a
Alpha version of label indexes.
...
Squashed messages from 9 commits:
9.
Properties now uses PropertyFamily and contained classes.
Fetching,seting,clearing properties can be done with PropertyFamilyKey or PropertyTypeKey.
Hierarchy of newly added clases is:
Vertices -n-> PropertyFamily {name: String} <-1-n-> PropertyType {type: Property::Flags}
Edges -n-> PropertyFamily {name: String} <-1-n-> PropertyType {type: Property::Flags}
PropertyFamilyKey -> PropertyType
PropertyTypeKey -> PropertyType
PropertyType t0,t1;
let t0!=t1 be true
let t0.family==t1.family be true
then next is true
PropertyTypeKey{&t0}!=PropertyTypeKey{&t1}
PropertyFamilyKey{&t0}==PropertyFamilyKey{&t1}
PropertyFamilyKey{&t0}==PropertyTypeKey{&t1}
PropertyTypeKey{&t0}==PropertyFamilyKey{&t1}
8.
Intermedate commit.
Noticed that integration queries throw SEGFAULT.
7.
Defined interface for indexes.
Fixed three memory leaks.
Fixed integration_queries test which now passes.
6.
Commit which return Xorshift128plus to valid shape.
5.
Tmp commit.
4.
Label Index is compiling.
3.
tmp
2.
Vertex::Accessor now updates Label index.
1.
Applied changes for code review.
2016-08-18 15:34:36 +01:00
Kruno Tomola Fabro
530be96b36
.FIX T68
...
.FIX T67
.FIX T65
Modifed astar main for benchmark.
Experimented with map of best visited and confirmed:
-it is faster by 25%
-observed that it founds best resoult
-loses some non best resoults
Added convinent method at() to get property from RecordAccessor.
Method requires value_ref() method on property object.
2016-08-15 13:21:38 +01:00
Kruno Tomola Fabro
df0bf6fa5f
Database interface refactor.
...
DbAccessor:
-Guarantees that access to Vertex and Edge is possible only through
Vertex::Accessor and Edge::Accessor.
-Guarantees that changing Vertex and Edge is possible only using
Vertex::Accessor returned by vertex_insert() method and
Edge::Accessor returned by edge_insert() method.
-Offers CRUD for Vertex and Edge except iterating over all edges.
Squashed commit messages:
First step in database accessor refactoring done.
It's compiling.
All tests with exception of integration_querys pass
Tests now initialize logging facilities.
Refactored accessors.
RecordAccessor now has 3 states.
From,To,Out,In in there respecive Accessors return unfilled RecordAccessor.
Added iterator classes into utils/itearator/.
2016-08-15 00:09:58 +01:00
Kruno Tomola Fabro
1849514159
First step in database accessor refactoring done.
...
It's compiling.
All tests with exception of integration_querys pass
2016-08-12 23:01:39 +01:00
Kruno Tomola Fabro
2113546b9c
build fixes
2016-08-11 15:32:58 +01:00
Marko Budiselic
869da8dcda
All files for the Release are now isolated
2016-08-10 09:39:02 +01:00
Marko Budiselic
e4d9258df9
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-08 09:32:45 +01:00
Marko Budiselic
84e69bb1d3
fmt wrapper + proof of concept folder
2016-08-08 09:32:34 +01:00
Dominik Tomičević
2a12335246
added features to bolt
2016-08-07 21:19:04 +01:00
Marko Budiselic
b5f884d428
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-02 17:05:15 +01:00
Marko Budiselic
f05c1f6dab
CRU operations are fully supported, D (delete) is missing
2016-08-02 15:41:53 +01:00
Kruno Tomola Fabro
e16b576a6e
Added support for multiset.
...
Minor fixes to tests.
MultiIterator & MultiMap work.
There are some unfinished optimizations in the code commented.
All tests pass. Some common parts from tests have been moved.
2016-08-02 13:23:39 +01:00
Kruno Tomola Fabro
bf174644de
Reformated code acording to format rules in .clang-format.
2016-07-31 13:56:13 +01:00
Kruno Tomola Fabro
ac7f6f507f
Implemented ConncurentMap and updated it's users.
...
Added tests for ConcurrentMap.
Implemented ~SkipList.
2016-07-30 21:20:21 +01:00
Marko Budiselic
a8a1ce9f0a
edge type store
2016-07-06 17:37:05 +01:00
Marko Budiselic
2b1fc70695
some header files are splitted (WORK IN PROGRESS)
2016-07-05 13:20:33 +01:00
Marko Budiselic
b94cae12d1
some new header + source files (vertices, vertex_accessor, properties), first version of Index works, skiplist<T> + concurrent_set + concurrent_map (still has to be finished)
2016-07-05 04:01:22 +01:00
Marko Budiselic
18e7394d9e
basic queries are manually implemented inside src/query_engine/main_queries
2016-07-03 01:02:42 +01:00
Marko Budiselic
5110cde698
query engine code, labels (unfinished), TODO: query engine module system
2016-07-01 22:05:03 +01:00
Marko Budiselic
b5536d70fa
delete accessor from version list + build flow update + memgraph docker file + TODO: debug cypher grammar
2016-06-25 17:26:26 +01:00
Marko Budiselic
a4cadedffe
more appropriate test for storage/indexes/index.hpp (very beginning of indexes work); utils/type_discovery.hpp is created
2016-06-05 12:12:25 +02:00
Marko Budiselic
18ee30f69e
db_index test -> the index creation is tested for now
2016-06-05 09:48:34 +02:00
Dominik Tomičević
1ffcd28053
fixed skiplist issue with keys and values that have no default constructors
2016-06-04 22:00:20 +02:00
Marko Budiselic
52625e39a3
The folder structure was changed, all source code is now within the src dir.
2016-05-08 11:33:07 +02:00