Skip to content

Document all 'bug compatibility' features in impl/memory #46

Description

@riannucci

@danjacques

There's a lot of weird undocumented stuff in impl/memory which was added after discovering that behavior in production. It would be great to be able to pull each weird thing out into a tiny 'documentation app' which uses the stock go SDK to form a minimal test case which can be uploaded to an appspot instance to demonstrate the bug/limitation. This would also help us remove these weird things when they eventually get fixed (since the goal of impl/memory is to provide an as-accurate-as-possible replication of the production behavior as possible).

Some examples of this include:

  • limits on # entities modified in a transaction
  • discrepancy between unset namespace and "" namespace in some APIs (like datastore_v3.RunQuery)
  • oddball combinations of Query parameters which don't work/behave in surprising ways
  • limits on # simultaneously modifiable entities in e.g. PutMulti
  • maximum RPC size limits
  • etc.

Note that impl/memory currently doesn't implement some of these, as it doesn't actually implement the RPC middleman. If we fix #23, some of these will become more pertinent.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions