- removed support for multiple database backends, 100% focus on Bigtable
- ported codebase to TypeScript
- new logo
- new docs
- bumped
@google-cloud/bigtable
to0.15.0
with some breaking changes - remove
edgeLifetime
and usingmaxAgeSeconds
for cell ttl inconfig.database
object config
- fixed bug in redis client initialisation, now starting and dropping a new client with every yildiz instance (life cycle)
- new fastify and google bigtable client
- added new cache jobs
- added new ttl cell deletion jobs
- adapted documentation (not yet fully done though)
- updated dependencies (especially "@google-cloud/bigtable": "~0.12.1")
- (fastify, prom-client coming soon)
- rewrote table schema to a single node table
- added toobusy to prevent http server meltdown
- adjusted cache times (decreased)
- more checks and data cleansing for upsert relation
- improved performance of upsert relation by improving edge id appending
- upgraded fastify, found listening bug for docker cases (bind interface..)
- refactoring edge id logic, for faster lookups
- in non depth mode, relation must be unique now and are always used as integers (hash representation)
- switched to major as of bigtable support (docu still to go)
- improved lookup performance for edges in upsert relation
- increased default cache time for edges and nodes
- rolled back and forth for fastify
- removed "id" field from schemas of incoming params, because of new ajv warnings
- added HEAD, OPTIONS and 404 to http test
- now accepting HEAD requests properly
- fixed 404 non returning in error handler
- refactored and optimized bigtable backend implementation
- refactored project struture to allow different backends
- added google bigtable as backend
- improved logs
- added metrics for procedure and depth walker execution
- added retry for upsert relation procedure on deadlock
- added additional error handling (different treatment) for constraints and deadlocks for upsert relation
- fixed bug in depth walker for postgres
- added metrics for deadlock and constraint errors on upsert relation
- Fix bug on
upsert
procedure sql ondepthBeforeCreation
is false
- added parallel Postgres mode
- yildiz now supports MySQL and Postgres as backends
- moved mysql2 and pg modules to optionalDependencies
- adjusted code to support second db backend
- added second version of procedures to support additional postgres backend
- adjusted new depth increase logic to work with postgres backend
- adjusted docs
- adjusted pjson scripts to work with mysql and postgres
- added new docker-compose for postgres
- depth increases / decreases are now handled by a job on the edge table called DepthWalker
- depth increases are therefore a lot faster, as they the actual update statements only run in batched collections every few minutes
- depth operations are stored in their own table
- procedures have been altered accordingly
- a new procedure DepthTransfer has been added to deal with depth increases from within the job
- NodeHandler has been altered to deal with new increase solution
- yildiz now spawns jobs in a different row
- procedure loader now enables configs for procedures and generic initialisation
- changing from auto increment to self generated ids based on uuid.v4 hashes
- refactored strToInt
- added /lib/utils
- removed depth increase update due to deadlock from procedure
- fixed bug in get translation endpoint, missing await
- fixed version replacement in procedure
- BREAKING renamed upsert-singular-relation-transaction to upsert-singular-relation-no-transaction
- BREAKING stored procedures now use the package version as part of their name
- added SET TRANSACTION ISOLATION LEVEL READ COMMITTED; to upsert relation procedure
- fixed edge relation in upsert relation procedure from VARCHAR to BIGINT
- added additional procedure and endpoint to run relation upsert without transaction per default
- and via "/access/upsert-singular-relation-transaction" with transaction wrapped procedure
- sequelize constraint errors on node or translation creation now return a proper 409 error code
- not found errors are caught on logged without stack trace in error handler now
- fixed logging of successfull creation with better timing
- added new http endpoint "/access/upsert-singular-relation"
- added new procedure handling, based on ProcedureLoader
- added new GraphAccess function "upsertSingleEdgeRelationBetweenNodes"
- added upsert relation procedure
- added integration test for upsert-singular-relation
- fixed bug in access-log
- fixed bug where gauge required label during initialisation
- removed log4bro package
- writing custom access logs now
- added full json log modus to binary by overwriting debug module output
- fixed bug in avg response time stats
- added gauge metric for avg response time stats
- env vars for access management
- added access management
- added security integration test
- added custom error handler to log events correctly
- added http response error stat and metric
- added average response time stats
- switched env vars in bin to "YILDIZDB_" prefix
- removed metrics block if factory stats werent present
- breaking changed schema of stats, factory related object is now a subobject of stats {factory, http}
- added stats for ttl jobs and http server
- metrics now ready
- switched dependencies from ^ to ~
- kickoff changelog