Announcing the Memgraph 1.5 Release
Introduction
Once you get the ball rollin', it ain't easy to stop, and stop we did not! Here at Memgraph, we've been busy for the past couple of months, and, boy, do we have something to show for! Memgraph has been lifting heavy weights and is ready to hit the beach. You might say it's in beast mode.
First off, we're incredibly happy to introduce the all-new database triggers feature! Now you can set up arbitrary actions to be done when a node or edge gets either created, deleted, or updated! We're pretty sure it'll satisfy even the most hardcore DB control freaks out there. Set up your triggers and soup up your graph beyond your wildest dreams.
Replication, the killer feature we introduced in the 1.3 Enterprise version, is now available in the Community version as well, starting with version 1.4. Yes, you read that right! Replication for everyone! Cluster away, folks!
Though we focus on giving our users new powers with our features, what's power without control, eh? Starting with version 1.4, you can inspect, limit and free the memory used by Memgraph in several ways. Grab the memory by the reins and be the master of your own bytes!
In addition, for foreign module power users out there, we enabled support for using multiple module directories, giving you more abstraction and structure.
Wanna run your Cypher queries from a nifty little REPL on Windows or macOS, but don't want to bother with virtual machines or Docker? Download or even build your mgconsole command line interface in no time, and go nuts on your Memgraph! Also, the Linux Memgraph version now ships with mgconsole instead of mg_client.
And if that's still not enough for you, we also added support for loading CSV files and using their contents in queries through the LOAD CSV
clause.
If you're not concerned with getting that perfect bronze summer tan and don't mind spending a couple of hours in a dark room with a supercharged new Memgraph version, read on for the gimmicks that await you!
Oh, wait... We have a very special message from our attorney team. You're not gonna read this, are you? Let us save you the trouble - starting from version 1.4, you can freely use Memgraph Community in production!
Now, for real this time, read on!
Trigger-happy
If you're something of a control freak, you're in for a treat. What if we were to tell that we have a feature that lets you build your own custom "debugger" on top of your Cypher program, gather statistics on any kind of edge and node that gets created, or prevent a certain kind of node from being created in the first place? Probably that we went bonkers, and you'd be kind of right. But not as bonkers as you'll be able to go on your queries when you get your hands on the database trigger feature!
Now you can set up a mechanism that runs your custom queries when a database event happens. There's a weird node type that you're getting from your data stream, and it's messing up your results? No problem - set up a trigger that deletes or fixes it when it gets created! Want to limit the maximum allowed number of edges of a given type that get created? No problem, just pull the trigger and sit back! Okay, maybe you just want to print out the names of all deleted nodes? No worries, we got you covered.
If you're ready to fire on all cylinders with Memgraph, head on over here to check out the reference guide!
Replication For All
For those of you just waking up from winter hibernation, Memgraph's been supporting replication since v1.3, which we've covered extensively. Long story short, replication gives you the ability to seamlessly sync the data between your Memgraph instances, giving you high availability in the process. We've decided to push this feature to the Community version as well, as part of our "power to the people" agenda.
Now everyone can enjoy the safety, data integrity, and better distributed workload that multiple synced instances provide. High availability is something that every modern database should provide, and now all of our users can leverage it, without any restrictions.
Why should Enterprise users have all the fun? Head on over here to get you replicating in no time!
Who Controls the Memory, Controls the Future
At some point, your graph will turn from a fuzzy little agreeable creature to an unyielding mammoth, grinding your machine to a halt. There's nothing you can do but break your piggy bank and get some more RAM, right? Wrong! Starting with this version, you can:
- limit the total amount of memory Memgraph can use with the
--memory-limit
command line flag; by default, 90 % of your RAM is used if you don't have swapping enabled, 100 % if you do, but now you can tweak this at your whim - limit the amount of memory a query can use with the
QUERY MEMORY LIMIT
clause - inspect the currently used memory with the
SHOW STORAGE INFO
query - then, if your graph's been going rogue on you, you can try to free up some unused memory using the
FREE MEMORY
query
Who's the boss now? You are, of course!
More Module Directories
So far, you were restricted to putting your foreign modules in a single directory. Annoying, right? You're not one of those people who put all their pics in a single folder, for Pete's sake! We're sorry for the inconvenience, but we made up for it starting with version 1.4. Now you can freely distribute your modules over as many directories as you want. Abstraction and modularity are the cornerstones of good engineering, so engineer away!
Load CSV Files On the Fly
CSV. Love it or hate it, it's the standard format for storing graph data, and it's not going away any time soon. But why would you have to suffer because of it more than you have to?
Up to now, the only way you could import CSV data to Memgraph was through the mg_import_csv
tool we provided with the Memgraph binary. The drawback was that you could use it only when the database was offline. So, if you were in the middle of querying your graph, and remembered that you need some extra data from a file you have stowed away somewhere, you had to save your database, kill it, fire up mg_import_csv
and then reboot the database once the import's done.
Now those dark ages are gone, and we give you the LOAD CSV
clause! You can programmatically load data from a CSV and use it however you like, as part of your query. Read on here for more info on how to use the all-new LOAD CSV
clause.
If It's Any Consolation...
As if all the above thingamajigs themselves weren't enough, we've decided to make your Cypher hacking easier by packing mgconsole with Memgraph instead of the mg_client command line interface. "And I care why exactly?", you may ask. Well, for starters, the way it's built allows us to add more fancy features in the future, so be prepared for a torrent of new bells and whistles sometime soon.
In addition, from now on mgconsole is available on Windows and macOS as well. Yup, Bill and Steve fans, no more virtual machines and docker gymnastics! Run your queries from a native Memgraph REPL. Just fire up that Powershell or MacOS terminal and get goin'!
What's Next?
As always, this one's easy - try it out! You can download the 1.5 version.
If you catch any bugs or generally weird behavior, please drop us a line on our Discord server.
Happy hacking!