* not-commit: optimize-query-vertex-out-out-with-in-and
* fix cassandra IN query
* fix batch query missing limit and page info
* add feature supportsQueryWithInCondition()
* improve TableSerializer.writeQueryEdgeCondition()
* impprove flatten IN
* rename BatchQuery to BatchConditionQuery
* fix query from RamTable not flatten
* use BatchMapperIterator to fetch intermediate results(by batch avoid OOM)
* rename to HugeVertexStepByBatch and just enable when needed
* set batch list capacity
* set QUERY_BATCH = 100 for scylladb limit
Change-Id: I1b3c2e942cbfdc9f51cfc43a3ff5aa61b62e22d0
* refact(auth): cache login role in auth client to avoid sending rpc repeatedly
* fix: don't create Id every time
* perf: remove useless toLowerCase
* add config for expire time in auth client
* fix StandardAuthManager.inputPassword in auth client
* add option for auth max_capacity
* unified cache_capacity & expired time (also separate invalid cache for pwd)
* add option for token expiration
Co-authored-by: guoshoujing <guoshoujing@baidu.com>
Also enhance:
- add time strategy to avoid old logs overwriting by current logs
- auto create log folder if it does not exist
- add some comment for auth config
* use strict mode for config property & separate rest configs
* reduce log format length
* Update rest-server.properties
* update all configs (TODO: push to other modules)
* add compact api for rocksdb/cassandra/hbase backend
* increase and standardize some metrics
* increase metrics for cassandra/hbase and unify display format
* fix codecov missing some files coverage by jacococli
* add ScyllaDBMetrics
* make cassandra compact in the scope of keyspace
Change-Id: I26660b28b64089f3b636020e721659db3466267b
* add Eclipse Collection dependency
* use primitive map for properties of HugeElement
* from Map<Id, HugeProperty<?>> to MutableIntObjectMap<HugeProperty<?>>
* allow config oltp collections(JCF or EC)
* add fastutil choice for collection
* change Set<HugeEdge> of HugeVertex to List<HugeEdge>
* use IntObjectMap and IntIntMap to improve shortest path
* improve paths api by remove redundant sourcesAll and targetsAll
* improve paths api performance by using IntObjectHashMap<IntHashSet>
* extract shortestpath and paths record to hold traversed paths
* implement Int2IntsMap for array paths record
* extract Record and Records for paths and shortest path
* adapt primitive collection for kout/kneighbor
* add objectintmapping unit test
* add UT for CollectionFactory and IdSet
Change-Id: I501a18a70054fad3c40bd6b9e852a82a5c185949
* refact: use batch flush & async way to output log
More details refer to [doc](xx), here are some points:
1. change log4j2 appender to `RandomAccessFile` to improve perf (default is BufferedOutputStream)
2. change log4j2 to not flush immediately (default is true)
3. use bigger (512K) buffer size (default is 4k)
4. use (LMAX Disruptor) async way to improve log perf (default is sync)
5. separate audit log & server log to keep sever log clean & readable
6. use simple layout format for audit log
7. use `StringBuilder` to reduce about `9%` cost for audit log
8. record mysql connection url info for user issue
* format align & remove mysql log(todo: replace other log4j2.xml later)
* support: invalid cache through rpc
* add RpcServiceConfig* interfaces
* add FanoutCluster to broadcast reuqest
* fix GraphManager.close() is not called by HttpServer.DESTROY_FINISHED
* notify cache with Id[] arg to avoid too many events
* improve perf of raft notify-cache
* only enable cache-rpc service for shared storage
* check raft mode can only be enabled if non-shared store
Change-Id: I3fe18cd8c893a84a56fb66df651b78c5e0fe5f4b
* Initially implement distributed consistency with jraft
* support save and load snapshot
* Let StoreCommand register and apply at StateMachine
* merge tx operation into one store command
* compress task data
* let follower can forward request to leader
* handle remote exception, let it report backend busy
* Check connection failed for address: xxx, maybe write overflow!
* add rate limit at StateMachine
* Let grizzly-http thread wait raft task applied
Change-Id: I5bdec682ec35daead67cbcf92477b0d761d31610
* fix permission overflow from return results
also:
* hide private methods and fields for reflection that require permissions
* delete stale index of task directly
add HugeGraph.java and TaskScheduler.java: separate commits to avoid no git diff
implement: #209
Change-Id: Iccfbd47c213e1e13122190d1242778031e8a957c
* Increase task result limit
* Let task input and result property datatype as blob
* Support config task input and result size limit
Change-Id: Ib2c4bdf25e4604d8bea47802e724c0f0934170fb
fix: #861
* workaround: cassandra column with null value can't be queryed with CONTAINS
* string2HugeKey() disallow pass syspprop from gremlin
Change-Id: I319703286f65fd38819b2de91d7c9a18203ceafd