1
0
Fork 0
Commit Graph

242 Commits

Author SHA1 Message Date
Frank Celler 40d73d5a8b Revert "[WIP] Feature/reduce extraction to projection (#2735)"
This reverts commit 5bfcff30cd.
2017-07-12 12:52:14 +02:00
Jan 5bfcff30cd [WIP] Feature/reduce extraction to projection (#2735)
* reduce extractions to projections

* recycle string buffers in SocketTask

* micro optimizations for mmfiles indexes

* added special lookup function for _key

* moved function into the correct file

* speed up key buffer allocations a bit

* added noexcept specifier

* correctly name variable

* explicitly move bounds

* fix and speedup from/toPersistent functions

* reuse string from ManagedDocumentResult for multiple lookups

* use move-assign

* a bit less work for single server

* speedup AQL function HASH

* single fetch optimization

* performance optimization for the case when no documents need to be returned

* make reduce-extraction-to-projection a RocksDB-only optimizer rule
2017-07-12 11:22:29 +02:00
Jan 5c25b6934e fix issue #2744 (#2745) 2017-07-07 12:39:02 +02:00
Frank Celler bbe7484521 Feature/auth context (#2704)
* added read-only users
2017-07-02 23:15:57 +02:00
Jan cfbd8ed93c Bug fix/rocksdb autoincrement (#2648)
* Added autoincrement keygen support to RocksDB engine with test.

* fixed key generator state keeping for mmfiles engine
2017-06-23 15:27:09 +02:00
Jan 67016ba560 potentially fixed issue #2559: Duplicate _key generated on insertion (#2593) 2017-06-19 17:44:59 +02:00
Jan 5cd9ad7ee1 fail with exception and not with undefined behavior when the expected primary index is not there! (#2590) 2017-06-18 22:48:15 +02:00
jsteemann ad9fa2bd78 cleanup error codes a bit 2017-06-09 14:50:05 +02:00
jsteemann e38705ec24 fixed logic error in index code 2017-06-06 23:59:06 +02:00
Dan Larkin 8c7ba2aaa3 Changed several index/collection APIs to provide better context messages.
Addresses Issue #342.
2017-06-06 12:27:08 -04:00
jsteemann 12132c60c7 improve waitForSync performance for mmfiles 2017-06-06 12:44:39 +02:00
Simon Grätzer 72661d85c3 fixed incremental replication 2017-05-31 18:08:05 +02:00
jsteemann e49cdceaa1 added missing lock 2017-05-24 19:41:43 +02:00
jsteemann 8bc6b3d3a1 removed default parameters 2017-05-18 15:06:19 +02:00
Simon Grätzer 9950fa7245 removing unused and unimplemented methods 2017-05-10 18:25:41 +02:00
jsteemann 910f5680b0 moved files 2017-05-02 12:34:28 +02:00
Max Neunhoeffer 170942da4f Reduce maximal timeout in exponential backoff when waiting for a lock. 2017-04-28 11:38:17 +02:00
jsteemann 66ec078bd5 turn off deadlock detector in obvious cases in which it is not necessary 2017-04-27 14:47:19 +02:00
jsteemann 7344a03623 fix crashes 2017-04-25 15:47:11 +02:00
jsteemann bd5737c5e7 try to fix shutdown issues when collection opening thread is waiting forever for scheduler to finish 2017-04-25 14:20:00 +02:00
jsteemann 861291da16 honor exclusive locks 2017-04-25 12:56:56 +02:00
Simon Grätzer 7176d34169 Fixed incremental synced 2017-04-24 15:40:48 +02:00
Dan Larkin 841ef8b1a0 Changed index VPack building to include forPersistence flag. 2017-04-17 17:04:50 -04:00
jsteemann 5f72d80cc2 Merge branch 'devel' of https://github.com/arangodb/arangodb into engine-api 2017-04-07 14:56:41 +02:00
jsteemann f33d14f0d1 issue #2413: improve logging in case of lock timeout and deadlocks 2017-04-07 12:30:11 +02:00
Jan Christoph Uhde 5e63ba1e6f Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api
* 'engine-api' of https://github.com/arangodb/arangodb:
  fix objectId handling
  Fixing windows build
  Fixing windows build
  Bugfix: we want the common _and_ the server tests.
  Conversion warnings
  Conversion errors
  Renaming test files
  fix windows build
  fix if clause
  exclude longrunning tests
  add slash here too.
  ...
2017-04-06 11:20:32 +02:00
Jan Christoph Uhde cc39030042 move key options ot logical collection 2017-04-06 11:19:30 +02:00
jsteemann 0e98a32455 fix objectId handling 2017-04-06 11:19:27 +02:00
jsteemann 5880daf2a5 Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api 2017-04-05 13:40:25 +02:00
jsteemann 1c43920bfc preparations for revision() 2017-04-05 13:40:18 +02:00
Simon Grätzer 5822e77843 invokeOnAllElements 2017-04-05 13:38:43 +02:00
jsteemann 7fc2d97ae1 fix dropping of indexes 2017-04-04 16:41:05 +02:00
Jan Christoph Uhde c038815941 Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api
* 'engine-api' of https://github.com/arangodb/arangodb:
  transaction-specific count tracking
  initial implementation of count()
  Fixed memory leaks in traverser.
  Fix links in docs
  Fix links in docs
  pass trx into numberDocuments
  Fixed undefined behaviour in TraverserCache.
  improve error message in case wrong JSON is sent to the server
2017-03-31 15:06:21 +02:00
Jan Christoph Uhde 6a771c3caf fix result handling 2017-03-31 13:34:02 +02:00
jsteemann 81dcfbbe3d pass trx into numberDocuments 2017-03-31 11:33:16 +02:00
jsteemann d563eb432f Merge branch 'devel' of https://github.com/arangodb/arangodb into engine-api 2017-03-30 15:50:53 +02:00
jsteemann b0f6458e28 another fix for #2404 2017-03-30 15:07:55 +02:00
jsteemann f728fcdbb8 Merge branch 'devel' of https://github.com/arangodb/arangodb into engine-api 2017-03-29 02:41:00 +02:00
jsteemann e1aef394d8 delete useless DEV_TIMERS, fix rwlockcpp11 2017-03-28 22:38:27 +02:00
Jan Christoph Uhde b5e760b1d3 Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api
* 'engine-api' of https://github.com/arangodb/arangodb:
  move engine sources into their own cmake files
  Fixed exception because of hash index
  Fixed feature start order
  fix recovery test
  Edge index fixes
  remove alignas
  fix recovery test
  force recovery tests to fail when not compiled with failure-tests
  implement SLEEP() in C++
  remove useless and harmful adjustment (lowering) of file descriptors limit
  Windows: fix namespaces
  fix recovery tests
  slightly adjusted index creation
  Removed some alignas directives.
  alias boost to catch
  fix arangosh test
  start splitting testing.js into handy bits.
  start splitting testing.js into handy bits.
  start splitting testing.js into handy bits.
2017-03-28 12:01:24 +02:00
Jan Christoph Uhde 96897ebe08 ManagedDocumentResult now manages data when using setManaged 2017-03-28 11:54:04 +02:00
jsteemann 7bd6bd6e45 slightly adjusted index creation 2017-03-28 08:46:01 +02:00
jsteemann b03f823db0 added lookupKey 2017-03-27 12:00:36 +02:00
jsteemann 78d586e670 fix typo 2017-03-27 11:01:56 +02:00
jsteemann 2c54a6ac1e added some basic transaction handling 2017-03-24 17:23:32 +01:00
jsteemann f17ff29518 added stubs for indexes 2017-03-23 15:24:00 +01:00
jsteemann e270ddb262 fixed failing test 2017-03-22 14:46:10 +01:00
jsteemann d9d9eaac60 fixed two cluster tests 2017-03-22 14:03:27 +01:00
jsteemann 71bf18dd12 renaming 2017-03-22 13:01:40 +01:00
jsteemann b8e011eee5 move attributes into engine 2017-03-21 10:31:50 +01:00
jsteemann 29905e0e8b constify and lower default lock timeout for collections 2017-03-20 11:37:39 +01:00
jsteemann 2ea436b3e9 a bit more debug messages 2017-03-20 11:33:27 +01:00
jsteemann e3d8ae142e some fixes for view handling 2017-03-17 11:18:46 +01:00
jsteemann 1932fd1975 moved files 2017-03-16 16:45:02 +01:00
Max Neunhoeffer 428b6aa67f Port thread fixes from 3.1 to devel. 2017-03-16 13:53:40 +01:00
Michael Hackstein ce4e394305 Merge branch 'devel' of github.com:arangodb/arangodb into engine-api 2017-03-15 12:35:53 +01:00
jsteemann df3d33774e fix revision conflict handling 2017-03-15 12:33:16 +01:00
Michael Hackstein 1ebf562c4e Moved MMFiles out of vocbase.cpp 2017-03-14 10:29:17 +01:00
Michael Hackstein 83663c47b2 Deleted CollectionResult. It is identical to arangodb::Result introduced later. 2017-03-10 17:18:12 +02:00
jsteemann 31b050c5c7 Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api 2017-03-09 16:06:47 +01:00
Michael Hackstein 046793815c Merge branch 'engine-api' of github.com:arangodb/arangodb into engine-api 2017-03-09 16:37:51 +02:00
jsteemann e03497ec95 initialize members 2017-03-09 15:16:28 +01:00
Michael Hackstein d0244b3d60 Usage of arangodb::Result above int return value. Moved marker logging out of v8-collection 2017-03-09 12:17:20 +01:00
jsteemann 6b882ca8a2 class renaming 2017-03-08 17:54:00 +01:00
Michael Hackstein 4701a40867 Cleanup LogicalCollection.h 2017-03-08 13:26:20 +01:00
Michael Hackstein 580d2a4336 Moved indexes down into the physical collections 2017-03-08 11:03:45 +01:00
Michael Hackstein e6ab0afb50 Moved indexBuckets from Logical => MMFiles collection. 2017-03-07 14:07:32 +01:00
jsteemann c2a41cb5a2 remove references to MMFiles* 2017-03-06 17:04:23 +01:00
Michael Hackstein 42e14c59f4 A MMFiles collection now reads a path if created from a slice. 2017-03-06 16:06:23 +01:00
jsteemann 236bc67216 fix crashes 2017-02-28 17:59:28 +01:00
Michael Hackstein cac32a4d1d Merge branch 'engine-api' of github.com:arangodb/arangodb into engine-api 2017-02-28 14:59:13 +01:00
Michael Hackstein df4eadac75 Replaced several specialized toVelocyPack functions of LogicalCollection by toVelocyPackIgnore(). Fixed distributeLike bug that occured through this. 2017-02-28 14:54:32 +01:00
jsteemann 5e0fd0c8b2 Merge branch 'devel' of https://github.com/arangodb/arangodb into engine-api 2017-02-27 22:27:51 +01:00
jsteemann b872aa59fd simplified performance logging 2017-02-27 22:22:41 +01:00
jsteemann e37e94adbe Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api 2017-02-27 14:38:35 +01:00
jsteemann 666b2f8da9 renaming 2017-02-27 14:38:27 +01:00
Michael Hackstein ae14ae99a5 Merge branch 'engine-api' of github.com:arangodb/arangodb into engine-api 2017-02-27 13:01:12 +01:00
jsteemann 90f32ed525 renamed classes 2017-02-27 11:40:15 +01:00
jsteemann d0df1952e8 Merge branch 'devel' of https://github.com/arangodb/arangodb into engine-api 2017-02-24 17:51:59 +01:00
Michael Hackstein c8f03d16e3 updateProperties now returns an CollectionResult container with errorMessage and code. Moved error reporting logic for cluster-case into this function. 2017-02-24 17:00:41 +01:00
Michael Hackstein cc78b0131f v8-collection-properties now reuses propertiesVPack on logical collection (SingleServerCase) 2017-02-23 15:31:13 +01:00
Michael Hackstein de31c68539 Moved isVolatile into MMfiles collection. 2017-02-23 14:56:54 +01:00
Michael Hackstein daf7cc73e9 Added a propertiesVPack to PhysicalCollection / MMFiles collection for engine specific properties 2017-02-23 11:27:16 +01:00
Michael Hackstein 853394da79 Moved keyGenerator into physicalCollection. Only used when actually storing data. 2017-02-23 11:10:58 +01:00
Michael Hackstein df59411710 Merge branch 'engine-api' of github.com:arangodb/arangodb into engine-api 2017-02-22 14:43:10 +01:00
Jan Christoph Uhde 3a201b4362 add persistProperties() to PysicalCollection 2017-02-22 12:47:03 +01:00
Michael Hackstein a359424af0 Moved logic of write Marker out of the dropIndex API from Logical collection. Can be derived from the engine internally. 2017-02-22 12:32:54 +01:00
Jan Christoph Uhde 711a71ac4d add LogicalCollection::invokeOnAllElements()
and remove MMFilesPrimaryIndex.h from Transaction/Methods.cpp
2017-02-22 10:40:27 +01:00
Jan Christoph Uhde fcfe66e254 add getAll/AnyIterator to LogicalCollection 2017-02-22 09:24:38 +01:00
Michael Hackstein fbdbfdcb6d Moved primaryIndex knowledge out of Logical Collection. Also moved logic for close into MMFiles 2017-02-21 14:12:07 +01:00
jsteemann f5c8932744 initial version of query execution plan cache, still very rough 2017-02-21 11:58:38 +01:00
Jan Christoph Uhde cf970ed230 Squashed commit of the following:
commit 2644735fe06806ec8ffb78ceb2ede04037258952
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Feb 21 09:10:55 2017 +0100

    failed ammend

commit c2b8604df5a60fd00e57b4f088fe8a2624d9ac3b
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Feb 20 12:49:58 2017 +0100

    move - maxTick to Physical - RACE!
2017-02-21 09:19:49 +01:00
Jan Christoph Uhde 071137adf6 move doCompact into PhysicalColletion 2017-02-20 10:53:11 +01:00
Jan Christoph Uhde 40a1345f76 Merge branch 'engine-api' of github.com:arangodb/arangodb into obi-engine-api
* 'engine-api' of github.com:arangodb/arangodb:
  Moved logic for drop index into MMFilesCollection
2017-02-20 09:50:17 +01:00
Michael Hackstein 17effdc065 Moved logic for drop index into MMFilesCollection 2017-02-20 09:06:41 +01:00
Jan Christoph Uhde 21cb8e3217 Merge branch 'engine-api' of github.com:arangodb/arangodb into obi-engine-api
* 'engine-api' of github.com:arangodb/arangodb:
  Removed readRevision from LogicalCollection. You only get readDocument with a token. Moved it's logic into MMFilesCollection. removed the ignoreWal parameter from readDocumentConditional. It was always true anyways...
  Moved pre-commit document modifications out of logical-collection into the physical collection. They are only relevant when actually writing to disc.
  Moved useSecondaryIndexes check from Logical to MMFiles collection
  Some cleanup in Logical collection imports
  Moved index filling into the MMFiles collection
  changelog
  grunt build
  css
  ui: queries now using cursors api - issue #2065
  remove crosscompile hack - it doesn't work anymore
  updated CHANGELOG
  add changlog entry for stacktrace log messages
  clean up write lockers a bit
  fix too early closing of sockets
  Moved restoreIndex to Physical collection.
  Fix a shell script used during build.
  Lower log level to debug in shutdown message.
  fix spelling
  Moved saveIndex logic into the physical collection
  fix potential deadlock

Conflicts:
	arangod/MMFiles/MMFilesCollection.cpp
	arangod/MMFiles/MMFilesCollection.h
	arangod/VocBase/LogicalCollection.cpp
2017-02-18 19:10:45 +01:00
Jan Christoph Uhde 2d5e74f7f6 move journaize() to PhysicalCollection
MMFilesCollection ctor might be buggy
2017-02-17 20:06:47 +01:00
Michael Hackstein 91f303e963 Removed readRevision from LogicalCollection. You only get readDocument with a token. Moved it's logic into MMFilesCollection. removed the ignoreWal parameter from readDocumentConditional. It was always true anyways... 2017-02-17 17:29:49 +01:00
Michael Hackstein b84b05244f Moved pre-commit document modifications out of logical-collection into the physical collection. They are only relevant when actually writing to disc. 2017-02-17 16:07:02 +01:00
Michael Hackstein 5366f09ec8 Moved useSecondaryIndexes check from Logical to MMFiles collection 2017-02-17 13:33:00 +01:00
Michael Hackstein c543dd06a4 Moved index filling into the MMFiles collection 2017-02-17 12:56:54 +01:00
Michael Hackstein f0fbe78b2d Moved restoreIndex to Physical collection. 2017-02-16 15:01:00 +01:00
Michael Hackstein a3aae2e43b Moved saveIndex logic into the physical collection 2017-02-16 12:53:05 +01:00
jsteemann 089ff78d2d moved collection lock state into its own struct 2017-02-16 10:27:14 +01:00
Michael Hackstein 94fbfaa453 Moved the entire logic of open() to the Physical collection. It is different for each StorageEngine. 2017-02-15 16:26:55 +01:00
Michael Hackstein c3ff82f4e1 Moved version management to MMFiles collection. Logical does not need to know it. Removed PhysicalCollection inclode from logicical collection. Now we should rebuild less code whan changing sth in storage engine. 2017-02-15 15:48:33 +01:00
jsteemann 7ff2e19abb Merge branch 'devel' of https://github.com/arangodb/arangodb into engine-api 2017-02-15 12:46:06 +01:00
Michael Hackstein cc999641a5 Merge branch 'engine-api' of github.com:arangodb/arangodb into engine-api 2017-02-15 12:36:53 +01:00
Jan Christoph Uhde be89cac445 move path from logical to physical 2017-02-15 11:43:38 +01:00
Michael Hackstein d49cbffc46 Moved revision handling from Logical to MMFiles collection. That is only relevant for MMFiles. 2017-02-15 11:26:58 +01:00
jsteemann ffa5e2aa54 Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api 2017-02-15 10:26:11 +01:00
jsteemann df3a3eff9f refactoring 2017-02-15 10:26:05 +01:00
Michael Hackstein 9e41a7a6bb Merge branch 'engine-api' of github.com:arangodb/arangodb into engine-api 2017-02-15 10:09:55 +01:00
Michael Hackstein 089816a353 Moved Rollback Operation and InsertIntoIndexes from Logical to MMFilesCollection. This is marker/index specific code. 2017-02-15 10:09:51 +01:00
jsteemann 328ff8a09e Merge branch 'devel' of https://github.com/arangodb/arangodb into engine-api 2017-02-15 00:09:42 +01:00
Jan Christoph Uhde ce3b1ff9b5 Merge branch 'obi-storage' into devel
* obi-storage:
  move compation locking / figures out of logical collection

Conflicts:
	arangod/MMFiles/MMFilesCollection.h
	arangod/VocBase/LogicalCollection.h
2017-02-14 16:14:25 +01:00
Michael Hackstein 50368b9985 Moved CollectionRead/WriteLocker to MMFiles. Also moved cleanupIndexes to MMFilesCollection 2017-02-14 15:12:36 +01:00
Michael Hackstein dffd9fc807 Merge branch 'engine-api' of github.com:arangodb/arangodb into engine-api 2017-02-14 14:08:56 +01:00
Michael Hackstein d5e14a95f4 Moved truncate logic from Transaction::Methods to MMFilesCollection. It can do optimizations if close to the DB layer 2017-02-14 13:50:29 +01:00
jsteemann 0909ffe69b moved helper functions into their own file 2017-02-14 13:44:54 +01:00
jsteemann 8a2e353f3d move encoding functions into their own file 2017-02-14 12:57:15 +01:00
Michael Hackstein c6830fb999 Moved more internal logic from Logical to Physical collection 2017-02-14 12:38:09 +01:00
jsteemann 80be198a39 moved helper classes into their own file 2017-02-14 12:35:34 +01:00
Jan Christoph Uhde 071d147c5f move compation locking / figures out of logical collection 2017-02-14 12:34:46 +01:00
Michael Hackstein 6605a01410 Moved lookupDocument form LogicalCollection into MMFilesCollection. It is SE specific. 2017-02-14 11:37:45 +01:00
Michael Hackstein c8757efc8e Moved engine specific logic of Document Remove from Logical To Physical Collection 2017-02-14 10:20:32 +01:00
Michael Hackstein 2824c349bb Moved EngineSpecific logic of update() from LogicalCollection to MMFilesCollection. 2017-02-13 17:45:33 +01:00
Michael Hackstein c42b358987 Merge branch 'engine-api' of github.com:arangodb/arangodb into engine-api 2017-02-13 16:27:41 +01:00
Michael Hackstein 91a0d30122 Moved the engine specific parts of remove from LogicalCollection to Physical Collection. 2017-02-13 16:17:26 +01:00
jsteemann 1ce4d4a97e Merge branch 'devel' of https://github.com/arangodb/arangodb into engine-api 2017-02-13 15:29:59 +01:00
jsteemann 92f61416ca Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api 2017-02-13 15:25:17 +01:00
jsteemann 7e690a0c61 renaming 2017-02-13 15:18:40 +01:00
Michael Hackstein e0bdc5c122 Merge branch 'engine-api' of github.com:arangodb/arangodb into engine-api 2017-02-13 14:58:54 +01:00
Michael Hackstein 0c30c290c6 Moved parts of LogicalCollection->insert() into the PhysicalCollectioN 2017-02-13 14:38:22 +01:00
jsteemann eb73dbf960 renaming 2017-02-13 13:30:57 +01:00
jsteemann f09ec85127 renaming 2017-02-13 12:27:26 +01:00
Jan Christoph Uhde 163b3d45bf remove fullyCollected and friends from LogicalCollection 2017-02-13 11:47:22 +01:00
jsteemann d024a6d00a remove logging for non-topics 2017-02-10 09:32:50 +01:00
Michael Hackstein 00448bfc26 Transaction::invokeOnAllElements now works with a callback taken DocumentIdentifierTokens instead of IndexElements. 2017-01-25 15:03:08 +01:00
jsteemann e3bcb90916 remove revisions cache 2017-01-24 10:48:07 +01:00
jsteemann c4d2ff3dce renaming 2017-01-23 15:36:11 +01:00
jsteemann 7fedb4e956 moved files into engine directory 2017-01-23 13:52:57 +01:00