Граф коммитов

278 Коммитов

Автор SHA1 Сообщение Дата
sougou 7933b66e43 2pc: end-to-end (#2335)
A new SingleDb flag has been added to Begin, which would survive
through the Session. If set, any transaction that exceeds a single
shard will be failed.

VTGate acquires a command line flag: transaction_mode, which can be
single, multi or 2pc. In single mode, it will fail Begins that request
multi-shard. In multi mode, it will fail commits that request 2pc.
In 2pc mode, everything will be allowed.

The per-request flags specify what the app wants, and the vtgate flags
specify what it allows.

* 2pc: Go and python clients

For Go, the transaction mode settings are supported through
the context. This means that it will only work with go1.8.

For Python, it's a cursor constructor parameter.

* 2pc: end-to-end test
2016-12-05 16:28:44 -08:00
Sugu Sougoumarane 47a13b702d mysql: Support new types GEOMETRY & JSON 2016-11-22 16:09:46 -08:00
Sugu Sougoumarane ed1f2c53d8 2pc: export ResolveTransaction in grpc 2016-11-14 08:54:49 -08:00
Sugu Sougoumarane ba41641552 2pc: ResolveTransaction->ConcludeTransaction
The 'Resolve' name was misleading. It was implying that
some kind of resolution work was being performed. Conclude
is a more accurate description of this action.
2016-11-13 23:49:04 -08:00
Sugu Sougoumarane d92169cc27 2pc: export 2pc in grpc 2016-11-13 23:48:53 -08:00
Erez Louidor 3ca6beeabe Adding back the 'use_split_query_v2' field temporarily so
that clients can still use it until the new server code is released.
2016-11-11 13:58:49 -08:00
Erez Louidor 75c2397155 Removing SplitQuery plumbing and renaming SplitQueryV2 to SplitQuery 2016-11-04 15:09:55 -07:00
sougou 92c1dca28f 2pc (#2153)
2pc: export grpc functions

* govet issue: call cancel funcs from contexts.
* Export 2PC functions as gRPC methods
2016-10-18 09:50:14 -07:00
Pavel Ivanov 0135d7650a Rename WORKER tablet type into DRAINED
This will make the type look more generic, so that it could be used for other
purposes as well, not only for a worker during resharding. In particular I plan
to use the same tablet type for schema swap reserving a seed vttablet to execute
the schema change.
I also add a "drain_reason" tag that will be set by anyone setting the DRAINED
tablet type, so that it's easy to understand why it is drained.
2016-10-14 15:09:50 -07:00
sougou 370444e5e9 2pc: MM functionality (#2132)
* New proto var TransactionMetadata.
* Use 0 value to signify no timeout.
* Core MM functionality. A few more will be added later.
2016-10-10 13:09:07 -07:00
Alain Jobart 2ee2738bda Adding workflow library.
To manage long running workflows within Vitess.
It contains a sample Sleep workflow.
Wiring up the UI using WebSockets.
Also adding vtctl commands.
2016-10-04 14:09:31 -07:00
Pavel Ivanov db9e4c5643 Add support for Vitess 'allprivs' user.
This adds support for an 'allprivs' user which is supposed to have more
privileges than 'app' user, but unlike 'dba' user 'allprivs' won't have SUPER
privilege. New method ExecuteFetchAsAllPrivs() is added to TabletManager
service to be able to execute queries as this new 'allprivs' user.

'allprivs' user will be used for administrative tasks done by Vitess, such as
changes in metadata tables that schema swap process will be doing. 'allprivs'
user shouldn't have SUPER privilege so that schema swap could safely change
replicated metadata on the master without risk to commit the changes when
master has been already demoted to be a slave.
2016-09-26 17:47:12 -07:00
Alain Jobart f840e69b36 Adding ResultExtras to Result for Invalidation.
ResultExtras is part of Query Result. It contains:
- an optional EventToken (returned if ExecuteOptions.include_event_token
  is set)
- an optional 'fresher' flag (set if ExecuteOptions.compare_event_token
  is set, and that token is older than the current TabletServer event
  token.)

The flags are set by TabletServer, and merged by VtGate.ScatterConn.
2016-09-16 15:53:37 -07:00
Alain Jobart b3808aa8c0 Merge branch 'master' into queryoptions 2016-09-15 11:49:56 -07:00
Alain Jobart 7b74d101df Adding ExecuteOptions to queries.
They are added to both to queryservice and vtgateservice.
Right now, they only contain the exclude_field_names option.

exclude_field_names is used by vttablet to strip the name from the
fields record. Note the clients don't use that yet, I want the ability
to do it first, then I'll add support for it in the clients.

Allowing ExecuteOptions in vtctl commands. That's how they're tested
now.

Side-changes:
- Removing wantFields from dbclient interface. We never want them.
- Small optimization on query fields for sequences.
2016-09-15 09:48:30 -07:00
Michael Berlin bbc5fe5a04 throttler: Add new configuration option "ignore_n_slowest_rdonlys".
The new setting is similar, but independent to the existing option "ignore_n_slowest_rdonlys".

For example, if both are set to 1, you can have one 1 slow REPLICA and 1 slow RDONLY tablet.
2016-09-14 22:58:08 -07:00
Michael Berlin 6196cdda97 Merge pull request #2046 from michael-berlin/throttler_more_fields
throttler: Split the throttler configuration into more fine-grained fields.
2016-09-13 13:15:41 -07:00
Alain Jobart cb78058965 Adding vttablet background binlog watcher.
It is enabled with the -watch_replication_stream command line
argument. It does two things:
- remember the last applied Event Token (and exposes it in vars).
- if the event is a DDL, it forces a schema reload.

Also ignoring local binlog connections in FindSlaves, as they have no
impact on reparenting.
2016-09-13 10:00:50 -07:00
Michael Berlin 7e53114818 throttler: Split the throttler configuration into more fine-grained fields.
min_duration_between_changes_sec was split into separate "increases" and "decreases" fields.

This is required because an insert test needs to wait longer than a decrease test.

Additionally, there is a new field "spread_backlog_across_sec". Before this change, the value of "min_duration_between_changes_sec" was used for this.
2016-09-12 21:11:10 -07:00
Alain Jobart b48a84ca64 Adding UpdateStream API to vtgate.
The vtgate API takes a starting timestamp, or a starting EventToken. It
will only use the starting EventToken if it's relevant. This is mostly
for tests, but could be used by real clients too to avoid the timestamp
search on the servers.

The only restriction in the vtgate routing implementation is that a
query can only end up on one shard. The stream aggregation code inside
vtgate will be added later.

This change includes:
- proto changes.
- implementing the server side interface.
- implementing the client side interface.
- adding a vtctl VtTabletUpdateStream command to stream from a given
  tablet. This is used in end-to-end tests.
- using the python vtgate_client update_stream API in all end-to-end
  tests.
- removing the python vttablet direct stream_update API.
- vtgate now better preserves remote errors through its API now, as
  withSuffix and withPrefix will preserve the error codes of all
  VtError, not just *VitessError.
- Also adding callerid vtgateclienttest tests for all API calls.
2016-09-08 07:44:41 -07:00
Alain Jobart e815e680b5 Moving UpdateStream to queryservice API.
The UpdateStream call makes a lot more sense in the QueryService part of
the API. It is meant to be used by vtgate. The Binlog side of the API is
then only used by filtered replication.

Adding vttablet support to start streaming from a timestamp, not just a
replication position. It finds the starting position by loking at the
binary logs.

In the process, change the following things:
- UpdateStream is now added to gateway.Gateway, so it flows through
  l2vtgate if needed.
- the python client now uses the new service.
- updated the tests as required.
- using Context instead of sync2.ServiceManager. Removing
  sync2.ServiceManager as it is now unused.
- tabletserver.TabletServer now remembers the ongoing UpdateStream
  connections, and closes them on state change.
2016-09-02 09:32:00 -07:00
Alain Jobart 7de2467675 Adding EventToken, using it in binlog services.
- Adding an EventToken structure in query.proto.
- Using it in Binlog Streamer and filtered replication.
- Using it in Update Stream in POS events as well.

Note the main change there is that an EventToken has a replication
position (GTIDSet), not a transaction ID (GTID). Both server and clients
were computing the position individually anyway by accumulating
transaction IDs, might as well just send the position. And it will make
more sense for later use of EventToken.

Also, we don't set the 'Shard' field of the EventToken just yet. I'm
still not sure vttablet should do it, as opposed to vtgate.
2016-08-30 09:27:54 -07:00
Alain Jobart 869b83b73c First version of Workflow object.
In order to do that, I had to:
- Adding File/Dir APIs to topo.Backend.
- Implementing them for all flavors: memorytopo, zk, etcd, tee.
  None of the backward compatible code is there yet,
  so these can only be used for new objects.
- Adding corresponding unit tests.
- Fixing a few fake etcd-specific bugs.

Also now using CancelFunc for all topo watches.
2016-08-26 17:02:30 -07:00
Michael Berlin ef676d0054 throttler: Support aging unchanged bad rates.
By default, a bad rate will get increased by 10% after it has not been changed for three minutes.
2016-08-23 10:17:10 -07:00
Michael Berlin df06a5f776 vtctl: Add commands to manipulate the adaptive throttling of the resharding throttler.
Summary of changes:
- Added new methods to Throttler RPC interface.
- Implemented methods for gRPC.
- Wrote RPC regression tests for the new methods (throttlerclient_testsuite.go).
- Wrote unit tests for the actual code (manager_test.go).
- Wrote e2e tests which are tested by worker.py (vtworker) and resharding.py (filtered replication).
2016-08-18 09:47:27 -07:00
Michael Berlin b709bbcae2 throttler: Shorten the name of the protobuf message for the MaxReplicationLag module configuration. 2016-08-17 21:23:58 -07:00
Michael Berlin ce93e26c6d throttler: MaxReplicationLagModule: Add new feature to skip the N slowest replicas. 2016-08-15 00:17:34 -07:00
Michael Berlin 55e0e70862 proto: Update the MaxReplicationLagModuleConfig comments since we removed the "doubling the rate until InitialRate" mode. 2016-08-14 21:54:14 -07:00
Michael Berlin 14cfb8ec13 throttler: Initial version of the MaxReplicationLagModule. 2016-08-12 11:43:30 -07:00
Joshua Thompson fc1ff80d1f Extend vtcombo. Addressed review comments. 2016-08-05 11:04:29 -07:00
Joshua Thompson b9246e486f Extend vtcombo to allow setting rdonly/replica counts, cells. Update test scripts 2016-08-03 14:42:23 -07:00
Pavel Ivanov 88e607da13 Start mysqld for mysql_upgrade with --skip-grant-tables and --skip-networking.
When mysqld is started on a database from an older version (the only use case
when mysql_upgrade will do anything and is really necessary) it may fail to
start due to mysql.* tables having old structure. --skip-grant-tables will
ensure that mysqld doesn't try to read mysql.* tables before mysql_upgrade fixed
their structure. Since anyone can connect to mysqld without password when it's
started with --skip-grant-tables, we should also pass --skip-networking to it.

To make passing those flags to mysqld possible I'm extending notion of
mysqld_start hook to accept list of any arguments that should be passed to
mysqld.
2016-07-26 22:56:46 -07:00
Pavel Ivanov 66841f7500 Add RestoreFromBackup command to vtctl.
Executing the command vttablet will completely delete the existing data and
then replace it from the latest backup. The sequence of actions is basically
the same as vttablet has already used to setup a freshly started replica.

Also mysqlctl interface is extended with ReinitConfig function. It's used by
vttablet to change server_id of the replica before restoring it from backup.
That's necessary to avoid a possible situation when restored replica skips
transactions in the replication stream which have the same server_id.

The new RestoreFromBackup command will be used later in the implementation of
an automated pivot.

This change doesn't add any tests for the new functionality because I didn't
find a place where I could add these tests. Please tell me if there is actually
a place that I missed. Meanwhile I tested this manually on the example
Kubernetes setup.
2016-07-11 15:03:10 -07:00
Alain Jobart c50bc78392 Changing sql string type to bytes in two protos.
Since we don't pass bind variables, we have to be able to send any
string we want, not just utf-8.
2016-07-05 00:28:01 -07:00
Anthony Yeh c71d3df495 tabletmanager: ReloadSchema RPC can wait for replication position.
This makes it possible to issue a command that will reload schema after
a given DDL has propagated through replication.
2016-06-17 13:37:53 -07:00
Michael Berlin 65396155cf Merge pull request #1772 from michael-berlin/throttlerservice
Create RPC service for throttler and add it to vttablet.
2016-06-08 18:22:36 -07:00
Michael Berlin f8de8e0706 throttler: Various fixes in the comments. 2016-06-08 17:02:43 -07:00
Michael Berlin c4b1e665a9 throttler: Add RPC MaxRates to retrieve the current limits. 2016-06-08 15:44:56 -07:00
Michael Berlin c445e52a24 proto: Add a throttler service. 2016-06-08 01:23:12 -07:00
Michael Berlin ed2d8f61a4 vtworker: Fix typos in comments of the RPC code. 2016-06-08 01:23:12 -07:00
Alain Jobart 85912f05bc Removing more uses of old flag.
And adding some documentation in proto.
2016-06-07 09:32:04 -07:00
Michael Berlin c248d79bb9 Merge pull request #1749 from michael-berlin/schema_fix
schemamanager: Change PreflightSchemaChange to accept a list of changes instead of a single change.
2016-06-03 13:19:59 -07:00
Michael Berlin 3e822ee725 mysqlctl: Made tmutils.SchemaChangeResult a proto message.
This simplifies executing the new PreflightSchema and passing on its response.
2016-06-02 20:33:16 -07:00
Alain Jobart bf2ffee8ee Adding SrvVSchema object. 2016-06-02 14:07:43 -07:00
Michael Berlin 4e1a52b50d schemamanager: Change PreflightSchemaChange to accept a list of changes instead of a single change.
This makes it easier to test multiple changes which depend on each other e.g. a CREATE TABLE after a DROP TABLE if the table already exists.

Fixes issue https://github.com/youtube/vitess/issues/1731#issuecomment-222914389.
2016-06-01 15:00:19 -07:00
Alain Jobart 79c61e40bc Addressing comments from review.
Changing Shard's db_name to db_name_override.
Rewording a bunch of comments in proto.
Factoring out tablet creation code in vtcombo.
Rebuilding keyspace graph for redirected keyspaces too,
and also setting ShardingColumn{Name,Type} for them.
2016-05-26 07:59:57 -07:00
Alain Jobart a8731c5ce1 vtcombo now also supports vttest topology param. 2016-05-25 16:24:41 -07:00
Alain Jobart 508ff06dcc Missed these files. 2016-05-25 16:24:41 -07:00
Alain Jobart 7c095d762b Addressing review comments.
Mostly simpler stuff all around. Good to have another pair of eyes.
2016-05-25 08:54:33 -07:00
Sugu Sougoumarane 78fcdf8f20 Merge branch 'master' into v3 2016-05-20 10:00:01 -07:00
Sugu Sougoumarane 1b1ec26f2f v3 vschema: typo in comment 2016-05-20 09:56:05 -07:00
Sugu Sougoumarane 74295d38a0 v3 vschema: "Sequence" -> "sequence" 2016-05-19 23:55:44 -07:00
Sugu Sougoumarane dd30f0b5a1 v3 vschema: code review comments 2016-05-19 23:34:55 -07:00
Alain Jobart d73c337514 Removing keyspace.split_shard_count. Unused. 2016-05-19 09:36:06 -07:00
Alain Jobart c61f459815 Fixing a few doc issues. 2016-05-19 07:36:45 -07:00
Sugu Sougoumarane 53e6ff7b34 Merge branch 'master' into v3 2016-05-18 14:53:53 -07:00
Sugu Sougoumarane 46b2d12769 v3: VSchemaFormal -> proto3
The most material difference in this PR is that the
JSON format has changed. The tags are all lowercased
now, and ColVindex is now col_vindex.
2016-05-18 14:38:33 -07:00
Alain Jobart 2f05afec43 Removing SrvShard. 2016-05-18 07:47:20 -07:00
Alain Jobart c32483d205 Removing Endpoint from proto. 2016-05-16 10:26:53 -07:00
Alain Jobart c7f808ed98 Removing EndPoints message. 2016-05-16 07:36:19 -07:00
Alain Jobart 1a5f6b1751 Lots of fixes after Anthony's comments.
Lameduck is clearer now.
Re-adding a lameduck case: when going unhealthy.
All lameduck mode is now conditioned on serving_state_grace_period > 0.
Adding reserved obsolete comments to proto for the fields I removed.
2016-05-10 09:08:04 -07:00
Alain Jobart 25bc282ba0 Better doc for tablet type, better unit tests. 2016-05-09 10:28:37 -07:00
Alain Jobart 6d815ad12d No more healthmap in tablet. 2016-05-09 09:36:12 -07:00
Alain Jobart 5c7b385cce Removing targetTabletType from health check proto. 2016-05-09 08:18:45 -07:00
Alain Jobart a0c8f9e8e8 Removing GetSessionId from queryservice.
And session_id from RPC calls. We switched to target everywhere now.
2016-05-05 07:25:28 -07:00
Alain Jobart af6a18b817 Adding BeginExecute{,Batch} rpc to gRPC code.
It is behind a flag for now, until it's been around for long enough, and
then I'll just enable it by default.
2016-04-27 08:11:32 -07:00
Erez Louidor 57812424fd Made equal_splits use the first split_column if more than one is given, rather than complain. 2016-04-26 16:27:34 -07:00
Michael Berlin e7cc432515 vterrors: Fix spelling issues. 2016-04-08 11:02:02 -07:00
Sugu Sougoumarane a5e601481e Merge branch 'master' into v3 2016-03-30 22:20:42 -07:00
Sugu Sougoumarane 3d2fb0c4c2 v3: optional keyspace in request
If a keyspace is in the request, tables will only be searched
in that keyspace unless the query contains explicit references.
2016-03-30 18:03:52 -07:00
Erez Louidor dd7766e9a9 Integrated the new SplitQuery RPC into Vitess. 2016-03-28 16:52:34 -07:00
Anthony Yeh 77d3751321 healthcheck: Add IgnoreHealthError command.
This command lets you selectively force individual tablets to temporarily
ignore health check errors that match the given regexp.
2016-03-07 17:33:28 -08:00
Michael Berlin 203649e33d vttablet: Added "qps" field to healthcheck message.
This required exposing QueryEngine's QueryServiceStats instance in the tabletserver.Controller interface.
2016-02-01 17:10:46 -08:00
Alain Jobart e2a14d9390 Renaming xid_{type,value} to {type,value} in the proto3
entity id. Should be safe.
2016-01-29 14:19:14 -08:00
Alain Jobart 4aa792733b Removing KeyspaceIdType from StreamKeyRange queries.
Effect is far-reaching to tabletmanager, which doesn't need to
read KeyspaceInfo any more. Cool!
2015-12-04 15:51:24 -08:00
Alain Jobart d8c0e7797d Removing the 'want_fields' flag for tm.ExecuteFetchAs*.
Defaulting it to true. Not worth the hassle.
2015-12-02 10:56:46 -08:00
Anthony Yeh 06124495b4 Stop looking for mysql.host table.
The mysql.host table has been obsolete since at least MySQL 5.0:

https://dev.mysql.com/doc/refman/5.0/en/grant-table-structure.html

In recent versions, the table is no longer created for new
installations.
2015-11-10 11:41:30 -08:00
Alain Jobart ee284d7734 Removing old go KeyspaceIdType. 2015-11-05 12:32:09 -08:00
Alain Jobart 51be389106 Submitting changes that were already made internally. 2015-11-05 07:33:02 -08:00
Alain Jobart 94477326c5 Fixing another comment. 2015-11-03 11:20:12 -08:00
Alain Jobart 0d43efcff8 Addressing a couple comments. 2015-11-03 11:20:12 -08:00
Alain Jobart 58af79e908 Updating comments in vtgate proto. 2015-11-03 11:20:12 -08:00
Alain Jobart 703121eb8f Removing locktimeout from vtctl protocol. 2015-11-03 11:20:12 -08:00
Anthony Yeh 0e602ee49a Merge branch 'master' into proto 2015-10-27 21:40:29 -07:00
Sugu Sougoumarane d12476e9fe proto: migrate EntityIds 2015-10-25 22:02:58 -07:00
Sugu Sougoumarane 94eb00ff00 proto: misc renames
Float -> Float32
Double -> Float64
IsNumber -> IsIntegral

Also addressed some code review comments.
2015-10-24 00:08:53 -07:00
Sugu Sougoumarane c5691e1cbc proto: revamp bind vars
I've done enough to get the existing unit tests to pass, but I
think they're insufficient. There also a few TODOs sprayed around.
2015-10-23 22:30:35 -07:00
Sugu Sougoumarane 6ed05d1d28 proto: int type names changed
Tiny, Long, etc. are not very understandable. I've now changed the
types to intXX, which is more intuitive.
2015-10-23 13:46:47 -07:00
Alain Jobart cff02b5c10 Removing SCHEMA_UPDATE tablet type, unusued. Re-ordering existing
types in proto3.
2015-10-23 07:12:49 -07:00
Alain Jobart 73497d2a16 Checkpoint of removing IDLE and SCRAP states. All unit tests pass,
most integration tests pass too.
2015-10-23 07:12:49 -07:00
Sugu Sougoumarane c7918063a3 New rows proto change
So far, unit tests are passing. Still need to look at clients.
2015-10-23 02:07:03 -07:00
Sugu Sougoumarane ba7921e963 changed proto enums to idiomatic upper case 2015-10-22 22:51:53 -07:00
Sugu Sougoumarane 175fcf2acc New vitess-specific types
This change defines the new types, how they are derived from
MySQL, and tests to make sure the conversions work.
2015-10-22 22:17:35 -07:00
Alain Jobart 5d0b747661 Adding the 'serving' flag to StreamHealthCheck. 2015-10-12 12:05:43 -07:00
Ammar Aijazi 6df8aa6133 Remove RPCError from proto3 responses where it's unused 2015-09-17 15:15:59 -07:00
Alain Jobart 1f94d704cb Changing Sql in binlog to always be a string too. 2015-09-11 07:53:47 -07:00
Alain Jobart 3b830cd986 Changing sql from []byte to string in proto3. 2015-09-11 07:26:19 -07:00
Andy Diamondstein c796c07448 Add Vitess API documentation and script for generating documentation from code. Modify left nav to list link to API document. Change "Range Based Sharding" to "Range-based Sharding" in .proto file. 2015-09-01 11:13:33 -04:00
Ammar Aijazi 11d903f17b Queryservice server-side changes needed for using vtrpc.ErrorCodes 2015-08-29 17:47:42 -07:00
Alain Jobart 635323043e Adding comments to the proto definition, and API groups. 2015-08-28 11:08:50 -07:00
Ammar Aijazi 01c80f7307 Add an additional error code, and fix the error codes for ACL denied 2015-08-25 18:31:38 -07:00
Ammar Aijazi 7a998a49ba Add vtrpc.ErrorCodes to TabletErrors everywhere 2015-08-25 18:26:13 -07:00
Michael Berlin b231b69851 proto: Reorder fields in RealTimeStats. 2015-08-18 13:06:52 -07:00
Michael Berlin 66433d9f91 proto: Add "binlog_players_count" field to RealTimeStats. 2015-08-17 18:49:21 -07:00
Michael Berlin 55d0fe9b9a proto: Changed filtered replication lag info from a timestamp to a delay value in query.proto.
We're only interested in the fact that the receiving master has seen a lower delay at some point in time. We don't care about the actual timestamps of the filtered replication statements which were applied.
2015-08-17 13:26:33 -07:00
Michael Berlin 4ebc1ed16b proto: Change field indexes in query.proto.
This is safe because they are not used anywhere else.
2015-08-17 12:58:56 -07:00
Michael Berlin 7a572c9bb4 proto: Add filtered_replication_synced_until_timestamp to RealtimeStats. 2015-08-16 23:25:58 -07:00
Michael Berlin f8fbf3d891 proto: Fix typos in query.proto. 2015-08-16 23:19:09 -07:00
Ammar Aijazi 416747e390 Merge remote-tracking branch 'origin/master' into aaijazi_add_vitess_error_enum 2015-08-05 22:36:37 -07:00
Ammar Aijazi 572decc1f1 More course-grained Vitess errors 2015-08-05 22:34:04 -07:00
Alain Jobart a483c92c37 Removing error in the app-level responses for queryservice / proto3. 2015-08-05 14:49:58 -07:00
Alain Jobart f1b1c1ea18 Now using proto3's Shard record. 2015-08-04 12:44:19 -07:00
Ammar Aijazi 4033a805fe Merge remote-tracking branch 'origin/master' into aaijazi_add_vitess_error_enum 2015-08-03 18:32:25 -07:00
Ammar Aijazi ae99549064 Added better documentation to Vitess error proto 2015-08-03 18:31:01 -07:00
Ammar Aijazi 6f481919a2 Reworked Vitess error codes 2015-08-03 16:11:39 -07:00
Alain Jobart 7d281ea095 Fixing proto3 Shard to have consistent names and types. 2015-08-03 09:08:05 -07:00
Alain Jobart 0c7fcc2e18 Fixing Keyspace.ServedFrom struct name. 2015-08-03 09:01:31 -07:00
Shengzhe Yao e99e9b761d add java client and grpc
1. define rules in the Maven build files to compile the data protos at build time.
2. define a new vtgate service interface that uses the proto3 data structures and
   defines an abstract service.
2015-07-31 22:16:25 -07:00
Alain Jobart 5a688b126b Renaming ReplicationLink to Node in ShardReplication. 2015-07-31 13:57:48 -07:00
Alain Jobart dd9651562e Merge branch 'master' into resharding 2015-07-29 14:23:19 -07:00
Alain Jobart 766c52b88e Adding GetSrvKeyspace to vtgate API. 2015-07-28 15:55:06 -07:00
Alain Jobart c9d2544fde Replacing portmap with port_map in proto3. 2015-07-28 12:00:30 -07:00
Alain Jobart e1e4a86269 Dropping more support for vts / encrypted port. 2015-07-28 11:39:04 -07:00
Alain Jobart 63daac2a5d Now using strings in remote RPC communication for replication position.
Much simpler than the big proto file.
2015-07-24 10:29:28 -07:00
Alain Jobart 1cdb3522eb Renaming position to transaction_id for binlog events.
They map to a single GTID, not a GTIDSet.
2015-07-23 10:12:20 -07:00
Alain Jobart 7d0dc20d7c Changing the proto3 binlog protocol to pass a string as
replication position, not the complicated GTID structure.
Also changing the python client API.
2015-07-23 08:39:32 -07:00
Alain Jobart db283f69e2 Renaming gtid to position in binlog streamer results. 2015-07-23 07:46:43 -07:00
Alain Jobart b7eac53a03 Adding split_column to vtgate API. 2015-07-20 10:24:31 -07:00
Alain Jobart ad4f444a75 Fixing case of tablet_type in protos. 2015-07-20 06:54:12 -07:00
Shengzhe Yao 2814466f00 add tableacl proto and refactor go/vt/tableacl
In short, the tableacl configuration will be represented as a
tableacl.proto. tableacl module holds a global "currentACL" instance
which maps a table group to its ACLs.

1. Introduce tableacl.proto which defines acl per table group.
   A table group either contains only one table or many tables
   that share the same name prefix.
2. Remove "All" and "AllString" funcs from acl.Factory interface.
2015-07-19 22:30:42 -07:00
Sugu Sougoumarane a89285b69c vttablet: AsTransaction for ExecuteBatch
As mentioned in the previous change, changing the vttablet
batch API to accept an AsTransacton flag.
Implementation and test changes will follow.
2015-07-17 04:14:33 -07:00
Sugu Sougoumarane db492fa34a Merge branch 'master' into suguwork 2015-07-17 00:45:02 -07:00
Sugu Sougoumarane b25527db03 vtgate batch API: Add AsTransaction flag
Batch requests in vttablet currently allow "begin" and "commit"
statements. They were treated as special cases where vttablet would
start a transaction if such statements were seen.
Initially, this looked flexible, but I realize that this has drawbacks.
For example, someone could issue a begin without a commit, or one could
issue begin inside begin, or a begin-commit-begin, or a "bEgIn", etc.
Checking for all these corner cases complicates the logic, and does not
add much value to the app.
This change adds an AsTransaction flag to the VTGate Batch
requests. If it's true, then the entire batch is executed in a
transaction. Otherwise, the statements are executed loosely.
Consequently, I'll be outlawing begin and commit as valid statements
inside batch requests.
The next change will be for vttablet.
2015-07-14 10:07:58 -07:00
Alain Jobart 75c4dfe75c Adding proto3 and grpc code for update stream, now that API is good. 2015-07-10 15:20:43 -07:00
sougou 86a0b5195f Merge pull request #863 from youtube/suguwork
VTGate batch API changes
2015-07-10 10:50:11 -07:00
Sugu Sougoumarane f318a82401 vtgate: proto3 changes to match batch api changes 2015-07-10 10:38:09 -07:00
Alain Jobart a0f63aa0af Using proper case for tablet_type in proto. 2015-07-08 13:41:29 -07:00
Alain Jobart 4688adebff Merge branch 'master' into resharding 2015-07-08 11:22:49 -07:00
Alain Jobart c80d6fd867 Removing old HealthStream in tabletmanager, as we now
use the StreamHealth in queryservice.
2015-07-08 11:21:33 -07:00
Michael Berlin 3502805185 vtworker: Add comment to RPC proto definition. 2015-07-08 08:57:17 -07:00
Alain Jobart b9da4f5efb Adding StreamHealth to tabletserver RPC service.
Not connected on the server side yet.
2015-07-07 14:49:51 -07:00
Alain Jobart df32088737 Switching mysqlctl command protocol from bsonrpc to gRPC. 2015-07-06 15:17:41 -07:00
Michael Berlin f7d05f2942 vtworker: Fix code after the logging Event was moved from vtctldata to logutil. 2015-07-06 13:12:50 -07:00
Michael Berlin 6feb668dfd Merge branch 'master' into vtworker_rpc_interface_review1 2015-07-06 12:17:05 -07:00
Alain Jobart 0a4d922670 Adding a few proto3 methods in preparation for tabletmanager. 2015-06-25 14:54:46 -07:00
Alain Jobart adfe4fff93 Fixing proto comments. 2015-06-25 10:03:42 -07:00
Alain Jobart c50188e6f2 Better library functions for logutil times for proto3. 2015-06-25 08:06:13 -07:00
Alain Jobart 197a06d851 Splitting up time and logger event to logutil proto3. 2015-06-25 07:37:19 -07:00
Alain Jobart 7b8aed7679 Adding gRPC support for binlog. 2015-06-24 11:38:19 -07:00
Michael Berlin f49ed484a3 vtworker: Add gRPC server interface. 2015-06-22 21:04:32 +02:00