summaryrefslogtreecommitdiff
path: root/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* proxy: add mcp.internal(r) APIdormando2023-02-251-0/+1
| | | | | | | | local res = mcp.internal(r) - takes a request object and executes it against the proxy's internal cache instance. Experimental as of this commit. Needs more test coverage and benchmarking.
* MacOS drop privileges supportDavid CARLIER2022-08-251-0/+4
|
* DTrace build fix on MacDavid Carlier2022-08-251-2/+8
| | | | | | The header generated comes with $ IDs thus breaking the build. The probes are set with const address arguments already which just add the qualifier again.
* proxy: fix missing md5.h from tarball distdormando2022-08-251-1/+1
|
* proxy: add ring_hash builtindormando2022-02-241-1/+2
| | | | | | | | | | | | | this is ketama-based, with options for minor compat changes with major libraries. does _not_ support weights. The weights bits in the original ketama broke the algorithm, as changing the number of points would shift unrelated servers when the list changes. this also changes backends to take a "name" specifically, instead of an "ip address". Though note if supplying a hostname instead of an IP there might be inline DNS lookups on reconnects.
* proxy: pull chunks into individual c filesdormando2022-02-181-1/+6
| | | | | | | | | now's a good time to at least shove functional subsections of code into their own files. Some further work to clearly separate the API's will help but looks not too terrible. Big bonus is getting the backend handling code away from the frontend handling code, which should make it easier to follow.
* proxy: initial commit.dormando2021-10-051-0/+19
| | | | | | | | | | | | | | | See BUILD for compilation details. See t/startfile.lua for configuration examples. (see also https://github.com/memcached/memcached-proxylibs for extensions, config libraries, more examples) NOTE: io_uring mode is _not stable_, will crash. As of this commit it is not recommended to run the proxy in production. If you are interested please let us know, as we are actively stabilizing for production use.
* add queue.h in archive1.6.12Remi Collet2021-09-281-0/+1
|
* hash: add XXH3 to list of hash algorithms.dormando2021-06-091-1/+1
| | | | | | | | | | | | needs more testing. in a "pure miss" test to help show hashing overhead, with four worker threads and large ascii multigets there is a measurable performance boost for longer keys. Very short keys (10-15 bytes) are about even. for 150ish byte keys 12m rps -> 13m rps roughly. Not too bad! need to test hash table distribution for large sets of keys before merging. need to consider if worth switching the defaults now or later.
* meta: allow base64'ed binary keys with 'b' flagdormando2021-06-071-0/+1
| | | | | ie: ms [key] b if 'k' flag is given and key is binary, returns as binary encoded.
* arm64: Re-add arm crc32c hw accelerationAli Saidi2020-10-271-1/+1
| | | | | | Use the .arch_extension directive so that a config options and special cflags aren't required. Add a few tests for both the software and hardware implementations
* main: split binary protocol into proto_bin.cdormando2020-07-021-1/+2
| | | | also some missed text bits.
* main: split text protocol into proto_text.cdormando2020-07-021-1/+2
| | | | export a lot of the connection handling code from memcached.c
* fixing the basic tls test so it exits correctly when failsTharanga Gamaethige2020-07-011-2/+2
|
* testapp: Fix failure with -flto=autoKanak Kshetri2020-04-091-1/+1
|
* add separate limits for connection buffersdormando2020-02-261-7/+2
| | | | | | | | | | | allows specifying a megabyte limit for either response objects or read buffers. this is split among all of the worker threads. useful if connection limit is extremely high and you want to aggressively close connections if something happens and all connections become active at the same time. missing runtime tuning.
* stats: Rename stats.c to stats_prefix.cKanak Kshetri2020-01-131-2/+2
|
* stats: Move unit tests to testapp.cKanak Kshetri2020-01-131-1/+1
| | | | | | | | * Remove bespoke testing system in favor of testapp.c * Change stats_prefix_init function to take prefix delimiter. Otherwise, we would have to include memcached.h in testapp.c to get the settings struct, which in turn would cause a conflicting definition of the conn struct.
* Support running tests in out-of-tree buildOla Jeppsson2019-10-171-3/+3
|
* restartable cachedormando2019-09-171-1/+2
| | | | | | | | | | | | | | | "-e /path/to/tmpfsmnt/file" SIGUSR1 for graceful stop restart requires the same memory limit, slab sizes, and some other infrequently changed details. Most other options and features can change between restarts. Binary can be upgraded between restarts. Restart does some fixup work on start for every item in cache. Can take over a minute with more than a few hundred million items in cache. Keep in mind when a cache is down it may be missing invalidations, updates, and so on.
* -Y [filename] for ascii authentication modedormando2019-05-201-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Loads "username:password\n" tokens (up to 8) out of a supplied authfile. If enabled, disables binary protocol (though may be able to enable both if sasl is also used?). authentication is done via the "set" command. A separate handler is used to avoid some hot path conditionals and narrow the code executed in an unauthenticated state. ie: set foo 0 0 7\r\n foo bar\r\n returns "STORED" on success. Else returns CLIENT_ERROR with some information. Any key is accepted: if using a client that doesn't try to authenticate when connecting to a pool of servers, the authentication set can be tried with the same key as one that failed to coerce the client to routing to the correct server. Else an "auth" or similar key would always go to the same server.
* Adding FreeBSD capabilities support.David Carlier2019-04-261-0/+4
|
* Basic implementation of TLS for memcached.1.5.13Tharanga Gamaethige2019-04-151-0/+24
| | | | | | | | | | | | | Most of the work done by Tharanga. Some commits squashed in by dormando. Also reviewed by dormando. Tested, working, but experimental implementation of TLS for memcached. Enable with ./configure --enable-tls Requires OpenSSL 1.1.0 or better. See `memcached -h` output for usage.
* build fixes1.5.4dormando2017-12-201-2/+2
|
* extstore: C version of automove algorithmdormando2017-12-071-1/+2
| | | | | | | | couple TODO items left for a new issue I thought of. Also hardcoded memory buffer size which should be fixed. also need to change the "free and re-init" logic to use a boolean in case any related option changes.
* extstore: configure and start time gatingdormando2017-11-281-2/+5
| | | | | ./configure --enable-extstore to compile the feature in specify -o ext_path=/whatever to start.
* external storage base commitdormando2017-11-281-1/+4
| | | | | been squashing reorganizing, and pulling code off to go upstream ahead of merging the whole branch.
* Rework pledge support after seccomp support has been addedGiovanni Bechis2017-11-041-0/+4
|
* Move -lseccomp to LDADDStanisław Pitucha2017-08-231-1/+5
| | | | | Order in the compilation matters. Some compilers will fail with -lseccomp before the objects.
* Add drop_privileges() for LinuxStanisław Pitucha2017-08-231-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement an aggressive version of drop_privileges(). Additionally add similar initialization function for threads drop_worker_privileges(). This version is similar to Solaris one and prohibits memcached from making any not approved syscalls. Current list narrows down the allowed calls to socket sends/recvs, accept, epoll handling, futex (and dependencies - mmap), getrusage (for stats), and signal / exit handling. Any incorrect behaviour will result in EACCES returned. This should be restricted further to KILL in the future (after more testing). The feature is only tested for i386 and x86_64. It depends on bpf filters and seccomp enabled in the kernel. It also requires libsecomp for abstraction to seccomp filters. All are available since Linux 3.5. Seccomp filtering can be enabled at compile time with --enable-seccomp. In case of local customisations which require more rights, memcached allows disabling drop_privileges() with "-o no_drop_privileges" at startup. Tests have to run with "-o relaxed_privileges", since they require disk access after the tests complete. This adds a few allowed syscalls, but does not disable the protection system completely.
* PARALLEL=9 make test -> runs prove in paralleldormando2017-07-261-1/+5
| | | | | | | | would prefer to pass/reuse make's -j down to prove, but don't want to spend the time on it. makes tests run in ~30s instead of several minutes. can use a fair amount of RAM so be wary with automated builders.
* add a real slab automover algorithmdormando2017-06-231-1/+2
| | | | converts the python script to C, more or less.
* import itoa_ljust.c for fast number printingdormando2017-01-071-1/+2
| | | | converted from C++. for best speed, needs to be built with O3
* pull LRU crawler out into its own file.dormando2016-08-191-1/+2
| | | | | | | ~600 lines gone from items.c makes it a lot more manageable. this change is almost purely moving code around and renaming functions. very little logic has changed.
* initial logger code.dormando2016-06-161-2/+4
| | | | | | | | | | | | | | Logs are written to per-thread buffers. A new background thread aggregates the logs, further processes them, then writes them to any "watchers". Logs can have the time added to them, and all have a GID so they can be put back into strict order. This is an early preview. Code needs refactoring and a more complete set of options. All watchers are also stuck viewing the global feed of logs, even if they asked for different data. As of this commit there's no way to toggle the "stderr" watcher.
* Make hash table algorithm selectabledormando2014-04-161-0/+2
| | | | | jenkins hash is old. Lets try murmur3 to start! Default is the old one, so people aren't surprised.
* Fix make maintainer-cleanBrian Aker2012-12-031-0/+13
|
* README.md was missing from dist tarballdormando2012-09-031-1/+1
|
* Add sasl_defs.h to the sources to include it in make distTrond Norbye2009-10-251-1/+1
|
* SASL auth support.Dustin Sallings2009-10-251-0/+4
|
* Remove TODO from dist targetTrond Norbye2009-09-171-4/+4
|
* Put a time limit on memcached processes started from within tests.Dustin Sallings2009-08-141-1/+3
| | | | | This solves the problem where certain test failures would cause indefinite hangs as child processes refused to ever exit.
* Added docs target for generating doxygen.Dustin Sallings2009-04-171-0/+3
|
* Create a generic cache for objects of same sizeTrond Norbye2009-04-171-6/+11
| | | | The suffix pool could be thread-local and use the generic cache
* Use git's version number for releases.Dustin Sallings2009-03-261-1/+1
| | | | | | | | | | | | | | | | This will allow more specific version numbers, while simplifying a proper release down to a tag and make dist. During development, ./version.sh needs to run periodically to update the version number. I'd recommend just adding a call to version.sh as a git post commit hook: % cat .git/hooks/post-commit echo "Updating version." ./version.sh (and make sure the file is executable)
* Do not install memcached-debug sizes internal_testsTrond Norbye2009-03-231-1/+2
| | | | see http://code.google.com/p/memcached/issues/detail?id=37
* start of the incr fix, rearranges a bunch, adds util, tests, etcBrad Fitzpatrick2009-03-191-2/+6
|
* Created a tool to show us the sizes of various data structures.Dustin Sallings2009-03-101-2/+3
|
* Modified the dtrace build supportTrond Norbye2009-03-041-5/+21
|
* Dist-hook should remove *~ files instead of .svn files (we don't use ↵Trond Norbye2009-03-041-4/+1
| | | | subversion anymore). Added generated files to .gitignore